【BUG排查】基于RH850F1KMS1的主控出现系统中断错误,调试FEIC的值为0x11

**前言:**近期有出现在调试过程中老是进系统中断错误的情况,就一步步顺着寄存器调试了起来,到最后找到问题的原因,发现有时候问题的分析方法都是大同小异的,本篇文章就记录一下这个分析问题的思路过程。


1,问题描述

问题发生的背景就是在使用F1KMS1调试的时候出现进入到系统中断错误的情况

当然出现了这个问题,就得需要寻找到引起问题发生的原始代码的位置,这个是第一时间想到的;通过一步步地屏蔽相关联的代码慢慢定位到是由于操作FLASH的代码引起的,将这行代码屏蔽掉之后发现问题就消失了。
本着 "知其然,更要知其所以然" 的原则,还是需要知道最底层的原因是什么,,,

2,问题分析

发生中断错误的时候第一时间需要看的是 EIIC 与 FEIC 两个寄存器

EIIC寄存器保留发生的任何EI级异常的源。此寄存器中保留的值是对应于特定异常源的异常源代码。

FEIC寄存器保留发生的任何FE级异常的源。此寄存器中保留的值是对应于特定异常源的异常源代码。

EIICFEIC 寄存器的作用类似,都是记录异常源的 异常源代码,帮助确定系统发生异常时的具体原因。

看下图发现这两个寄存器,EIIC的为0x1030,FEIC的为0x11,

查看参考手册可知,通过EIIC的值可以找到引起中断的源头,即为一个定时器中断。意思就是发生中断的时候有定时器还在运行。

再进一步查看FEIC的值可以知道引起系统中断的具体原因是什么,,,由于中断的底层处理机制涉及到内核,所以这个时候就需要用到内核手册,但是只在第二张图看到一个范围值,还是无法精确的定位。

后面又翻了一下用户手册,终于是搜到了具体原因,英文原文如下所示:

"Detection of an error during the fetching of an instruction from the code fash memory area"

即从代码闪存出获取指令的时候发生错误。

3,给出结论

结合自己的工程代码中正在操作FLASH,然后又有一个定时器的中断程序同时在运行,可以知道就是中断影响了操作FLASH。

因为瑞萨MCU操作FLASH的时候不可以有中断打断,否则会操作失败,并且引发内核方面的未知错误。
后续调整了一下定时器中断与操作FLASH两者的代码,尽量不同时进行就解决了这个问题。。。


4,尾声

问题分析完毕,其实以小见大,我们在开发调试嵌入式软件过程中遇到的问题花样还是比较多的,也没有办法完全进行归类,当然见得问题足够多了之后会有一个清晰的问题解决思路,这个比较依赖于工作经验项目开发经验等等。

我有时候也会思考:难道对于一些入行的经验不是那么丰富的开发技术人员来讲就只能一点点的积累的吗?遇到前所未见的问题只能干瞪眼,最后在抓耳挠腮中度过相当长的时间并求助别人。这样对于工程师的成长无疑是相对比较慢的。

要想成长的快并且高效利用好自己的每一次的项目开发经验,那么我们更需要学到的并非是解决问题本身而是解决问题思维方式,正如上面的分析案例:多增加一点思考,知道了问题的表面原因之后还不够跟需要一点点的溯源到最最底层的原因,并且时常发问:为什么要往这个方向去查问题?找到这个方向的引子是什么?等等,反正多思考,并试图理解一下这样思考的方式对不对,方向正不正确,绝对会收获良多的。。。
嘿嘿,搜了一下两个著名人物的话,共勉。。。

对于创新来说,方法就是新的世界,最重要的不是知识,而是思路。

-------郎加明《创新的奥秘》

教育不是为了获取知识,更重要的是培养独立思考的能力。

-------爱因斯坦

图片自取,,,

相关推荐
项目題供诗19 分钟前
51单片机入门(八)
单片机·嵌入式硬件·51单片机
羽获飞1 小时前
从零开始学嵌入式之STM32——9.STM32的时钟系统
stm32·单片机·嵌入式硬件
来自晴朗的明天2 小时前
13、NMOS 电源防反接电路
单片机·嵌入式硬件·硬件工程
芯岭技术3 小时前
PY32MD310单片机:高性能、低功耗的32位电机控制微控制器
单片机·嵌入式硬件
小龙报4 小时前
【51单片机】深度解析 51 串口 UART:原理、配置、收发实现与工程化应用全总结
c语言·开发语言·c++·stm32·单片机·嵌入式硬件·51单片机
Lester_110112 小时前
STM32 高级定时器PWM互补输出模式--如果没有死区,突然关闭PWM有产生瞬间导通的可能吗
stm32·单片机·嵌入式硬件·嵌入式软件
小李独爱秋13 小时前
“bootmgr is compressed”错误:根源、笔记本与台式机差异化解决方案深度指南
运维·stm32·单片机·嵌入式硬件·文件系统·电脑故障
进击的小头15 小时前
实战案例:51单片机低功耗场景下的简易滤波实现
c语言·单片机·算法·51单片机
宵时待雨19 小时前
STM32笔记归纳8:时钟
笔记·stm32·单片机·嵌入式硬件
JJRainbow20 小时前
SN75176 芯片设计RS-232 转 RS-485 通信模块设计原理图
stm32·单片机·嵌入式硬件·fpga开发·硬件工程