學ARM嵌入(ru)式開(kai)發輕(qing)輕(qing)松松入(ru)門(men)
時間(jian):2018-08-02 來源:未知
嵌入式現在可以說是發展最快的行業之一了,據調查,有70%的企業公司都在急招嵌入式人才,嵌入式人才很缺,但是需求量還是很大的,很多人都抓住這個機遇,投身到嵌入式的行業中,在學習arm嵌入式開發的時候會覺得很困難,不知道如何去入手學習,今天我這個老鳥就來談談如何輕松學習arm嵌入式開發。
嵌入(ru)式,通俗的(de)說,就是一臺軟、硬(ying)件被裁剪過的(de),只專注于某一應用(yong)的(de)電腦。我們(men)生活中(zhong)嵌入(ru)式設備還是很(hen)常見的(de),就像智能手機(ji),智能家(jia)居,手表等等都(dou)是應用(yong)了嵌入(ru)式,那么(me)arm嵌入(ru)式開發(fa)應該如何學呢?
首先你要會做(zuo)(zuo)系統(tong),做(zuo)(zuo)個最(zui)小(xiao)系統(tong)板(ban):如果你從沒有做(zuo)(zuo)過(guo)ARM嵌入式開(kai)發,建議你一開(kai)始不要貪(tan)大求全,把(ba)所有的應用都(dou)做(zuo)(zuo)好(hao),因為ARM的啟(qi)動(dong)方(fang)式和dsp或(huo)單片機有所不同(tong),往往會遇到(dao)各種問題,所以建議先布一個僅有Flash,SRAM或(huo)SDRAM、CPU、JTAG、和復位信號(hao)的小(xiao)系統(tong)板(ban),留(liu)出(chu)擴展接(jie)(jie)口。使最(zui)小(xiao)系統(tong)能夠正常運行,你的任務就(jiu)完成了一半,好(hao)在(zai)ARM的外圍接(jie)(jie)口基(ji)本(ben)都(dou)是標準(zhun)接(jie)(jie)口,如果你已有這(zhe)些硬件的布線經(jing)驗(yan),這(zhe)對你來講是一件很(hen)容易的事情(qing)。

2. 寫啟動代(dai)碼(ma)(ma),根據硬件地址先寫一個能夠(gou)啟動的小代(dai)碼(ma)(ma),包(bao)括(kuo)以(yi)下部(bu)分:
初(chu)始化端(duan)口,屏蔽中斷,把程(cheng)(cheng)(cheng)序拷貝到(dao)SRAM中;完成代碼的(de)重映射(she);配置中斷句(ju)柄,連接到(dao)C語言入口。也許你看(kan)到(dao)給你的(de)一些示例程(cheng)(cheng)(cheng)序當中,bootloader會有(you)很多東西,但是(shi)(shi)不(bu)要被這些復(fu)雜的(de)程(cheng)(cheng)(cheng)序所困擾,因為你不(bu)是(shi)(shi)做(zuo)開(kai)發板的(de),你的(de)任務就是(shi)(shi)做(zuo)段小程(cheng)(cheng)(cheng)序,讓你的(de)應用程(cheng)(cheng)(cheng)序能夠運行下(xia)去
3. 多看一些操作系統程序(xu),在(zai)ARM嵌(qian)入(ru)式開(kai)發的(de)(de)應用開(kai)放源(yuan)代碼的(de)(de)程序(xu)很(hen)多,要(yao)想提高自己,就要(yao)多看別人的(de)(de)程序(xu),linux,uc/os-II等(deng)等(deng)這(zhe)些都是(shi)很(hen)好的(de)(de)原碼。
4. arm嵌(qian)入式你需(xu)要用(yong)到的芯(xin)(xin)片(pian)需(xu)要你好(hao)好(hao)研(yan)究,盡管ARM在內核上(shang)兼(jian)容,但每(mei)家芯(xin)(xin)片(pian)都有自己的特色,編寫程(cheng)序(xu)時必須考(kao)慮(lv)這些問題。而且切記不要拿別人(ren)的示(shi)例程(cheng)序(xu)來(lai)修改(gai),那樣(yang)的話就會(hui)越來(lai)越亂了。
5. 如果你(ni)是作硬件,每(mei)個廠家基本上都有(you)針對該芯(xin)片(pian)的DEMO板原理(li)圖(tu)。先將(jiang)原理(li)圖(tu)消(xiao)化。這樣(yang)你(ni)以后做(zuo)設計時,對資(zi)源(yuan)的分(fen)配心(xin)中(zhong)有(you)數(shu)。器件的DATSHEET一定要好好消(xiao)化。
6.如(ru)果做(zuo)軟件(jian)最好對操作系統(tong)的(de)機理要有(you)所了解。當然這對軟件(jian)工程師來說是小(xiao)菜一碟(die)。但(dan)如(ru)果是硬(ying)件(jian)出身的(de)想做(zuo)ARM嵌入式開發的(de)人(ren)就(jiu)有(you)點費勁。
有很多人會很糾(jiu)結,對(dui)于(yu)系統班到(dao)底是(shi)2層(ceng)(ceng)(ceng)號還是(shi)4層(ceng)(ceng)(ceng)好?在這里我(wo)告訴你(ni),一般是(shi)4層(ceng)(ceng)(ceng)比(bi)(bi)(bi)較(jiao)好,選(xuan)用四(si)層(ceng)(ceng)(ceng)板不僅是(shi)電(dian)源(yuan)和地的(de)(de)(de)(de)問題,高速數字電(dian)路對(dui)走(zou)線的(de)(de)(de)(de)阻(zu)抗(kang)有要(yao)求(qiu),二層(ceng)(ceng)(ceng)板不好控制阻(zu)抗(kang),四(si)層(ceng)(ceng)(ceng)的(de)(de)(de)(de)話他的(de)(de)(de)(de)傳(chuan)輸線有其特征阻(zu)抗(kang),學過(guo)傳(chuan)輸線理(li)論(lun)的(de)(de)(de)(de)都知道,當傳(chuan)輸線上某處(chu)出(chu)現阻(zu)抗(kang)突變(不匹配(pei))時(shi),信(xin)號通過(guo)就會發生反(fan)射(she),反(fan)射(she)對(dui)原(yuan)信(xin)號造(zao)成干(gan)擾,嚴(yan)重時(shi)就會影響電(dian)路的(de)(de)(de)(de)正常工作。采用四(si)層(ceng)(ceng)(ceng)板時(shi),通常外層(ceng)(ceng)(ceng)走(zou)信(xin)號線,中間兩層(ceng)(ceng)(ceng)分別為電(dian)源(yuan)和地平面,這樣(yang)一方面隔離了兩個信(xin)號層(ceng)(ceng)(ceng),更重要(yao)的(de)(de)(de)(de)是(shi)外層(ceng)(ceng)(ceng)的(de)(de)(de)(de)走(zou)線與它們所靠近的(de)(de)(de)(de)平面形成稱為“微帶”(microstrip)的(de)(de)(de)(de)傳(chuan)輸線,它的(de)(de)(de)(de)阻(zu)抗(kang)比(bi)(bi)(bi)較(jiao)固定,而且可以(yi)計算。那對(dui)于(yu)兩層(ceng)(ceng)(ceng)板就比(bi)(bi)(bi)較(jiao)難以(yi)做到(dao)這樣(yang),所以(yi)建議你(ni)選(xuan)擇(ze)四(si)層(ceng)(ceng)(ceng)比(bi)(bi)(bi)較(jiao)好。
以上總結下來就(jiu)是這四個思路:寫啟動代碼(ma),了解(jie)操作(zuo)系(xi)統(tong)程(cheng)序,硬件,最小系(xi)統(tong)板從這幾個方面來學(xue)習arm嵌入(ru)式,那樣(yang)就(jiu)不會學(xue)的迷(mi)茫了,學(xue)習這個,切記要理論與(yu)實(shi)踐相(xiang)結合。

