ARM的開發(fā)步驟._第1頁
ARM的開發(fā)步驟._第2頁
ARM的開發(fā)步驟._第3頁
ARM的開發(fā)步驟._第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、ARM的開發(fā)步驟ARM的開發(fā)步驟Flash,SRA1 .做個最小系統(tǒng)板:如果你從沒有做過 ARM的開發(fā),建議你一開始不要貪大求全, 把所有的應(yīng)用都做好, 因?yàn)锳RM的啟動方式和dsp或單片機(jī)有所不同,往往會遇到各種問題,所以建議先布一個僅有你的任務(wù)這對你來講是M或SDRAM、CPU、JTAG、和復(fù)位信號的小系統(tǒng)板,留出擴(kuò)展接口。使最小系統(tǒng)能夠正常運(yùn)行, 就完成了一半,好在ARM的外圍接口基本都是標(biāo)準(zhǔn)接口, 如果你已有這些硬件的布線經(jīng)驗(yàn), 一件很容易的事情。C語言入口。2 .寫啟動代碼,根據(jù)硬件地址先寫一個能夠啟動的小代碼,包括以下部分: 初始化端口,屏蔽中斷,把程序拷貝到SRAM中;完成代碼的

2、重映射;配置中斷句柄,連接到也許你看到給你的一些示例程序當(dāng)中,bootloader會有很多東西,但是不要被這些復(fù)雜的程序所困擾,因?yàn)槟悴皇亲鲩_發(fā)板的,你的任務(wù)就是做段小程序,讓你的應(yīng)用程序能夠運(yùn)行下去3. 仔細(xì)研究你所用的芯片的資料,盡管ARM在內(nèi)核上兼容,但每家芯片都有自己的特色,編寫程序時必 須考慮這些問題。尤其是女孩子,在這兒千萬別有依賴心理,總想拿別人的示例程序修改,卻越改越亂。4. 多看一些操作系統(tǒng)程序, 在ARM的應(yīng)用開放源代碼的程序很多,要想提高自己,就要多看別人的程序, linux,uc/os-ll等等這些都是很好的原碼。6.如果你是作硬件,每個廠家基本上都有針對該芯片的DEM

3、O板原理圖。先將原理圖消化。這樣你以后做設(shè)計時,對資源的分配心中有數(shù)。器件的DATSHEET 一定要好好消化。7.如果做軟件最好對操作系統(tǒng)的機(jī)理要有所了解。當(dāng)然這對軟件工程師來說是小菜一碟。但如果是硬件出 身的就有點(diǎn)費(fèi)勁。問:做最小系統(tǒng)板是2層還是4層好?答:只有AT91可以用兩層板,其他的最少 4層;44b0的地和電源處理好也可用兩層板; 談四層板和33歐電阻:33歐電阻選用四層板不僅是電源和地的問題,高速數(shù)字電路對走線的阻抗有要求,二層板不好控制阻抗。 一般加在驅(qū)動器端,也是起阻抗匹配作用的;布線時要先布數(shù)據(jù)地址線,和需要保證的高速線; 在高頻的時候,PCB板上的走線都要看成傳輸線。傳輸線

4、有其特征阻抗,學(xué)過傳輸線理論的都知道,當(dāng)傳 輸線上某處出現(xiàn)阻抗突變(不匹配)時,信號通過就會發(fā)生反射,反射對原信號造成干擾,嚴(yán)重時就會影響 電路的正常工作。采用四層板時,通常外層走信號線,中間兩層分別為電源和地平面,這樣一方面隔離了 兩個信號層,更重要的是外層的走線與它們所靠近的平面形成稱為微帶”(microstrip)的傳輸線,它的阻抗比較固定,而且可以計算。對于兩層板就比較難以做到這樣。這種傳輸線阻抗主要于走線的寬度、到參考 平面的距離、敷銅的厚度以及介電材料的特性有關(guān),有許多現(xiàn)成的公式和程序可供計算。33歐電阻通常串連放在驅(qū)動的一端 (其實(shí)不一定33歐,從幾歐到五、六十歐都有,視電路具體

5、情況),其作用是與發(fā)送器的輸出阻抗串連后與走線的阻抗匹配,使反射回來(假設(shè)解收端阻抗沒有匹配)的信號不會再次反射回去(吸收掉),這樣接收端的信號就不會受到影響。接收端也可以作匹配,例如采用電阻并聯(lián), 但在數(shù)字系統(tǒng)比較少用,因?yàn)楸容^麻煩,而且很多時候是一發(fā)多收,如地址總線,不如源端匹配易做。 這里梭說的高頻,不一定是時鐘頻率很高的電路,是不是高頻不止看頻率,更重要是看信號的上升下降時 間。通??梢杂蒙仙ɑ蛳陆担r間估計電路的頻率,一般取上升時間倒數(shù)的一半,比如如果上升時間是 ns,那么它的倒數(shù)是1000MHz,也就是說在設(shè)計電路是要按 500MHz的頻帶來考慮。有時候要故意減慢邊 緣時間,許多

6、高速IC其驅(qū)動器的輸出斜率是可調(diào)的 構(gòu)造嵌入式LinuxLinux自身具備一整套工具鏈, 容易自行建立嵌入式系統(tǒng)的開發(fā)環(huán)境和交叉運(yùn)行環(huán)境,并且可以跨越嵌入式系統(tǒng)開發(fā)中的仿真工具(ICE)的障礙。內(nèi)核的完全開放使人們可以自己設(shè)計和開發(fā)出真正的硬實(shí)時系統(tǒng), 軟實(shí)時系統(tǒng)在Linux中也容易得到實(shí)現(xiàn)。強(qiáng)大的網(wǎng)絡(luò)支持使得可以利用Linux的網(wǎng)絡(luò)協(xié)議棧將其開發(fā)成為 嵌入式的TCP/IP網(wǎng)絡(luò)協(xié)議棧。1它是多面的。 它能處理嵌入式任務(wù)和Linux 提供了完成嵌入功能的基本內(nèi)核和所需要的所有用戶界面, 用戶界面。一個小型的嵌入式 Linux 系統(tǒng)只需要下面三個基本元素:* 引導(dǎo)工具* Linux 微內(nèi)核,由內(nèi)存

7、管理、進(jìn)程管理和事務(wù)處理構(gòu)成* 初始化進(jìn)程如果要讓它能干點(diǎn)什么且繼續(xù)保持小型化,還得加上:* 硬件驅(qū)動程序* 提供所需功能的一個或更多應(yīng)用程序。 再增加功能,或許需要這些:ROM 或 RAM)中* 一個文件系統(tǒng)(也許在* TCP/IP 網(wǎng)絡(luò)堆棧下面我們就從精簡內(nèi)核、系統(tǒng)啟動、 驅(qū)動程序?qū)ⅰ?X-Window 換成 MicroWindows 四個步驟介紹嵌入式Linux 的實(shí)際開發(fā)。精簡內(nèi)核make config 、dep 、 clean 、mrproper 、 zImage 、bzImage 、modules 、m構(gòu)造內(nèi)核的常用命令包括: odules_install 。命令說明略?,F(xiàn)在舉個例

8、子說明一下:我使用的是 Mandrake 內(nèi)附的 2.2.15 。我沒有修改任何一行程序碼,完全只靠修改組態(tài)檔得到這些數(shù) 據(jù)。首先,使用 make config 把所有可以拿掉的選項(xiàng)都拿得。不要 floppy ;不要 SMP、MTRR;不要 Networking、SCSI;把所有的 block device 移除,只留下 ol188K 的核心。取代。d IDE device ;把所有的 character device 移除;把所有的 filesystem 移除,只留下 minix ;不要 soun d 支援。相信我,我己經(jīng)把所有的選項(xiàng)都移除了。這樣做之后,我得到了一個還不夠小嗎? OK,再加

9、上一招,請把下列兩個檔案中的-03,-02用-Os./Makefile./arch/i386/kernel/這樣一來,整個核心變小了 不過這個核心恐怕很難發(fā)揮Makefile9K,成為 179K。General 中的 network supLinux 的功能,因此我決定把網(wǎng)絡(luò)加回去。把189 K。port 加回去,重新編譯,核心變成有 stack 沒有 driver 也是枉然,所以我把10K 就加上個 TCP/IP stack ,似乎是很上算的生意。embedded board 常用的 RTL8139 的 driver 加回去, 195K。213K 。如果 minix 用 ext2 換代,則大

10、小成長至 但不太有用, 因?yàn)檫B載入 C 4MB 以上才可以執(zhí)行一個比較完整的系統(tǒng)。222K。如果你需要 DOS 檔案系統(tǒng),那大小成為Linux所需的內(nèi)存大約在 600K800K之間。1MB內(nèi)存就可能可以開機(jī)了,程序庫都有困難。 2MB 內(nèi)存應(yīng)該就可以做點(diǎn)事了,但要到因?yàn)長inux的filesystem 相當(dāng)大,大約在 230K左右,占了 1/3的體積。內(nèi)存管理占了 80K,和核 心其它部分的總和差不多。 TCP/IP stack占了 65K,驅(qū)動程序占了 120K。SysV IPC占了 21K,必要的話 可以拿掉,核心檔應(yīng)該可以再小個 10K 左右。如果要裁剪核心大小,應(yīng)該動那里呢 ?答案很明

11、顯,當(dāng)然是文件系統(tǒng)。 Linux的VFS簡化了檔案系統(tǒng) 的設(shè)計, buffer cache, directory cache 增加了系統(tǒng)的效率。但這些 embedded 系統(tǒng)根本就用處不大。如 果可以把它們拿掉,核心可以馬上縮小 20K左右。如果跳過整個 VFS,直接將文件系統(tǒng)寫成一個 driver 的型式,應(yīng)該可以將 230K 縮減至 50K 左右。整個核心縮到 100K 左右。系統(tǒng)啟動系統(tǒng)的啟動順序及相關(guān)文件仍在核心源碼目錄下,看以下幾個文件: ./arch/$ARCH/boot/bootsect.s./arch/$ARCH/boot/setup.s./init/main.c bootse

12、ct.S及 setup.SLinux kernel 的第一個程序, 包括了 Linux 自己的 bootstrap 程序,但是在說明這個程序前, IBM PC開機(jī)時的動作(此處的開機(jī)是指打開PC的電源”。FFFF:0000 開始執(zhí)行 (這個地址一定在這個程序是必須先說明一般一般 PC 在電源一開時,是由內(nèi)存中地址ROM BIOS 中, ROM到另一個位于 ROM BIBIOS 般是在FEOOOh到FFFFFh中),而此處的內(nèi)容則是一個 jump指令,jumpOS 中的位置,開始執(zhí)行一系列的動作。routine) 。這個程序會緊接著系統(tǒng)測試碼之后,控制權(quán)會轉(zhuǎn)移給 ROM 中的啟動程序 (ROM

13、bootstrap將磁盤上的第零軌第零扇區(qū)讀入內(nèi)存中,至于讀到內(nèi)存的哪里呢?-絕對位置07C0:0000(即07C00h處),這是IBM系列PC的特性。而位于 Linux開機(jī)磁盤的boot sector上的,正是Linux的bootsect程序。把大家所熟知的 MS DOS 與 Linux 的開機(jī)部分做個粗淺的比較。 MS DOS 由位于磁盤上 boot sector 的 boot 程序負(fù)責(zé)把 IO.SYS 載入內(nèi)存中,而 IO.SYS 則負(fù)有把 DOS 的 kernel -MSDOS.SYS 載入內(nèi)存的重 任。而 Linux 則是由位于 boot sector 的 bootsect 程序負(fù)責(zé)

14、把 setup 及 Linux 的 kernel 載入內(nèi)存中,再將 控制權(quán)交給 setup 。驅(qū)動程序在 Linux 系統(tǒng)里,設(shè)備驅(qū)動程序所提供的這組入口點(diǎn)由一個結(jié)構(gòu)來向系統(tǒng)進(jìn)行說明。設(shè)備驅(qū)動程序所提供的入口點(diǎn),在設(shè)備驅(qū)動程序初始化的時候向系統(tǒng)進(jìn)行登記,以便系統(tǒng)在適當(dāng)?shù)臅r 候調(diào)用。 Linux 系統(tǒng)里,通過調(diào)用 register_chrdev 向系統(tǒng)注冊字符型設(shè)備驅(qū)動程序。在 Linux 里,除了直接修改系統(tǒng)核心的源代碼,把設(shè)備驅(qū)動程序加進(jìn)核心里以外,還可以把設(shè)備驅(qū)動 程序作為可加載的模塊,由系統(tǒng)管理員動態(tài)地加載它,使之成為核心的一部分。也可以由系統(tǒng)管理員把已 加載的模塊動態(tài)地卸載下來。 Li

15、nux 中,模塊可以用 C 語言編寫,用 gcc 編譯成目標(biāo)文件(不進(jìn)行鏈接, 作為*.o文件存在)。為此需要在gcc命令行里加上-c的參數(shù)。在成功地向系統(tǒng)注冊了設(shè)備驅(qū)動程序后(調(diào) 用 register_chrdev 成功后),就可以用 mknod 命令來把設(shè)備映射為一個特別文件。其它程序使用這個設(shè)備 的時候,只要對此特別文件進(jìn)行操作就行了。將 X-Window 換成 MicroWindowsMicroWindows 是使用分層結(jié)構(gòu)的設(shè)計方法。 允許改變不同的層來適應(yīng)實(shí)際的應(yīng)用。 在最底一層, 提供 了屏幕、鼠標(biāo) /觸摸屏和鍵盤的驅(qū)動,使程序能訪問實(shí)際的硬件設(shè)備和其它用戶定制設(shè)備。在中間一層,有 一個輕巧的圖形引擎,提供了繪制線條、區(qū)域填充、繪制多邊形、裁剪和使用顏色模式的方法。在最上一 層,提供了不同的 API 給圖形應(yīng)用程序使用。這些 API 可以提供或不提供桌面和窗口外形。目前, MicroW indows 支持 Windows Win32/WinCE GDI 和 Nano-X API。這些 API 提供了 Win32 和 X 窗口 系統(tǒng)的緊密兼 容性,使得別的應(yīng)用程序可以很容易就能移植到 MicroWindows 上。何謂嵌入式系統(tǒng)嵌入式系統(tǒng)被定義為:以應(yīng)用為中心、以計算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應(yīng)應(yīng)用系統(tǒng)對功能、 可

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論