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

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管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版