色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
电子发烧友
开通电子发烧友VIP会员 尊享10大特权
海量资料免费下载
精品直播免费看
优质内容免费畅学
课程9折专享价
創作中心

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

3天內不再提示

基于Tricore架構的RTThread多核實現

RTThread物聯網操作系統 ? 來源:未知 ? 2023-09-12 18:40 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在《基于Hightec+TC375TP的RT-Thread移植詳解》一文中,基于Tricore實現了單核RTThread的移植。最近,花了些時間完成遺留的任務:基于Tricore的多核移植。目前,多數項目中的單片機都具備多核,多核單片機似乎已經是項目的標配。如果搞汽車電子,不理解OS(Operating System),似乎感覺少了什么,就好像吃面不吃蒜的感覺。對于多核,又分為同構(homogeneous)多核和異構(heterogeneous)多核。
  • 同構(homogeneous)多核:單片機中,多個Core的結構相同,各個Core用的指令集相同。
  • 異構(heterogeneous)多核單片機中,多個Core的結構不同,不同的Core架構,使用不同的指令集。

本文基于TC397+Tasking實現SMP(Symmetric Multi-Processing,對稱多處理),這里的多核屬于同構多核。相對于SMP,AMP(Asymmetric Multi-Processing,非對稱多處理)主要用于異構多核處理。

本文,主要記錄RTThread多核實現過程中的"雷區"。

1、RTThread多核實現細節

(一)各Core實現硬件初始化

由于各個Core所使用的硬件資源不同,因此,各個Core在初始化時,需要實現對應的外設。eg:提供心跳的系統定時器(System Timer),本文Core1的外設初始化在Core1_init()中完成。從核除了初始化自身的硬件以外,還需要調用rt_system_scheduler_start()接口啟動調度表,代碼示意如下所示:

提示:上述代碼中,從核(Core1)初始化了一個線程。當然,在主核(Core0)完成所有核的線程初始化也可以。

(二)任務初始化

在Tricore架構中,雖然不同Core使用的CSA(Context Save Areas)不同,但是,線程Thread(等同Task)的初始化可以在主核中完成,之后通過rt_thread_control()接口,為線程靜態分配控制的Core,eg:分配Core1調度led_thread_thread線程,代碼示意如下:

(三)線程間任務切換

如果不是systick觸發的線程切換,即:由于線程狀態掛起觸發的線程切換時,需要判斷線程是否上鎖,如果已經解鎖,則需要解鎖之后在進行線程切換,避免死鎖。多核rt_hw_context_switch()的接口實現如下所示:

(四)中斷切換標志置位時機

每次程序進入系統心跳中斷服務例程時,需要先置位中斷切換標志Flag,完成系統心跳的累加后復位。注意:不同于單核處理,多核處理中,此處還需要對中斷切換進行處理,即:判斷程序是否超時,如果超時,則對應的pcpu->irq_switch_flag置位,需要進行中斷線程切換處理。代碼實現如下所示:

(五)線程上鎖/解鎖操作

上鎖處理,對應代碼實現如下所示:

解釋:__cmpswapw((address), ((unsigned long)value), (condition) ),上鎖處理時,如果address處的值==condition,則將value值賦寫到address位置。在Tricore架構中,__cmpswapw操作是原子操作,可以避免多核的并行訪問。

解鎖處理,對應的代碼實現如下所示:

注意:上鎖/解鎖必須成對出現。如上代碼中,上鎖/解鎖處理中都有一個while操作,這也是為什么過多的spinlock會影響CPU效率的原因。
(六)主核(Core0)與從核(Core1)同步時機
主核(Core0)與從核(Core1同步時機可以選擇在各自硬件初始化完成后進行,否則,從核可能會訪問到空地址,進而進入Trap。完成同步后,主/從核進行線程操作,代碼示意如下:

(七)空閑線程時間片設置
本文修改了空閑線程的默認時間片,由默認的32tick修改為10個tick,目的:保證調度的準確性。為什么這樣改?暫時未細查,留給未來。

(八)確認線程是否在目標Core運行

如果想確認線程是否在目標Core運行,在目標線程設置一個斷點(Breakpoint)即可,如下所示:

2、RTThread任務調度

本文Core0創建了一個主線程main_thread(周期:50ms),一個空閑線程idle[0];Core1創建了兩個線程led_thread_thread(周期:20ms)、core1_thread_1(周期:30ms),以及一個空閑線程idle[1]。
(一)main_thread運行周期

(二)led_thread_thread運行周期

(三)core1_thread_1運行周期

提示:本文所有線程,靜態創建。

2、源碼鏈接

多核與單核的切換,在rtconfig.h文件中,使能或者關閉宏RT_USING_SMP即可打開/禁用SMP。

本文的RTThread中,啟用了2個Core(主核Core0,一個從核Core1),如果需要啟用更多的從核,可以在本文的基礎上打開其余從核,其余從核的處理與Core1類似。

受限于時間和我的水平,本文在零零碎碎的時間里整理完,實現未必最優。而且,我并未嚴格的按照RTThread的架構處理,寫的稍微有些隨心所欲。大家可以基于我的工程進行調試和二次開發,以便于達到理解OS內核、任務切換等相關知識。

源碼鏈接地址如下:

https://github.com/Kaixinguo2021/Tasking_TC397_MultiCore_RTThread.git

往期精彩回顧




Autosar往期精彩文章匯總:1~70
Autosar往期精彩文章匯總:71~100
Autosar往期精彩文章匯總:101~150

Autosar往期精彩文章匯總:151~200

Autosar往期精彩文章匯總:201~251

CAN通信:Busoff問題知多少

NVM基礎:解讀"切頁"的頭部信息

診斷基礎:Event內存管理

Autosar通信模塊COM:Update-Bits詳解

Lin總線基礎:為什么Master節點需要外接上拉電阻


點擊下方關注,一起聊聊Autosar/嵌入式,如果需要,聯系作者進群,給你更專業的解答


———————End——————



點擊閱讀原文報名


原文標題:基于Tricore架構的RTThread多核實現

文章出處:【微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

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

    關注

    32

    文章

    1412

    瀏覽量

    42009

原文標題:基于Tricore架構的RTThread多核實現

文章出處:【微信號:RTThread,微信公眾號:RTThread物聯網操作系統】歡迎添加關注!文章轉載請注明出處。

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    rtthread studio的編輯器如何開啟自動換行功能?

    rtthread studio的編輯器如何開啟自動換行功能?
    發表于 06-13 08:16

    知識分享 | 評估模型架構——如何實現

    確保良好的模型架構對于開發安全和可靠的軟件非常重要。本文為您介紹MES Model Examiner? (MXAM)如何優化模型架構,簡化復雜度管理步驟,并最終提升軟件質量。
    的頭像 發表于 06-05 11:46 ?155次閱讀
    知識分享 | 評估模型<b class='flag-5'>架構</b>——如何<b class='flag-5'>實現</b>?

    Art-Pi2的BootLoader用rtthread有什么特殊的作用嗎?

    我的基礎不太好,在創建artpi2的bootloader的例程的時候發現bootloader編譯完好像不小,然后發現bootloader里面也用上了rtthread的系統,不太明白這里使用rtthread有沒有什么特殊的作用。
    發表于 05-27 06:08

    熱成像儀為何都在瘋狂卷多核處理器?“多核大戰”背后的真相你知道嗎?

    熱成像儀進入“多核”時代,這不是噱頭,而是需求在變。 從黑夜中識別生命體,到復雜地形中實現熱源追蹤,過去主要用于軍事和工業的熱成像儀,如今正越來越多地進入民用市場。而隨著使用場景的復雜化,“看得見
    的頭像 發表于 04-27 15:41 ?266次閱讀

    三種藍牙架構實現方案(藍牙協議棧方案)

    藍牙架構實現方案有哪幾種?我們一般把整個藍牙實現方案叫做藍牙協議棧,因此這個問題也可以這么闡述:藍牙協議棧有哪些具體的架構方案?在藍牙協議棧中,host是什么?controller是什
    的頭像 發表于 04-08 15:35 ?705次閱讀
    三種藍牙<b class='flag-5'>架構</b><b class='flag-5'>實現</b>方案(藍牙協議棧方案)

    【迅為電子】10路UART、1TOPS的NPU、2路網口、異構多核架構、超高性價比!RK3562核心板強烈推薦

    【迅為電子】10路UART、1TOPS的NPU、2路網口、異構多核架構、超高性價比!RK3562核心板強烈推薦
    的頭像 發表于 03-27 11:04 ?558次閱讀
    【迅為電子】10路UART、1TOPS的NPU、2路網口、異構<b class='flag-5'>多核</b><b class='flag-5'>架構</b>、超高性價比!RK3562核心板強烈推薦

    請問移植rtthread nano版時官網里面系統時鐘函數在哪里實現的?

    我在已有的華大HC32開發板的LED例程里我找不到官網移植教程里的這三個函數,文檔也沒說明這三個函數的移植步驟?到底在哪里找的?是rtthread里的實現還是需要用戶自己找函數實現
    發表于 03-10 06:16

    QorIQ?T1042多核處理器

    QorIQ?T1042多核處理器T1042 QorIQ高級多核處理器綜合了數據網絡、電信/數據通訊、無線網絡基礎設施和國防軍事/航天工程應用所需要的性能卓越數據線路加速及網絡和外圍總線接口
    發表于 01-10 08:48

    TMS320F2837xD雙核實時微控制器技術參考手冊

    電子發燒友網站提供《TMS320F2837xD雙核實時微控制器技術參考手冊.pdf》資料免費下載
    發表于 11-08 14:10 ?37次下載
    TMS320F2837xD雙<b class='flag-5'>核實</b>時微控制器技術參考手冊

    rtthread支持nandflash掛載fatfs文件系統嗎?

    rtthread支持nandflash掛載fatfs文件系統嗎
    發表于 09-27 09:45

    如何更新rtthread studio自帶的默認庫?

    我用rtthread studio創建了一個RTThread工程后,再用STM32CubeMAX配置外設,并生成代碼。但我發現工程使用的HAL庫并不是STM32CubeMAX提供的庫,而是
    發表于 09-27 07:02

    rtthread5.0.2使用時僅使能外部rtc,會遇到獲取時間一直不變的現象,為什么?

    rtthread5.0.2使用時僅使能外部rtc,在使用上會遇到獲取時間(gettimeofday)一直不變的現象 rtthread5的框架有所變化,其中c庫中gettimeofday等函數的實現
    發表于 09-26 06:36

    比亞迪彰顯中國制造的硬核實

    以“中國品牌,世界共享;國貨潮牌,品筑未來”為主題的2024年中國品牌日活動在上海拉開帷幕,本次活動采用線上線下相結合模式舉辦,其中線下活動地點在上海世博展覽館,比亞迪攜旗下三款新能源車型及核心新能源產品隆重亮相,全方位展示比亞迪踐行自主創新的最新成果,彰顯中國制造的硬核實力。
    的頭像 發表于 09-13 10:53 ?828次閱讀

    請問AURIX TC3xx tricore架構下浮點運算和將浮點數小數點去掉變成整數來計算哪種方式更加節省算力?

    AURIX TC3xx tricore架構下浮點運算和將浮點數小數點去掉變成整數來計算哪種方式更加節省算力? 比如一個浮點數12.89V,如果將其寫成12890mV,再參與計算,哪種方式更加節省算力
    發表于 08-26 06:54

    多核CPU的優勢是什么

    多核CPU(Central Processing Unit,中央處理器)作為現代計算機技術的重要里程碑,其優勢在于顯著提升了計算性能、多任務處理能力、系統穩定性以及能效比等多個方面。以下將詳細闡述多核CPU的幾大優勢,并結合相關數據和背景進行說明。
    的頭像 發表于 08-22 14:30 ?5398次閱讀
    主站蜘蛛池模板: 伊人久久大香线蕉综合影 | 97亚洲狠狠色综合久久久久 | 国产精品视频人人做人人爽 | 精品国产99久久久久久麻豆 | 外国三级片名 | 丰满人妻熟女色情A片 | 亚洲 日韩 欧美 另类 蜜桃 | 欧美亚洲国产手机在线有码 | 国产成人精品视频播放 | 女王羞辱丨vk | 内射人妻无码色AV麻豆去百度搜 | 国产精品99精品无码视亚 | 久久99国产亚洲高清观着 | 国产精品毛片AV久久97 | 1313久久国产午夜精品理论片 | 91嫩草视频在线观看 | 国产欧美在线亚洲一区刘亦菲 | 墨西哥美女主播 | 2021全国精品卡一卡二 | 奶头被客人吸得又红又肿 | 亚洲中文久久精品AV无码 | 欧美最猛性XXX孕妇 欧美最猛性xxxxx亚洲精品 | 久久精品视频15人人爱在线直播 | 在线观看永久免费网址 | 55夜色66夜亚洲精品播放 | 亚洲综合色五月久久婷婷 | 97在线播放视频 | 天美传媒在线观看免费完整版 | 777久久人妻少妇嫩草AV蜜桃 | 先锋影音 av| 91情国产l精品国产亚洲区 | 草莓视频免费看 | 青青草在现线免费观看 | 亚洲日本在线不卡二区 | 国产午夜精品理论片久久影视 | 偷拍自怕亚洲在线第7页 | AV久久久囯产果冻传媒 | 午夜成a人片在线观看 | 色噜噜噜噜亚洲第一 | 欧美亚洲另类热图 | 亚洲视频在线观看地址 |

    電子發燒友

    中國電子工程師最喜歡的網站

    • 2931785位工程師會員交流學習
    • 獲取您個性化的科技前沿技術信息
    • 參加活動獲取豐厚的禮品