Stm32 在可执行文件中添加代码的哈希
我有一个STM32应用程序,它使用两块内存。在第0块中,我有一个引导代码(它在通电后运行),在第7块中,我有一个应用程序代码(它可能运行,也可能不运行,取决于引导代码给出的授权决定) 这两个代码是由两个单独的项目开发的。通过给openocd的write_image命令一个偏移值,可以使用openocd工具在STM32 NOR内存的特定块(第0块的引导代码和第7块的应用程序代码)上闪存这些代码 我想在引导代码中基本上做的是计算应用程序代码的哈希值,并将其与引用摘要进行比较。如果它们相等,我将向应用程序代码伸出援手。为此,在生成应用程序代码的可执行文件(可以是elf、hex或bin格式)后,我想:Stm32 在可执行文件中添加代码的哈希,stm32,flash-memory,Stm32,Flash Memory,我有一个STM32应用程序,它使用两块内存。在第0块中,我有一个引导代码(它在通电后运行),在第7块中,我有一个应用程序代码(它可能运行,也可能不运行,取决于引导代码给出的授权决定) 这两个代码是由两个单独的项目开发的。通过给openocd的write_image命令一个偏移值,可以使用openocd工具在STM32 NOR内存的特定块(第0块的引导代码和第7块的应用程序代码)上闪存这些代码 我想在引导代码中基本上做的是计算应用程序代码的哈希值,并将其与引用摘要进行比较。如果它们相等,我将向应用
- 创建另一个具有128K字节大小的文件(采用上面列出的任何格式)
- 将可执行文件的内容从其开头(0偏移量)复制到最近创建的文件
- 将可执行文件的哈希写入最近创建的文件的最后32个字节
- 用0xFF填充间隙
- 最后,将该可执行文件(如果仍然存在)闪存到内存的第7块
- 我应该使用哪种格式来生成可执行文件
- 我有什么需要特别注意的吗
提前非常感谢。您只需在构建序列中添加额外的步骤。链接完成后,从elf中提取二进制文件 然后用你最喜欢的编程语言编写一个程序,它将计算一些东西并将结果附加到bin文件中