(3) 由设备驱动程序提供具体的函数,来完成对硬件设备的各种操作。特别的对于PCI9656来说,就是通过PCI接口对设备的寄存器和存储器进行访问操作,例如调用register_chrdev等函数来初始化芯片内部的状态寄存器和配置寄存器。
3.3 PCI9656芯片的操作流程
PCI总线是目前最常用的外设总线之一,Linux的PCI内核代码为PCI设备驱动程序的开发提供了强大的支持。PCI9656的驱动程序主要包括以下几个方面:设备初始化,为PCI芯片分配内存资源,实现数据的读写功能,中断处理,系统收回内存资源,关闭设备等。
4.Linux2.6内核下内存和中断管理的研究
2.6内核应用了许多新技术来实现对各类外部设备驱动程序的更好支持。下面结合PCI9656驱动程序中的内存和中断管理,进一步分析和研究2.6内核对内存和中断进行的改进和优化。
4.1 内存管理
在Linux内存管理器中,页表保持对进程使用的内存物理页的追踪,它将虚拟页映射到物理页上。系统必须找到映射到该页的每一个进程,将使用较少的页置换出去,这样进程中相应页的页表条目才能被更新。随着在系统中运行的进程数量的增加,将这些页置换出去的工作量也会急剧增加。
摘 要: 与常见的数据库相比,嵌入式数据库具有体积小、功能齐备、可移植性、健壮性等特点,本文分析和比较了典型的嵌入式数据库SQLite和Berkeley DB。首先从体系结构、子系统间调用关系、任务执行过程等角度对SQLite和Berkeley DB进行了详细分析,然后重点从数据类型、存储方式、模式、数据库引擎和错误处理及加密功能等方面讨论了SQLite和Berkeley DB的异同点,最后列举了一个基于ARM—Linux的SQLite应用实例。
关键词: SQLite、Berkeley DB、SQL、虚拟数据库引擎(VDBE)
引言
随着计算机技术与其它学科间的不断交融、渗透,数据库应用的范围更加深入和具体。那些仅适用于PC机,体积庞大、延时较长的数据库技术已不能满足针对性较强的嵌入式系统开发的需求。SOLite和Berkeley DB是目前应用较广泛、技术较稳定的两种嵌入式数据库。然而,国内对嵌入式数据库的研究起步较晚,还没能引起更多人的关注。更多人熟悉那些基于C/S或B/S结构的关系型数据库来实现数据的存储、检索等功能。然而,在嵌入式系统中,由于软硬件资源有限,不可能安装庞大的数据库服务器,而用户的需求可能由一个简单的基于磁盘文件的数据库系统就能实现,这仅仅是利用了那些数据库的基本特性。此时,对嵌入式数据库的研究就显得尤为重要了。
1嵌入式数据库
嵌入式数据库通常是与嵌入式操作系统及具体的应用集成在一起,无需独立运行数据库引擎,由程序直接调用相应的API就可实现对数据的存取操作。嵌入式系统的开发环境决定了其数据库的特点:
1、 体积适当
由于嵌入式系统自身的特点,对数据的存储和程序的运行都有较强的空间限制,所以嵌入式数据库首先应该保障的就是适当的体积。进一步来说就是占用尽量少的ROM、RAM及CPU的资源。
2、 功能齐备
嵌入式系统开发中,用户需求决定了需要一个大小适中、功能齐备的数据库来实现数据
管理,这就使得开发人员要采用一个能够提供完备开发文档且易于开发的数据库技术。此外,
国家863项目2002AA714023,研究生精品课程资助05531451
在嵌入式设备中,数据库的管理对用户来说是透明的,这就要求此数据库能够自动完成启动初始化、日志管理、数据压缩、备份、数据恢复等功能;而且嵌入式设备经常有不可预料的硬复位,这就需要此数据库有高度的健壮性。
3、 可移植性
嵌入式系统的平台种类繁多,因此嵌入式数据库应有一定的可移植性,以适用于不同的软硬件平台。
4、代码开源
开源的代码在产品的开发过程中不仅可以减少开发成本,更重要的是为后期的维护完善和稳定运行都提供了最为彻底的解决方法。
