Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
这个有点奇怪,是不是之前就已经存在了ECC 错误了呀。 建议chip erase后再重新测试试试。
run 好的 我让客户再试试
run 你好,我参考这个demo,我读取到的错误地址不是我擦除的地址反而是bin固件中的一个地址,但我用j-flash读取该地址的数据,并没有错误,每次下载测试前也进行了全片擦除,中断也都打开了
下面是设置的的测试地址 下面是RTT打印的数据
run 还有为什么 demo里不同的错误状态清除方法确是一样的
另外我看flash应用笔记说 读取unrecovery error 后,会在 HardFault 退出后,进入 EFM ECC 中断 这样写为什么不进入EFM ECC 中断 哪里不对吗
EFM_RecoveryErrorHandler函数里面确实应该清除RECOVERR标志: EFM->STS = EFM_STS_RECOVERR_MASK | EFM_STS_CI_RECOVERR_MASK;
YTM32B1HA0 不会EFM_STS_CI_RECOVERR 和 EFM_STS_CI_UNRECOVERR, 确实不会进入到 EFM_RecoveryErrorHandler 和 EFM_UnrecoveryErrorHandler 中断处理函数中,因此建议在HardFault_Handler 或者 BusFault_Handler中进行处理。
run 你好
UNRECOVERR 在HardFault_Handler处理就行,RECOVERR并不会触发HardFault,可以不进行处理。
我这边正常的,你的工程方便简化发上来看一下吗
run5c9e980f-76e7-467d-b6e8-547f0362b490-b1ha01_100_pin.zip 好的 用的keil,中断写在bsp_sys里面,rtt交互在task_u0_tx.c里 u0_tx_task_fun 函数
run 你好,你们这个demo, p_instruction_address 是获取PC寄存器吗,获取PC的话 +8 不对吧
BJX 这里进行了压栈,因此是+8的
确实可能会存在不同编译器导致编译出来和预想不一致的情况。 可以使用下面附件中的做法,这样更好想一点。 flash_ecc_fault.zip
上一个问题: 需要将EFM配置里面全局中断配置为disable,进行关全局中断处理。 因为在进行flash0 erase操作时,访问了pflash0上的代码(systick中断),这样访问读取时误触发了ecc 错误。其实是没有ecc错误的。
发帖前请查看
帮助没办法联网的电脑使用YCT
帮助改进和优化YT CONFIG TOOL,有机会抽取YTM32B1ME0 EVB哦...