0 工具准备
vscode,编辑C代码
Code Runner插件,用于生成exe
1 前言
使用STM32CubeIDE编译生成了二进制镜像文件后,有时为了防止镜像被恶意修改,可以通过添加校验和来对整个镜像进行保护,实现手段就是在STM32CubeIDE工程Post-build steps中调用一些外部程序来为镜像添加校验和。本文基于STM32CubeIDE工程,介绍Post-build steps添加带参.exe实现全流程(1):带参.exe制作。
2 带参.exe制作
C源码如下:
#include "stdio.h"
#include <stdlib.h>int main(int argc, char *argv[])
{int i;printf("argc : %d\r\n", argc);for (i = 0; i < argc; i++){printf("argv[%d] : %s\r\n", i, argv[i]);}return 0;
}
编辑好之后点击vscode右上角的“Run Code”按钮即可生成exe:
注:
代码功能:
打印参数个数,遍历所有参数并打印出来。
(1)argc。argc指示参数的个数,最少包含1个参数。
(2)argv*[]。argv*[]保存了参数字符串指针。
假如argc=3,则argv[0]保存了.exe路径字符串指针,argv[1]保存了参数1字符串指针、argv[2]保存了参数2字符串指针,依次类推。即使.exe不带参数运行,也会包含1个参数,也就是.exe路径的字符串指针。
3 总结
(1)带参执行.exe在嵌入式方面可以用于生成镜像后加头、加校验和等操作。
(2).exe至少会有1个参数,且首个参数(argv[0])固定为.exe的路径。如果不止1个参数,则我们添加的参数1-n分布在argv[1]-argv[n]。