91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ARM-Linux開發與MCU開發有何不同

發布時間:2021-10-22 11:22:06 來源:億速云 閱讀:91 作者:柒染 欄目:互聯網科技

這篇文章將為大家詳細講解有關ARM-Linux開發與MCU開發有何不同,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

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

1.  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,以及UART、I2C、AD、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)啟動應用:     在操作系統內核啟動之后,就可以開始啟動需要的應用,去完成真正的業務操作了。

2.  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進行編譯和管理。

關于ARM-Linux開發與MCU開發有何不同就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

mcu
AI

凭祥市| 唐山市| 峨眉山市| 潍坊市| 卫辉市| 青冈县| 哈密市| 龙岩市| SHOW| 郸城县| 盐池县| 句容市| 西林县| 六盘水市| 略阳县| 阿拉尔市| 凤山市| 西盟| 临泽县| 沙河市| 陈巴尔虎旗| 丰都县| 老河口市| 十堰市| 奉化市| 连城县| 华池县| 武冈市| 成安县| 屏东市| 临安市| 云龙县| 荣成市| 本溪| 镇赉县| 泰州市| 三穗县| 太谷县| 曲阜市| 达孜县| 白水县|