在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ARM-Linux應用開發和單片機開發的不同

STM32嵌入式開發 ? 來源:STM32嵌入式開發 ? 2020-08-27 14:24 ? 次閱讀

針對ARM-Linux程序的開發,主要分為三類:應用程序開發、驅動程序開發、系統內核開發,針對不同種類的軟件開發,有其不同的特點。今天我們來看看ARM-Linux開發和MCU開發的不同點,以及ARM-Linux的基本開發環境。

ARM-Linux應用開發和單片機開發的不同

這里先要做一個說明,對于ARM的應用開發主要有兩種方式:一種是直接在ARM芯片上進行應用開發,不采用操作系統,也稱為裸機編程,這種開發方式主要應用于一些低端的ARM芯片上,其開發過程非常類似單片機,這里不多敘述。還有一種是在ARM芯片上運行操作系統,對于硬件的操作需要編寫相應的驅動程序,應用開發則是基于操作系統的,這種方式的嵌入式應用開發與單片機開發差異較大。ARM-Linux應用開發和單片機的開發主要有以下幾點不同:

(1)應用開發環境的硬件設備不同

單片機:開發板,仿真器(調試器),USB線;ARM-Linux:開發板,網線,串口線,SD卡;

對于ARM-Linux開發,通常是沒有硬件的調試器的,尤其是在應用開發的過程中,很少使用硬件的調試器,程序的調試主要是通過串口進行調試的;但是需要說明的是,對于ARM芯片也是有硬件仿真器的,但通常用于裸機開發。

(2)程序下載方式不同

單片機:仿真器(調試器)下載,或者是串口下載;

ARM-Linux:串口下載、tftp網絡下載、或者直接讀寫SD、MMC卡等存儲設備,實現程序下載;

這個與開發環境的硬件設備是有直接關系的,由于沒有硬件仿真器,故ARM-Linux開發時通常不采用仿真器下載;這樣看似不方便,其實給ARM-Linux的應用開發提供了更多的下載方式。

(3)芯片的硬件資源不同

單片機:通常是一個完整的計算機系統,包含片內RAM,片內FLASH,以及UARTI2CAD、DA等各種外設;

ARM:通常只有CPU,需要外部電路提供RAM以供ARM正常運行,外部電路提供FLASH、SD卡等存儲系統映像,并通過外部電路實現各種外設功能。由于ARM芯片的處理能力很強,通過外部電路可以實現各種復雜的功能,其功能遠遠強于單片機。

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

單片機:通常具備片內flash存儲器,固件程序通常存儲在該區域,若固件較大則需要通過外部電路設計外部flash用于存儲固件。

ARM-Linux: 由于其沒有片內的flash, 并且需要運行操作系統,整個系統映像通常較大,故ARM-Linux開發的操作系統映像和應用通常存儲在外部的MMC、SD卡上,或者采用SATA設備等。

(5)啟動方式不同單片機:其結構簡單,內部集成flash, 通常是芯片廠商在程序上電時加入固定的跳轉指令,直接跳轉到程序入口(通常在flash上);開發的應用程序通過編譯器編譯,采用專用下載工具直接下載到相應的地址空間;所以系統上電后直接運行到相應的程序入口,實現系統的啟動。

ARM-Linux:由于采用ARM芯片,執行效率高,功能強大,外設相對豐富,是功能強大的計算機系統,并且需要運行操作系統,所以其啟動方式和單片機有較大的差別,但是和家用計算機的啟動方式基本相同。其啟動一般包括BIOS,bootloader,內核啟動,應用啟動等階段;

(a)啟動BIOS: BIOS是設備廠家(芯片或者是電路板廠家)設置的相應啟動信息,在設備上電后,其將讀取相應硬件設備信息,進行硬件設備的初始化工作,然后跳轉到bootloader所在位置(該位置是一個固定的位置,由BIOS設置)。

根據個人理解,BIOS的啟動和單片機啟動類似,需要采用相應的硬件調試器進行固件的寫入,存儲在一定的flash 空間,設備上電啟動后讀取flash空間的指令,從而啟動BIOS程序。

(b)啟動bootloader: 該部分已經屬于嵌入式Linux軟件開發的部分,可以通過代碼修改定制相應的bootloader程序,bootloader的下載通常是采用直接讀寫SD卡等方式。即編寫定制相應的bootloader,編譯生成bootloader映象文件后,利用工具(專用或通用)下載到SD卡的MBR區域(通常是存儲區的第一個扇區)。此時需要在BIOS中設置,或者通過電路板的硬件電路設置,選擇bootloader的加載位置;若BIOS中設置從SD卡啟動,則BIOS初始化結束后,將跳轉到SD卡的位置去執行bootloader,從而實現bootloader的啟動。

Bootloader主要作用是初始化必要的硬件設備,創建內核需要的一些信息并將這些信息通過相關機制傳遞給內核,從而將系統的軟硬件環境帶到一個合適的狀態,最終調用操作系統內核,真正起到引導和加載內核的作用。

(c)啟動內核 :bootloader啟動完成初始化等相關工作之后,將調用內核啟動程序。這就進入了實際的操作系統相關內容的啟動了,包括相應的硬件配置,任務管理,資源管理等內核程序的啟動。

(d)啟動應用:在操作系統內核啟動之后,就可以開始啟動需要的應用,去完成真正的業務操作了。

Arm-Linux 基本開發環境

前面介紹了ARM-Linux應用開發和單片機開發的不同之處,相信你已經對ARM-Linux應用開發有了一個基本的認識了,下面將介紹一下ARM-Linux的基本開發環境。其主要包括硬件環境和軟件環境兩個部分,這里以iMX53和Ubuntu為例進行說明。

(1)硬件環境開發板:ARM運行的硬件環境,或者是相應項目的ARM電路板;

計算機:作為開發主機使用,安裝Linux(如Ubuntu)),或者采用虛擬機安裝Ubuntu;

串口線:用于開發過程中采用終端進行串口調試或下載程序;

網線:用于連接arm-board和開發主機,實現tftp下載內核(程序等),通過網絡nfs運行程序等。SD卡(及讀卡器)或者其他存儲設備:用于存儲bootloader、內核映像等,以及最終的軟件系統的存儲;開發過程中,通常用于保存bootloader,引導系統啟動。

(2)軟件環境

Ubuntu:作為操作系統,是整個軟件開發環境的載體,相應的開發工具都布置在此系統中。

LtiB:這是freescale的提供的一個編譯工具鏈,能夠很方便的將源代碼文件編譯為適合的程序代碼,并對程序進行調試;用戶也可以通過下載源碼構建自己的編譯工具鏈。

tftp:用于從開發主機Ubuntu上向arm-board 下載內核文件、應用文件等。

nfs網絡文件系統:用于在開發主機上建立網絡nfs文件根系統,arm-board通過nfs網絡文件系統讀取開發主機上的虛擬根文件系統,完成系統的啟動;方便系統的開發與調試。

minicom:串口調試工具,用于在開發主機上與arm-board通信,實現對arm-board上應用程序的操作與調試;

Eclipse:集成開發環境,主要方便代碼的編輯、編譯等,也可采用DS5,realview等;或者采用gedit進行編輯,通過LTIB進行編譯和管理。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • mcu
    mcu
    +關注

    關注

    146

    文章

    17694

    瀏覽量

    357822
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9265

    瀏覽量

    373268
  • Linux
    +關注

    關注

    87

    文章

    11415

    瀏覽量

    212262

原文標題:ARM-Linux開發與MCU開發有何不同?

文章出處:【微信號:c-stm32,微信公眾號:STM32嵌入式開發】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    單片機Debug工具性能對比 單片機調試常用命令

    。以下是對單片機調試工具性能的簡要對比以及一些常用的調試命令。 單片機Debug工具性能對比 Keil uVision 性能 :Keil uVision 是一款功能強大的集成開發環境(IDE),支持多種
    的頭像 發表于 12-19 09:56 ?1028次閱讀

    單片機Debug與仿真區別

    單片機開發是一個復雜的過程,涉及到硬件設計、軟件開發和測試等多個環節。為了確保單片機能夠按照預期工作,開發者需要使用Debug和仿真技術來
    的頭像 發表于 12-19 09:47 ?704次閱讀

    單片機怎么寫入程序

    程序通常涉及以下幾個步驟: 選擇單片機開發環境 : 確定項目需求,選擇合適的單片機型號。 安裝相應的開發環境,如Keil、IAR、MPLAB等。 硬件連接 : 將
    的頭像 發表于 10-21 11:21 ?1855次閱讀

    想入行單片機開發的學生們的忠告

    對于想入行單片機開發的學生們,以下是一些建議和忠告:
    的頭像 發表于 10-17 09:45 ?607次閱讀
    想入行<b class='flag-5'>單片機</b><b class='flag-5'>開發</b>的學生們的忠告

    單片機芯片開發-單片機方案開發的關鍵技巧和流程步驟!

    有多種架構的MCU可供選擇,如ARM、AVR和PIC等。根據項目需求,您可以選擇處理能力強、內存充足、外設支持豐富的單片機。此外,開發工具的支持也是一個重要因素,良好的文檔和開發環境能
    發表于 09-26 17:04

    單片機STM32可以用Python寫嗎?可以的開發板有哪些?

    近年來,隨著嵌入式技術的發展,Python語言逐漸被引入到單片機開發中,尤其是一些高性能的單片機上。這一趨勢給開發者帶來了極大的便利,尤其是在快速原型設計和實驗中。本文將詳細探討STM
    的頭像 發表于 09-05 08:00 ?6613次閱讀
    <b class='flag-5'>單片機</b>STM32可以用Python寫嗎?可以的<b class='flag-5'>開發</b>板有哪些?

    keil可以讀出單片機的程序嗎

    Keil是一款廣泛應用于單片機程序開發的軟件,它提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強大的仿真調試器等在內的完整開發方案。然而,關于Keil是否能直接“讀出”單片機的程
    的頭像 發表于 09-02 10:32 ?1740次閱讀

    單片機燒錄程序的基本步驟是什么

    單片機燒錄程序是單片機開發過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸到單片機內部的存儲器中,使單片機能夠按照預定的邏
    的頭像 發表于 09-02 09:47 ?2172次閱讀

    嵌入式linux開發的基本步驟有哪些?

    之前,首先需要選擇合適的硬件平臺。硬件選擇需要考慮以下幾個方面: 1.1 處理器 嵌入式Linux開發需要一個處理器,常見的處理器有ARM、MIPS、PowerPC等。選擇處理器時,需要考慮處理器的性能、功耗、成本等因素。 1.
    的頭像 發表于 09-02 09:11 ?913次閱讀

    linux開發板和單片機開發的區別

    硬件架構 Linux開發板和單片機開發在硬件架構上有很大的區別。Linux開發板通常基于
    的頭像 發表于 08-30 15:30 ?1725次閱讀

    Linux 驅動開發與應用開發,你知道多少?

    一、Linux驅動開發與應用開發的區別開發層次不同:Linux驅動開發主要是針對硬件設備進行編程
    的頭像 發表于 08-30 12:16 ?1257次閱讀
    <b class='flag-5'>Linux</b> 驅動<b class='flag-5'>開發</b>與應用<b class='flag-5'>開發</b>,你知道多少?

    從菜鳥到大牛!嵌入式完整學習路線:STM32單片機-RTOS-Linux

    ?嵌入式linux”的順序幫助您從入門到進階,掌握嵌入式開發的精髓。第一階段單片機單片機是嵌入式學習的基石,因為它集成了處理器、存儲器和輸入輸出接口于單一芯片中,
    的頭像 發表于 07-23 16:11 ?5147次閱讀
    從菜鳥到大牛!嵌入式完整學習路線:STM32<b class='flag-5'>單片機</b>-RTOS-<b class='flag-5'>Linux</b>

    單片機上位軟件用什么開發

    開發單片機上位軟件時,選擇合適的開發工具和編程語言至關重要。本文將詳細介紹單片機上位軟件開發
    的頭像 發表于 06-07 09:17 ?2120次閱讀

    PY32系列單片機開發板 常用型號都有 支持Keil,IAR進行開發

    普冉單片機是近幾年很火的國產32位單片機,主打高性能和高性價比,市場份額也是在持續上升。同等價位下難逢敵手,有著系統簡單、易于開發的特點。PY32系列單片機可應用于可穿戴、消費類、醫療
    的頭像 發表于 05-22 14:48 ?1656次閱讀
    PY32系列<b class='flag-5'>單片機</b><b class='flag-5'>開發</b>板 常用型號都有 支持Keil,IAR進行<b class='flag-5'>開發</b>

    STM32單片機有哪幾種常見的開發環境?

    STM32單片機是一款廣泛應用于嵌入式系統開發單片機,針對其開發,有以下幾種常見的方式:STM32單片機有哪幾種常見的
    的頭像 發表于 05-18 08:04 ?3969次閱讀
    STM32<b class='flag-5'>單片機</b>有哪幾種常見的<b class='flag-5'>開發</b>環境?
    主站蜘蛛池模板: 精品午夜视频 | 小视频国产| 看黄在线| 日本黄色小视频网站 | 国产伦子一区二区三区四区 | 天堂成人一区二区三区 | 亚洲成人网页 | 免费看国产一级特黄aa大片 | 你懂的国产 | 国产精品夜夜春夜夜爽 | 超级乱淫小黄文小说 | 久久草精品 | 欧美在线伊人 | 亚洲欧美日韩特级毛片 | 一级毛片美国一级j毛片不卡 | 香蕉久久夜色精品国产2020 | 人人搞人人搞 | 天天躁夜夜躁狠狠躁2021a | 狠狠色噜噜噜噜狠狠狠狠狠狠奇米 | 一级毛片a | 84pao强力永久免费高清 | 日本日b视频 | 欧美伦理一区 | 国产美女久久久久 | 欧美日韩免费大片 | 视频在线免费 | 天堂资源 | 一卡二卡三卡四卡无卡在线 | 中文字幕视频一区二区 | 7m凹凸精品分类大全免费 | 国产精品久久福利网站 | 久久综合色播 | 国产欧美在线一区二区三区 | 黄色美女网站免费看 | 久久久精品免费 | 国产一卡2卡3卡四卡精品网站 | 亚洲狠狠婷婷综合久久久久图片 | 免费黄色a视频 | 午夜性影院| 五月天婷婷免费观看视频在线 | 狠狠干网站 |