99久久全国免费观看_国产一区二区三区四区五区VM_久久www人成免费看片中文_国产高清在线a视频大全_深夜福利www_日韩一级成人av

王超的小站
認證:VIP會員
所在專題目錄 查看專題
FreeRTOS移植詳解2-滴答定時器實現(基于Microchip dsPIC33C系列芯片)
FreeRTOS移植詳解3-內核裁剪(基于Microchip dsPIC33C系列芯片)
FreeRTOS移植詳解4-中斷配置(基于Microchip dsPIC33C系列芯片)
FreeRTOS移植詳解5-臨界段處理(基于Microchip dsPIC33C系列芯片)
FreeRTOS移植詳解6-任務堆棧初始化和啟動(基于Microchip dsPIC33C系列芯片)
FreeRTOS移植詳解7-任務切換(基于Microchip dsPIC33C系列芯片)
作者動態 更多
PIC24 & dsPIC33 MCU Bootloader開發
2021-11-08 15:12
PIC16 & PIC18 MCU Bootloader開發
2021-11-08 15:00
Python開發環境搭建(for Bootloader)
2021-11-08 14:58
Python開發環境搭建 (for Control)
2021-01-27 18:43
MCU擴展CAN/CAN FD接口方案-MCU軟件動手實驗
2020-11-25 14:11

FreeRTOS移植詳解7-任務切換(基于Microchip dsPIC33C系列芯片)

      經過上一節的介紹,我們已經清晰了任務堆棧初始化后任務堆棧的內容,及啟動任務時如何將堆棧內容恢復并跳轉到任務函數。那么本節接著介紹任務切換,任務切換決定了任務的執行順序,包括如優先級高的任務打斷優先級低的任務和同等優先級任務的時間片調度等。

      任務切換可以在兩種情況下進行,一種是執行一個系統調用,如直接調用引起任務切換的API函數,比如任務切換函數taskYIELD()。另一種是在滴答定時器Timer1中斷中執行任務切換。無論哪種方法,最終實際都是調用portYIELD()函數來實現的。為了深刻理解這個切換過程,我們有必要再一次回顧涉及到的基本匯編語法。

      我們首先看下portmacro.h中portYIELD()的宏定義,可以看出這里有個CALL語句,所以當前任務下一PC 執行地址將自動壓棧。

      接著我們看一下CALL調用的子函數vPortYield的內容,可以很容易的看出其首先按照堆棧初始化的方式進行壓棧,直到壓完uxCriticalNesting后將棧頂賦值給當前任務的TCB第一個成員變量pxTopOfStack;然受調用vTaskSwitchContext()來獲取下一個要運行的任務(如存在高優先級的任務),明確該任務堆棧的棧頂指針,先出棧uxCriticalNesting,然后接著順序出棧直到出棧SR,最后借助return匯編語句跳轉到下一個要運行任務的任務函數。

      最后在介紹一下時間片調度。FreeRTOS支持多個任務同時擁有一個優先級,同時允許一個任務運行一個時間片(一個時鐘節拍的長度)后讓出CPU的使用權,讓擁有同一個優先級的下一個任務運行。任務是否切換這是通過滴答定時器中斷中的xTaskIncrementTick()來判斷的,并且只有當configUSE_PREEMPTION和configUSE_TIME_SLICING都為1的時候才允許進行時間片調度。在xTaskIncrementTick()中會判斷當前任務的優先級下是否還有其他任務,如果有則返回pdTRUE,執行一次任務切換。


      至此已經講完了FreeRTOS在dsPIC33C系列芯片移植的所有內容,已經可以跑起來FreeRTOS的開發環境了,剩下的就是找一本講解FreeRTOS的書,逐步了解FreeRTOS自身的知識點,邊動手邊思考,相信大家一定可以將FreeRTOS熟練應用到后續的項目中去。

      額外的,還需要注意的是在例程中我定義了三個宏,通過這些宏可以區分port.c、portasm_dsPIC.S是針對dsPIC33C還是針對PIC24等。換句話說這個移植不僅針對于dsPIC33CK系列芯片,它更適用于Microchip全系16位MCU芯片。

聲明:本內容為作者獨立觀點,不代表電子星球立場。未經允許不得轉載。授權事宜與稿件投訴,請聯系:editor@netbroad.com
覺得內容不錯的朋友,別忘了一鍵三連哦!
贊 4
收藏 5
關注 43
成為作者 賺取收益
全部留言
0/200
成為第一個和作者交流的人吧
主站蜘蛛池模板: 俄罗斯ZOOM与人性ZOOM | 日日噜噜噜夜夜爽爽狠狠片 | 四虎最新影院 | 色综合色天天久久婷婷基地 | 欧美牲交a欧美牲交aⅴ免费 | caoporn最新| 国产成熟人妻换╳╳╳╳ | 日韩二区三区四区 | 久久久久久久国产 | 野花社区www官网在线观看 | 国产夜色av | 91麻豆免费视频 | 一区二区三区四区日韩 | 国产永久福利 | 制服丝袜自拍另类第1页 | 午夜日韩在线观看 | 色情久久久AV熟女人妻网站 | 日本免费看黄色 | 2021全国产精品网站 | 久久人人爽人人爽人人爽 | 99在线精品一区二区三区 | 国产在线乱码一区二三区 | 青娱乐99 | 国产鲁鲁视频在线观看 | 二区在线观看 | 俺去啦久久草在线视频 | www.夜夜 | 噜噜爽av99 | 天天狠天天情天天躁 | 日本hdxxxx少妇1819 | 国产一级二级视频 | 国产日韩精品中文字无码樱花 | 91精品国产综合久久久久久蜜臀 | 国产秋霞理论久久久 | 人与动人物视频a级毛片 | 亚洲综合在线一区 | 各种场合大胆露出在线看 | 国产第二区国产一级片播放 | 亚洲国产精品久久亚洲精品大牛 | 国产精品久久久久久久毛片动漫 | 97久久人人爽人人爽人人片 |