freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內容

ucos-ii在stm32上的移植-資料下載頁

2025-05-13 11:59本頁面
  

【正文】 斷服務子程序的最后, OSInitExit()函數會調用 OSInitCtxSw()做任務切換。這樣做的目的主要是能夠盡快地讓高優(yōu)先級的任務得到響應,保證系統(tǒng)的實時性能。 OSInitCtxSw()與 OSCtxSw()都是用于任務切換函數,其區(qū)別在于,在 OSIntCtxSw()中無需再保存 CPU寄存器,因為在調用OSIntCtxSw()之前已發(fā)生了中斷, OSIntCtxSw()已將默認的 CPU寄存器保存到被中斷的任務堆棧中。 OSIntCtxSw PUSH {R4, R5} LDR R4, =NVIC_INT_CTRL。 觸發(fā)軟件中斷 LDR R5, =NVIC_PENDSVSET STR R5, [R4] POP {R4, R5} BX LR NOP OSCtxSw() OSIntCtxSw()這兩個函最終都會觸發(fā) PendSV異常 作者 :四川師范大學成都學院 屈召貴 :35247485 8/17/2021 24 OSPendSV()函數 OSPendSV()是 PendSV(可掛起中斷服務 )的中斷處理函數,它負責 181。C/OSII的全部上下文切換。這是 ARM CortexM3提倡的上下文切換方法。使用這程方法的好處理當發(fā)生任何的異常時, Cortexm3自動保存 CPU的一半通用寄存器到預先指定的堆棧中,并且在退出異常前按順序恢復寄存器。 OSPendSV()只需保存剩下的 R4R11寄存器并且調整好堆棧指針。這種方法速度快,充分體現了 ARM CortexM3的優(yōu)勢,而且無論是任務還是異常均可觸發(fā)此函數切換上下文。注意使用前應在 。 作者 :四川師范大學成都學院 屈召貴 :35247485 8/17/2021 25 作者 :四川師范大學成都學院 屈召貴 :35247485 8/17/2021 26 ARM CortexM3任務切換示意圖 作者 :四川師范大學成都學院 屈召貴 :35247485 8/17/2021 27 (4)OSTickISR():時鐘節(jié)拍中斷服務函數 時鐘節(jié)拍是特定的周期性中斷,是由硬件定時器產生的。時鐘節(jié)拍式中斷使得內核可將任務延時若干個整數時鐘節(jié)拍,以及當任務等待事件發(fā)生時,提供等待超時的依據。時鐘節(jié)拍頻率越高,系統(tǒng)的額外開銷越大。中斷間的時間間隔取決于不同的應用。 OSTickISR()首先將 CPU寄存器的值保存在被中斷任務的堆棧中,之后調用OSIntEnter()。隨后, OSTickISR()調用 OSTimeTick,檢查所有處于延時等待狀態(tài)的任務,判斷是否有延時結束就緒的任務。 OSTickISR()最后調用 OSIntExit()。如果在中斷中(或其他嵌套的中斷)有更高優(yōu)先級的任務就緒,并且當前中斷為中斷嵌套的最后一層,那么 OSIntExit()將進行任務調度。 作者 :四川師范大學成都學院 屈召貴 :35247485 8/17/2021 28 ** Function name: tickInit ** Descriptions: 初始化 uC/OSII的時鐘源(系統(tǒng)定時器) static void tickInit (void) { SysTickPeriodSet((INT32U)(SysCtlClockGet() / OS_TICKS_PER_SEC) 1 )。 SysTickEnable()。 SysTickIntEnable()。 } ** Function name: tickISRHandler ** Descriptions: 系統(tǒng)定時器超時中斷 void tickISRHandler (void) { if OS_CRITICAL_METHOD == 3 OS_CPU_SR cpu_sr。 endif OS_ENTER_CRITICAL()。 OSIntNesting++。 OS_EXIT_CRITICAL()。 OSTimeTick()。 /* Call uC/OSII39。s OSTimeTick()*/ OSIntExit()。 } uC/OSII里面的東東 20 作者 :四川師范大學成都學院 屈召貴 :35247485 8/17/2021 29 移植 C語言編寫的 6個與操作系統(tǒng)相關的函數 6個和 CPU相關的函數,這 6個函數為: 這些函數中,唯一必須移植的是任務堆棧初始化函數 OSTaskStkInit()。這個函數在任務創(chuàng)建時被調用,負責初始化任務的堆棧結構并返回新堆棧的指針 stk。堆棧初始化工作結束后,返回新的堆棧棧頂指針。 OSTaskStkInit() OSTaskDelHook() OSTaskSwHook() OSTaskStartHook() OSTimeHook() 作者 :四川師范大學成都學院 屈召貴 :35247485 8/17/2021 30 初始化堆棧 作者 :四川師范大學成都學院 屈召貴 :35247485 8/17/2021 31 作者 :四川師范大學成都學院 屈召貴 :35247485 8/17/2021 32
點擊復制文檔內容
環(huán)評公示相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1