keil 编译脚本 post build cmd /c cd ..\..\share_scripting_tool upgrade_AC78APP.bat部分含义cmd /c启动 Windows 命令行解释器执行完引号内的命令后自动关闭窗口。cd ..\..\share_scripting_tool将当前目录向上退两级回到上级的上级然后进入名为share_scripting_tool的文件夹。逻辑与连接符。只有前一条命令cd执行成功时才会执行后面的命令。upgrade_AC78APP.bat执行该文件夹下的批处理文件用于升级AC78APP相关的固件。echo offcd /d %~dp0set OUTPUT_DIR..\AC78428_M_Burn_OTA_File_Output\APP_OTA_fileecho [Step1] UWB_DK_HeadPacket.py...python UWB_DK_HeadPacket.py ..\AC78428M_MCU_APP\MDK-ARM\Objects\AC78428M_MCU_APP.hex %OUTPUT_DIR%if errorlevel 1 goto errorecho [Step2] upgrade_packet1.2.py...python upgrade_packet1.2.py %OUTPUT_DIR% %OUTPUT_DIR%if errorlevel 1 goto errorecho Done!goto end:errorecho [ERROR] Failed!exit /b 1:end脚本逐行解析batchecho off cd /d %~dp0echo off关闭命令回显让输出更干净。cd /d %~dp0切换到脚本所在的目录%~dp0表示脚本自身的路径。这确保了后续所有相对路径操作都基于脚本位置不会受执行命令时所在目录的影响。batchset OUTPUT_DIR..\AC78428_M_Burn_OTA_File_Output\APP_OTA_file定义输出目录为脚本上级目录下的AC78428_M_Burn_OTA_File_Output\APP_OTA_file。batchecho [Step1] UWB_DK_HeadPacket.py... python UWB_DK_HeadPacket.py ..\AC78428M_MCU_APP\MDK-ARM\Objects\AC78428M_MCU_APP.hex %OUTPUT_DIR%调用 Python 脚本UWB_DK_HeadPacket.py输入参数原始固件路径..\AC78428M_MCU_APP\MDK-ARM\Objects\AC78428M_MCU_APP.hex输出目录%OUTPUT_DIR%这个脚本很可能在.hex文件头部添加一些版本信息、校验和、加密头等元数据生成带有包头的新文件。batchecho [Step2] upgrade_packet1.2.py... python upgrade_packet1.2.py %OUTPUT_DIR% %OUTPUT_DIR%调用另一个 Python 脚本upgrade_packet1.2.py输入输出目录均为同一个。这一步通常是将上一步生成的文件拆分为多个适合 OTA 传输的包比如按 1KB 分块添加序列号和 CRC最终输出一个.bin或.pack等格式的升级文件。batchif errorlevel 1 goto error如果任何 Python 脚本返回非零值表示出错跳转到:error标号打印失败信息并退出。batch:end成功执行后打印Done!并正常退出。