大家好、
对于 BANK0和 BANK7内的所有独立闪存扇区、是否可以禁用(并重新启用) SECDED?
提前感谢您!
此致、
Luis
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
大家好、
对于 BANK0和 BANK7内的所有独立闪存扇区、是否可以禁用(并重新启用) SECDED?
提前感谢您!
此致、
Luis
尊敬的 QJWang:
感谢您的快速响应。
我还有3个相关问题:
感谢您的参与和支持。
此致、
Luis
大家好、QJ Wang
非常感谢您的快速响应、这非常有帮助。
我还有其他问题,感谢您的观看。
上下文:
我正在从事一个项目、重点是通过 CAN 开发 MCU 引导软件。
BOOT-SW 应为用户提供选择操作(将被删除)的功能、其中一个是预存储的应用程序 SW 映像。
例如、应用软件映像-1存储在闪存组0、扇区8-11和闪存组0扇区12-15中的映像-2中。
此外、BOOT-SW 还应提供重新加载(支持通过 CAN 总线进行传输并将程序编程到闪存中)用户选择的应用软件映像的功能。
问题
再次感谢您的观看。
此致、
Luis
您好!
1和2:是。 它将生成一个组3通道7 ESM 错误、此错误将切换 nERROR 引脚。 它 也会生成 CPU 异常中断。
F021闪存 API 能够计算 ECC 并将 ECC 编程到 ECC 空间、同时将数据编程到主闪存。
fapi_issueProgrammingCommand ((uint32_t *) dst、(uint8_t *) src、(uint32_t)字节、0、0、 Fapi_AutoEccGeneration);
Fapi_AutoGeneration–这将对闪存中提供的数据部分以及自动生成的 ECC 进行编程。 ECC 是在64位对齐地址上计算的、最高可达组的数据宽度。 未提供的数据被视为0xFF。 例如、在具有144位宽组宽度的器件上、如果数据只写入字节0x0-0x7 (或0x8-0xF)、那么 ECC 将仅针对这64位进行计算。 如果提供的数据跨越64位边界、则将为两个64位字计算 ECC。 例如、在具有144位宽组宽度的器件上、数据写入字节0x4 - 0xB、计算2个字节的 ECC 数据。 此选项也存在 Fapi_DataOnly 的数据限制。
请参阅 F021闪存 API 参考指南 :SPNU501G.pdf
CPU 试图从闪存和 RAM 区域进行推测取指令、以最大限度地减少较高延迟存储器访问的影响。 如果该访问恰好从没有正确编程 ECC 的位置获取、则会生成 ECC 错误。 如果 CPU 不实际执行此推测取回的指令、则不会生成中止。
您需要填充任何未使用的闪存存储器、然后也对相应的 ECC 代码进行编程。
尊敬的 QJ Wang:
再次感谢您的支持。
根据针对 cortex R4F 的 ARM 和 TI 参考、当在 TMC 读取(例如闪存组0)上检测到2位 ECC 错误时、会发生同步数据中止、随后由默认数据中止异常处理程序例程处理。
用户是否可以扩展默认处理程序例程?
如果是、是否可以通过读取数据故障地址寄存器并检查存储器地址是否位于预定义存储器区域内的方式来扩展它、如果是、处理器将恢复运行;否则强制处理器无限期循环(*)?
(*)在这里、设计中的系统的想法是将 MCU 内部生成的看门狗馈送信号的生成停止至少一个预定义的持续时间、这会导致 MCU 外部看门狗电路触发、该电路将执行 MCU 的电源循环。
此致、
Luis