由于官方提供的μCOS-III移植工程中对于浮点寄存器的入栈和出栈处理是错误的,所以网上就流传了
各种修正版本。但是这些修正的代码只能在 MDK4.7 以下版本中可以正常的运行,MDK4.7 及其以上的版
各种修正版本。但是这些修正的代码只能在 MDK4.7 以下版本中可以正常的运行,MDK4.7 及其以上的版
本无法正常运行。下面针对高版本的MDK进行修正处理
处理方法如下:
为了解决 FPU 的问题,有两个函数需要修改:一个是 CPU_STK *OSTaskStkInit(),另一个是 PendSV
中断。 最后需要在工程选项中开启FPU的支持
修改函数CPU_STK *OSTaskStkInit()
函数所在的在:
uCOS-III\Ports\ARM-Cortex-M4\Generic\RealView\os_cpu_c.c
修改后的内容如下:
CPU_STK *OSTaskStkInit (OS_TASK_PTR p_task,
void *p_arg,
CPU_STK *p_stk_base,
CPU_STK *p_stk_limit,
CPU_STK_SIZE stk_size,
OS_OPT opt)
{
CPU_STK *p_stk;
(void)opt; /* Prevent compiler warning */
p_stk = &p_s