zoukankan      html  css  js  c++  java
  • 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);



  • 相关阅读:
    webpack 配置别名,解决 import 时路径查找麻烦的问题
    Vue 中 diff 算法后更新 DOM 的方法
    React Native 开发环境搭建
    JavaScript 堆排序详解
    JavaScript 快速排序详解
    websocket 心跳重连
    AJAX 请求后使用 JS 打开新标签页被阻止的解决方法
    auto.js环境搭建
    Mac os 创建pppoe拨号
    mac os IntelliJ IDEA搭建环境
  • 原文地址:https://www.cnblogs.com/siahekai/p/5840332.html
Copyright © 2011-2022 走看看