|
楼主 |
发表于 2015-12-18 16:14:21
|
显示全部楼层
回 eric2013 的帖子
eric2013:后面我给我们的F429配套例子时看看。
 (2015-12-16 23:21)  问题已经解决了,我还是采用你们的移植方法进行的移植,我觉得这种方式毕竟效率更高而且方便,不过除了你们做的更改以外把OSStartHighRdy这个函数的代码更换成如下代码:然后程序跑通了,可以正常的完成任务的切换!至于ucos官方的移植方法,开fpu后会直接进hardfault,这个原因我没有去搞,如果你们做好官方的移植后,有什么发现,希望版主能够私信告诉我一下哈~~~~~
;==================================================================================
; @START @whitesnark
OSStartHighRdy
CPSID I
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, =OS_CPU_ExceptStkBase ; Initialize the MSP to the OS_CPU_ExceptStkBase
LDR R1, [R0]
MSR MSP, R1
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
; @END @whitesnark
;================================================================================== |
|