嵌入式学习小组
直播中

张梅

7年用户 150经验值
私信 关注

请问哪位大神可以分享ucos ii中OSSched的函数?

ucos ii 中OSSched()函数在哪呀,在原子哥给的例程中搜不到。还有我正在学ucos ii 有什么STM32f4关于ucos ii的历程能给我学习学习吗

回帖(7)

徐睫郁

2020-4-26 11:48:51
由其他函数替代其功能:
[C] 纯文本查看 复制代码
PendSV_Handler    CPSID   I                                                   ; Prevent interruption during context switch    MRS     R0, PSP                                             ; PSP is process stack pointer 如果在用PSP堆栈,则可以忽略保存寄存器,参考CM3权威中的双堆栈-白菜注    CBZ     R0, PendSV_Handler_Nosave                    ; Skip register save the first time;Is the task using the FPU context? If so, push high vfp registers.TST R14, #0x10IT EQVSTMDBEQ R0!, {S16-S31}     SUBS    R0, R0, #0x20                                       ; Save remaining regs r4-11 on process stack    STM     R0, {R4-R11}    LDR     R1, =OSTCBCur                                       ; OSTCBCur->OSTCBStkPtr = SP;    LDR     R1, [R1]    STR     R0, [R1]                                            ; R0 is SP of process being switched out                                                                ; At this point, entire context of process has been savedPendSV_Handler_Nosave    PUSH    {R14}                                               ; Save LR exc_return value    LDR     R0, =OSTaskSwHook                                   ; OSTaskSwHook();    BLX     R0    POP     {R14}     LDR     R0, =OSPrioCur                                      ; OSPrioCur = OSPrioHighRdy;    LDR     R1, =OSPrioHighRdy    LDRB    R2, [R1]    STRB    R2, [R0]    LDR     R0, =OSTCBCur                                       ; OSTCBCur  = OSTCBHighRdy;    LDR     R1, =OSTCBHighRdy    LDR     R2, [R1]    STR     R2, [R0]    LDR     R0, [R2]                                            ; R0 is new process SP; SP = OSTCBHighRdy->OSTCBStkPtr;    LDM     R0, {R4-R11}                                        ; Restore r4-11 from new process stack    ADDS    R0, R0, #0x20;Is the task using the FPU context? If so, push high vfp registers.TST R14, #0x10IT EQVLDMIAEQ R0!, {S16-S31} MSR     PSP, R0                                             ; Load PSP with new process SP    ORR     LR, LR, #0x04                                       ; Ensure exception return uses process stack    CPSIE   I    BX      LR                                                  ; Exception return will restore remaining contextNOP    end
举报

殷谷光

2020-4-26 12:04:17
找到了OS_Sched,原子哥的ucos源码和任哲书里面的不太一样呀,好多变量名都不同,有的函数实现也有些不同
举报

韦薇

2020-4-26 12:12:27
OSTaskCreate的代码不一样呀
举报

童霏

2020-4-26 12:30:14
任哲的书用的ucosii都不知道是哪个老古董版本的,例程里面用的都是最新版本的ucosii。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分