|
初學(xué)者必知:ARM與單片機到底有啥區別?
1、軟件方面
這應該是最大的區別了。引入了操作系統。為什么引入操作系統?有什么好處嘛?
1)方便。主要體現在后期的開(kāi)發(fā),即在操作系統上直接開(kāi)發(fā)應用程序。不像單片機一樣一切都要重新寫(xiě)。前期的操作系統移植工作,還是要專(zhuān)業(yè)人士來(lái)做。
2)安全。這是LINUX的一個(gè)特點(diǎn)。LINUX的內核與用戶(hù)空間的內存管理分開(kāi),不會(huì )因為用戶(hù)的單個(gè)程序錯誤而引起系統死掉。這在單片機的軟件開(kāi)發(fā)中沒(méi)見(jiàn)到過(guò)。
3)高效。引入進(jìn)程的管理調度系統,使系統運行更加高效。在傳統的單片機開(kāi)發(fā)中大多是基于中斷的前后臺技術(shù),對多任務(wù)的管理有局限性。
2、硬件方面
現在的8位單片機技術(shù)硬件發(fā)展的也非常得快,也出現了許多功能非常強大的單片機。但是與32arm相比還是有些差距吧。
arm芯片大多把SDRAM,LCD等控制器集成到片子當中。在8位機,大多要進(jìn)行外擴。
總的來(lái)說(shuō),單片機是個(gè)微控制器,arm顯然已經(jīng)是個(gè)微處理器了。
引入嵌入式操作系統之后,可以實(shí)現許多單片機系統不能完成的功能。比如:嵌入式web服務(wù)器,java虛擬機等。也就是說(shuō),有很多免費的資源可以利用,上述兩種服務(wù)就是例子。如果在單片機上開(kāi)發(fā)這些功能可以想象其中的難度。
初學(xué)者如何選擇ARM開(kāi)發(fā)硬件?
1. 如果你有做硬件和單片機的經(jīng)驗,建議自己做個(gè)最小系統板:假如你從沒(méi)有做過(guò)ARM的開(kāi)發(fā),建議你一開(kāi)始不要貪大求全,把所有的應用都做好,因為ARM的啟動(dòng)方式和dsp或單片機有所不同,往往會(huì )碰到各種問(wèn)題,所以建議先布一個(gè)僅有Flash,SRAM或SDRAM、CPU、JTAG、和復位信號的小系統板,留出擴展接口。使最小系統能夠正常運行,你的任務(wù)就完成了一半,好在arm的外圍接口基本都是標準接口,假如你已有這些硬件的布線(xiàn)經(jīng)驗,這對你來(lái)講是一件很輕易的事情。
2. 動(dòng)手寫(xiě)啟動(dòng)代碼,根據硬件地址先寫(xiě)一個(gè)能夠啟動(dòng)的小代碼,包括以下部分:
初始化端口,屏蔽中斷,把程序拷貝到SRAM中;完成代碼的重映射;配置中斷句柄,連接到C語(yǔ)言入口。也許你看到給你的一些示例程序當中,bootloader會(huì )有很多東西,但是不要被這些復雜的程序所困擾,因為你不是做開(kāi)發(fā)板的,你的任務(wù)就是做段小程序,讓你的應用程序能夠運行下去
3.假如你是作硬件,每個(gè)廠(chǎng)家基本上都有針對該芯片的DEMO板原理圖。先將原理圖消化。這樣你以后做設計時(shí),對資源的分配心中有數。器件的DATSHEET一定要好好消化。
4. 仔細研究你所用的芯片的資料,盡管arm在內核上兼容,但每家芯片都有自己的特色,編寫(xiě)程序時(shí)必須考慮這些問(wèn)題。尤其是女孩子,在這兒千萬(wàn)別有依靠心理,總想拿別人的示例程序修改,卻越改越亂。
5. 多看一些操作系統程序,在arm的應用開(kāi)放源代碼的程序很多,要想提高自己,就要多看別人的程序,linux,uc/os-II等等這些都是很好的原碼。
6.假如做軟件最好對操作系統的機理要有所了解。當然這對軟件工程師來(lái)說(shuō)是小菜一碟。但假如是硬件出身的就有點(diǎn)費勁。
問(wèn):做最小系統板是2層還是4層好?
答:只有AT91可以用兩層板,其他的最少4層;44b0的地和電源處理好也可用兩層板;
|
|