微控制器内部的 Hex 文件验证
Hex file verification inside microcontroller
众所周知,hex文件是我们应用程序代码的核心,将被编程到微控制器的闪存中执行。我的疑问是在执行这个 hex 文件之前,它会被微控制器验证还是在所有启动过程完成后才执行?
免责声明:因为我不知道所有的微控制器,所以这不是一个完整的答案。*
闪现的二进制可执行文件将被执行。
一些微控制器检查固定地址的特定值,以决定是启动 built-in 引导加载程序还是闪存的用户程序。
如果需要检查用户程序,需要自己实现。我曾使用过这样的系统,它很常见,尤其是在 safety-related 环境中。
关于hex文件的格式:
Intelhex as well as other format like SREC 是二进制数据的人类可读文本表示。这些格式的校验和的常见原因是为了确保传输过程中的数据一致性,这是在发明格式时通过不可靠的渠道完成的。
另一个优点是可以通过旧互联网协议无损传输的 7 位 ASCII 字符的限制。
然而,“真正的”内容,即二进制数据,直接存储在微控制器的闪存中。当要刷新用户程序时,微控制器中的接收软件(例如引导加载程序)可能会使用校验和。但是一闪就没了
众所周知,hex文件是我们应用程序代码的核心,将被编程到微控制器的闪存中执行。我的疑问是在执行这个 hex 文件之前,它会被微控制器验证还是在所有启动过程完成后才执行?
免责声明:因为我不知道所有的微控制器,所以这不是一个完整的答案。*
闪现的二进制可执行文件将被执行。
一些微控制器检查固定地址的特定值,以决定是启动 built-in 引导加载程序还是闪存的用户程序。
如果需要检查用户程序,需要自己实现。我曾使用过这样的系统,它很常见,尤其是在 safety-related 环境中。
关于hex文件的格式:
Intelhex as well as other format like SREC 是二进制数据的人类可读文本表示。这些格式的校验和的常见原因是为了确保传输过程中的数据一致性,这是在发明格式时通过不可靠的渠道完成的。
另一个优点是可以通过旧互联网协议无损传输的 7 位 ASCII 字符的限制。
然而,“真正的”内容,即二进制数据,直接存储在微控制器的闪存中。当要刷新用户程序时,微控制器中的接收软件(例如引导加载程序)可能会使用校验和。但是一闪就没了