BK3633 Keil 环境下一键编译 Debug 和 Release 版本的设置说明

文章目录

      • 一 目的
      • 二 步骤
        • 2.1 打开 BK3633 的 app_gatt 的 Keil 工程文件
        • 2.2 修改原始目标为 Debug 和新增 Release 目标
        • 2.3 在 app_gatt\obj 目录中新增 debug 和 release 目录,用于存放各自对应的编译目标文件
        • 2.4 修改 Debug 和 Release 目标生成的目标文件路径到上一步骤创建的 debug 和 release 目录
        • 2.5 修改 Debug 和 Release 目标生成 bin 文件的 fromelf 命令的输入文件路径
        • 2.6 修改 translate.bat 文件内容,使其输出带有版本号,编译日期,debug 或 release 字样的固件名
        • 2.7 在 Debug 和 Release 目标执行 translate.bat 脚本时分别增加输入参数 debug 和 release
        • 2.8 修改编译选项,源文件中判断宏定义是否定义,来区别 debug 和 release 版本
        • 2.9 保存以上所有工程修改
      • 三 执行
        • 3.1 单独编译 Debug 目标
        • 3.2 一次性编译 Debug 和 Release 目标
      • 四 结果

一 目的

  1. 一次编译出 Debug 和 Release 版本,提高效率;
  2. 固件名自动填充版本号和编译日期,便于发布与调试。

二 步骤

2.1 打开 BK3633 的 app_gatt 的 Keil 工程文件

在这里插入图片描述

2.2 修改原始目标为 Debug 和新增 Release 目标

在这里插入图片描述

2.3 在 app_gatt\obj 目录中新增 debug 和 release 目录,用于存放各自对应的编译目标文件

在这里插入图片描述

2.4 修改 Debug 和 Release 目标生成的目标文件路径到上一步骤创建的 debug 和 release 目录

Debug 目标如下:
在这里插入图片描述
Release 目标如下:
在这里插入图片描述

2.5 修改 Debug 和 Release 目标生成 bin 文件的 fromelf 命令的输入文件路径

Debug 目标如下:
在这里插入图片描述
Release 目标如下:
在这里插入图片描述

2.6 修改 translate.bat 文件内容,使其输出带有版本号,编译日期,debug 或 release 字样的固件名

在这里插入图片描述
此处切记,编辑器默认的换行符必须是 CRLF,否则 bat 脚本将无法成功运行

translate.bat 内容如下:

:: 获取发布标记输入参数值
set RELEASE_FLAG=%1%:: 由于不好同步代码里面版本号,所以此处也需要创建相同的版本变量,
:: 版本号变更时,此处也需要变更,才能使得生成 oad ota 升级文件变更版本号.
set APP_MAJOR_VER=1
set APP_MINOR_VER=0:: 获取当前日期,例如:20220507
set /a APP_VER=(APP_MAJOR_VER "<<" 4) + APP_MINOR_VER
set BUILD_DATE=%date:~2,2%%date:~5,2%%date:~8,2%:: SDK traslate.bat 自带内容
.\output\BinConvert  -oad .\output\boot\bk3633_boot.bin  .\output\stack\bk3633_stack.bin  .\output\app\bk3633_app.bin -m 0x1F00 -l 0x25b00 -v %APP_VER% -rom_v 0x000D -e 00000000 00000000 00000000 00000000:: 先修改文件名,再复制文件到组合了版本号、编译日期、发布版本标记的固件名文件,此处保留原始文件,是为了方便追踪
move .\output\app\bk3633_app_merge_crc.bin .\output\app\bk3633_app_merge_crc_%RELEASE_FLAG%.bin
move .\output\app\bk3633_app_oad.bin .\output\app\bk3633_app_oad_%RELEASE_FLAG%.bin
copy .\output\app\bk3633_app_merge_crc_%RELEASE_FLAG%.bin .\output\app\bk3633_app_merge_V%APP_MAJOR_VER%.%APP_MINOR_VER%_%BUILD_DATE%_%RELEASE_FLAG%.bin
copy .\output\app\bk3633_app_oad_%RELEASE_FLAG%.bin .\output\app\bk3633_app_oad_V%APP_MAJOR_VER%.%APP_MINOR_VER%_%BUILD_DATE%_OTA_%RELEASE_FLAG%.bin

2.7 在 Debug 和 Release 目标执行 translate.bat 脚本时分别增加输入参数 debug 和 release

Debug 目标如下:
在这里插入图片描述
Release 目标如下:
在这里插入图片描述

2.8 修改编译选项,源文件中判断宏定义是否定义,来区别 debug 和 release 版本

Debug 目标新增如下编译选项:
在这里插入图片描述
Release 目标不新增该编译选项

源文件中使用如下条件判断:

#ifdef APP_DEV_DEBUG//debug 版本
#else//release 版本
#endif

其实 Debug 和 Release 目标最主要的区别就在于调试打印信息是否输出

2.9 保存以上所有工程修改

在这里插入图片描述

三 执行

3.1 单独编译 Debug 目标

在这里插入图片描述

3.2 一次性编译 Debug 和 Release 目标

在这里插入图片描述

四 结果

一次性编译后,在目标目录下自动生成了如下文件,避免了每次发布版本需要手动添加版本号和编译日期等信息,提高了效率
在这里插入图片描述


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部