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


    移植的硬件平台是奋斗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);



  • 相关阅读:
    IO流-----写到输出流
    MyBatis中collection (一对一,一对多)
    POI导出Excel并下载
    篇二:MySQL存储过程
    篇三:访问JSON静态文件
    ajax同步处理(使得JS按顺序执行)
    篇二:JSON解析
    篇一:MySQL中case when then
    乱码问题
    解决spring配置中的bean类型的问题:BeanNotOfRequiredTypeException
  • 原文地址:https://www.cnblogs.com/siahekai/p/11000831.html
Copyright © 2020-2023  润新知