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

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

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

3天內不再提示

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

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

ARM上移植實時操作系統大家可能比較熟悉,且例程較多,對于RISC-V內核的單片機,可能相對比較陌生。下面結合WCH沁恒微電子的赤菟V103(CH32V103)和赤菟V307(CH32V307)兩款RISC-V內核芯片來詳細說下針對RISC-V平臺,移植實時操作系統的注意點。

之所以選擇赤菟V103和赤菟V307兩個芯片主要是其極具代表性:首先,直觀上其外設的使用方法和我們之前熟悉的F103,F107等是兼容的,這樣降低了我們使用和移植時的難度,基于WCH提供的外設庫,我們以前上層的代碼甚至于不用修改可直接使用。其次,赤菟V103是WCH RISC-V青稞內核家族中的青稞V3A內核,V307為青稞V4F內核,青稞V3內核支持RV32IMAC指令集,即除支持RISC-V基本的32位整數指令集外,還支持硬件乘除法,原子指令,壓縮指令。青稞V4F在青稞V3A的基礎上增加了單精度硬件浮點,并且其性能也比青稞V3A高。除此所有的青稞V4內核還支持自定義壓縮指令-XW擴展,包括以下指令c.lbu/c.lhu/c.sb/c.sh/c.lbusp/c.lhusp/c.sbsp/c.shsp。

這里需要注意的是一般情況下,移植RTOS的時需要關閉硬件壓棧,因為在切換任務時,我們希望自己控制出棧入棧的內容。但是針對青稞V4F核,CSR 0x804中有增加控制位(bit5)GIHWSTKNEN(全局中斷和硬件壓棧關閉使能),可以進中斷時置位該位,關閉中斷和硬件壓棧,我們手動保存當前線程棧,恢復新線程棧,中斷mret返回后,硬件自動清除該位,恢復中斷和硬件壓棧使能。這樣即可保證RTOS下,硬件壓??烧J褂?,保證RTOS下的中斷響應速度。

今天聊下需要移植RTOS時RISC-V內核單片機 需要保存的寄存器

RISC-V寄存器如下圖1所示,其中x0-x31為整形寄存器,f0-f31為浮點寄存器(青稞V3沒有浮點寄存器)。 所有帶caller的寄存器,當發生中斷時需要保存,值得注意的是,WCH的硬件壓棧保存的寄存器僅僅保存整數的16個caller saved 寄存器。 正常一個中斷函數的寄存器保存我們不用關心,編譯器會幫我們做的很好。 但是當我們從一個匯編入口進中斷函數的時候這些過程就不得不由我們自己來實現。 寄存器中幾個相對特殊的x0恒為0,x1是返回地址寄存器ra,函數調用時用來存放返回地址,x2為堆棧指針sp,x3為gp全局指針,用來尋址全局變量。

poYBAGPYk3eAFTd8AAHqW9qrr3s910.png

圖1 RISC-V寄存器

RISC-V內核進中斷需要保存caller saved(顧名思義,調用者需要保存)的寄存器。 當不開啟硬件浮點時,編譯器會把16個寄存器在中斷函數開始時存入堆棧,中斷返回前恢復,如下圖2和圖3所示。 我們內核支持硬件壓棧,硬件保存和恢復的也正是這16個寄存器。 使用硬件壓棧時需要使能硬件功能,即硬件壓棧使能(不同芯片配置位置不同,詳見手冊中斷章節),同時也需要通知編譯器不自動生成圖2和圖3中的軟件出入棧的代碼,即在MRS聲明中斷函數時由__attribute__((interrupt("WCH-Interrupt-fast")))方式定義編譯器不自動添加軟件出入棧代碼, 由__attribute__((interrupt()))方式定義編譯器添加軟件出入棧的代碼。

pYYBAGPYk3eAEDR6AACf8EMfqRk260.png

圖2 整形寄存器入棧

pYYBAGPYk3eADGk3AACGkj2mKOw060.png

圖3 整形寄存器出棧

當開啟硬件壓棧并且編譯器中聲明使用硬件壓棧后,中斷函數匯編代碼如下圖4所示。 可見進入中斷后直接執行的中斷代碼,形如圖2和圖3中的16個寄存器的入棧和出棧由硬件在中斷開始和結束時自動完成。 同時也可以看出整個中斷函數可以減少34條指令。

pYYBAGPYk3eAJYPPAAC03o1uPqQ012.png

圖4 開啟硬件壓棧后中斷函數匯編代碼

由此也可知道前文說的一般中斷切換上下文時不開啟硬件壓棧的原因:開啟后中斷返回時硬件會復寫16個caller saved寄存器。

當開啟硬件浮點時,除了上述16個整形還會增加20個浮點寄存器,如下圖5所示。 由此也可以看出,硬件壓棧只對整形的寄存器生效。

poYBAGPYk3eAeIhtAACn65lMYK4894.png

pYYBAGPYk3eAJu4zAACii2XralM873.png

圖5 浮點寄存器出入棧

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

    關注

    6043

    文章

    44617

    瀏覽量

    638184
  • ARM
    ARM
    +關注

    關注

    134

    文章

    9164

    瀏覽量

    369012
  • RTOS
    +關注

    關注

    22

    文章

    819

    瀏覽量

    119870
  • 實時操作系統

    關注

    1

    文章

    199

    瀏覽量

    30819
  • RISC-V
    +關注

    關注

    45

    文章

    2322

    瀏覽量

    46524
收藏 人收藏

    評論

    相關推薦

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

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

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

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

    RISC-V MCU開發 ():集成開發環境

    RISC-V系列單片機中斷硬件自動保存上下文功能的支持。在包含通用RISC-V/ARM項目開發功能的基礎上,MRS還集成了跨內核單片機工程
    發表于 09-22 14:44

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

    處理時鐘節拍Cache (可選)libcpu 移植相關 API 介紹RISC-V 內核移植RT-Thread RISC-V 內核架構介紹在
    發表于 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次下載

    RISC-V會是道曙光嗎?RISC-V與RUST相遇引發操作系統教學新嘗試

    身為研究操作系統的老師,陳渝認為,RISC-V精簡指令集聽起來屬于硬件范疇,但是其實RISC-V與軟件有很大的相關性,因為作為重要系統軟件的操作系統
    的頭像 發表于 04-28 18:57 ?1.6w次閱讀

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

    這篇文章我們就來聊下關于單片機與嵌入式、操作系統RTOS 之間的那些事!通過這篇文章,讓你操作系統
    的頭像 發表于 03-29 14:20 ?7977次閱讀
    關于<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 ?6336次閱讀

    轉載: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架構不同,其特點就是完全開源。今天跟大家起盤點下國產
    的頭像 發表于 10-17 16:49 ?2333次閱讀

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

      今天聊下移植RTOSRISC-V內核單片機任務棧保存哪些內容。
    的頭像 發表于 01-31 13:50 ?1694次閱讀
    基于<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:52 ?1896次閱讀
    基于<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 ?1569次閱讀
    基于<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 ?598次閱讀
    Green Hills Software 為 Imagination <b class='flag-5'>RISC-V</b> CPU 增加量產就緒的 <b class='flag-5'>RTOS</b> 和工具支持
    主站蜘蛛池模板: 日韩视频中文字幕精品偷拍 | 国语自产视频在线不卡 | 亚洲狠狠97婷婷综合久久久久 | 成 人 免费 黄 色 网站无毒下载 | 老师你下面好紧夹死了 | 免费观看成人毛片 | 菠萝菠萝蜜在线观看视频 | 高清无码中文字幕在线观看视频 | 日产2021免费一二三四区在线 | 一个人在线观看免费中文www | 欧美一区二区视频高清专区 | 蜜芽亚洲欧美一区二区电影 | 国产人妻麻豆蜜桃色69 | 久久99精品AV99果冻 | 小夫妻天天恶战 | 男人的天堂色偷偷 | 美女扒开腿让男生桶免费看动态图 | 国产精品AV无码免费播放 | 成人无码精品一区二区在线观看 | 免费精品国产人妻国语麻豆 | 爆乳啪啪无码成人二区亚洲欧美 | 污污内射在线观看一区二区少妇 | 青青青手机视频 | 99热这里只有是精品 | 99热这里只有精品 | 久久国产亚洲电影天堂 | 久草国产在线播放 | 男女AA片免费 | 欧美一区二区三区播放 | 护士WC女子撒尿 | 开心成人社区 | 北条麻妃久久99精品 | 用快播看av的网站 | 菠萝菠萝蜜免费播放高清 | 亚洲在线国产日韩欧美 | AV久久久囯产果冻传媒 | 性满足久久久久久久久 | 影音先锋男人av橹橹色 | 亚洲福利区 | 一个人HD高清在线观看免费视频 | 九色PORNY真实丨国产大胸 |