STM32F103移植uCOSIII始终卡在PendSV或Systick处解决办法

来源:互联网 发布:投影仪怎么安装软件 编辑:程序博客网 时间:2024/06/05 22:38

移植的硬件平台是奋斗stm32 V5板,移植教程对照的是http://wenku.baidu.com/view/a90468020b1c59eef8c7b48e.html,移植过程中开始忽略几处操作导致移植不成功,易忽略的分别是以下步骤。

1此处圈内是仅保留这两个函数。不要有其他函数。

2是BSP_Init函数不要忘记编写

3是两处容易忽略且易些错的地方莫要漏写或写错。



以上步骤做完后,虽然能编译通过但是实际程序并不能运行,因为移植教程作者设计如果移植成功是伴随流水灯闪烁的,因此打开调试器后发现uCOS卡死在B位置。

PendSV_Handler    PROC

                         EXPORT  PendSV_Handler             [WEAK]

                         B       .

                         ENDP

查阅相关资料后,其实所谓的“PendSV_Handler全部替换OSPendSV”策略本意是对的,但是并未更改完整,采取如下措施,按ctrl+shift+f组合键,调出全工程字符查找查找PendSV,关注与你所选的存储类型相关的文件,我的为HD后缀及图中蓝色标出的文件



全部替换!然后关注如下面两图,将其中PendSV_Handler也替换为OSPendSV



差不多就是次思路,貌似是之间的名字关联没有处理好,导致函数连接有问题,之后解决卡在B处问题后,又出现新的问题,就systick等待通过不了,查询后发现是库函数版本问题,改为0x08后通过!然后又出现了类似PendSV的问题,搜索了PensSV修改过 的地方,将其一律换写成SysTick_Handler,调试后问题解决!表示愕然

//while(RCC_GetSYSCLKSource()!=0x80);
while(RCC_GetSYSCLKSource() != 0x08);



0 1