Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Stm32 在可执行文件中添加代码的哈希_Stm32_Flash Memory - Fatal编程技术网

Stm32 在可执行文件中添加代码的哈希

Stm32 在可执行文件中添加代码的哈希,stm32,flash-memory,Stm32,Flash Memory,我有一个STM32应用程序,它使用两块内存。在第0块中,我有一个引导代码(它在通电后运行),在第7块中,我有一个应用程序代码(它可能运行,也可能不运行,取决于引导代码给出的授权决定) 这两个代码是由两个单独的项目开发的。通过给openocd的write_image命令一个偏移值,可以使用openocd工具在STM32 NOR内存的特定块(第0块的引导代码和第7块的应用程序代码)上闪存这些代码 我想在引导代码中基本上做的是计算应用程序代码的哈希值,并将其与引用摘要进行比较。如果它们相等,我将向应用

我有一个STM32应用程序,它使用两块内存。在第0块中,我有一个引导代码(它在通电后运行),在第7块中,我有一个应用程序代码(它可能运行,也可能不运行,取决于引导代码给出的授权决定)

这两个代码是由两个单独的项目开发的。通过给openocd的write_image命令一个偏移值,可以使用openocd工具在STM32 NOR内存的特定块(第0块的引导代码和第7块的应用程序代码)上闪存这些代码

我想在引导代码中基本上做的是计算应用程序代码的哈希值,并将其与引用摘要进行比较。如果它们相等,我将向应用程序代码伸出援手。为此,在生成应用程序代码的可执行文件(可以是elf、hex或bin格式)后,我想:

  • 创建另一个具有128K字节大小的文件(采用上面列出的任何格式)
  • 将可执行文件的内容从其开头(0偏移量)复制到最近创建的文件
  • 将可执行文件的哈希写入最近创建的文件的最后32个字节
  • 用0xFF填充间隙
  • 最后,将该可执行文件(如果仍然存在)闪存到内存的第7块
你认为这是可行的吗?如果是:

  • 我应该使用哪种格式来生成可执行文件
  • 我有什么需要特别注意的吗
最后,你认为这样做有意义吗?或者有没有其他更标准的方法


提前非常感谢。

您只需在构建序列中添加额外的步骤。链接完成后,从elf中提取二进制文件 然后用你最喜欢的编程语言编写一个程序,它将计算一些东西并将结果附加到bin文件中