做個最小系統板:如果從沒有做過ARM的開發,建議一開始不要貪大求全,把所有的應用都做好,因為ARM的啟動方式和dsp或單片機有所不同,往往會遇到各種問題,所以建議先布一個僅有Flash、SRAM或SDRAM、CPU、JTAG、和復位信號的小系統板,留出擴展接口。使最小系統能夠正常運行,任務就完成了一半,好在ARM的外圍接口基本都是標準接口,如果已有這些硬件的布線經驗那就更好了。
寫啟動代碼
根據硬件地址先寫一個能夠啟動的小代碼,包括以下部分:初始化端口、屏蔽中斷、把程序拷貝到SRAM中、完成代碼的重映射、配置中斷句柄,連接到C語言入口。也許一些示例程序當中bootloader會有很多東西,但是不要被這些復雜的程序所困擾,因為這是設計開發板過程中需要設計,并不包含在ARM設計范疇中。
研究芯片資料
盡管ARM在內核上兼容,但每家芯片都有自己的特色,編寫程序時必須考慮這些問題。尤其是女孩子,在這兒千萬別有依賴心理,總想拿別人的示例程序修改,卻越改越亂。
了解操作系統程序
在ARM的應用開放源代碼的程序很多,要想提高自己,就要多看別人的程序,linux,uc/os-II等等這些都是很好的原碼。
硬件
如果設計者自己制作硬件,每個廠家基本上都有針對該芯片的DEMO板原理圖。如果先將原理圖消化。在以后做設計時就能做到對資源的分配心中有數。器件的DATSHEET一定要好好消化。
最小系統板
很多人會問,做最小系統板是2層還是4層好?答:只有AT91可以用兩層板,其他的最少4層;44b0的地和電源處理好也可用兩層板;談四層板和33歐電阻:選用四層板不僅是電源和地的問題,高速數字電路對走線的阻抗有要求,二層板不好控制阻抗。33歐電阻一般加在驅動器端,也是起阻抗匹配作用的;布線時要先布數據地址線,和需要保證的高速線;在高頻的時候,PCB板上的走線都要看成傳輸線。
傳輸線有其特征阻抗,學過傳輸線理論的都知道,當傳輸線上某處出現阻抗突變(不匹配)時,信號通過就會發生反射,反射對原信號造成干擾,嚴重時就會影響電路的正常工作。采用四層板時,通常外層走信號線,中間兩層分別為電源和地平面,這樣一方面隔離了兩個信號層,更重要的是外層的走線與它們所靠近的平面形成稱為“微帶”(microstrip)的傳輸線,它的阻抗比較固定,而且可以計算。
對于兩層板就比較難以做到這樣。這種傳輸線阻抗主要于走線的寬度、到參考平面的距離、敷銅的厚度以及介電材料的特性有關,有許多現成的公式和程序可供計算。33歐電阻通常串連放在驅動的一端(其實不一定33歐,從幾歐到五、六十歐都有,視電路具體情況),其作用是與發送器的輸出阻抗串連后與走線的阻抗匹配,使反射回來(假設解收端阻抗沒有匹配)的信號不會再次反射回去(吸收掉),這樣接收端的信號就不會受到影響。
接收端也可以作匹配,例如采用電阻并聯,但在數字系統比較少用,因為比較麻煩,而且很多時候是一發多收,如地址總線,不如源端匹配易做。這里所說的高頻,不一定是時鐘頻率很高的電路,是不是高頻不止看頻率,更重要是看信號的上升下降時間。通常可以用上升(或下降)時間估計電路的頻率,一般取上升時間倒數的一半,比如如果上升時間是1ns,那么它的倒數是1000MHz,也就是說在設計電路是要按500MHz的頻帶來考慮。
有時候要故意減慢邊緣時間,許多高速IC其驅動器的輸出斜率是可調的。Linux自身具備一整套工具鏈,容易自行建立嵌入式系統的開發環境和交叉運行環境,并且可以跨越嵌入式系統開發中的仿真工具(ICE)的障礙。內核的完全開放使人們可以自己設計和開發出真正的硬實時系統,軟實時系統在Linux中也容易得到實現。強大的網絡支持使得可以利用Linux的網絡協議棧將其開發成為嵌入式的TCP/IP網絡協議棧。Linux提供了完成嵌入功能的基本內核和所需要的所有用戶界面,它是多面的。它能處理嵌入式任務和用戶界面。
一個小型的嵌入式Linux系統只需要下面三個基本元素:*引導工具*Linux微內核,由內存管理、進程管理和事務處理構成*初始化進程如果要讓它能干點什么且繼續保持小型化,還得加上:*硬件驅動程序*提供所需功能的一個或更多應用程序。再增加功能,或許需要這些:*一個文件系統(也許在ROM或RAM)中*TCP/IP網絡堆棧。
-
ARM
+關注
關注
134文章
9172瀏覽量
369260 -
Linux
+關注
關注
87文章
11347瀏覽量
210429 -
硬件
+關注
關注
11文章
3391瀏覽量
66464 -
最小系統板
+關注
關注
0文章
12瀏覽量
7940
原文標題:為ARM初學者理清ARM開發思路
文章出處:【微信號:changxuemcu,微信公眾號:暢學單片機】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
嵌入式學習思路, 求大家給點建議
從事開關電源方面的工作,目前很想搞清楚我所所跟進的項目,請問如何開始?
想請問Qmath可以移植到M0的arm上面嗎
淺談新手ARM開發的思路詳解
主流的嵌入式CPU架構-ARM架構詳解
介紹初次接觸ARM開發應該從4個方面來理清開發思路
介紹初次接觸ARM開發應該從哪幾方面來理清開發思路
關于新手進行ARM開發的四個思路詳解
Xilinx基于ARM的Zynq-7000和Zynq UltraScale+ MPSoC及RFSoC器件是否存在安全漏洞
ARM的函數指針、指針函數的區別和用法
Cortex-M3里GPIO幾個概念必須搞清楚資料下載
![Cortex-M3里GPIO幾個概念必須<b class='flag-5'>搞清楚</b>資料下載](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
示波器眼圖怎么看,搞清楚這4點就容易啦!資料下載
![示波器眼圖怎么看,<b class='flag-5'>搞清楚</b>這4點就容易啦!資料下載](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論