早在2019年年初的時(shí)候,ST就發(fā)布了首款STM32MPU:STM32MP1。 STM32MP1通用微處理器產(chǎn)品系列,系基于混合的 雙Arm Cortex-A7核 和 Cortex-M4核架構(gòu)產(chǎn)品。 一、支持STM32MPU 生態(tài)系統(tǒng)
熟悉 Cortex-M4 MCU 環(huán)境的開發(fā)人員能輕松實(shí)現(xiàn)他們的目標(biāo),因?yàn)樗麄兡軌蚴褂孟嗤?STM32Cube 工具套件,包括基于 GCC 的 IDE、STM32CubeProgrammer 和STM32CubeMX。此外,這款套件還配有 DRAM 接口調(diào)試工具,可以輕松配置 DRAM 子系統(tǒng)。
面向 Cortex-A7 內(nèi)核進(jìn)行開發(fā)時(shí),ST 通過使用主流的開源 OpenSTLinux發(fā)行版進(jìn)行開發(fā),幫助用戶消除潛在的障礙,確保應(yīng)用軟件移植的簡便性和快速性。
二、STM32MPU嵌入式軟件架構(gòu)先給大家看一下官方給的基于STM32MP1的架構(gòu)圖:
從圖中可以看出,嵌入式軟件主要分為兩大類:
1.STM32Cube MPU軟件包
STM32Cube MPU軟件包主要針對(duì)于Cortex-M4,基于HAL驅(qū)動(dòng)程序和中間件,像其他的STM32微控制器,以完成協(xié)處理器管理。
2.OpenSTLinux
開源OpenSTLinux主要針對(duì)于Cortex-A7,主要包含兩大類:
OpenSTLinux BSP:班級(jí)支持包
application frameworks:應(yīng)用框架
上面內(nèi)容是一個(gè)整體框架,如果將其進(jìn)一步細(xì)分,里面包含的內(nèi)容還有很多,下面章節(jié)有針對(duì)性講述一些相關(guān)內(nèi)容。
三、STM32Cube MP1包架構(gòu)
如果使用過,或者學(xué)習(xí)過STM32CubeMX開發(fā)的朋友,應(yīng)該對(duì)STM32Cube包不陌生。
這里主要分為了四大塊: 1.Hardware硬件層這一塊很簡單,就是硬件板卡等。 2.Level 0驅(qū)動(dòng)層(Drivers) 這里分為三個(gè)軟件組件:HAL:Hardware Abstraction Layer,硬件抽象層LL:Low Layer,低層驅(qū)動(dòng)BSP:oard Support Package,板級(jí)支持包 3.Level 1中間層(Middlewares)中間件組件是一組提供一組服務(wù)的庫。STM32Cube MP1包提供2個(gè)主要組件:FreeRTOS和OpenAMP。FreeRTOS:是一個(gè)免費(fèi)的實(shí)時(shí)操作系統(tǒng)(RTOS)。
OpenAMP:是一個(gè)實(shí)現(xiàn)遠(yuǎn)程處理器服務(wù)框架(RPMsg)的庫,它是一種與遠(yuǎn)程處理器通信的消息傳遞機(jī)制。
4.Level 2板卡示例層
主要是一些參考示例代碼,初學(xué)的是時(shí)候可以參考。
四、U-Boot引導(dǎo)順序從上面的嵌入式軟件架構(gòu)可以看得出來,OpenSTLinux里面包含的內(nèi)容比較多,本文講述其中的一個(gè)U-Boot. 1.通用啟動(dòng)順序通用U-Boot的引導(dǎo)順序如下:
ROM代碼最基本的一段代碼,初始化時(shí)鐘樹,加載FSBL程序等。 第一階段引導(dǎo)加載程序(FSBL)初始化(部分)時(shí)鐘樹和外部RAM控制器。最后,F(xiàn)SBL將第二階段引導(dǎo)加載程序(SSBL)加載到外部RAM中并跳轉(zhuǎn)到它。
第二階段引導(dǎo)加載程序(SSBL)
SSBL在更大的RAM中運(yùn)行,因此它可以實(shí)現(xiàn)復(fù)雜的功能(USB,以太網(wǎng),顯示器等),這對(duì)于使Linux內(nèi)核加載更加靈活非常有用(從Flash設(shè)備,網(wǎng)絡(luò)等),用戶友好(向用戶顯示啟動(dòng)畫面)。
Linux內(nèi)核空間
Linux內(nèi)核在外部存儲(chǔ)器中啟動(dòng),它初始化平臺(tái)上所需的所有外設(shè)驅(qū)動(dòng)程序。
Linux用戶空間
最后,Linux內(nèi)核將控制權(quán)交給用戶空間,啟動(dòng)init進(jìn)程,該進(jìn)程運(yùn)行根文件系統(tǒng)(rootfs)中描述的所有初始化操作,包括向用戶公開用戶界面(UI)的應(yīng)用程序框架等。
2.STM32MP啟動(dòng)順序
針對(duì)于STM32MP,官方也給了兩種啟動(dòng)方式:可信引導(dǎo)、基本引導(dǎo)。
可信引導(dǎo)
基本引導(dǎo)
-
STM32
+關(guān)注
關(guān)注
2270文章
10900瀏覽量
356092 -
MPU
+關(guān)注
關(guān)注
0文章
359瀏覽量
48806 -
u-boot
+關(guān)注
關(guān)注
0文章
121瀏覽量
38228
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論