keil5.39版本使用AC6编译器不能位域操作的BUG使用STM32U385系列MCU

从L4系类MCU迁移到U系列MCU时需要强制使用AC6编译器,U系列在仿真时watch窗口操作bit时不能使用0-1开关某个变量,必须使用字节控制,这造成了很多麻烦。

经过验证,在相同的代码工程中keil5.36可以位域操作,keil5.39不行。

最后经过AI分析,在 5.39 工程里给 AC6 加编译选项-gdwarf-3(Options → C/C++(AC6) → Misc

Controls)恢复。

objectivec 复制代码
-gdwarf-3

根因

• armclang V6.21(µVision 5.39 捆绑)默认输出 DWARF4,位域用 DW_AT_data_bit_offset 描述------µVision 的表达式求值器不认识这种形式,于是位域写退化成整字写(落 bit0=adjust_start)、文件 static 全部 cannot evaluate。

• armclang V6.18(µVision 5.37 捆绑)输出老形式 DW_AT_bit_offset,所以 5.37 一直正常。

• -gdwarf-3 强制回退老形式 → 全部恢复。

相关推荐
@松3 小时前
STM32F103C8-GPIO—位带操作学习
stm32·嵌入式硬件·学习
捷瑞电子工坊15 小时前
嵌入式秋招面经:5大核心模块高频考题与实战避坑总结
c语言·stm32·嵌入式工程师·rtos·通信协议·嵌入式面试
大爱编程♡16 小时前
GPIO-I2C
stm32·单片机·嵌入式硬件
angryshan16 小时前
goLang配置断点流程
go·bug
振南的单片机世界17 小时前
PVD掉电中断——让单片机“咽气前”写完遗书
arm开发·stm32·单片机·嵌入式硬件
续写烂尾20 小时前
SD NAND存储实测:正点原子STM32精英板SDIO读写验证全流程
stm32·单片机·嵌入式硬件
wuyk5551 天前
1.栈:后进先出的线性数据结构
c语言·数据结构·stm32·单片机
Crkylin1 天前
Cortex-M SysTick系统滴答定时器详解
单片机·嵌入式硬件
gscsded1 天前
AUTOSAR CanTp 模块学习笔记
单片机·嵌入式硬件·汽车