uCOSIII移植补充

前言

上篇写到uCOSIII的移植,由于移植的是教程写好的文件到开发板,没发现到一些问题。今天移植到另一个开发板的时候出现系统卡死在OSStartHighRdy()函数的问题。现在就再次分析一下移植过程。

实验分析

(一)现象分析

我们将RCT6开发板上的uCOSIII移植到C8T6的板子上时,会发现系统一直没有启动,LED没用闪烁。通过单步调试,我们可以发现系统卡在OSStartHighRdy()函数里。

uCOSIII移植补充_第1张图片

通过分析,猜测是SysTick_Handler没有启动,导致任务优先级切换失败。

(二)源码分析

通过查阅资料,发现移植uCOSIII过程中,我们需要将启动文件的函数名修改,以关联uCOS内核文件的函数,这是关键。

uCOSIII移植补充_第2张图片

然后,我们把对应的启动文件搜索PendSV_Handler和SysTick_Handler,并将它们对应修改为OS_CPU_PendSVHandler和OS_CPU_SysTickHandler即可。

到这里,就完成了启动文件和内核文件的函数关联。

结果验证

  • 修改完后下载验证,LED正常闪烁。

总结

这就解决了系统卡死在OSStartHighRdy()函数的问题。

 

你可能感兴趣的:(UCOS)