基于ARM9的Web服務(wù)器Boa的軟/硬件設(shè)計(jì)
1.ARM簡(jiǎn)介
本文引用地址:http://2s4d.com/article/227564.htm廣義地講,凡是帶有微處理器的專用軟硬件系統(tǒng)都可以稱為嵌入式系統(tǒng)。它是嵌入到對(duì)象體系中的專用計(jì)算機(jī)系統(tǒng),以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。目前非常流行的ARM內(nèi)核有ARM7TDM1、S t r o n g A R M 、A R M 7 2 0 T 、A R M 9 T D M 1 、ARM920T、ARM940T、ARM946T、ARM966T、ARM10TDM1等。本文所討論的目標(biāo)板的CPU為ARM920T內(nèi)核的三星S3C2410芯片。
ARM9系列微處理器主要應(yīng)用于無線設(shè)備、儀器儀表、安全系統(tǒng)、機(jī)頂盒、高端打印機(jī)、數(shù)字照相機(jī)和數(shù)字?jǐn)z像機(jī)等。它包含ARM920T、ARM922T和ARM940T三種類型,廣泛應(yīng)用于PDA、移動(dòng)通信、路由器、工業(yè)控制等領(lǐng)域。
2.嵌入式Web服務(wù)器實(shí)現(xiàn)原理
嵌入式Web服務(wù)器是指將Web服務(wù)器引入到現(xiàn)場(chǎng)嵌入式設(shè)備中,并駐留其中有限的代碼空間內(nèi)。與傳統(tǒng)的Web應(yīng)用相比,簡(jiǎn)化了系統(tǒng)結(jié)構(gòu),并將信息采集和信息發(fā)布都集成到現(xiàn)場(chǎng)的嵌入式設(shè)備中。在相應(yīng)得軟硬件平臺(tái)支持下,利用標(biāo)準(zhǔn)的接口形式和通信協(xié)議,內(nèi)嵌于嵌入式設(shè)備的Web服務(wù)器可以向任何接入到它所在網(wǎng)絡(luò)的合法用戶提供統(tǒng)一的基于瀏覽器方式的操作和控制界面,此時(shí)瀏覽器成了設(shè)備的前端控制板。當(dāng)前在嵌入式應(yīng)用領(lǐng)域,嵌入式系統(tǒng)轉(zhuǎn)變?yōu)榍度胧絎ebServer,大體可分為2種實(shí)現(xiàn)方案:
(1)基于網(wǎng)關(guān)服務(wù)器的嵌入式設(shè)備Internet接入;
(2)直接實(shí)現(xiàn)TCP/IP的嵌入式設(shè)備Internet接入。本課題中采用第二種實(shí)現(xiàn)方案。
3.系統(tǒng)功能的實(shí)現(xiàn)
3.1 開發(fā)流程
圖1為本課題所采用的實(shí)驗(yàn)環(huán)境以及開發(fā)流程。①在主機(jī)的RedHat Linux操作系統(tǒng)下安裝Linux發(fā)行包以及交叉編譯器armlinux-gcc;②對(duì)Linux進(jìn)行配置(makem e n u c o n f i g),并選擇適合本課題系統(tǒng)得相關(guān)配置;③編譯生成Linux映像文件zlmage;④通過u-boot的tftp命令將該文件下載到目標(biāo)板并執(zhí)行。這將在下面的內(nèi)容中作介紹。
3.2 加載Linux內(nèi)核映像
3 . 2 . 1 將J X A R M 9 - 2 4 1 0的串口0與P C的C O M 1連接,J X A R M 9 - 2 4 1 0的網(wǎng)卡和P C 的網(wǎng)卡使用直連網(wǎng)線進(jìn)行連接, 或者將J X A R M 9 - 2 4 1 0和P C機(jī)使用普通網(wǎng)線接入同一局域網(wǎng)。A R M 實(shí)驗(yàn)箱的I P 為192.168.1.45,虛擬機(jī)下的Linux的IP設(shè)為192.168.1.180,并將安全級(jí)別設(shè)置成無防火墻,宿主機(jī)IP設(shè)為192.168.1.145.
3.2.2 將JXARM9-2410上電,正常情況下將在終端DNW中看到bootloader菜單界面。在bootloader中按照提示進(jìn)行加載完成后輸入CTRL+C進(jìn)入Linux命令行。如果出現(xiàn)失敗,則可能存在一下幾種問題:
1)加載內(nèi)核時(shí)總體是“TT”,這是由于tftp服務(wù)器沒有連接成功,在uboot中輸入ping 192.168.1.180命令,如果提示為not alive請(qǐng)檢查網(wǎng)絡(luò)有沒有正確連接:使用網(wǎng)線正確與否或者宿主機(jī)和目標(biāo)機(jī)的IP地址不在同一子網(wǎng)。此處要求宿主機(jī)和目標(biāo)機(jī)都在192.168.1.xxx網(wǎng)段,而且最后一位不能相同;如果提示為alive而仍然提示“TT”,請(qǐng)檢查Windows防火墻設(shè)置,關(guān)閉防火墻,如果仍然不行,請(qǐng)關(guān)閉系統(tǒng)中啟動(dòng)的其它程序,如殺毒軟件等。
2)提示“packet too big”,這個(gè)問題是由于uboot接收到非法的包產(chǎn)生的,少量這種提示不會(huì)影響內(nèi)核的加載,如果導(dǎo)致內(nèi)核加載失敗,請(qǐng)按照如下方式檢查:①使用直接網(wǎng)線連接計(jì)算機(jī)和實(shí)驗(yàn)箱;②關(guān)閉計(jì)算機(jī)中打開的所有與網(wǎng)絡(luò)相關(guān)的程序。
3.3 Boa Web服務(wù)器的建立
建立Boa Web服務(wù)器包括以下步驟:
3.3.1 下載Boa源代碼
Boa web服務(wù)器的源代碼可以從http://www.boa.org下載,本文中下載文件為:
boa-0.94.13.tar.gz,為當(dāng)前最新版本。
3.3.2 安裝并編譯Boa源代碼1)通過Vmware Tools中的文件共享將Windows下載的Boa源代碼復(fù)制到/home/cvtech/jx2410/examples/目錄下。
2)安裝源代碼:生成Makefile文件#./configure.
3)修改Makefile文件,找到CC=gcc,將其改成C C = a r m - l i n u x - g c c,再找到C P P = g c c - E,將其改成C P P = a r m - l i n u x -gcc-E,并保存退出。
4)運(yùn)行make進(jìn)行編譯,在boa/src目錄下將生成Boa文件,該文件即為Boa Web服務(wù)器執(zhí)行文件。將調(diào)試信息剝?nèi)?,得到的最后程序只有約60KB大小。
3.3.3 配置Boa Web服務(wù)器,使其能夠支持CGI程序的執(zhí)行
Boa啟動(dòng)時(shí)將加載一個(gè)配置文件boa.
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論