這篇文章將為大家詳細(xì)講解有關(guān)ARM-Linux開(kāi)發(fā)與MCU開(kāi)發(fā)有何不同,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)專(zhuān)業(yè)成都網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì),集網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作于一體,網(wǎng)站seo、網(wǎng)站優(yōu)化、網(wǎng)站營(yíng)銷(xiāo)、軟文發(fā)稿等專(zhuān)業(yè)人才根據(jù)搜索規(guī)律編程設(shè)計(jì),讓網(wǎng)站在運(yùn)行后,在搜索中有好的表現(xiàn),專(zhuān)業(yè)設(shè)計(jì)制作為您帶來(lái)效益的網(wǎng)站!讓網(wǎng)站建設(shè)為您創(chuàng)造效益。
針對(duì)ARM-Linux程序的開(kāi)發(fā),主要分為三類(lèi):
應(yīng)用程序開(kāi)發(fā)、驅(qū)動(dòng)程序開(kāi)發(fā)、系統(tǒng)內(nèi)核開(kāi)發(fā),針對(duì)不同種類(lèi)的軟件開(kāi)發(fā),有其不同的特點(diǎn)。
今天我們來(lái)看看ARM-Linux開(kāi)發(fā)和MCU開(kāi)發(fā)的不同點(diǎn),以及ARM-Linux的基本開(kāi)發(fā)環(huán)境。
1. ARM-Linux應(yīng)用開(kāi)發(fā)和單片機(jī)開(kāi)發(fā)的不同
這里先要做一個(gè)說(shuō)明,對(duì)于ARM的應(yīng)用開(kāi)發(fā)主要有兩種方式:
一種是直接在ARM芯片上進(jìn)行應(yīng)用開(kāi)發(fā),不采用操作系統(tǒng),也稱為裸機(jī)編程,這種開(kāi)發(fā)方式主要應(yīng)用于一些低端的ARM芯片上,其開(kāi)發(fā)過(guò)程非常類(lèi)似單片機(jī),這里不多敘述。
還有一種是在ARM芯片上運(yùn)行操作系統(tǒng),對(duì)于硬件的操作需要編寫(xiě)相應(yīng)的驅(qū)動(dòng)程序,應(yīng)用開(kāi)發(fā)則是基于操作系統(tǒng)的,這種方式的嵌入式應(yīng)用開(kāi)發(fā)與單片機(jī)開(kāi)發(fā)差異較大。
ARM-Linux應(yīng)用開(kāi)發(fā)和單片機(jī)的開(kāi)發(fā)主要有以下幾點(diǎn)不同:
(1)應(yīng)用開(kāi)發(fā)環(huán)境的硬件設(shè)備不同
單片機(jī):
開(kāi)發(fā)板,仿真器(調(diào)試器),USB線;
ARM-Linux:
開(kāi)發(fā)板,網(wǎng)線,串口線,SD卡;
對(duì)于ARM-Linux開(kāi)發(fā),通常是沒(méi)有硬件的調(diào)試器的,尤其是在應(yīng)用開(kāi)發(fā)的過(guò)程中,很少使用硬件的調(diào)試器,程序的調(diào)試主要是通過(guò)串口進(jìn)行調(diào)試的;
但是需要說(shuō)明的是,對(duì)于ARM芯片也是有硬件仿真器的,但通常用于裸機(jī)開(kāi)發(fā)。
單片機(jī):
仿真器(調(diào)試器)下載,或者是串口下載;
ARM-Linux:串口下載、tftp網(wǎng)絡(luò)下載、或者直接讀寫(xiě)SD、MMC卡等存儲(chǔ)設(shè)備,實(shí)現(xiàn)程序下載;
這個(gè)與開(kāi)發(fā)環(huán)境的硬件設(shè)備是有直接關(guān)系的,由于沒(méi)有硬件仿真器,故ARM-Linux開(kāi)發(fā)時(shí)通常不采用仿真器下載;
這樣看似不方便,其實(shí)給ARM-Linux的應(yīng)用開(kāi)發(fā)提供了更多的下載方式。
單片機(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)映像,并通過(guò)外部電路實(shí)現(xiàn)各種外設(shè)功能。
由于ARM芯片的處理能力很強(qiáng),通過(guò)外部電路可以實(shí)現(xiàn)各種復(fù)雜的功能,其功能遠(yuǎn)遠(yuǎn)強(qiáng)于單片機(jī)。
單片機(jī):
通常具備片內(nèi)flash存儲(chǔ)器,固件程序通常存儲(chǔ)在該區(qū)域,若固件較大則需要通過(guò)外部電路設(shè)計(jì)外部flash用于存儲(chǔ)固件。
ARM-Linux:由于其沒(méi)有片內(nèi)的flash, 并且需要運(yùn)行操作系統(tǒng),整個(gè)系統(tǒng)映像通常較大,故ARM-Linux開(kāi)發(fā)的操作系統(tǒng)映像和應(yīng)用通常存儲(chǔ)在外部的MMC、SD卡上,或者采用SATA設(shè)備等。
單片機(jī):
其結(jié)構(gòu)簡(jiǎn)單,內(nèi)部集成flash, 通常是芯片廠商在程序上電時(shí)加入固定的跳轉(zhuǎn)指令,直接跳轉(zhuǎn)到程序入口(通常在flash上);
開(kāi)發(fā)的應(yīng)用程序通過(guò)編譯器編譯,采用專(zhuān)用下載工具直接下載到相應(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)等階段;
(a)啟動(dòng)BIOS:
BIOS是設(shè)備廠家(芯片或者是電路板廠家)設(shè)置的相應(yīng)啟動(dòng)信息,在設(shè)備上電后,其將讀取相應(yīng)硬件設(shè)備信息,進(jìn)行硬件設(shè)備的初始化工作,然后跳轉(zhuǎn)到bootloader所在位置(該位置是一個(gè)固定的位置,由BIOS設(shè)置)。
(根據(jù)個(gè)人理解,BIOS的啟動(dòng)和單片機(jī)啟動(dòng)類(lèi)似,需要采用相應(yīng)的硬件調(diào)試器進(jìn)行固件的寫(xiě)入,存儲(chǔ)在一定的flash 空間,設(shè)備上電啟動(dòng)后讀取flash空間的指令,從而啟動(dòng)BIOS程序。
)
(b)啟動(dòng)bootloader:
該部分已經(jīng)屬于嵌入式Linux軟件開(kāi)發(fā)的部分,可以通過(guò)代碼修改定制相應(yīng)的bootloader程序,bootloader的下載通常是采用直接讀寫(xiě)SD卡等方式。
即編寫(xiě)定制相應(yīng)的bootloader,編譯生成bootloader映象文件后,利用工具(專(zhuān)用或通用)下載到SD卡的MBR區(qū)域(通常是存儲(chǔ)區(qū)的第一個(gè)扇區(qū))。
此時(shí)需要在BIOS中設(shè)置,或者通過(guò)電路板的硬件電路設(shè)置,選擇bootloader的加載位置;
若BIOS中設(shè)置從SD卡啟動(dòng),則BIOS初始化結(jié)束后,將跳轉(zhuǎn)到SD卡的位置去執(zhí)行bootloader,從而實(shí)現(xiàn)bootloader的啟動(dòng)。
Bootloader主要作用是初始化必要的硬件設(shè)備,創(chuàng)建內(nèi)核需要的一些信息并將這些信息通過(guò)相關(guān)機(jī)制傳遞給內(nèi)核,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),最終調(diào)用操作系統(tǒng)內(nèi)核,真正起到引導(dǎo)和加載內(nèi)核的作用。
(c)啟動(dòng)內(nèi)核 :
bootloader啟動(dòng)完成初始化等相關(guān)工作之后,將調(diào)用內(nèi)核啟動(dòng)程序。
這就進(jìn)入了實(shí)際的操作系統(tǒng)相關(guān)內(nèi)容的啟動(dòng)了,包括相應(yīng)的硬件配置,任務(wù)管理,資源管理等內(nèi)核程序的啟動(dòng)。
(d)啟動(dòng)應(yīng)用:
在操作系統(tǒng)內(nèi)核啟動(dòng)之后,就可以開(kāi)始啟動(dòng)需要的應(yīng)用,去完成真正的業(yè)務(wù)操作了。
2. Arm-Linux 基本開(kāi)發(fā)環(huán)境
前面介紹了ARM-Linux應(yīng)用開(kāi)發(fā)和單片機(jī)開(kāi)發(fā)的不同之處,相信你已經(jīng)對(duì)ARM-Linux應(yīng)用開(kāi)發(fā)有了一個(gè)基本的認(rèn)識(shí)了,下面將介紹一下ARM-Linux的基本開(kāi)發(fā)環(huán)境。
其主要包括硬件環(huán)境和軟件環(huán)境兩個(gè)部分,這里以iMX53和Ubuntu為例進(jìn)行說(shuō)明。
開(kāi)發(fā)板:
ARM運(yùn)行的硬件環(huán)境,或者是相應(yīng)項(xiàng)目的ARM電路板;
計(jì)算機(jī):
作為開(kāi)發(fā)主機(jī)使用,安裝Linux(如Ubuntu)),或者采用虛擬機(jī)安裝Ubuntu;
串口線:
用于開(kāi)發(fā)過(guò)程中采用終端進(jìn)行串口調(diào)試或下載程序;
網(wǎng)線:
用于連接arm-board和開(kāi)發(fā)主機(jī),實(shí)現(xiàn)tftp下載內(nèi)核(程序等),通過(guò)網(wǎng)絡(luò)nfs運(yùn)行程序等。
SD卡(及讀卡器)或者其他存儲(chǔ)設(shè)備:
用于存儲(chǔ)bootloader、內(nèi)核映像等,以及最終的軟件系統(tǒng)的存儲(chǔ);
開(kāi)發(fā)過(guò)程中,通常用于保存bootloader,引導(dǎo)系統(tǒng)啟動(dòng)。
Ubuntu:
作為操作系統(tǒng),是整個(gè)軟件開(kāi)發(fā)環(huán)境的載體,相應(yīng)的開(kāi)發(fā)工具都布置在此系統(tǒng)中。
LTIB:
這是freescale的提供的一個(gè)編譯工具鏈,能夠很方便的將源代碼文件編譯為適合的程序代碼,并對(duì)程序進(jìn)行調(diào)試;
用戶也可以通過(guò)下載源碼構(gòu)建自己的編譯工具鏈。
tftp:
用于從開(kāi)發(fā)主機(jī)Ubuntu上向arm-board 下載內(nèi)核文件、應(yīng)用文件等。
nfs網(wǎng)絡(luò)文件系統(tǒng):
用于在開(kāi)發(fā)主機(jī)上建立網(wǎng)絡(luò)nfs文件根系統(tǒng),arm-board通過(guò)nfs網(wǎng)絡(luò)文件系統(tǒng)讀取開(kāi)發(fā)主機(jī)上的虛擬根文件系統(tǒng),完成系統(tǒng)的啟動(dòng);
方便系統(tǒng)的開(kāi)發(fā)與調(diào)試。
minicom:
串口調(diào)試工具,用于在開(kāi)發(fā)主機(jī)上與arm-board通信,實(shí)現(xiàn)對(duì)arm-board上應(yīng)用程序的操作與調(diào)試;
Eclipse:
集成開(kāi)發(fā)環(huán)境,主要方便代碼的編輯、編譯等,也可采用DS5,RealView等;
或者采用gedit進(jìn)行編輯,通過(guò)LTIB進(jìn)行編譯和管理。關(guān)于ARM-Linux開(kāi)發(fā)與MCU開(kāi)發(fā)有何不同就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
當(dāng)前文章:ARM-Linux開(kāi)發(fā)與MCU開(kāi)發(fā)有何不同
當(dāng)前路徑:http://www.chinadenli.net/article32/jigssc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、網(wǎng)站內(nèi)鏈、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、定制開(kāi)發(fā)、域名注冊(cè)、搜索引擎優(yōu)化
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源:
創(chuàng)新互聯(lián)