查看: 2275|回复: 0

[分享] LPC55Sxx Flash读取遇到HardFault该如何解决?

[复制链接]

该用户从未签到

656

主题

6312

帖子

0

超级版主

Rank: 8Rank: 8

积分
20032
最后登录
2024-4-26
发表于 2020-1-17 14:50:01 | 显示全部楼层 |阅读模式
本帖最后由 小恩GG 于 2020-1-19 13:24 编辑

    最近,有几位客户在使用LPC55S69的过程中遇到读 Flash进入异常HardFault中断。如果在Flash Mass Erase之后从未对Flash扇区进行过写操作,直接用指针通过AHB读Flash地址会导致程序跳入HardFault 中断而无法继续正常运行。
原因
刚出厂的LPC55Sxx FLASH处于全零的全擦除状态,没有设置ECC。当芯片通过LinkServer 和MCUXpresso IDE建立连接时,先擦除要下载代码用到的扇区,再把代码下载到对应位置,并对相应存储区的ECC值同时进行更新。代码以外的区域仍然是无ECC设置的擦除状态。
当LPC55Sxx 通过AHB总线直接读取Flash内存区域时(例如,mytemp = *(uint32_t*)0x4000)要对Flash ECC进行校验。这一指令对于读有效代码区是没有问题的, 因为这一区域的ECC在下载代码时早已设置好。但是一旦读取没有代码的扇区,由于没有检测到正确的ECC,导致Flash读取失败,并跳转到下图中的HardFault_Handler()异常中断:

2020-01-19_13-21-48.png
文章探讨了针对这一问题的两种解决方法。详细参考附件。
英文版详见
http://community.nxp.com/docs/DOC-345423


LPC55Sxx Flash读取遇到HardFault该如何解决?.pdf

506.3 KB, 下载次数: 74, 下载积分: 威望 1

lpcxpresso55s69_led_blinky_memoryread.zip

659.83 KB, 下载次数: 35, 下载积分: 威望 1

回复

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /4 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2024-4-27 04:30 , Processed in 0.108010 second(s), 19 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表