assembly - 如何验证STM8S控制器中代码的内存校验和
问题描述
我正在使用“STM8103F3”控制器。我想在我的代码中执行 ROM 测试,但我找不到可以验证我的“内存校验和”的寄存器。内存校验和我可以添加“ROM”字节,但我面临如何验证的问题。任何人都可以在这个问题上帮助我。
解决方案
简单的回答:
这是不可能的。
为什么?
如果微控制器有这样的功能,它就什么也做不了,只能简单地将闪存中的所有字节相加。
如果闪存中存在错误,它会计算出与您计算的相同的错误校验和。您会将错误的校验和与微控制器的错误校验和进行比较,然后才发现它们是相同的。
该怎么做?
在汽车行业中,您将在将程序写入闪存之前计算校验和(例如,您使用 HEX 文件来计算校验和)。
然后将计算出的校验和写入微控制器的闪存。当然,在计算校验和时,您必须忽略存储校验和本身的内存区域。
要进行检查,您计算闪存(在微控制器上)的校验和,并将其与您在将程序写入闪存之前计算的校验和进行比较。
推荐阅读
- mysql - Nodejs函数返回未定义,虽然回调参数有一个值
- android - 地方自动完成正在打开一个新的覆盖谷歌搜索
- react-native - 在 React Native 中,Flatlist 循环遍历嵌套数组
- c++ - 我应该更改使用 push_back 的代码以使用 std::move 吗?
- testing - Arquillian 和 Open Liberty 需要现有安装吗?
- ios - 应用程序在模拟器中运行,但在我的 iPhone 中关闭
- sql-server - Mac bookpro 上的 Azure Data Studio-服务器连接错误
- linux - 为什么 Shift+Ctrl+e 导致 e 下划线并开始表情符号输入(linux)?
- c# - 从另一个类编辑类属性
- django - 如何将本地分支与在 docker 中创建的迁移合并