毛片网站在线看_天堂俺去俺来也www久久婷婷_日韩av免费网站_18性欧美xxxⅹ性满足_一区二区三区韩国免费中文网站 _性xx色xx综合久久久xx_999亚洲国产精


曙海教育集團論壇單片機專區單片機高級 → ARM的開發步驟


  共有10865人關注過本帖樹形打印

主題:ARM的開發步驟

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


加好友 發短信
等級:青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊:2010-11-12 11:08:23
ARM的開發步驟  發帖心情 Post By:2010-12-7 15:40:40

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

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

返回版面帖子列表

ARM的開發步驟








簽名
毛片网站在线看_天堂俺去俺来也www久久婷婷_日韩av免费网站_18性欧美xxxⅹ性满足_一区二区三区韩国免费中文网站 _性xx色xx综合久久久xx_999亚洲国产精
日韩精品一区二区三区老鸭窝| 在线影院国内精品| 五月天国产精品| 人人精品人人爱| 国产精品亚洲а∨天堂免在线| 99久久综合国产精品| 欧美午夜片在线看| 日韩视频中午一区| 国产精品第四页| 五月天激情小说综合| 韩国av一区二区三区在线观看| 97久久精品人人爽人人爽蜜臀| 欧美日韩国产影片| 国产亚洲欧美一区在线观看| 悠悠色在线精品| 韩国理伦片一区二区三区在线播放| 懂色av中文一区二区三区| 欧美性做爰猛烈叫床潮| 久久日一线二线三线suv| 中文字幕制服丝袜一区二区三区 | 一区二区在线观看免费| 亚洲va欧美va国产va天堂影院| 国产精品久久久久三级| 日本伊人色综合网| 国产电影一区二区三区| 波多野结衣欧美| 欧美性大战久久久久久久蜜臀| 777久久久精品| 久久蜜桃av一区精品变态类天堂| 欧美—级在线免费片| 亚洲综合av网| 韩国女主播成人在线观看| 91免费版在线| 欧美日韩久久一区| 日韩你懂的在线观看| 国产精品久久久久久久久动漫| 亚洲国产精品视频| 国产一区在线不卡| 在线国产亚洲欧美| 日韩精品一区二区三区视频播放 | 黑人巨大精品欧美一区| 99视频一区二区| 欧美日韩国产欧美日美国产精品| 26uuu亚洲婷婷狠狠天堂| 亚洲日本在线观看| 韩国av一区二区三区四区| 色综合天天综合| 欧美成人在线直播| 亚洲女女做受ⅹxx高潮| 精品一区中文字幕| 欧美亚洲动漫制服丝袜| 国产欧美日韩视频在线观看| 亚洲精品第一国产综合野| 激情图片小说一区| 精品视频1区2区3区| 精品久久久久一区二区国产| 国产精品色一区二区三区| 亚洲成人黄色影院| 粉嫩一区二区三区在线看| 欧美群妇大交群中文字幕| 国产女主播一区| 美国十次综合导航| 91老司机福利 在线| 久久影院午夜片一区| 偷拍日韩校园综合在线| 久久久久久久久一| 天天影视涩香欲综合网| 国产精品白丝jk黑袜喷水| 国产综合久久久久久久久久久久| 99久久777色| 日韩欧美一区电影| 午夜激情一区二区| av在线不卡网| 精品国产青草久久久久福利| 亚洲成人激情自拍| 色综合天天综合色综合av| 亚洲国产精品v| 国内精品久久久久影院一蜜桃| 欧美日韩免费电影| 一区二区成人在线视频| 午夜精品久久久久| 欧美中文字幕亚洲一区二区va在线| 国产欧美精品一区二区三区四区 | 成人一区二区在线观看| 欧美mv和日韩mv的网站| 首页亚洲欧美制服丝腿| 欧美在线观看你懂的| 亚洲欧洲99久久| 成人av电影在线观看| 精品日韩在线观看| 五月天国产精品| 成人sese在线| 国产欧美日韩一区二区三区在线观看 | 国产一区二区成人久久免费影院| 欧美色精品在线视频| 久久亚洲私人国产精品va媚药| 五月天一区二区三区| 欧美午夜片在线看| 亚洲小少妇裸体bbw| 不卡一区在线观看| 中文字幕国产一区| 国产一区二区日韩精品| 精品av综合导航| 国产麻豆成人精品| 日韩亚洲欧美在线| 日韩和欧美一区二区| 777奇米成人网| 日韩综合在线视频| 欧美精品在线观看播放| 免费久久99精品国产| 亚洲国产精品久久人人爱蜜臀| 99精品黄色片免费大全| 亚洲欧美区自拍先锋| 91美女片黄在线| 亚洲欧美另类久久久精品2019| 91天堂素人约啪| 一区二区在线免费观看| 不卡一卡二卡三乱码免费网站| 国产精品理伦片| 91猫先生在线| 亚洲大尺度视频在线观看| 3d动漫精品啪啪1区2区免费| 免费人成网站在线观看欧美高清| 日韩精品中午字幕| 国产精品综合一区二区| 国产精品萝li| 欧美亚洲一区二区在线观看| 午夜精品福利一区二区三区av| 欧美一区二区三区在线观看视频| 蜜臀91精品一区二区三区| 久久综合久久99| 91网站在线播放| 依依成人精品视频| 欧美绝品在线观看成人午夜影视| 毛片av一区二区| 国产精品素人一区二区| 91视频一区二区三区| 天天综合天天做天天综合| 久久综合久久久久88| 99久久er热在这里只有精品15| 一区二区三区欧美久久| 日韩三级免费观看| 丁香六月久久综合狠狠色| 亚洲一区免费在线观看| 日韩免费福利电影在线观看| 高清在线成人网| 亚洲国产精品自拍| 精品精品国产高清a毛片牛牛| 另类小说综合欧美亚洲| 国产亚洲欧洲997久久综合| 一本色道久久加勒比精品| 日韩福利视频网| 国产欧美视频一区二区| 欧美人狂配大交3d怪物一区| 极品美女销魂一区二区三区免费 | 国产精品伦一区二区三级视频| 在线观看91视频| 国产在线播精品第三| 亚洲人精品午夜| 欧美一级专区免费大片| 国产福利一区二区三区在线视频| 亚洲国产毛片aaaaa无费看 | 日韩三级视频在线看| 91丨九色丨黑人外教| 爽好多水快深点欧美视频| 欧美国产精品专区| 欧美一区二区在线观看| 不卡的av在线播放| 蜜桃视频免费观看一区| 亚洲视频在线一区观看| 精品欧美一区二区三区精品久久| 国产精品入口麻豆九色| 色婷婷亚洲综合| 国产一区二区h| 天堂精品中文字幕在线| 国产精品丝袜久久久久久app| 日本韩国欧美在线| 国产一区二区导航在线播放| 亚洲自拍偷拍九九九| 欧美激情一区二区三区四区| 91精品一区二区三区久久久久久| 99久久夜色精品国产网站| 日韩二区在线观看| 一区二区在线观看不卡| 国产午夜三级一区二区三| 色素色在线综合| 精品综合免费视频观看| 亚洲一二三四区不卡| 中文欧美字幕免费| 欧美成人精品3d动漫h| 欧美日韩午夜在线视频| 91在线云播放| 亚洲一区二区在线观看视频 | 亚洲第一福利一区| 日韩美女啊v在线免费观看| 久久久久久免费| 欧美美女直播网站| 91亚洲大成网污www| 成人免费av资源| 国产一区二区三区不卡在线观看 |