久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区


曙海教育集團(tuán)論壇ARM專區(qū)ARM技術(shù)討論專區(qū) → ARM的開發(fā)步驟


  共有8299人關(guān)注過本帖樹形打印

主題:ARM的開發(fā)步驟

美女呀,離線,留言給我吧!
wangxinxin
  1樓 個性首頁 | 博客 | 信息 | 搜索 | 郵箱 | 主頁 | UC


加好友 發(fā)短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
ARM的開發(fā)步驟  發(fā)帖心情 Post By:2010-11-18 8:54:19

ARM的開發(fā)步驟
1. 做個最小系統(tǒng)板:如果你從沒有做過ARM的開發(fā),建議你一開始不要貪大求全,把所有的應(yīng)用都做好,因為ARM的啟動方式和dsp或單片機(jī)有所不同,往往會遇到各種問題,所以建議先布一個僅有Flash,SRAM或SDRAM、CPU、JTAG、和復(fù)位信號的小系統(tǒng)板,留出擴(kuò)展接口。使最小系統(tǒng)能夠正常運(yùn)行,你的任務(wù)就完成了一半,好在ARM的外圍接口基本都是標(biāo)準(zhǔn)接口,如果你已有這些硬件的布線經(jīng)驗,這對你來講是一件很容易的事情。
2. 寫啟動代碼,根據(jù)硬件地址先寫一個能夠啟動的小代碼,包括以下部分:
初始化端口,屏蔽中斷,把程序拷貝到SRAM中;完成代碼的重映射;配置中斷句柄,連接到C語言入口。也許你看到給你的一些示例程序當(dāng)中,bootloader會有很多東西,但是不要被這些復(fù)雜的程序所困擾,因為你不是做開發(fā)板的,你的任務(wù)就是做段小程序,讓你的應(yīng)用程序能夠運(yùn)行下去
3. 仔細(xì)研究你所用的芯片的資料,盡管ARM在內(nèi)核上兼容,但每家芯片都有自己的特色,編寫程序時必須考慮這些問題。尤其是女孩子,在這兒千萬別有依賴心理,總想拿別人的示例程序修改,卻越改越亂。
4. 多看一些操作系統(tǒng)程序,在ARM的應(yīng)用開放源代碼的程序很多,要想提高自己,就要多看別人的程序,linux,uc/os-II等等這些都是很好的原碼。
6.如果你是作硬件,每個廠家基本上都有針對該芯片的DEMO板原理圖。先將原理圖消化。這樣你以后做設(shè)計時,對資源的分配心中有數(shù)。器件的DATSHEET一定要好好消化。
7.如果做軟件最好對操作系統(tǒng)的機(jī)理要有所了解。當(dāng)然這對軟件工程師來說是小菜一碟。但如果是硬件出身的就有點(diǎn)費(fèi)勁。
問:做最小系統(tǒng)板是2層還是4層好?
答:只有AT91可以用兩層板,其他的最少4層;44b0的地和電源處理好也可用兩層板;
談四層板和33歐電阻:
選用四層板不僅是電源和地的問題,高速數(shù)字電路對走線的阻抗有要求,二層板不好控制阻抗。33歐電阻一般加在驅(qū)動器端,也是起阻抗匹配作用的;布線時要先布數(shù)據(jù)地址線,和需要保證的高速線;
在高頻的時候,PCB板上的走線都要看成傳輸線。傳輸線有其特征阻抗,學(xué)過傳輸線理論的都知道,當(dāng)傳輸線上某處出現(xiàn)阻抗突變(不匹配)時,信號通過就會發(fā)生反射,反射對原信號造成干擾,嚴(yán)重時就會影響電路的正常工作。采用四層板時,通常外層走信號線,中間兩層分別為電源和地平面,這樣一方面隔離了兩個信號層,更重要的是外層的走線與它們所靠近的平面形成稱為“微帶”(microstrip) 的傳輸線,它的阻抗比較固定,而且可以計算。對于兩層板就比較難以做到這樣。這種傳輸線阻抗主要于走線的寬度、到參考平面的距離、敷銅的厚度以及介電材料的特性有關(guān),有許多現(xiàn)成的公式和程序可供計算。
33歐電阻通常串連放在驅(qū)動的一端(其實不一定33歐,從幾歐到五、六十歐都有,視電路具體情況) ,其作用是與發(fā)送器的輸出阻抗串連后與走線的阻抗匹配,使反射回來(假設(shè)解收端阻抗沒有匹配) 的信號不會再次反射回去(吸收掉),這樣接收端的信號就不會受到影響。接收端也可以作匹配,例如采用電阻并聯(lián),但在數(shù)字系統(tǒng)比較少用,因為比較麻煩,而且很多時候是一發(fā)多收,如地址總線,不如源端匹配易做。
這里梭說的高頻,不一定是時鐘頻率很高的電路,是不是高頻不止看頻率,更重要是看信號的上升下降時間。通常可以用上升(或下降) 時間估計電路的頻率,一般取上升時間倒數(shù)的一半,比如如果上升時間是1ns,那么它的倒數(shù)是1000MHz,也就是說在設(shè)計電路是要按500MHz的頻帶來考慮。有時候要故意減慢邊緣時間,許多高速IC其驅(qū)動器的輸出斜率是可調(diào)的
構(gòu)造嵌入式Linux
Linux自身具備一整套工具鏈,容易自行建立嵌入式系統(tǒng)的開發(fā)環(huán)境和交叉運(yùn)行環(huán)境,并且可以跨越嵌入式系統(tǒng)開發(fā)中的仿真工具(ICE)的障礙。內(nèi)核的完全開放使人們可以自己設(shè)計和開發(fā)出真正的硬實時系統(tǒng),軟實時系統(tǒng)在Linux中也容易得到實現(xiàn)。強(qiáng)大的網(wǎng)絡(luò)支持使得可以利用Linux的網(wǎng)絡(luò)協(xié)議棧將其開發(fā)成為嵌入式的TCP/IP網(wǎng)絡(luò)協(xié)議棧。
  Linux提供了完成嵌入功能的基本內(nèi)核和所需要的所有用戶界面,它是多面的。它能處理嵌入式任務(wù)和用戶界面。
  一個小型的嵌入式Linux系統(tǒng)只需要下面三個基本元素:
  * 引導(dǎo)工具
  * Linux微內(nèi)核,由內(nèi)存管理、進(jìn)程管理和事務(wù)處理構(gòu)成
  * 初始化進(jìn)程
  如果要讓它能干點(diǎn)什么且繼續(xù)保持小型化,還得加上:
  * 硬件驅(qū)動程序
  * 提供所需功能的一個或更多應(yīng)用程序。
  再增加功能,或許需要這些:
  * 一個文件系統(tǒng)(也許在ROM或RAM)中
  * TCP/IP網(wǎng)絡(luò)堆棧
  下面我們就從精簡內(nèi)核、系統(tǒng)啟動、驅(qū)動程序?qū)ⅰ-Window換成MicroWindows四個步驟介紹嵌入式Linux的實際開發(fā)。
  精簡內(nèi)核
  構(gòu)造內(nèi)核的常用命令包括:make config、dep、clean、mrproper、zImage、bzImage、modules、modules_install。命令說明略。
  現(xiàn)在舉個例子說明一下:
  我使用的是 Mandrake內(nèi)附的 2.2.15。我沒有修改任何一行程序碼,完全只靠修改組態(tài)檔得到這些數(shù)據(jù)。
  首先,使用 make config 把所有可以拿掉的選項都拿得。
  不要 floppy;不要SMP、MTRR;不要 Networking、SCSI;把所有的 block device 移除,只留下 old IDE device;把所有的 character device 移除;把所有的 filesystem 移除,只留下 minix;不要 sound 支援。相信我,我己經(jīng)把所有的選項都移除了。這樣做之后,我得到了一個 188K 的核心。
  還不夠小嗎? OK,再加上一招,請把下列兩個檔案中的 -O3,-O2 用 -Os 取代。
  ./Makefile
  ./arch/i386/kernel/
  Makefile
  這樣一來,整個核心變小了 9K,成為 179K。
  不過這個核心恐怕很難發(fā)揮 Linux 的功能,因此我決定把網(wǎng)絡(luò)加回去。把General中的 network support 加回去,重新編譯,核心變成 189 K。10K就加上個 TCP/IP stack,似乎是很上算的生意。
  有stack沒有driver也是枉然,所以我把 embedded board常用的RTL8139的driver加回去,195K。
  如果你需要 DOS 檔案系統(tǒng),那大小成為 213K。如果 minix 用 ext2 換代,則大小成長至 222K。
  Linux所需的內(nèi)存大約在600K~800K之間。1MB內(nèi)存就可能可以開機(jī)了,但不太有用,因為連載入C程序庫都有困難。2MB內(nèi)存應(yīng)該就可以做點(diǎn)事了,但要到 4MB以上才可以執(zhí)行一個比較完整的系統(tǒng)。
  因為Linux 的filesystem 相當(dāng)大,大約在 230K 左右,占了 1/3 的體積。內(nèi)存管理占了80K,和核心其它部分的總和差不多。TCP/IP stack 占了65K,驅(qū)動程序占了120K。SysV IPC占了 21K,必要的話可以拿掉,核心檔應(yīng)該可以再小個10K左右。
  如果要裁剪核心大小,應(yīng)該動那里呢? 答案很明顯,當(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
  bootsect.S 及 setup.S
  這個程序是Linux kernel的第一個程序,包括了Linux自己的bootstrap程序,但是在說明這個程序前,必須先說明一般IBM PC開機(jī)時的動作(此處的開機(jī)是指“打開PC的電源”)。
  一般PC在電源一開時,是由內(nèi)存中地址FFFF:0000開始執(zhí)行(這個地址一定在ROM BIOS中,ROM BIOS一般是在FEOOOh到FFFFFh中),而此處的內(nèi)容則是一個jump指令,jump到另一個位于ROM BIOS中的位置,開始執(zhí)行一系列的動作。
  緊接著系統(tǒng)測試碼之后,控制權(quán)會轉(zhuǎn)移給ROM中的啟動程序(ROM bootstrap routine)。這個程序會將磁盤上的第零軌第零扇區(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é)把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)地卸載下來。Linux中,模塊可以用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換成MicroWindows
  MicroWindows是使用分層結(jié)構(gòu)的設(shè)計方法。允許改變不同的層來適應(yīng)實際的應(yīng)用。在最底一層,提供了屏幕、鼠標(biāo)/觸摸屏和鍵盤的驅(qū)動,使程序能訪問實際的硬件設(shè)備和其它用戶定制設(shè)備。在中間一層,有一個輕巧的圖形引擎,提供了繪制線條、區(qū)域填充、繪制多邊形、裁剪和使用顏色模式的方法。在最上一層,提供了不同的API給圖形應(yīng)用程序使用。這些API可以提供或不提供桌面和窗口外形。目前,MicroWindows支持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)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機(jī)系統(tǒng)。
  嵌入式系統(tǒng)是面向用戶、面向產(chǎn)品、面向應(yīng)用的,如果獨(dú)立于應(yīng)用自行發(fā)展,則會失去市場。嵌入式處理器的功耗、體積、成本、可靠性、速度、處理能力、電磁兼容性等方面均受到應(yīng)用要求的制約,這些也是各個半導(dǎo)體廠商之間競爭的熱點(diǎn)。嵌入式處理器的應(yīng)用軟件是實現(xiàn)嵌入式系統(tǒng)功能的關(guān)鍵。軟件要求固化存儲,軟件代碼要求高質(zhì)量、高可靠性,系統(tǒng)軟件(OS)的高實時性是基本要求。
  在制造工業(yè)、過程控制、通訊、儀器、儀表、汽車、船舶、航空、航天、軍事裝備、消費(fèi)類產(chǎn)品等方面均是嵌入式計算機(jī)的應(yīng)用領(lǐng)域。

支持(0中立(0反對(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

ARM的開發(fā)步驟








簽名
久久精品在这里_成人99免费视频_国产激情视频一区二区在线观看_国产伦精品一区二区三区免费 _亚洲午夜免费福利视频_色狠狠色狠狠综合_av在线综合网_91毛片在线观看_欧美视频一区二区在线观看_极品美女销魂一区二区三区免费_国产亚洲欧美激情_在线免费观看不卡av_日韩不卡一区二区三区_91精品国产麻豆国产自产在线_亚洲国产精品一区二区久久恐怖片_a4yy欧美一区二区三区
制服视频三区第一页精品| 中文字幕免费一区| 亚洲国产精品精华液2区45| 国产成人精品亚洲777人妖| 中文字幕成人一区| 亚洲bdsm女犯bdsm网站| 台湾成人av| 亚洲黄色尤物视频| 欧美精品一区二区三区四区五区| 中文字幕av资源一区| 91亚洲大成网污www| 久久婷婷国产综合精品青草| 成人动漫一区二区三区| 日韩免费看的电影| 成人免费观看男女羞羞视频| 日韩欧美你懂的| 国产成人av一区二区三区在线 | 日韩免费观看高清完整版在线观看| 国内精品第一页| 欧美丰满美乳xxx高潮www| 国产乱码精品一区二区三区av| 3d动漫精品啪啪一区二区竹菊| 国产精品一区二区三区四区| 日韩欧美资源站| www.欧美日韩国产在线| 久久久一区二区三区| 成人18视频| 一区二区三区在线视频观看 | 亚洲免费观看在线视频| 蜜桃成人在线| 亚洲高清一区二区三区| 色婷婷av一区二区三区软件| 精品影院一区二区久久久| 欧美一区二区三区四区久久| 成熟亚洲日本毛茸茸凸凹| 久久久久久亚洲综合影院红桃| 国产午夜亚洲精品羞羞网站| 国产精品初高中精品久久| 国产精品久久久久久久久免费桃花 | 91福利视频导航| 中文字幕乱码久久午夜不卡| 欧美福利精品| 欧美a级一区二区| 日韩一区二区三区三四区视频在线观看| 成人一区在线看| 1000精品久久久久久久久| 婷婷久久五月天| 久久99精品久久久久久| 久久综合丝袜日本网| 久久精品日产第一区二区三区乱码| 亚洲大片精品永久免费| 欧美三级韩国三级日本一级| 97精品超碰一区二区三区| 综合色天天鬼久久鬼色| 一级做a爰片久久| 成人性视频网站| 成人欧美一区二区三区视频网页| 亚洲综合欧美日韩| 成人美女在线观看| 日韩毛片精品高清免费| 日本电影亚洲天堂一区| 99久久99久久精品国产片果冻| 一区二区三区中文免费| 91精品国产高清一区二区三区蜜臀| 91视频在线观看免费| 一区二区在线免费| 欧美美女bb生活片| 国产一区二区三区高清视频| 男人的天堂久久精品| 久久久久久亚洲综合影院红桃| 色噜噜狠狠色综合网| 国产一区久久久| 中文字幕一区二区三区在线观看 | 日韩国产高清在线| 欧美xxxxxxxx| 亚州欧美一区三区三区在线| av成人免费在线观看| 亚洲成a人在线观看| 欧美精品一区二区久久婷婷| 亚洲国内在线| 99久久精品免费看国产| 亚洲福利视频一区| 2欧美一区二区三区在线观看视频| 婷婷久久青草热一区二区| 成人午夜视频在线观看| 亚洲一区在线视频观看| 亚洲精品一线二线三线| 亚洲一区二区三区精品视频| 91蜜桃免费观看视频| 美女看a上一区| 成人欧美一区二区三区视频网页| 欧美色图激情小说| 国产高清在线一区二区| 国产一区二区在线影院| 亚洲综合色成人| 国产人成亚洲第一网站在线播放 | 国产一区二区不卡在线| 亚洲欧美日本韩国| 欧美刺激午夜性久久久久久久| 视频二区一区| 91pron在线| 国产一区二区三区精品视频| 亚洲mv大片欧洲mv大片精品| 国产精品久久久久久户外露出| 欧美群妇大交群中文字幕| 亚洲.欧美.日本.国产综合在线 | 国产精品久99| 精品国产一区二区精华| 欧美视频一区二区三区四区| 欧美激情一区二区三区在线视频 | 国产亚洲成年网址在线观看| 欧美日韩国产影片| 亚洲一区二区高清视频| 久久久久久亚洲精品不卡4k岛国 | 亚洲精品永久www嫩草| 国产区欧美区日韩区| 99久久亚洲一区二区三区青草| 激情深爱一区二区| 调教+趴+乳夹+国产+精品| 亚洲青青青在线视频| 中文在线一区二区| 精品精品国产高清一毛片一天堂| 欧美日韩一区 二区 三区 久久精品| 欧洲精品码一区二区三区免费看| 爱情岛论坛亚洲入口| 97se亚洲国产综合自在线观| 国产91丝袜在线18| 日本特黄久久久高潮| 亚洲成人动漫精品| 亚洲精品自拍动漫在线| 自拍偷拍国产精品| 国产精品久久久久久久裸模| 久久精品一区二区三区不卡| 久久天堂av综合合色蜜桃网 | ts人妖另类在线| 97av影视网在线观看| 2022国产精品| 99国产超薄肉色丝袜交足的后果| 成人美女视频在线观看18| 国产99精品视频| 成人免费观看视频| 成av人片一区二区| 99精品视频免费在线观看| 99re亚洲国产精品| **亚洲第一综合导航网站| 91嫩草国产在线观看| 91亚洲精品丁香在线观看| 国产v亚洲v天堂无码| 春色成人在线视频| 国产欧美日韩视频一区二区三区| 黄色国产精品一区二区三区| 久久青青草综合| 欧美不卡在线一区二区三区| 九色一区二区| 欧美一级二级三级| 日本一区二区三区在线视频| 日韩电影免费观看高清完整| 色涩成人影视在线播放| 一区二区在线观看网站| 欧美吞精做爰啪啪高潮| 欧美一区二区美女| 国产三级三级三级精品8ⅰ区| 亚洲国产精品成人综合色在线婷婷| 欧美韩国一区二区| 亚洲精品亚洲人成人网在线播放| 亚洲国产一区二区视频| 欧美aⅴ一区二区三区视频| 国产乱理伦片在线观看夜一区| 成人黄色一级视频| 99久久精品免费看国产四区| 久热这里只精品99re8久| 相泽南亚洲一区二区在线播放| 在线观看日韩电影| 日韩精品一区二区三区在线| 国产日产欧产精品推荐色| 亚洲激情图片qvod| 免费高清不卡av| 国产不卡视频在线播放| 91精品国自产在线观看| 欧美在线视频二区| 欧美午夜一区二区三区免费大片| 欧美大片在线观看一区二区| 国产欧美日韩久久| 亚洲成人动漫精品| 国精产品一区一区三区mba视频| av毛片久久久久**hd| 久久婷婷国产综合尤物精品| 91久久精品一区二区三| 精品三级av在线| 亚洲精品福利视频网站| 久久99久久99| 成人永久免费| 色爱区综合激月婷婷| 精品国产精品一区二区夜夜嗨| **性色生活片久久毛片| 美女视频黄免费的久久| 91老司机福利 在线| 在线视频91| 久久亚洲一级片| 日韩在线a电影|