ARM-Linux程序的開發(fā),主要分為三類:應(yīng)用程序開發(fā)、驅(qū)動(dòng)程序開發(fā)、系統(tǒng)內(nèi)核開發(fā),不同種類的軟件開發(fā),有其不同的特點(diǎn)。它相比于單片機(jī)的開發(fā)又有著不同,具體如何呢?
ARM的應(yīng)用開發(fā)主要有兩種方式:一種是直接在ARM芯片上進(jìn)行應(yīng)用開發(fā),不采用操作系統(tǒng),也稱為裸機(jī)編程,這種開發(fā)方式主要應(yīng)用于一些低端的ARM芯片上,其開發(fā)過程非常類似單片機(jī)。另外一種是在ARM芯片上運(yùn)行操作系統(tǒng),對(duì)于硬件的操作需要編寫相應(yīng)的驅(qū)動(dòng)程序,應(yīng)用開發(fā)則是基于操作系統(tǒng)的,這種方式的嵌入式應(yīng)用開發(fā)與單片機(jī)開發(fā)差異較大。ARM-Linux應(yīng)用開發(fā)和單片機(jī)的開發(fā)主要有以下幾點(diǎn)不同:
(1)應(yīng)用開發(fā)環(huán)境的硬件設(shè)備不同
單片機(jī):開發(fā)板,仿真器(調(diào)試器),USB線;
ARM-Linux:開發(fā)板,網(wǎng)線,串口線,SD卡;
對(duì)于ARM-Linux開發(fā),通常是沒有硬件的調(diào)試器的,尤其是在應(yīng)用開發(fā)的過程中,很少使用硬件的調(diào)試器,程序的調(diào)試主要是通過串口進(jìn)行調(diào)試的;但是需要說明的是,對(duì)于ARM芯片也是有硬件仿真器的,但通常用于裸機(jī)開發(fā)。
(2)程序下載方式不同
單片機(jī):仿真器(調(diào)試器)下載,或者是串口下載;
ARM-Linux:串口下載、tftp網(wǎng)絡(luò)下載、或者直接讀寫SD、MMC卡等存儲(chǔ)設(shè)備,實(shí)現(xiàn)程序下載;
這個(gè)與開發(fā)環(huán)境的硬件設(shè)備是有直接關(guān)系的,由于沒有硬件仿真器,故ARM-Linux開發(fā)時(shí)通常不采用仿真器下載;這樣看似不方便,其實(shí)給ARM-Linux的應(yīng)用開發(fā)提供了更多的下載方式。
(3)芯片的硬件資源不同
單片機(jī):通常是一個(gè)完整的計(jì)算機(jī)系統(tǒng),包含片內(nèi)RAM,片內(nèi)FLASH,以及UART、I2C、AD、DA等各種外設(shè);
ARM:通常只有CPU,需要外部電路提供RAM以供ARM正常運(yùn)行,外部電路提供FLASH、SD卡等存儲(chǔ)系統(tǒng)映像,并通過外部電路實(shí)現(xiàn)各種外設(shè)功能。由于ARM芯片的處理能力很強(qiáng),通過外部電路可以實(shí)現(xiàn)各種復(fù)雜的功能,其功能遠(yuǎn)遠(yuǎn)強(qiáng)于單片機(jī)。
(4)固件的存儲(chǔ)位置不同
單片機(jī):通常具備片內(nèi)flash存儲(chǔ)器,固件程序通常存儲(chǔ)在該區(qū)域,若固件較大則需要通過外部電路設(shè)計(jì)外部flash用于存儲(chǔ)固件。
ARM-Linux: 由于其沒有片內(nèi)的flash, 并且需要運(yùn)行操作系統(tǒng),整個(gè)系統(tǒng)映像通常較大,故ARM-Linux開發(fā)的操作系統(tǒng)映像和應(yīng)用通常存儲(chǔ)在外部的MMC、SD卡上,或者采用SATA設(shè)備等。
(5)啟動(dòng)方式不同
單片機(jī):其結(jié)構(gòu)簡單,內(nèi)部集成flash, 通常是芯片廠商在程序上電時(shí)加入固定的跳轉(zhuǎn)指令,直接跳轉(zhuǎn)到程序入口(通常在flash上);開發(fā)的應(yīng)用程序通過編譯器編譯,采用專用下載工具直接下載到相應(yīng)的地址空間;所以系統(tǒng)上電后直接運(yùn)行到相應(yīng)的程序入口,實(shí)現(xiàn)系統(tǒng)的啟動(dòng)。
ARM-Linux:由于采用ARM芯片,執(zhí)行效率高,功能強(qiáng)大,外設(shè)相對(duì)豐富,是功能強(qiáng)大的計(jì)算機(jī)系統(tǒng),并且需要運(yùn)行操作系統(tǒng),所以其啟動(dòng)方式和單片機(jī)有較大的差別,但是和家用計(jì)算機(jī)的啟動(dòng)方式基本相同。其啟動(dòng)一般包括BIOS,bootloader,內(nèi)核啟動(dòng),應(yīng)用啟動(dòng)等階段。
以上就是arm-linux與單片機(jī)的不同了,相信你也有一定的了解了。
-
單片機(jī)
+關(guān)注
關(guān)注
6058文章
44821瀏覽量
644893 -
ARM
+關(guān)注
關(guān)注
134文章
9270瀏覽量
373671 -
Linux
+關(guān)注
關(guān)注
87文章
11420瀏覽量
212375
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
PLC和單片機(jī)到底有什么區(qū)別?

底層開發(fā)與應(yīng)用開發(fā)到底怎么選?
單片機(jī)Debug工具性能對(duì)比 單片機(jī)調(diào)試常用命令
單片機(jī)Debug與仿真區(qū)別
單片機(jī)怎么寫入程序
單片機(jī)芯片開發(fā)-單片機(jī)方案開發(fā)的關(guān)鍵技巧和流程步驟!
單片機(jī)STM32可以用Python寫嗎?可以的開發(fā)板有哪些?

單片機(jī)燒錄程序的基本步驟是什么
嵌入式linux開發(fā)的基本步驟有哪些?
linux開發(fā)板和單片機(jī)開發(fā)的區(qū)別
從菜鳥到大牛!嵌入式完整學(xué)習(xí)路線:STM32單片機(jī)-RTOS-Linux

單片機(jī)上位機(jī)軟件用什么開發(fā)
PY32系列單片機(jī)開發(fā)板 常用型號(hào)都有 支持Keil,IAR進(jìn)行開發(fā)

STM32單片機(jī)有哪幾種常見的開發(fā)環(huán)境?

評(píng)論