我正在使用一台使用Aurix TC234的嵌入式设备。 在其上运行的我的(AUTOSAR)软件需要在特定ROM地址范围的启动期间进行一些检查。
在刷新软件hex文件期间,不会写入必须检查的数据。 这意味着必须在我的软件在该设备上闪存之前写入地址范围。
我最糟糕的情况: 有人忘了闪烁那个地址范围。我的软件闪烁,在启动期间访问内存。 在那种情况下发生陷阱。
我的问题: 是否有一种安全的方法来检查特定的ROM地址范围是否已写入? 是否有可能处理这种陷阱?
答案 0 :(得分:2)
经过几次检查后,对于带有ECC错误的TC29X流程,ROM的处理方式如下:
希望您的微观提供此帮助和类似解决方案。
答案 1 :(得分:0)
我不熟悉TC234,但如果在任何嵌入式设备上访问未写入的闪存会导致陷阱,我会感到惊讶。写入和未写入闪存之间的唯一区别应该是后者应该写入所有内容(假设闪存开始被擦除)。您应该能够简单地检查数据块是否所有字节都是0xFF。
如果您可能拥有最初未擦除的闪存,则可以向数据块添加一个检查字段,可能包含该块其余部分的CRC值。启动时,根据CRC字段检查块内容。
编辑:如果你确实遇到了陷阱,我希望这是因为你的代码使用了块中的数据而没有先验证它,导致使用无效索引一个数组或一个坏指针。
回答缩回。见评论。