91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

ARM-Linux應(yīng)用開(kāi)發(fā)和單片機(jī)開(kāi)發(fā)的不同

STM32嵌入式開(kāi)發(fā) ? 來(lái)源:STM32嵌入式開(kāi)發(fā) ? 2020-08-27 14:24 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

針對(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)境。

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),也稱(chē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線(xiàn);ARM-Linux:開(kāi)發(fā)板,網(wǎng)線(xiàn),串口線(xiàn),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ā)。

(2)程序下載方式不同

單片機(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ā)提供了更多的下載方式。

(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)映像,并通過(guò)外部電路實(shí)現(xiàn)各種外設(shè)功能。由于ARM芯片的處理能力很強(qiáng),通過(guò)外部電路可以實(shí)現(xiàn)各種復(fù)雜的功能,其功能遠(yuǎn)遠(yuǎn)強(qiáng)于單片機(jī)。

(4)固件的存儲(chǔ)位置不同

單片機(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è)備等。

(5)啟動(dòng)方式不同單片機(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ù)操作了。

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ō)明。

(1)硬件環(huán)境開(kāi)發(fā)板:ARM運(yùn)行的硬件環(huán)境,或者是相應(yīng)項(xiàng)目的ARM電路板;

計(jì)算機(jī):作為開(kāi)發(fā)主機(jī)使用,安裝Linux(如Ubuntu)),或者采用虛擬機(jī)安裝Ubuntu;

串口線(xiàn):用于開(kāi)發(fā)過(guò)程中采用終端進(jìn)行串口調(diào)試或下載程序;

網(wǎng)線(xiàn):用于連接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)。

(2)軟件環(huán)境

Ubuntu:作為操作系統(tǒng),是整個(gè)軟件開(kāi)發(fā)環(huán)境的載體,相應(yīng)的開(kāi)發(fā)工具都布置在此系統(tǒng)中。

LtiB:這是freescale的提供的一個(gè)編譯工具鏈,能夠很方便的將源代碼文件編譯為適合的程序代碼,并對(duì)程序進(jìn)行調(diào)試;用戶(hù)也可以通過(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)行編譯和管理。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    147

    文章

    18917

    瀏覽量

    397927
  • ARM
    ARM
    +關(guān)注

    關(guān)注

    135

    文章

    9552

    瀏覽量

    391812
  • Linux
    +關(guān)注

    關(guān)注

    88

    文章

    11756

    瀏覽量

    219000

原文標(biāo)題:ARM-Linux開(kāi)發(fā)與MCU開(kāi)發(fā)有何不同?

文章出處:【微信號(hào):c-stm32,微信公眾號(hào):STM32嵌入式開(kāi)發(fā)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式單片機(jī)開(kāi)發(fā)學(xué)習(xí)路徑

    嵌入式系統(tǒng)是現(xiàn)代科技的重要組成部分,廣泛應(yīng)用于智能家居、汽車(chē)電子、工業(yè)控制、醫(yī)療設(shè)備等領(lǐng)域。學(xué)習(xí)嵌入式單片機(jī)開(kāi)發(fā)不僅能提升個(gè)人技能,還能開(kāi)拓職業(yè)發(fā)展路徑。本文將為你提供一條詳細(xì)的嵌入式單片機(jī)開(kāi)
    發(fā)表于 02-09 15:42

    如何入門(mén)單片機(jī)/嵌入式?

    種與windows下面寫(xiě)程序差不多,也可以使用c++或者java ,一種是開(kāi)發(fā)內(nèi)核驅(qū)動(dòng),只能用c寫(xiě),比如usb驅(qū)動(dòng)或者攝像頭驅(qū)動(dòng)啥的,這個(gè)就分別去學(xué)就好了。 linux開(kāi)發(fā)單片機(jī)
    發(fā)表于 02-02 06:57

    linux-arm開(kāi)發(fā)環(huán)境的簡(jiǎn)單配置

    linux-arm開(kāi)發(fā)環(huán)境簡(jiǎn)單配置 關(guān)于linux-arm開(kāi)發(fā)環(huán)境簡(jiǎn)單配置是ARM學(xué)習(xí)的第一步,很多初學(xué)者會(huì)在這問(wèn)題上糾結(jié)很久都不能配置好
    發(fā)表于 01-13 07:56

    單片機(jī)常用的開(kāi)發(fā)軟件有哪些?

    單片機(jī)常用的開(kāi)發(fā)軟件有哪些
    發(fā)表于 01-06 08:29

    開(kāi)發(fā)單片機(jī)需要學(xué)習(xí)什么?軟件編程的 4 個(gè)關(guān)鍵層次

    ? ? ? ? ? ? ? ? ? ? 開(kāi)發(fā)單片機(jī)需要學(xué)習(xí)什么?軟件編程的 4 個(gè)關(guān)鍵層次 單片機(jī)的 “智能” 全靠軟件實(shí)現(xiàn),編程技能需從基礎(chǔ)語(yǔ)法逐步進(jìn)階到復(fù)雜邏輯,每個(gè)層次對(duì)應(yīng)不同的開(kāi)發(fā)需求
    的頭像 發(fā)表于 08-25 11:32 ?844次閱讀

    Linux 應(yīng)用開(kāi)發(fā)手冊(cè)

    T507linux應(yīng)用開(kāi)發(fā)手冊(cè)
    發(fā)表于 08-22 17:01 ?15次下載

    怎么測(cè)單片機(jī)系統(tǒng)頻率

    單片機(jī)系統(tǒng)頻率是指單片機(jī)工作時(shí)的時(shí)鐘頻率,它直接影響單片機(jī)的運(yùn)行速度和處理能力,準(zhǔn)確測(cè)量系統(tǒng)頻率對(duì)單片機(jī)應(yīng)用開(kāi)發(fā)、程序調(diào)試和性能優(yōu)化具有重要
    的頭像 發(fā)表于 07-25 11:39 ?779次閱讀

    低功耗單片機(jī)各型號(hào)的對(duì)比及選型參考

    不同品牌、不同系列的低功耗單片機(jī)在功耗控制、性能表現(xiàn)、外設(shè)配置等方面各有特點(diǎn),通過(guò)低功耗單片機(jī)各型號(hào)的對(duì)比,能幫助開(kāi)發(fā)者更精準(zhǔn)地匹配應(yīng)用需求。本文將圍繞主流低功耗單片機(jī)型號(hào)展開(kāi)對(duì)比,并
    的頭像 發(fā)表于 07-22 18:25 ?1441次閱讀

    單片機(jī)開(kāi)發(fā)流程包括什么?

    單片機(jī)開(kāi)發(fā)是一個(gè)系統(tǒng)性的工程,從需求明確到最終產(chǎn)品落地,需要經(jīng)歷多個(gè)相互關(guān)聯(lián)的流程環(huán)節(jié),每個(gè)環(huán)節(jié)都對(duì)最終產(chǎn)品的性能和質(zhì)量有著重要影響。 一、需求分析與文檔梳理 開(kāi)發(fā)流程的第一步是需求分析,這一
    的頭像 發(fā)表于 07-22 11:21 ?999次閱讀

    單片機(jī)定制開(kāi)發(fā)的設(shè)計(jì)思路

    單片機(jī)定制開(kāi)發(fā)是根據(jù)特定場(chǎng)景和功能需求,量身打造符合要求的單片機(jī)應(yīng)用方案,其設(shè)計(jì)過(guò)程需要兼顧技術(shù)可行性與實(shí)際應(yīng)用價(jià)值,涉及多個(gè)關(guān)鍵環(huán)節(jié)。 一、需求分析階段 單片機(jī)定制
    的頭像 發(fā)表于 07-17 11:14 ?783次閱讀
    <b class='flag-5'>單片機(jī)</b>定制<b class='flag-5'>開(kāi)發(fā)</b>的設(shè)計(jì)思路

    KF32A136系列單片機(jī)產(chǎn)品介紹

    F32A136 系列單片機(jī)是基于 KF32 內(nèi)核架構(gòu)開(kāi)發(fā)單片機(jī)。
    的頭像 發(fā)表于 06-27 11:42 ?2322次閱讀
    KF32A136系列<b class='flag-5'>單片機(jī)</b>產(chǎn)品介紹

    KF32A156系列單片機(jī)產(chǎn)品介紹

    KF32A156 系列單片機(jī)是基于 KF32 內(nèi)核架構(gòu)開(kāi)發(fā)單片機(jī)。KF
    的頭像 發(fā)表于 06-26 14:43 ?1717次閱讀
    KF32A156系列<b class='flag-5'>單片機(jī)</b>產(chǎn)品介紹

    Linux嵌入式和單片機(jī)嵌入式的區(qū)別?

    區(qū)別 單片機(jī)嵌入式系統(tǒng)和Linux嵌入式系統(tǒng)是兩種不同的嵌入式系統(tǒng)開(kāi)發(fā)方式,它們?cè)趹?yīng)用領(lǐng)域、開(kāi)發(fā)環(huán)境、資源需求等方面都有顯著的區(qū)別。以下是它們的主要區(qū)別: 1.應(yīng)用領(lǐng)域:
    發(fā)表于 06-20 09:46

    基于Keil開(kāi)發(fā)瑞薩RA8單片機(jī)

    這兩年單片機(jī)行業(yè)也開(kāi)始卷起來(lái)了,各大廠商紛紛推出各種高性能的單片機(jī)。
    的頭像 發(fā)表于 05-07 10:33 ?1463次閱讀
    基于Keil<b class='flag-5'>開(kāi)發(fā)</b>瑞薩RA8<b class='flag-5'>單片機(jī)</b>

    為何嵌入式開(kāi)發(fā)者覺(jué)得 MCU 開(kāi)發(fā)無(wú)趣,更傾向 MPU(Linux)?

    咱嵌入式圈子里,最近老能聽(tīng)見(jiàn)有人念叨:“搞 MCU 開(kāi)發(fā)越來(lái)越?jīng)]勁兒了,不如轉(zhuǎn) MPU(Linux)有意思?!?作為在這行摸爬滾打二十多年的老兵,我也算看明白了 —— 這事兒就像程序員從寫(xiě)單片機(jī)裸機(jī)
    的頭像 發(fā)表于 04-25 10:48 ?796次閱讀
    為何嵌入式<b class='flag-5'>開(kāi)發(fā)</b>者覺(jué)得 MCU <b class='flag-5'>開(kāi)發(fā)</b>無(wú)趣,更傾向 MPU(<b class='flag-5'>Linux</b>)?