精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

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

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

3天內不再提示

RT-Thread SMP啟動流程

冬至子 ? 來源:螺絲松掉的人 ? 作者:螺絲松掉的人 ? 2023-08-03 15:10 ? 次閱讀

SMP 和 AMP 簡介

SMP(Symmetric Multi-processing) :對稱多處理,在一個計算機上匯集了一組處理器 (多 CPU), 各 CPU 之間共享內存子系統以及總線結構。SMP模式系統中所有CPU的地位相同,共同運行一個操作系統實例,所有CPU共享系統內存和外設資源。

嵌入式領域除 SMP 外還有一種支持多核處理器芯片的操作系統體系結構,即 AMP。

AMP(Asymmetric Multi-processing) : 非對稱多處理,AMP模式的RTOS在各個CPU上均運行一個操作系統實例(這些操作實例不一定完全相同),各個操作系統擁有自己專用的內存,相互之間通過訪問受限的共享內存進行通信

RT-Thread SMP 啟動流程

首先是主 CPU(一下簡稱 CPU0 )進入到 RT-Thread 的初始化,其他的 CPU 需要通過 CPU0 喚醒,隨后才進行各自的初始化( CPU0 只負責喚醒,次級 CPU 自身硬件部分的初始化不能由 CPU0 完成),流程圖如下

1.jpg
1.jpg

CPU0 和其余 CPU 的啟動流程都如下圖所示,( CPU0 完成初始后,執行 main 線程之前喚醒其余 CPU )

1.jpg

想要在源碼中看到一些具體的實現,可以在工程中搜索 RT_USING_SMP

簡單實驗

qemu-vexpress-a9
RT-Thread 中 qemu-vexpress-a9 的 BSP 中已經支持了 SMP ,沒有實物也可以通過 qemu 試一試。

首先在進入到 bsp/qemu-vexpress-a9 目錄,進入 menuconfig ,使能 SMP ,并且將 CPU 的個數設置為實際值(4個);
可以在次 CPU 的線程中添加一些簡單的串口打印功能,方便觀察現象;
env 中運行命令 scons 構建項目;
輸入命令 ./qemu-nographic.sh 即可運行 qemu ,可以觀察到 SMP 已經成功的跑起來了。
raspi3-32
我手上還有一塊樹莓派也是多核的,RT-Thread 官方的 BSP 中也支持了這塊板子的 SMP 功能。

進入 menuconfig 進行同樣的配置;
env 中運行命令 scons 構建項目;
將生成的 kernel7.img 文件拷貝到樹莓派 SD 卡的 boot 目錄中即可;
樹莓派上電前先使用 USB 轉 TTL 模塊連接到電腦
啟動樹莓派后,串口成功顯示相關信息, SMP 簡單測試成功。

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

    關注

    68

    文章

    19178

    瀏覽量

    229201
  • TTL電路
    +關注

    關注

    2

    文章

    65

    瀏覽量

    15064
  • SMP
    SMP
    +關注

    關注

    0

    文章

    72

    瀏覽量

    19635
  • RT-Thread
    +關注

    關注

    31

    文章

    1274

    瀏覽量

    39942
  • 樹莓派
    +關注

    關注

    116

    文章

    1699

    瀏覽量

    105537
收藏 人收藏

    評論

    相關推薦

    RT-Thread記錄(三、RT-Thread線程操作函數)

    講完了RT-Thread開發環境,啟動流程啟動以后當然是開始跑線程了,那么自然我們得學會如何創建線程以及線程的有關操作。
    的頭像 發表于 06-20 00:31 ?6685次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(三、<b class='flag-5'>RT-Thread</b>線程操作函數)

    RT-Thread記錄(二、RT-Thread內核啟動流程

    在前面我們RT-Thread Studio工程基礎之上講一講RT-Thread內核啟動流程.
    的頭像 發表于 06-20 00:30 ?4973次閱讀
    <b class='flag-5'>RT-Thread</b>記錄(二、<b class='flag-5'>RT-Thread</b>內核<b class='flag-5'>啟動</b><b class='flag-5'>流程</b>)

    RT-Thread SMP介紹與移植資料分享

    1、如何移植 RT-Thread SMP系統上電后,每個 CPU 都會在 ROM 中的代碼控制下獨自運行,但是只有主處理器(以下簡稱 CPU0 )跳轉到 RT-Thread 的初始化入口處,而其
    發表于 04-27 14:38

    RT-Thread快速入門之了解內核啟動流程

    1、了解RT-Thread內核的啟動流程  內核是操作系統最基礎也是最重要的部分。從本文開始進入 RT-Thread 內核相關知識的學習。  首先了解內核的基礎知識,對
    發表于 09-05 17:01

    RT-Thread SMP和AMP初體驗簡介

    多處理,AMP模式的RTOS在各個CPU上均運行一個操作系統實例(這些操作實例不一定完全相同),各個操作系統擁有自己專用的內存,相互之間通過訪問受限的共享內存進行通信。RT-Thread SMP 啟動
    發表于 02-03 14:33

    RT-Thread框架下的SMP支持

    RT-Thread 的調度流程和中斷機制有一定的學習和理解,這部分可以參考 RT-Thread 文檔中心,最好能配合著理解源碼的實現。我對 RT-Thread 框架下的
    發表于 02-13 15:02

    RT-Thread編程指南

    RT-Thread編程指南——RT-Thread開發組(2015-03-31)。RT-Thread做為國內有較大影響力的開源實時操作系統,本文是RT-Thread實時操作系統的編程指南
    發表于 11-26 16:06 ?0次下載

    rt-thread 優化系列(六)啟動流程重構

    去年此時,筆者剛接觸 rt-thread 的時候,被它的初始化過程深深折服了。第一次打開一個 rt-thread 的項目,竟然沒找到多線程在哪兒初始化的,"main" 函數里沒有!
    的頭像 發表于 07-04 15:30 ?1714次閱讀
    <b class='flag-5'>rt-thread</b> 優化系列(六)<b class='flag-5'>啟動</b><b class='flag-5'>流程</b>重構

    RT-Thread學習筆記 RT-Thread的架構概述

    RT-Thread 簡介 作為一名 RTOS 的初學者,也許你對 RT-Thread 還比較陌生。然而,隨著你的深入接觸,你會逐漸發現 RT-Thread 的魅力和它相較于其他同類型 RTOS
    的頭像 發表于 07-09 11:27 ?4489次閱讀
    <b class='flag-5'>RT-Thread</b>學習筆記 <b class='flag-5'>RT-Thread</b>的架構概述

    RT-Thread文檔_RT-Thread 簡介

    RT-Thread文檔_RT-Thread 簡介
    發表于 02-22 18:22 ?5次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> 簡介

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

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

    RT-Thread文檔_RT-Thread SMP 介紹與移植

    RT-Thread文檔_RT-Thread SMP 介紹與移植
    發表于 02-22 18:31 ?9次下載
    <b class='flag-5'>RT-Thread</b>文檔_<b class='flag-5'>RT-Thread</b> <b class='flag-5'>SMP</b> 介紹與移植

    基于RT-Thread Studio學習

    前期準備:從官網下載 RT-Thread Studio,弄個賬號登陸,開啟rt-thread學習之旅。
    的頭像 發表于 05-15 11:00 ?3838次閱讀
    基于<b class='flag-5'>RT-Thread</b> Studio學習

    RT-Thread啟動流程RT-Thread如何支持不同開發板?

    一個開發板上的RT-Thread啟動流程可能是首先從bsp?當中鏈接腳本指定的startup_xxx.S?中的入口函數(ENTRY)或者復位異常處理函數(ResetHandler)開始運行,這部分我們在講?bsp?支持時會詳細
    的頭像 發表于 08-10 15:29 ?1508次閱讀
    <b class='flag-5'>RT-Thread</b><b class='flag-5'>啟動</b><b class='flag-5'>流程</b>?<b class='flag-5'>RT-Thread</b>如何支持不同開發板?

    RT-Thread框架下的SMP支持

    使其支持 RT-Thread 框架下的 SMP,最近就一直在研究 SMP,并在 Raspberry-Pico 上做了一些實驗。
    的頭像 發表于 10-11 10:34 ?1071次閱讀
    <b class='flag-5'>RT-Thread</b>框架下的<b class='flag-5'>SMP</b>支持