1.STM32CubeProgrammer使用
使用STM32CubeProgrammer的命令行模式之前,需把STM32_Programmer_CLI.exe的目录添加到环境变量PATH中。
-sl命令:通过添加加载区(段)来修改固件文件,加载区(段)中包含有用户程序计算出的CRC值。
-sl <file_path> <start_address> <end_address> <slice_size>
<file_path>:文件路径(bin、elf、hex或Srec)
<start_address>:闪存起始地址
<end_address>:闪存结束地址
<slice_size>:每个CRC值对应的数据区块大小
闪存程序存储器分为多个slice,对于每个片段分别计算CRC值并将其置于CRC区域中,CRC区位于闪存末尾。CRC区域中的CRC值根据闪存中用户程序的位置依次放置。

IDE的命令行添加后处理命令:STM32_Programmer_CLI.exe -sl "$PROJ_DIR$\Release\Exe\Project.bin" 0x08000000 0x08040000 0x400
CRC区域的地址和大小确定如下:
CRCs_Area_Size = Flash_Size / Slice_Size * 4 bytes, so 0x40000/0x400*4=1 Kbytes
CRCs_Start_Address = Flash_End_Address - CRCs_Area_Size, so 0x08040000-0x400=0x803FC00
执行此命令,先扩充bin至256KB,每1KB计算一个4bytes CRC值,放在0x803FC00开始的地方。
CRC区域内的CR

最低0.47元/天 解锁文章
7297





