能否让 CubeIDE 生成受 #if DEBUG 保护的 GPIO 初始化代码?
能否让 CubeIDE 生成受 #if DEBUG 保护的 GPIO 初始化代码?在我的板上,有一些 LED 连接到与调试器连接共用的引脚。我想用 CubeIDE 仅在项目设置为 Release 构建时将这些引脚初始化为输出。CubeIDE 本身不会自动加 #if DEBUG,但你可以在 MX_GPIO_Init 里手动包住那几行。 我一般是在 /* USER CODE BEGIN 1 */ 里插入 #if 条件编译,把 LED 的初始化挪过去。 你可以在 gpio.c 文件末尾自定义个函数专门初始化 debug LED,条件编译加上去。 试试在 IOC 的 User Label 里写标记,然后在生成代码后用脚本自动加宏保护。 我也遇到这个问题,用的是 #ifndef NDEBUG 来控制调试版和发布版不同的引脚设置。 CubeMX 不支持条件生成 GPIO,只能自己维护那几行初始化代码,注意别被覆盖了。 加个 BUILD_TYPE 宏,在不同构建配置里传入 -D 定义,再在代码里用 #if BUILD_TYPE_DEBUG。 我现在用 post-build 脚本替换一部分 GPIO 初始化文件内容,也能实现自动区分。 你可以复制一份 GPIO_InitTypeDef,条件编译后再 HAL_GPIO_Init,对应输出引脚搞定。 不如干脆在 debug 和 release 两个 profile 下,各维护一套 gpio.c 文件,互不干扰更清晰。
页:
[1]