• 资料介绍
    • 前言
    • 问题分析
    • 解决方法
    • 总结
  • 资料预览
  • 相关推荐
申请入驻 产业图谱

LAT1340 STM32H5读取温度传感器校准值时进HardFault的原因分析

03/22 14:47
325
加入交流群
扫码加入
获取工程师必备礼包
参与热点资讯讨论

LAT1340 STM32H5读取温度传感器校准值时进HardFault的原因分析

448.96 KB

前言

有客户反馈,在使用 STM32H5 读取温度传感器校准值地址时,会进入 HardFault,而在其他系列芯片中读取这个参数时并没有此现象。在 NUCLEO-H563ZI 开发板上去复现此问题,发现只有开启 ICACHE 后才会复现,初步验证说明进入 HardFault 与 ICACHE 相关,如果直接关闭ICACHE 虽然可以解决进入 HardFault 的问题,但势必会影响代码执行的效率。所以,我们希望能找到一种更好的方式去处理此问题。

问题分析

经 Datasheet 查询,两个温度传感器校准值 TS_CAL1 和 TS_CAL2 的地址分别为 0x08FFF814-0x08FF F815 和 0x08FF F818-0x08FF F819。

解决方法

经上述分析后,我们只需要把[0x08FF F000-0x08FF FFFF]这段地址区域设置为 nonecacheable,通过 CubeMX 进行配置。

总结

温度传感器校准值及 UID 等一些信息在 H5 中属于只读区域,而这个区域在 AHB 访问时,默认内存属性为 cacheable,需要通过 MPU 把这些区域设置为 none-cacheable,才能正常访问。每个系列的芯片架构都或多或少有差别,当按以往经验操作不能实现功能时,不妨对照相应芯片的数据手册、参考手册、应用笔记、甚至勘误手册,也许就能发现问题所在。

资料预览

点赞
收藏
评论
分享
加入交流群
举报

相关推荐

方案定制

去合作
方案开发定制化,2000+方案商即时响应!