我在STM32103RCT6上移植一个uCOS-II,用的uCOS-II的版本是2.86,编译以后没有问题,在线调试的时候发现,进入OSStart();以后就出不来了,后来单步运行,发现死在 OSStartHighRdy();这个函数里面了,进入以后发现程序跑到
B OSStartHang ; Should never get here
感觉是OS没有启动起来,不知道怎么回事
OSStartHighRdy();函数如下:
OSStartHighRdy
LDR R0, =NVIC_SYSPRI14 ; Set the PendSV exception priority
LDR R1, =NVIC_PENDSV_PRI
STRB R1, [R0]
MOVS R0, #0 ; Set the PSP to 0 for initial context switch call
MSR PSP, R0
LDR R0, =OSRunning ; OSRunning = TRUE
MOVS R1, #1
STRB R1, [R0]
LDR R0, =NVIC_INT_CTRL ; Trigger the PendSV exception (causes context switch)
LDR R1, =NVIC_PENDSVSET
STR R1, [R0]
CPSIE I ; Enable interrupts at processor level
OSStartHang
B OSStartHang ; Should never get here
有人遇到过这个问题的请帮忙看一下,不胜感激!
附件是我的工程文件! |