女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

基于RISC-V內核單片機移植RTOS實時操作系統(三)

CHANBAEK ? 來源:CSDN-借過風景 ? 作者:CSDN-借過風景 ? 2023-01-31 13:52 ? 次閱讀

接著以WCH沁恒微電子的赤菟V103(CH32V103)和赤菟V307(CH32V307)兩款RISC-V內核單片機來詳細說下針對RISC-V平臺,移植實時操作系統的注意點。

今天聊下移植RTOS時RISC-V內核時單片機切換至第一個任務。

RT-Thread為例,rt-thread和其他RTOS有點區別的是其gcc下的入口函數定義為entry,而main函數則可以被初始化為線程之一,圖1為rt-thread的詳細的啟動流程。rt-thread定義一個rt_thread類型的全局指針rt_current_thread,用于實時獲取當前運行的線程。從圖9可知,硬件啟動后進rtthread_startup,其開始進行了必要的初始化,如系統滴答定時器、堆、串口、調度器、定時器、main線程、空閑idle線程等等,最后執行了rt_system_scheduler_start后轉交調度器執行。其內容如下圖2所示。

poYBAGECCgiAaInbAAEs3dd2mrs534.png

圖1 rt_thread啟動流程

pYYBAGPYrEuAWC6IAADViZVU80o027.png

圖2 調度器啟動

由圖2可知,其會查找優先級較高的就緒組優先級,并根據該優先級查找就緒鏈表,獲取優先級較高的任務并得到控制塊to_thread,然后調用rt_hw_context_switch_to切換至該任務。其是一段匯編實現的代碼,傳入的參數為該任務的sp指針。由前文可知,我們可以根據to_thread->sp得到該任務的堆棧位置,該堆棧的頂部空間存儲了執行該任務時cpu寄存器的值,由此也可推測該部分匯編代碼主要完成的就是從sp處恢復cpu寄存器值,并轉而執行該任務。其代碼如下圖3所示,詳見注釋。

poYBAGPYrEuAa2jJAAEViOd45Vo522.png

poYBAGPYrEuAcgnxAABtrxtHDbE317.png

圖3 切換至第一個任務

由上注釋分析可知,rt_hw_context_switch_to通過傳入的sp,恢復cpu寄存器,其中mepc寄存器任務初始化時設置為任務的入口地址,ra寄存器設置為返回地址,其指向公用函數_rt_thread_exit。 當mret返回后,pc更新為mepc值,即轉向執行任務函數,若其不是一個持續執行的[while(1)]函數,那么其返回至_rt_thread_exit,刪除該任務,并切換至其他任務。 由此也可理解圖2中,最后一句注釋“never

come back”的含義了,一旦開始執行任務,pc值被改變,再不會回到調用的地方。

其他RTOS中也有和此匯編函數類似的匯編實現,例如liteOS_M中的HalStartToRun,TencentOS_Tiny中的port_sched_start等。

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

    關注

    6063

    文章

    44925

    瀏覽量

    647006
  • 移植
    +關注

    關注

    1

    文章

    394

    瀏覽量

    28580
  • RTOS
    +關注

    關注

    24

    文章

    841

    瀏覽量

    120769
  • 實時操作系統

    關注

    1

    文章

    202

    瀏覽量

    31214
  • RISC-V
    +關注

    關注

    46

    文章

    2486

    瀏覽量

    48278
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    什么是實時操作系統(RTOS)

    實時操作系統RTOS)是一種專為實時應用程序設計的操作系統實時應用程序需要在特定時間內做出預
    的頭像 發表于 11-23 17:14 ?7299次閱讀

    risc-v的mcu對RTOS兼容性如何

    RISC-V的MCU對RTOS實時操作系統)的兼容性主要取決于多個因素,包括RTOS的版本、RISC-
    發表于 05-27 16:26

    RISC-V中***會子活動之一:基于RISC-V的鴻蒙開發板設計

    的新一代物聯網操作系統系統RISC-V單片機不同于ARM架構的單片機RISC-V+鴻蒙,目
    發表于 06-03 16:26

    如何實現一個RISC-V內核架構的芯片移植工作

    取決于 RTOS 如何實現當然,也可以使用 Software interrupt 來做任務切換, libcpu/risc-v/nuclei 這里的內核移植,就是使用了 Software interrupt
    發表于 03-25 10:11

    基于RT-Thread操作系統衍生rt-smart實時操作系統簡介

    ,例如 ARM Cortex-A 系列芯片,MIPS 芯片,帶 MMU 的 RISC-V 芯片等。rt-smart 在 RT-Thread 操作系統的基礎上啟用獨立、完整的進程方式,同時以混合微內核模式
    發表于 06-22 17:56

    基于實時操作系統單片機應用系統設計

    介紹了Small RTOS 51 多任務操作系統的基本原理,結合單片機控制的電子存包柜,簡要介紹了移植small RTOS51 及通過消息隊
    發表于 01-06 16:21 ?51次下載

    關于單片機與嵌入式、操作系統RTOS之間的關系詳解

    這篇文章我們就來聊一下關于單片機與嵌入式、操作系統RTOS 之間的那些事!通過這篇文章,讓你操作系統實時性有一個
    的頭像 發表于 03-29 14:20 ?8492次閱讀
    關于<b class='flag-5'>單片機</b>與嵌入式、<b class='flag-5'>操作系統</b>與 <b class='flag-5'>RTOS</b>之間的關系詳解

    實時操作系統Free RTOS的詳細介紹

    ,可基本滿足較小系統的需要。 由于RTOS需占用一定的系統資源(尤其是RAM資源),只有μC/OS-II、embOS、salvo、FreeRTOS等少數實時
    發表于 06-21 14:30 ?6638次閱讀

    轉載:DIY:給單片機寫個實時操作系統內核

    轉載:DIY:給單片機寫個實時操作系統內核
    發表于 11-13 19:36 ?1次下載
    轉載:DIY:給<b class='flag-5'>單片機</b>寫個<b class='flag-5'>實時</b><b class='flag-5'>操作系統</b><b class='flag-5'>內核</b>!

    基于精簡指令集的RISC-V內核單片機

    RISC-V就不必多說了,詳細大家都了解。它是一個基于精簡指令集的開源指令集架構。與主流的主流的架構為x86與ARM架構不同,其特點就是完全開源。今天跟大家一起盤點一下國產RISC-V內核
    的頭像 發表于 10-17 16:49 ?2641次閱讀

    基于RISC-V內核單片機移植RTOS實時操作系統(一)

      ARM上移植實時操作系統大家可能比較熟悉,且例程較多,對于RISC-V內核單片機,可能相對
    的頭像 發表于 01-31 12:08 ?3227次閱讀
    基于<b class='flag-5'>RISC-V</b><b class='flag-5'>內核</b><b class='flag-5'>單片機</b><b class='flag-5'>移植</b><b class='flag-5'>RTOS</b><b class='flag-5'>實時</b><b class='flag-5'>操作系統</b>(一)

    基于RISC-V內核單片機移植RTOS實時操作系統(二)

      今天聊下移植RTOSRISC-V內核單片機任務棧保存哪些內容。
    的頭像 發表于 01-31 13:50 ?1897次閱讀
    基于<b class='flag-5'>RISC-V</b><b class='flag-5'>內核</b><b class='flag-5'>單片機</b><b class='flag-5'>移植</b><b class='flag-5'>RTOS</b><b class='flag-5'>實時</b><b class='flag-5'>操作系統</b>(二)

    基于RISC-V內核單片機移植RTOS實時操作系統(四)

     接著以WCH沁恒微電子的赤菟V103(CH32V103)和赤菟V307(CH32V307)兩款RISC-V
    的頭像 發表于 01-31 13:54 ?1898次閱讀
    基于<b class='flag-5'>RISC-V</b><b class='flag-5'>內核</b><b class='flag-5'>單片機</b><b class='flag-5'>移植</b><b class='flag-5'>RTOS</b><b class='flag-5'>實時</b><b class='flag-5'>操作系統</b>(四)

    Green Hills Software 為 Imagination RISC-V CPU 增加量產就緒的 RTOS 和工具支持

    認證的實時操作系統RTOS)以增強生態系統支持。該合作將繼續擴展到 ImaginationCatapult CPU 系列的未來產品上。 μ- veloSity
    的頭像 發表于 07-06 10:15 ?775次閱讀
    Green Hills Software 為 Imagination <b class='flag-5'>RISC-V</b> CPU 增加量產就緒的 <b class='flag-5'>RTOS</b> 和工具支持

    單片機操作系統有哪些

    單片機操作系統RTOS)是一種專門設計用于單片機操作系統,它可以提供任務調度、內存管理、設備驅動等功能,幫助程序員更高效地開發嵌入式
    的頭像 發表于 12-08 16:18 ?6520次閱讀