最近有一个项目基于STM32F446ZE MCU使用FREERTOS操作系统开发,之前有部分功能代码是基于MCU裸机开发的,移植过程种发现程序老出错,DEBUG模式条件发现程序停在了HardFault_Handler中断服务程序中:

查看对应的错误报告显示BFARVALID和PRECISERR错:

查看了两个错误的对应说明(感觉还是不知道是什么原因):

通过将任务逐个屏蔽,然后代码块逐个屏蔽方式最终定位到了一下函数,函数中对一个结构体对像进行了赋值操作后就会触发该错误,这些代码都是之前要无FREERTOS时运行好好的,现在就会出现这个错:

思考好久,可以是任务堆栈太小导致,于试偿试将任务堆栈从128增加到512,

编译下载运行OK,果然不再出错了。

长了教训!记录一下问题分析过程,也为后续类似的问题提供思路。

顺便记录了一下在调试过程中遇到的另一个硬件错INVSTATE,对应的解释如下,

我是因为数组越界超作也产生该错误,如下图,当message->len > 8 时,如果没有下面红框中的长度限制,就有可能在memcpy函数中引起数组越界产生INVSTATE硬件错!

经验教训 | STM32 异常之BFARVALID,PRECISERR,INVSTATE相关推荐

  1. java项目教训_[免费电子书]分析超过600,000个Java项目的经验教训

    java项目教训 建立明智的错误处理工作流程需要什么? 调查和解决生产中的应用程序错误对于维持性能和可靠性至关重要. 但是,这并不意味着要花很多时间. 要理解为什么在生产中的故障排除,可这样的头痛,我 ...

  2. 程序员的9个经验教训,只有亲身经历才会懂

    程序员从挫败中吸取经验,不断进步,本文介绍我亲身经历的9个经验教训. 1. 不存在最便宜,最快速,最可靠的软件 这是戈登·贝尔的名言,这里要吸取的经验教训是,你应该设计尽可能简单的系统或软件,降低复杂 ...

  3. 我的软件开发中经验教训

    作者:追梦1819 原文:https://blog.csdn.net/weixin_39759846/article/details/116780540 版权声明:本文为博主原创文章,转载请附上博文链 ...

  4. 项目文件2 问题日志 经验教训登记册 里程碑清单 实物资源分配单 项目日历 项目沟通记录 项目进度计划 项目进度网络图

    9. 问题日志 在整个项目生命周期中,项目经理通常会遇到问题.差距.不一致或意外冲突. 项目经理需要采取某些行动加以处理,以免影响项目绩效. 问题日志是一种记录和跟进所有问题的项目文件,所需记录和跟进 ...

  5. 写在最前:单片机从业的经验教训和历程。

    单片机从业的经验教训和历程 写在开始 为什么写这些 怎么学习的 有什么教训和经验 **1如果你的学校还在用汇编教学单片机,那么请放弃教学课程混个及格就行,然后开始自学**. **2光看不练,看也白看. ...

  6. 经验教训 软件开发_软件可靠性的教训

    经验教训 软件开发 构建可靠和稳定的企业软件需要什么? 首先,停止编写糟糕的代码 不幸的是,很少有开发人员熟悉MITER Corporation的常见软件问题的Common Weakness Enum ...

  7. 前端技术选型的遗憾和经验教训

    我是Max,Spectrum的技术联合创始人.Spectrum 是一个面向大型在线社区的开源聊天应用程序,最近被GitHub收购.我们是一个三人团队,主要拥有前端和设计背景,我们在这个项目上工作了近两 ...

  8. 我在React Native中构建时获得的经验教训

    by Amanda Bullington 通过阿曼达·布林顿(Amanda Bullington) 我在React Native中构建时获得的经验教训 (Lessons I learned while ...

  9. 2018 react 大会_React Conf 2018的经验教训

    2018 react 大会 by Yangshun Tay 阳顺泰 React Conf 2018的经验教训 (Lessons Learned at React Conf 2018) I was fo ...

最新文章

  1. class不生效 weblogic_weblogic下更改jsp不生效的解决办法
  2. iPhone遭遇最强烈的黑客攻击:密码、位置、联系人,敏感数据都泄露,谷歌发现的...
  3. pytorch 驱动不兼容_解决Pytorch 加载训练好的模型 遇到的error问题
  4. python安装第三方库的三种方法
  5. 图解操作系统研发与探索教程
  6. Internet Explorer 11 Enterprise Mode 排错
  7. 使用NetBeans Lambda支持在Java 8中使用Lambda表达式对列表进行排序
  8. oracle10g遇到ORA-16038日志无法归档问题
  9. 【都挺好】追求一生的科技住宅原来在这!
  10. Azure PowerShell (9) 使用PowerShell导出订阅下所有的Azure VM的Public IP和Private IP
  11. CV学习-1 k-means代码解读
  12. dreamweaver cs6配置phonegap环境
  13. Microsoft Productivity Hub 2010 安装部署配置(三)
  14. 基于OpenCV 人工神经网络的喷码字符识别(C++)
  15. Allegro封装制作
  16. 软件测试 - Linux和数据库
  17. 航天器轨迹预测——根据速度和位置确定初轨
  18. java模拟新浪微博_用java程序模拟登陆新浪微博
  19. CentOS6与CentOS7的区别
  20. SecKill学习初步框架时报错记录

热门文章

  1. ListView实现分页
  2. 【例3.5】位数问题
  3. c#根据年份和月份获得本月最后一天
  4. C++获取当前进程的进程号方法
  5. 计算几何常用算法的理论基础【转】
  6. 图解用Fiddler做http协议分析入门
  7. mxonline实战3,编写首页及用户登录页面1
  8. github--新手使用错误分析
  9. sharepoint指定的人可以看到列表项
  10. [书目20140322]如何管理软件企业(第2版)