chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

STM32MP1處理器下實(shí)現(xiàn)RT-Thread和Linux同時(shí)運(yùn)行

Rice嵌入式開發(fā)技術(shù)分享 ? 來(lái)源:Papalymo ? 作者:Papalymo ? 2022-10-31 12:27 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

架構(gòu)說(shuō)明

本項(xiàng)目以 STM32MP157A-DK1 為硬件平臺(tái)。作為能夠支持輕松開發(fā)更廣泛應(yīng)用的通用微處理器產(chǎn)品線,STM32MP157 系列基于雙核Cortex-A7 與 Cortex-M4 組成的異構(gòu)架構(gòu),加強(qiáng)了支持多應(yīng)用和靈活應(yīng)用的能力,可以隨時(shí)實(shí)現(xiàn)最佳性能和功率數(shù)據(jù)。Cortex-A7 內(nèi)核提供對(duì)開源操作系統(tǒng)Linux/Android)的支持,而 Cortex-M4 內(nèi)核可以利用 STM32 MCU 的生態(tài)系統(tǒng)。本篇文章將介紹如何在 STM32MP157 上運(yùn)行 RT-Thread OS。

2d43c572-580b-11ed-b468-dac502259ad0.png

啟動(dòng)方式

Forced USB boot For flashing : 通過(guò) USB 燒寫固件。在此模式下,可以使用 STM32Cube Programmer 工具燒寫 A7 核固件。

Engineer Mode: 一般用于 M4 核的調(diào)試。由于 STM32MP1 沒(méi)有 Flash,所以代碼會(huì)被燒寫到 Cortex-M4 核有訪問(wèn)權(quán)限的 RAM 里面,因此掉電程序會(huì)丟失。

SD card on SDMMC1 : 從 SD card 啟動(dòng)。

工作模式

STM32MP1 有兩種工作模式

工程模式(Engineer Mode),系統(tǒng)上電后,不會(huì)啟動(dòng) A7 核。M4 核此時(shí)可以像平常 STM32 的開發(fā)流程,借助于調(diào)試工具進(jìn)行調(diào)試。

產(chǎn)品模式(Production Mode),系統(tǒng)上電后,會(huì)先啟動(dòng) A7 核,然后由 A7 核來(lái)啟動(dòng) M4 核。

OpenAMP

開源的非對(duì)稱多處理框架(OpenAMP)為開發(fā) AMP 系統(tǒng)提供了必要的 API 函數(shù)。OpenAMP 是 Xilinx 和M entor Graphic 于2014年發(fā)起的一個(gè)開源項(xiàng)目,旨在提供一份協(xié)處理器的標(biāo)準(zhǔn)通信框架。OpenAMP 提供用于開發(fā) AMP 系統(tǒng)軟件應(yīng)用程序所需的軟件組件,它允許操作系統(tǒng)在各種復(fù)雜的同構(gòu)和異構(gòu)結(jié)構(gòu)中交互,并允許不對(duì)稱的多處理應(yīng)用程序利用多核配置提供并行性。在 STM32MP1 系列中,A7 和 M4 兩個(gè)核心的通信是通過(guò)底層的 IPCC 控制器進(jìn)行,軟件層使用 RPMsg 框架與用戶進(jìn)行交互。

IPCC

處理器間通信控制器 (IPCC) 用于兩個(gè)處理器之間的數(shù)據(jù)交換。它提供了一種非阻塞的信號(hào)機(jī)制,以原子方式發(fā)布和檢索信息。IPCC 外設(shè)提供了硬件支持來(lái)管理兩個(gè)處理器之間的通信,每個(gè)處理器都擁有特定的寄存器庫(kù)和中斷。IPCC 為內(nèi)核間的通信提供了硬件基礎(chǔ)。

STM32MP1 使用 IPCC 外設(shè)進(jìn)行處理器間通信,配置如下:

IPCC 處理器 1 接口被分配到 ARM Cortex-A7 不安全上下文,由 Linux 郵箱框架進(jìn)行處理

IPCC 處理器 2 接口被分配到 ARM Cortex-M4 上下文,由 IPCC HAL 驅(qū)動(dòng)程序進(jìn)行處理

2d62a14a-580b-11ed-b468-dac502259ad0.png

REMOTEPROC

遠(yuǎn)程處理器框架(remoteproc)的主要作用作用是對(duì)遠(yuǎn)程從處理器進(jìn)行生命周期的管理,啟動(dòng)和停止遠(yuǎn)程處理器。在 STM32MP157 中,當(dāng)系統(tǒng)啟動(dòng)時(shí),A7 核會(huì)被先啟動(dòng),然后借助于 Linux RemoteProc 框架加載 M4 固件,啟動(dòng) M4 內(nèi)核代碼。

2d7f3620-580b-11ed-b468-dac502259ad0.png

RPMsg

Remoteproc 框架實(shí)現(xiàn)了對(duì)遠(yuǎn)程處理器生命周期的管理,RPMsg 框架則實(shí)現(xiàn)了對(duì)遠(yuǎn)程處理器的信息傳遞。

Linux RPMsg (Remote Processor Messaging)框架是在 virtio 框架上實(shí)現(xiàn)的信息傳遞機(jī)制,以便與遠(yuǎn)程處理器進(jìn)行通信,它基于 virtio vrings 通過(guò)共享內(nèi)存發(fā)送、接收來(lái)自遠(yuǎn)程處理器的消息。

vrings 是單向的,一個(gè) vring 專門用于發(fā)送消息到遠(yuǎn)程處理器,另外一個(gè) vring 用于接收來(lái)自遠(yuǎn)程服務(wù)器的消息。消息服務(wù)基于共享內(nèi)存,共享內(nèi)存(shared memory)是在兩個(gè)處理器都具有訪問(wèn)權(quán)限的內(nèi)存空間中創(chuàng)建的;信號(hào)通知(mailbox)服務(wù)基于內(nèi)部 IPCC。

2db7803e-580b-11ed-b468-dac502259ad0.png

編譯&運(yùn)行

生成 ELF 文件

在 rt-thread/bsp/stm32/stm32mp157a-st-discovery 目錄下打開 env 工具;

輸入 menuconfig,打開 OpenAMP:

2e6ba636-580b-11ed-b468-dac502259ad0.png

配置串口。由于官方默認(rèn)的程序中 A7 核(OpenSTLinux)需要使用串口 4 ,所以這里修改 M4 核(RT-Thread)的調(diào)試串口為 UART3:

2e82d266-580b-11ed-b468-dac502259ad0.png

2ea2157c-580b-11ed-b468-dac502259ad0.png

保存配置,輸入命令 scons --target=iar 生成 IAR 工程。

2eaa228a-580b-11ed-b468-dac502259ad0.png

打開 IAR 工程。編譯,生成 ELF 文件:

2eb9ff84-580b-11ed-b468-dac502259ad0.png

KEIL 的操作和上面 IAR 的操作是一樣的,只不過(guò) KEIL 生成的是 axf 文件,一樣可以正常使用。

加載 ELF 文件

設(shè)置 Boot mode 為 SD card on SDMMC1 模式,復(fù)位開發(fā)板:

等待系統(tǒng)初始化完成,輸入命令ifconfig獲取開發(fā)板 IP 地址;

使用 ssh 工具連接開發(fā)板:

2ed85ae2-580b-11ed-b468-dac502259ad0.png

上傳 ELF 文件:

2ee6f192-580b-11ed-b468-dac502259ad0.png

連接串口3,作為 M4 核(RT-Thread OS)調(diào)試串口:

2efa9120-580b-11ed-b468-dac502259ad0.png

使用 Linux Remoteproc 框架加載 Cortex-M4 固件,啟動(dòng) Cortex-M4 內(nèi)核:

mv /tmp/RT-Thread-STM32MP1_CM4.elf /lib/firmware/echo RT-Thread-STM32MP1_CM4.elf > /sys/class/remoteproc/remoteproc0/firmwareecho start > /sys/class/remoteproc/remoteproc0/state

2f2e4f24-580b-11ed-b468-dac502259ad0.png

2f57c58e-580b-11ed-b468-dac502259ad0.png

啟動(dòng) OpenAMP

在 RT-Thread 終端輸入命令 console set openamp 切換 RT-Thread console 設(shè)備為 openamp:

2f7527f0-580b-11ed-b468-dac502259ad0.png

在 Linux 終端輸入以下命令:

stty-onlcr-echo-F/dev/ttyRPMSG0cat/dev/ttyRPMSG0&

在 Linux 終輸入命令進(jìn)行驗(yàn)證:

2f7f3ed4-580b-11ed-b468-dac502259ad0.png

完整操作流程

2f9601c8-580b-11ed-b468-dac502259ad0.png

結(jié)語(yǔ)

STM32MP1 作為 ST 推出的第一顆支持 Linux 系統(tǒng)的 MPU,依托于 STM32 成熟的生態(tài)系統(tǒng)(STM32CubeMX、STM32Cube Programmer),用戶可以快速的進(jìn)行開發(fā),驗(yàn)證。非對(duì)稱多處理器架構(gòu)雖然目前在嵌入式領(lǐng)域還不是主流,但未來(lái)肯定是趨勢(shì)。通過(guò) Linux 與 RT-Thread 操作系統(tǒng)的結(jié)合,可以很輕松的開發(fā)多場(chǎng)景應(yīng)用,如工業(yè)、家居、消費(fèi)品、物聯(lián)網(wǎng)、衛(wèi)生和健康等領(lǐng)域。期待未來(lái) RT-Smart 和 RT-Thread 能同時(shí)運(yùn)行在非對(duì)稱多處理器上。

本文作者為RT-Thread論壇用戶「Papalymo」在此特別鳴謝

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(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)投訴
  • 處理器
    +關(guān)注

    關(guān)注

    68

    文章

    19885

    瀏覽量

    235084
  • 嵌入式
    +關(guān)注

    關(guān)注

    5150

    文章

    19659

    瀏覽量

    317393
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11509

    瀏覽量

    213721
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11031

    瀏覽量

    364729
  • RT-Thread
    +關(guān)注

    關(guān)注

    32

    文章

    1406

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    基于STM32MP1處理器的PHYTEC開發(fā)板介紹

    PHYTEC開發(fā)板是PHYTEC基于 STM32MP1 處理器開發(fā)的,STM32MP1 系列處理器集成了雙核 Arm? Cortex?-A7、單核 Cortex?-M4 及GPU。它提
    發(fā)表于 03-30 11:02 ?5038次閱讀
    基于<b class='flag-5'>STM32MP1</b><b class='flag-5'>處理器</b>的PHYTEC開發(fā)板介紹

    混合部署 | 在迅為RK3568上同時(shí)部署RT-ThreadLinux系統(tǒng)

    RT-Thread系統(tǒng)已經(jīng)同時(shí)運(yùn)行了,其中CPU0、CPU1、CPU2運(yùn)行Linux系統(tǒng),CPU3運(yùn)行
    發(fā)表于 09-18 10:54

    混合部署 | 在迅為RK3568上同時(shí)部署RT-ThreadLinux系統(tǒng)

    系統(tǒng)和RT-Thread系統(tǒng)已經(jīng)同時(shí)運(yùn)行了,其中CPU0、CPU1、CPU2運(yùn)行Linux系統(tǒng),CPU3
    發(fā)表于 11-01 10:31

    STM32MP157上運(yùn)行RT-Thread OS的步驟教程

    ,驗(yàn)證。非對(duì)稱多處理器架構(gòu)雖然目前在嵌入式領(lǐng)域還不是主流,但未來(lái)肯定是趨勢(shì)。通過(guò) LinuxRT-Thread 操作系統(tǒng)的結(jié)合,可以很輕松的開發(fā)多場(chǎng)景應(yīng)用,如工業(yè)、家居、消費(fèi)品、物聯(lián)網(wǎng)、衛(wèi)生和健康等領(lǐng)域。期待未來(lái)
    發(fā)表于 03-16 10:14

    在NUC980處理器運(yùn)行RT-Thread系統(tǒng)

    (1) NUC980nuc980是新塘推出的基于 ARM926EJ-S,集成 64 MB 或 128 MB DDR-II 的處理器,主頻可以達(dá)到300MHZ,有 64-pin、128-pin
    發(fā)表于 10-13 15:29

    如何在STM32MP157上運(yùn)行RT-Thread OS?

    操作系統(tǒng)的結(jié)合,可以很輕松的開發(fā)多場(chǎng)景應(yīng)用,如工業(yè)、家居、消費(fèi)品、物聯(lián)網(wǎng)、衛(wèi)生和健康等領(lǐng)域。期待未來(lái) RT-Smart 和 RT-Thread同時(shí)運(yùn)行在非對(duì)稱多處理器上。原作者:
    發(fā)表于 02-14 11:41

    米爾科技STM32MP1系列處理器介紹

    意法半導(dǎo)體新推出的STM32MP1多核微處理器系列具有計(jì)算和圖形處理能力,兼?zhèn)涓吣苄?shí)時(shí)控制和高功能集成度。
    的頭像 發(fā)表于 11-26 15:34 ?3286次閱讀
    米爾科技<b class='flag-5'>STM32MP1</b>系列<b class='flag-5'>處理器</b>介紹

    當(dāng)STM32遇到Linux = STM32MP1

    當(dāng)STM32遇到Linux = STM32MP1
    的頭像 發(fā)表于 03-01 13:37 ?2497次閱讀

    STM32MP157系列教程連載-硬件設(shè)計(jì)篇2:STM32MP1處理器之電源篇

    手冊(cè)、參考手冊(cè)、設(shè)計(jì)參考文檔)與參考電路板(DK板與EV板),用于產(chǎn)品設(shè)計(jì)參考:官網(wǎng)首頁(yè)進(jìn)入官方后,選擇產(chǎn)品->微控制->STM32 Arm Cortex MPUs(點(diǎn)擊) 進(jìn)入STM32MP1系列
    發(fā)表于 11-06 16:51 ?13次下載
    <b class='flag-5'>STM32MP</b>157系列教程連載-硬件設(shè)計(jì)篇2:<b class='flag-5'>STM32MP1</b>微<b class='flag-5'>處理器</b>之電源篇

    STM32MP157系列教程連載-Linux系統(tǒng)移植篇8:STM32MP1處理器Linux內(nèi)核配置及編譯

    STM32MP157系列教程連載-Linux系統(tǒng)移植篇8:STM32MP1處理器Linux內(nèi)核配置及編譯第
    發(fā)表于 12-22 18:52 ?0次下載
    <b class='flag-5'>STM32MP</b>157系列教程連載-<b class='flag-5'>Linux</b>系統(tǒng)移植篇8:<b class='flag-5'>STM32MP1</b>微<b class='flag-5'>處理器</b>之<b class='flag-5'>Linux</b>內(nèi)核配置及編譯

    基于RT-Thread和RA6M4實(shí)現(xiàn)samba服務(wù)移動(dòng)網(wǎng)盤

    本文詳細(xì)介紹了基于RT-Thread操作系統(tǒng)和RA6M4處理器,如何移植和適配samba服務(wù)。同時(shí),還提供Linux環(huán)境和QEMU仿真環(huán)境的參考移植,希望對(duì)大家有所啟發(fā)和幫助。
    的頭像 發(fā)表于 08-17 12:53 ?1887次閱讀
    基于<b class='flag-5'>RT-Thread</b>和RA6M4<b class='flag-5'>實(shí)現(xiàn)</b>samba服務(wù)移動(dòng)網(wǎng)盤

    RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南

    RT-Thread文檔_RT-Thread 潘多拉 STM32L475 上手指南
    發(fā)表于 02-22 18:23 ?10次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 潘多拉 <b class='flag-5'>STM32</b>L475 上手指南

    4月10日深圳場(chǎng)RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    4月10日我們將在深圳福田舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Threadlinux
    的頭像 發(fā)表于 03-27 11:36 ?1236次閱讀
    4月10日深圳場(chǎng)<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!

    4月25日北京站RT-Thread線下workshop,探索RT-Thread混合部署新模式

    4月25日,下午我們將在北京舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Threadlinux
    的頭像 發(fā)表于 04-16 08:35 ?661次閱讀
    4月25日北京站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式

    6月6日杭州站RT-Thread線下workshop,探索RT-Thread混合部署新模式!

    6月6日下午我們將在杭州舉辦RT-Thread混合部署線下workshop,在瑞芯微RK3568平臺(tái)上實(shí)現(xiàn)同時(shí)運(yùn)行RT-Threadlinux
    的頭像 發(fā)表于 05-28 08:35 ?698次閱讀
    6月6日杭州站<b class='flag-5'>RT-Thread</b>線下workshop,探索<b class='flag-5'>RT-Thread</b>混合部署新模式!