<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式數(shù)據(jù)庫(kù)SQLite在遠(yuǎn)程監(jiān)控系統(tǒng)中的應(yīng)用

          嵌入式數(shù)據(jù)庫(kù)SQLite在遠(yuǎn)程監(jiān)控系統(tǒng)中的應(yīng)用

          作者: 時(shí)間:2013-04-09 來(lái)源:網(wǎng)絡(luò) 收藏

          本系統(tǒng)以32位的ARM微處理器S3C4510B為硬件開發(fā)平臺(tái),采用μClinux操作系統(tǒng),移植了Boa服務(wù)器和。系統(tǒng)主要功能如下,從底層設(shè)備采集的現(xiàn)場(chǎng)數(shù)據(jù),經(jīng)過(guò)數(shù)據(jù)處理,保存到嵌人式數(shù)據(jù)庫(kù)。用戶可在任何和Internet相連的地方,通過(guò)Web瀏覽器便可實(shí)時(shí)監(jiān)控設(shè)備狀態(tài)。因此對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)有上端的以太網(wǎng)通信程序和下端的CAN通信程序。這里主要討論以太網(wǎng)通信程序。下面以CGI程序訪問(wèn)數(shù)據(jù)庫(kù),然后在客戶端瀏覽器動(dòng)態(tài)顯示的Display.cgi程序?yàn)槔f(shuō)明數(shù)據(jù)庫(kù)API函數(shù)的用法。程序主要代碼如下:



          3.2 SQLite應(yīng)用程序交叉編譯

          S3C4510B是Samsung公司開發(fā)的一款性價(jià)比很高的無(wú)MMU的32位ARM處理器,而,μClinux是經(jīng)過(guò)對(duì)標(biāo)準(zhǔn)Linux內(nèi)核的改動(dòng),專門針對(duì)沒(méi)有MMU的CPU,適合嵌入式系統(tǒng)小型化應(yīng)用。μClinux采用romfs文件格式,比Linux的ext3文件格式需要更少的空間,但卻繼承了大部分Linux的優(yōu)秀特性。

          為了將嵌有SQLite的CGI程序應(yīng)用到S3C4510B+μClinux開發(fā)平臺(tái)上,必須對(duì)CGI程序進(jìn)行交叉編譯,然后下載到ARM開發(fā)板。因?yàn)榻徊婢幾g要用到romfs格式的libsqlite.a(chǎn)庫(kù)文件,使得過(guò)程有點(diǎn)麻煩,主要步驟如下:

          (1)下載SQLite源代碼:可以到SQLite的官方網(wǎng)站(http://www.sqlite.org/download.html),下載最新SQLite-3.3.7.tar.gz源代碼包或者SQLite-2.8.17.tar.gz。本文以SQLite-3.3.7.tar.gz為例,進(jìn)行說(shuō)明。

          (2)將下載的軟件包進(jìn)行解壓縮tar zxvf sqlite-3.3.7.tar.gz這時(shí)在用戶目錄下會(huì)有sqlite-3.3.6文件夾生成。

          (3)添加Makefile文件和修改main.mk文件交叉編譯過(guò)程中,最重要的是寫一個(gè)與μ2Clilnux相適應(yīng)的Make-file文件。本文使用的μClinux是μClinux-dist-20041215.tar.gz,交叉編澤工具為arm-elf-tools-20030314.sh。完整的Makefile內(nèi)容如下:

          TOP=../sqlite-3.3.7

          最后修改main.mk文件頭部的TCCX為:TCCX:$(TCC)$(OPTS)$(T卜IREA[)SAFE)$(LJSI。EEP)-I.-I$(TOP)/$src$(CFLAGS)$(LDFLAGS)

          再往下幾行,找到LIBOBJ中的tclsqlite.o并去掉他。這樣全部修改完畢。

          (4)交叉編譯

          cd/sqlite-3.3.7make

          這時(shí)會(huì)在sqlite-3.3.7文件夾中生成.romfs格式的sqlite3和靜態(tài)鏈接庫(kù)libsqlite3.a(chǎn)這兩個(gè)最有用的東西。CGI程序的交叉編譯如下:

          arm-elf-gcc-Wl,-elf2flt-o Display.cgi Display.clsqlite3-L/sqlite-3.3.7

          交叉編譯時(shí)需要用到的靜態(tài)庫(kù)文件就是前面生成libsqlite3.a(chǎn),結(jié)果生成300 kB的Display.cgi程序,通過(guò)NFS方法調(diào)試通過(guò)后,放到cgi-bin目錄下,同內(nèi)核一起編譯后下載到開發(fā)板。

          4結(jié) 語(yǔ)

          SQLite在樓宇配電監(jiān)控系統(tǒng)中的應(yīng)用,滿足監(jiān)控系統(tǒng)數(shù)據(jù)共享的管理要求。由于資源占用少、性能良好和零管理成本,大有用武之地。SQLite以他小巧的體積、快速高效、穩(wěn)定可靠、易移植等優(yōu)勢(shì)將成為嵌入式數(shù)據(jù)庫(kù)領(lǐng)域的新寵。加上免費(fèi)開放源代碼、沒(méi)有版權(quán)限制,是一個(gè)值得推廣的應(yīng)用軟件。


          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();