好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

SQLite数据库在嵌入式机中的应用研究.doc

3页
  • 卖家[上传人]:wd****9
  • 文档编号:307707037
  • 上传时间:2022-06-11
  • 文档格式:DOC
  • 文档大小:7.91KB
  • / 3 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • SQLite数据库在嵌入式下载机中的应用研究 摘  要 SQLite是开放源码的嵌入式数据库,其特点是独立性强,不具有外部依赖性,资源占用少,能直接嵌入到应用程序中,即能提供零配置(zero—configuration)运行模式本文介绍了SQLite系统的特点和体系结构,在arm-linux平台上成功地移植了SQLite并利用SQLite和网络成功地实现了用户与嵌入式下载机系统的动态交互,最后对数据库进行加密保障了安全性,可广泛用于远程控制     关键词 嵌入式数据库  SQLite 下载机   1 引言    在应用系统中的数据存储和检索一般采用数据库如ACCESS、MYSQL等来实现,但很多时候,系统只是用了数据库产品的一些基本特性,这样就造成浪费了很多的系统资源特别是在嵌入式系统中,由于硬件和软件资源都很有限,一般的数据库系统根本无法在这些平台上使用因此,嵌入式数据库应运而生嵌入式数据库系统实质是支持某种特定计算机模式或移动计算的数据库管理系统,它通常与操作系统和具体应用集成在一起,运行在智能型嵌入式设备或移动设备上[1]     嵌入式数据库的使用是采用程序驱动,即由程序调用相应的API函数来实现数据的存取。

      嵌入式数据库的体积小,编译后一般只有几十KB,非常适合在嵌入式设备上使用由于嵌入式系统应用环境没有统一的标准,故嵌入式数据库应充分体现可定制的特性,因此,开放源码的嵌入式数据库具有明显的优势 2  Sqlite数据库    Sqlite数据库是D.Richard Hipp用C语言编写的开源嵌入式数据库,支持的数据库大小为2TB,全部源代码约3万行,每个数据库完全存储在单个磁盘文件中,数据以B+树数据结构的形式存储在磁盘上,Sqlite根据该文件系统获得其数据库权限[2]     Sqlite可直接运行在大多数的操作系统上,并且支持C/C++、Java等常用的开发工具本项目用到的是Sqlite最新版本3.3.4,支持多数SQL92标准,如SELECT、CREATE、TABLE、ALTER、INDEX、VIEW、DELETE等,但不支持EXISTS,不支持存储过程[4]Sqlite支持事务的ACID特性,即原子性、一致性、隔离性和持久性所以,Sqlite数据库能够在系统崩溃前和断电时不会丢失数据Sqlite通过数据库级上的独占性和共享锁来实现独立事务处理这意味着多个进程可以在同一时间从同一数据库读取数据,但只有一个可以写入数据。

      在某个进程或线程向数据库执行写操作之前,必须获得独占锁定在发出独占锁定后,其他的读或写操作将不会再发生     嵌入式数据库来自于其嵌入式运行模式,它使用精简代码编写,零配置,直接在应用程序中运行,并且占用资源非常少[4]嵌入式数据库系统没有管理员,具有自调节和自适应能力,能够“无处不在”Sqlite是一个非常适合嵌入式应用的数据库,这可以从其设计的目的和独特的特点看出Sqlite设计的主要目的是简单:简单的管理、简单的操作、简单地嵌入、简单的维护Sqlite的特征如下:    (1)零配置    (2)无服务器    (3)精简性    (4)简单的访问    (5)可变长度的纪录     Sqlite不仅小、快,而且简单、可靠,这是它受欢迎的主要原因对于嵌入式场合,管理、执行、维护的简单化比企业数据库引擎提供的许多复杂应用更重要,因此Sqlite数据库是一个很好的选择 3  嵌入式下载机系统的整体结构    本下载机系统终端硬件核心板采用华恒公司的HHARM2410—K1,包括CPU模块、Flash、SDRAM存储部分底板包括USB接口、以太网控制芯片、CAN/RS485通信模块核心板CPU采用三星公司SBC2410芯片。

      SBC2410芯片基于ARM920T内核,而ARM920T内核有存储单元MMU、ARM9TDMI和高速缓存三部分组成,运行频率可达203MHZ,MMU管理虚拟内存,实现虚拟地址物理之间的转换CAN总线通信芯片采用Microchip公司的MCP2510它支持模式CAN2.0A、CAN2.0B,与国内常用的SJA1000相比,MCP2510数据吞吐率高且使用简单     本嵌入式下载机实现的主要功能有两大部分:一是单独与网络相连接,接受来自于网络的命令而自动下载任务;二是可实现磁盘的热插拔和与PC机的Samba共享(如图1)在现代生活中,当在Office上班的人们想在下班回家能有自己想看的电影或音乐,而且不需要回家再耗时下载,则可以利用上班时空闲在家的嵌入式,而在家里的嵌入式下载机接到指令后就会自动判断用户的帐号、密码,正确后将要下载的任务添加给下载程序在这过程中用户不用担心掉电或断网后数据问题,因为此系统中设计掉电保护程序于是当上班的人们回家后只需打开PC机就可以通过网络利用Samba和下载机共享,或者是直接将USB 插入现代数字电视就可以看到精彩的电影和欣赏到动听的音乐了  4  嵌入式数据库Sqlite的移植    下载的稳定版本,configure已经存在,直接进行配置: [root@linux sqlite-3.3.4]# ./configure --host=$ARCH-linux --prefix=$ROOTFS_DIR/usr     如果交叉编译工具是arm-linux-gcc的话则采用下面的配置语句 [root@linux sqlite-3.3.4]# ./configure --host=arm-linux --prefix=$ROOTFS_DIR/usr     如果出现了如下错误:configure: error: unable to find a compiler for building build tools 前面检查arm-linux-gcc都通过了,怎么还说没有找到编译器呢?结合configure.ac看了一下,原来是要设置config_TARGET_CC和config_BUILD_CC两个环境变量。

      config_TARGET_CC是交叉编译器,config_BUILD_CC是主机编译器 [root@linux sqlite-3.3.4]# export config_BUILD_CC=gcc [root@linux sqlite-3.3.4]# export config_TARGET_CC=arm-linux-gcc [root@linux sqlite-3.3.4]# ./configure --host=arm-linux --prefix=$ROOTFS_DIR/usr --disable-tcl     注:这个地方有个--disable-tcl选项,是因为在sqlite给我们提供的有c接口和tcl接口的,但是我们在实际的应用中用的只有c接口的,而tcl接口其实是不必要用的,故在此加上此选项后可以减去生成的makefile中屏蔽掉关于tcl的选项这一操作     出现了如下错误: checking for /usr/include/readline.h... configure: error: cannot check for file existence when cross compiling readline我们已经编译过了,readline.h是肯定存在,没有必要检查。

      可在cache文件里设置ac_cv_header_readline_h=yes,骗过configure脚本:[root@linux sqlite-3.3.4]# echo ac_cv_header_readline_h=yes >arm-linux.cache [root@linux sqlite-3.3.4]#./configure --host=$ARCH-linux –prefix = $ROOTFS_DIR/usr –disable-tcl --cache-file=arm-linux.cache 这回配置成功了,编译: [root@linux sqlite-3.3.4]# make && make install 有的机器上会出现下列错误: libtool: compile: unable to infer tagged confi- guration libtool: compile: specify a tag with `--tag' 这时检查一下libtool里的CC变量是否设置为arm-linux-gcc,如果不是,可以手工改过来,或者设置环境变量lt_compiler=arm-linux-gcc,重新配置一下。

      事实上我们所需烧写在板子上的是库文件 sqlite.so、sqlite.so.0、sqlite.so.0.8.6 要放入板子/lib 目录 5  用XXTEA加密算法为SQLite实现了加密功能    Sqlite是一个很好用的嵌入式数据库可惜美中不足的是Sqlite的免费版本不具备加密功能经在网上看到一个用WinCrypt实现加密功能的版本,可惜太依赖于Windows平台了但本系统所设计的嵌入式下载机是在ARM体系下的linux系统并且用Sqlite的一般是单机版软件比较多,有加密需求的必要,因此本系统利用XXTEA算法在Sqlite3.3.4版本的基础上实现了加密功能选择XXTEA主要是因为XXTEA算法速度很快,对性能造成的影响相对较小 6  结束语    嵌入式数据库Sqlite 在嵌入式下载机中的应用, 实现了嵌入式下载机的独立工作性能, 符合现代系统e 网到底、成本低廉、升级维护方便的趋势, 对于设备的嵌入式网络化远程控制具有重要的意义同时利用加密算法实现嵌入式Sqlite数据库的加密功能,对网络安全进行了保障 参考文献[1]曾立胜.《基于嵌入式数据库SQLITE的射频卡数据存储》.电脑知识与技术3,29 [2]王京谦,万莅新. 开源嵌入式数据库Berleley DB 和Sqlite的比较[J]单片机与嵌入式系统应用2005,2,2:5-7 [3] ]http://www.sqlite.org//Query Language Understood by SQLite.htm.(SQLite 官方网站) [4] 黄布毅,张晓华. 基于ARM- Linux 的SQLite 嵌入式数据库技术[J ] . 单片机与嵌入式系统应用,2005 ,30(4) :21 - 24(本文来源:《论文资料库》 )。

      点击阅读更多内容
      相关文档
      局长在2025年全市医疗保障重点工作调度会暨定点医药机构违法违规使用医保基金自查自纠工作推进会上的讲话稿.docx 2025年春教体系统安全工作会上的讲话范文.docx 2024年度街道机关支部党组织书记述职发言材料供参考.docx 2025年干部谈心谈话内容范文.docx 主管发改部门党组书记在党委理论学习中心组学习研讨会上的发言材料供参考.docx 学习关于党的建设的重要思想交流发言材料供参考.docx 纪委书记2025年全面从严治党的研讨材料范文.docx 2025年春季防汛防旱工作部署会上的讲话范文.docx 2025年村“三资”管理工作计划供参考.docx 村“两委”2025年工作计划供参考.docx 乡镇在全市履行职责事项清单工作会议上的交流发言.docx 银行行长在学习2025年一号文件精神专题会上的研讨发言供参考.docx 乡党委乡村振兴工作经验总结供参考.docx 党组书记、主任在2025年展改革委民营企业座谈会上的讲话范文.docx 领导干部在2025年“纪检监察工作规范化法治化正规化建设年”行动动员部署会议上的讲话范文.docx 关于落实全面从严治党主体责任报告范文.docx 在2025年基层履行职责事项清单工作会议上的交流发言例文.docx 2025年理论学习中心组党风廉政建设专题学习研讨会议上的交流发言供参考.docx 在理论学习中心组推动经济社会高质量发展专题学习研讨会议上的交流发言两篇.docx 党支部2024年民主评议党员工作情况报告供参考.docx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.