如何解决微控制器内部的十六进制文件验证
众所周知,十六进制文件是我们应用程序代码的核心,它将被编程到微控制器的闪存中以执行。我的疑问是在执行此十六进制文件之前,它会被微控制器验证还是在所有启动过程完成后立即执行?
解决方法
免责声明:因为我不知道所有的微控制器,所以这不是一个完整的答案。 *
闪烁的二进制可执行文件将被执行。
某些微控制器会在固定地址处检查某个值,以决定是启动内置引导加载程序还是刷新用户程序。
如果需要检查用户程序,则需要自己实施。我曾经使用过这种系统,这很常见,尤其是在与安全相关的环境中。
关于十六进制文件的格式:
Intelhex以及其他类似SREC的格式都是二进制数据的人类可读文本表示形式。使用这些格式的校验和的常见原因是为了确保传输期间的数据一致性,这是在发明格式时通过不可靠的通道完成的。
另一个优点是限制了7位ASCII字符,可以通过旧的Internet协议无损地传输这些字符。
但是,“实际”内容(二进制数据)直接存储在微控制器的闪存中。当要刷新用户程序时,微控制器中的接收软件(例如,引导加载程序)可能会使用校验和。但是闪烁后它们消失了。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。