你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32F103_HardFault_Handler_问题

[复制链接]
野马-425178 提问时间:2015-7-31 17:46 /
本帖最后由 野马-425178 于 2015-7-31 18:26 编辑

问题描述:

由于应用需求,采用最低优先级的定时器作为端口数据处理handle,大概如下:
定义串口1优先级为5,
串口2优先级为6,
数据处理定时器TIM5优先级为7,初始化后以100ms产生周期性定时中断;

STM32接收到串口数据后分别压入到对应端口的环形队列中,
然后调用软件触发函数TIM_GenerateEvent(TIM5, TIM_EventSource_Update)以便加快进入TIM5中断,
使数据得以及时解析;

现在遇到的情况是:
STM32初始化完毕后立即通过串口2通知PC, PC接收到通知后立即发送100多字节的RSA加密或解密指令(加解密函数阻塞消耗的时间大概是1s)给STM32,
STM32在TIM5中断中处理加解密函数,处理完毕后再从串口2返回加解密结果给PC, 这时必然出现HardFault_Handler;
通过简单加大堆栈空间似乎可以解决,
但我无法根据下面的现场数据确定堆栈就是确定而且唯一的原因,
请大神帮忙分析下面的现场数据, 感谢!

stacked_r0 = 0x18052D08
stacked_r1 = 0x00000000
stacked_r2 = 0x40004400
stacked_r3 = 0x00000080
stacked_r12 = 0x00000000
stacked_lr = 0x0800903D
stacked_pc = 0x0801CE5E
stacked_psr = 0x61000042
SHCSR = 0x00000000
MFSR = 0x00
BFSR = 0x82
UFSR = 0x0000
HFSR = 0x40000000
DFSR = 0x00000000
MMAR = 0x18052D08
BFAR = 0x18052D08



收藏 评论1 发布时间:2015-7-31 17:46

举报

所属标签

相似问题

官网相关资源

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版