999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于ARM的某智能彈藥無線通信模塊的設(shè)計

2012-06-23 06:38:42羅金選
火控雷達(dá)技術(shù) 2012年2期
關(guān)鍵詞:嵌入式界面設(shè)備

羅金選 袁 著 張 益

(電子科技大學(xué) 成都 611731)

1 引言

嵌入式系統(tǒng)的構(gòu)架從下到上,一般分為硬件、bootloader程序,嵌入式linux設(shè)備驅(qū)動程序、嵌入式linux內(nèi)核、linux系統(tǒng)調(diào)用接口、根文件系統(tǒng)、應(yīng)用程序,其本質(zhì)上依然是計算機(jī)系統(tǒng),但相對于傳統(tǒng)通用的PC機(jī)來說,是軟硬件可以自由裁剪,在功能、可靠性、成本、體積、能耗方面有更加嚴(yán)格要求的專用計算機(jī)系統(tǒng)。為了適應(yīng)某彈藥項目中各個節(jié)點在高速飛行的情況下,硬件上必須輕捷穩(wěn)定,軟件上必須完全支持該模塊利用某復(fù)雜協(xié)議進(jìn)行可靠通信和無線音視頻數(shù)據(jù)傳輸?shù)囊螅灾髟O(shè)計了以S3C2440 ARM為主控制器,以linux2.6為操作系統(tǒng)的嵌入式無線通信模塊,以下是該模塊從下到上設(shè)計過程中每個步驟的調(diào)試情況和最終測試結(jié)果。

2 硬件設(shè)計

該無線通信模塊的硬件框架主要包括一個S3C2440 ARM主控制器、兩片32M的SDRAM組成的64M內(nèi)存、一片2M的 NorFlash,一片512M的NandFlash,以及一個晶振、一個電源模塊、一個HJtag調(diào)試接口及一個用于選擇啟動方式的開關(guān),也即一個ARM嵌入式系統(tǒng)可以運行的最基本條件。另外還包括一些外圍電路,主要有:4個USB接口,其中一個充當(dāng)從設(shè)備的接口,用于在bootloader的引導(dǎo)下從宿主機(jī)下載內(nèi)核和文件系統(tǒng),另外三個充當(dāng)主設(shè)備接口,用于連接USB外部設(shè)備;3個TTL電平的9孔串口通過電平轉(zhuǎn)換之后分別連接著一個無線數(shù)據(jù)傳輸模塊和一個GPS模塊,還有一個用于在調(diào)試的時候和宿主機(jī)通信;一個以太網(wǎng)接口用于在調(diào)式階段從宿主機(jī)上通過NFS協(xié)議掛載文件系統(tǒng),和在研發(fā)階段利用TFTP或者NFS協(xié)議從宿主機(jī)上下載內(nèi)核和文件系統(tǒng);一個圖像采集模塊用于采集實時圖像,一個帶觸摸屏的LCD用于顯示采集過來的圖像和操作界面,一個VGA轉(zhuǎn)接板接口可以用于接PC機(jī)顯示屏,一個音頻接口用于聲音采集,一個蜂鳴器用于調(diào)試發(fā)聲。無線通信模塊的總體框架如圖1所示,實物如圖2所示。

3 bootloader移植

嵌入式產(chǎn)品在研發(fā)階段,bootloader除 了要引導(dǎo)操作系統(tǒng)之外,還有一個重要的原因就是必須在bootloader的引導(dǎo)下才能將linux內(nèi)核和文件系統(tǒng)從宿主機(jī)下載到目標(biāo)機(jī)的內(nèi)存,然后再由bootloader將linux內(nèi)核和文件系統(tǒng)從內(nèi)存復(fù)制到Flash(相當(dāng)于PC機(jī)的硬盤)中永久保存,在下一次系統(tǒng)啟動的時候又要由它將Flash中的linux內(nèi)核讀到RAM中去執(zhí)行,因此沒有bootloader的存在,就無法進(jìn)行后面的工作,linux內(nèi)核也就永遠(yuǎn)沒辦法啟動起來,它的作用就像PC機(jī)中的BIOS,簡單的說,bootloader就是系統(tǒng)復(fù)位之后在操作系統(tǒng)內(nèi)核運行之前運行的一小段程序,通過這一小段程序,初始化硬件設(shè)備,建立內(nèi)存空間的映射圖,將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(tài),最終引導(dǎo)操作系統(tǒng)。目前比較流行的bootloader主要有德國DENX軟件工程中心開發(fā)的U-boot和韓國三星公司開發(fā)的VIVI。而U-boot是一個比較統(tǒng)通用的bootloader,支持很多不同體系架構(gòu)的處理器,如:ARM,POWERPC,X86,MIPS,XSale等,它的啟動過程通常分兩個階段,總體啟動流程圖如圖3所示。

圖3 U-boot啟動流程圖

移植第一階段代碼的主要根據(jù)是ARM的最小系統(tǒng)即根據(jù)CPU的體系結(jié)構(gòu)和SDRAM,F(xiàn)LASH芯片的型號不同來設(shè)置,屬于芯片級移植,主要是修cpu/arm920t/start.S文件,用匯編語言編寫,具體所做的事情主要有:設(shè)置CPU進(jìn)入svc模式,關(guān)閉看門狗,屏蔽所有中斷,設(shè)置CPU的速度,時鐘頻率,關(guān)閉MMU和cache,初始化SDRAM控制器,設(shè)置堆棧,清空bss數(shù)據(jù)段,至此:整個系統(tǒng)SDRAM存儲空間映射情況如圖4所示,已經(jīng)為第二階段準(zhǔn)備好一些基本的硬件環(huán)境,然后初始化Flash控制器,再從Flash中拷貝第二階段代碼到RAM空間。

圖4 U-boot內(nèi)存空間映射圖

第二階段屬于板級移植,電路板不同,代碼就不同,當(dāng)U-boot的 start.S運行到"-start-armboot:.word start-armboot"時,就會調(diào)用 lib-arm/board.c中的start-armboot函數(shù),至此U-boot進(jìn)入第二階段,這一階段的代碼主要是建立起和宿主機(jī)的通信,并從宿主機(jī)上將linux內(nèi)核和文件系統(tǒng)下載到目標(biāo)機(jī)上,具體要做的事情主要有開發(fā)板的相關(guān)配置:時鐘初始化,環(huán)境變量初始化,串口控制臺初始化,配置可用的RAM,NorFlash初始化,NandFlash再次初始化,網(wǎng)卡初始化等,usb等功能的實現(xiàn)。初始化完成后就可以建立起和宿主機(jī)之間的通信,然后將linux內(nèi)核文件系統(tǒng)下載到目標(biāo)機(jī)上,并寫入Flash中永久保存。從宿主機(jī)下載內(nèi)核和文件系統(tǒng)可以采用tftp或者nfs協(xié)議下載,也可以通過USB接口下載。以下是實現(xiàn)tftp和nfs協(xié)議的U-boot成功運行之后的的啟動界面,如圖5所示。

圖5 U-boot的啟動界面

4 linux內(nèi)核移植和根文件系統(tǒng)制作

linux2.6操作系統(tǒng)幾乎支持市面上所有的嵌入式處理器,具有很好的可移植性,但是從官方網(wǎng)站下載的linux內(nèi)核是不能在即定的硬件平臺上運行的,必須根據(jù)CPU的體系結(jié)構(gòu),和電路板的設(shè)計對linux內(nèi)核內(nèi)與硬件相關(guān)的一部分代碼做相應(yīng)的修改,然后利用已經(jīng)搭建好的交叉編譯環(huán)境編譯新的Linux內(nèi)核,再下載到板子上運行。Linux內(nèi)核移植步驟如下:

第一步:進(jìn)入內(nèi)核根目錄修改Makefile文件為

第四步:修改NandFlash分區(qū),這里只創(chuàng)建四個分區(qū),四個分區(qū)空間分配結(jié)構(gòu)如圖6所示。

圖6 NandFlash空間分配結(jié)果圖

第五步:執(zhí)行make menuconfig命令配置內(nèi)核,linux的配置界面如圖7所示,配置完成之后,執(zhí)行make zImage命令編譯內(nèi)核得到內(nèi)核鏡像文件。要配置的選項主要有Sysytem Type--->

接下來需要制作根文件系統(tǒng),yaffs2文件系統(tǒng)是根據(jù)NandFlash的存取特點,將文件組織成固定大小的數(shù)據(jù)段,對文件系統(tǒng)上所有的內(nèi)容都統(tǒng)一當(dāng)作文件來處理,每個文件都有一個頁面專門存放文件頭,所以yaffs2文件系統(tǒng)是專門為嵌入式Nand-Flash而設(shè)計的一種日志型文件系統(tǒng),適用于大容量的存儲設(shè)備,因不支持?jǐn)?shù)據(jù)壓縮功能,所以速度快,掛載時間短,對內(nèi)存占用少,同時yaffs2自帶NAND芯片驅(qū)動,提供嵌入式系統(tǒng)直接訪問文件系統(tǒng)的API,這樣用戶既可以使用linux中的MTD與VFS訪問文件系統(tǒng),也可以直接對文件系統(tǒng)操作,yaffs2文件系統(tǒng)的制作過程如下:

第一步:先使用命令#./patch-ker.sh c/home/my2440/linux2.6/為內(nèi)核打上yaffs2補(bǔ)丁。

第二步:配置內(nèi)核,使其支持yaffs2文件系統(tǒng),配置完成之后重新編譯內(nèi)核,配置界面如圖7所示。

圖7 linux支持yaffs2的配置界面

第三步:首先在busybox根目錄下修改Makefile文件如下:

CROSS-COMPILE=arm-linux

ARCH=arm,然后配置編譯busybox生成文件系統(tǒng)所需要的應(yīng)用程序。

第四步:新建一個 root-2.6目錄,把編譯busybox生成的應(yīng)用程序的可執(zhí)行文件復(fù)制到該目錄下,然后用mkdir命令創(chuàng)建文件系統(tǒng)所需要的目錄:mkdir dev etc home lib mnt opt proc tmp var www,并制作好相關(guān)的配置文件。

第五步:用mkyaffs2image-128工具制作好根文件系統(tǒng)的鏡像得到 root-2.6.img文件:makyaffs2image root-2.6/root-2.6.img。圖8是下載文件系統(tǒng)和內(nèi)核鏡像到板子上linux成功掛載文件系統(tǒng)成功啟動之后的界面。

圖8 linux內(nèi)核成功啟動之后的界面

5 嵌入式linux設(shè)備驅(qū)動移植和開發(fā)

到此為止,硬件平臺可以運行起來了,但是各種外設(shè)因為還沒有驅(qū)動的支持還不能使用。接下來就是為各個外部設(shè)備的制做好驅(qū)動程序(見圖7),屏蔽底層硬件細(xì)節(jié),為上層應(yīng)程序提供所有操作底層硬件設(shè)備的接口函數(shù),使得原來在通用PC機(jī)上開發(fā)的應(yīng)用程序不需要做實質(zhì)性的修改就可以移植該平臺上來,在通信模塊的開發(fā)過程中涉及了嵌入式linux僅有的三大設(shè)備驅(qū)動,但從linux2.6開始引入了platform虛擬總線機(jī)制,使得這三大完全不同類型的設(shè)備驅(qū)動都可以使用platform進(jìn)行統(tǒng)一管理和注冊,platform機(jī)制和傳統(tǒng)設(shè)備驅(qū)動開發(fā)機(jī)制相比,一個明顯的優(yōu)勢在于將設(shè)備和驅(qū)動分開管理,提高了驅(qū)動和資源的獨立性,因而增強(qiáng)了設(shè)備驅(qū)動程序的可移植性和安全性。Platfrom機(jī)制本身并不復(fù)雜,由兩部分組成:platform-device和platform-driver。用platform開發(fā)底層驅(qū)動的大致流程為:定義platform-device->注冊platform-device->定義platform-driver- > 注冊platform-driver。

下面以platform按鍵驅(qū)動為例說明平臺上設(shè)備驅(qū)動開發(fā)的整個過程:

第一步:定義和注冊按鍵設(shè)備,在 arch/arm/plat-s3c24xx/devs.c中添加按鍵驅(qū)動平臺設(shè)備的定義:

};中所有接口函數(shù),然后在static int my-keysprobe(struct platform-device*dev)函數(shù)中用register-chrdev()函數(shù)注冊keys-ops結(jié)構(gòu)體;編寫platform驅(qū)動struct platform-driver my-buttons-drv={

第三步:在下面注冊或者下載 platform設(shè)備驅(qū)動

圖9 驅(qū)動編譯進(jìn)內(nèi)核界面

6 結(jié)束語

當(dāng)硬件平臺,bootloader,linux內(nèi)核和驅(qū)動都做好之后,那么一個集軟硬件于一身的完整的嵌入式系統(tǒng)平臺就基本搭建起來了,使用arm-linux-gcc重新編譯某協(xié)議程序,并下載到該模塊中,運行結(jié)果見圖10。

圖10 某通信協(xié)議運行結(jié)果

項目驗收的結(jié)果表明利用該通信模塊進(jìn)行無線通信,相對先前以通用CPU為主控制器和商用linux為操作系統(tǒng)的軟硬件平臺來說,功能一摸一樣,但硬件集成化程度有了很大的提高,體積和重量大大減小,成本大幅度降低,開發(fā)周期縮短,調(diào)試時間充足,出錯機(jī)會減少,因而更安全可靠,更符合安裝在飛行器上的要求。

[1]周立功等.ARM嵌入式系統(tǒng)基礎(chǔ)教程(二)[M].北京.北京航空航天大學(xué)出版社,2005.

[2]周立功.ARM嵌入式系統(tǒng)實驗教程(二)[M].北京:北京航空航天大學(xué)出版社,2005.

[3] 陳莉君,馮銳,牛欣源譯.孫玉芳審.BOVET D P.,MARCOCESAT.深入理解linux內(nèi)核(第二版)[M].北京:中國電力出版社,2004.

[4]俞永昌.linux設(shè)備驅(qū)動開發(fā)技術(shù)及應(yīng)用[M].北京:人民郵電出版社,2008.

猜你喜歡
嵌入式界面設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
國企黨委前置研究的“四個界面”
基于MPU6050簡單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發(fā)平臺
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
嵌入式軟PLC在電鍍生產(chǎn)流程控制系統(tǒng)中的應(yīng)用
人機(jī)交互界面發(fā)展趨勢研究
500kV輸變電設(shè)備運行維護(hù)探討
手機(jī)界面中圖形符號的發(fā)展趨向
新聞傳播(2015年11期)2015-07-18 11:15:04
原來他們都是可穿戴設(shè)備
消費者報道(2014年7期)2014-07-31 11:23:57
主站蜘蛛池模板: 日本国产精品一区久久久| 亚洲第一成人在线| 91在线免费公开视频| 日韩精品免费一线在线观看| 本亚洲精品网站| 成人在线不卡| 超清人妻系列无码专区| 中文字幕 欧美日韩| 午夜小视频在线| 国产精品黄色片| 国产精品99在线观看| 色天堂无毒不卡| 视频二区欧美| 免费人成在线观看成人片| 人妻丰满熟妇AV无码区| 国产美女久久久久不卡| 国产va欧美va在线观看| 亚洲永久色| 无码综合天天久久综合网| 国内精自线i品一区202| 久久综合结合久久狠狠狠97色| 亚洲一本大道在线| 亚洲男人天堂久久| 亚洲欧美日韩中文字幕在线| 久久国产精品国产自线拍| 欧美色图第一页| 国产超碰在线观看| 波多野结衣一区二区三区四区视频| 国产免费久久精品99re丫丫一| 亚洲精品不卡午夜精品| 国产一区三区二区中文在线| 日本人妻丰满熟妇区| 久久综合成人| 国产福利小视频在线播放观看| 欧美日本二区| 欧美伦理一区| 有专无码视频| 久操线在视频在线观看| 浮力影院国产第一页| 欧美日韩精品一区二区在线线| 国产系列在线| 亚洲视频在线观看免费视频| 欧美色伊人| 在线国产你懂的| 国产成人精品一区二区免费看京| 欧美精品一二三区| 亚洲国产欧美自拍| 高清国产va日韩亚洲免费午夜电影| 亚洲国产中文精品va在线播放 | 日韩久草视频| 国产精选自拍| 国产欧美日韩视频一区二区三区| 亚洲免费黄色网| 18禁黄无遮挡免费动漫网站| 亚洲日本中文字幕天堂网| 成人在线视频一区| 国产熟女一级毛片| AV色爱天堂网| 久久黄色小视频| 国产亚洲男人的天堂在线观看| 午夜福利视频一区| 国产久操视频| 久久永久精品免费视频| 欧美国产菊爆免费观看 | 国产69精品久久久久孕妇大杂乱| 超碰aⅴ人人做人人爽欧美| 欧美国产三级| www.91在线播放| yjizz国产在线视频网| 午夜精品久久久久久久无码软件| 4虎影视国产在线观看精品| 午夜精品久久久久久久无码软件| 国产成人av大片在线播放| 天天摸天天操免费播放小视频| 尤物午夜福利视频| 久久精品人妻中文视频| 一本二本三本不卡无码| 97精品伊人久久大香线蕉| 国产欧美日韩视频一区二区三区| 热re99久久精品国99热| 九九久久精品国产av片囯产区| 国产丝袜啪啪|