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 强制回退老形式 → 全部恢复。

相关推荐
Zw-awa19 分钟前
从 CH340 到 HC-05 和 HC-06:让小车脱离电脑
stm32
硅基手札1 小时前
【Linux 内核专栏 19】20 · 嵌入式子系统 — GPIO·pinctrl·clock·regulator
linux·运维·单片机·linux内核·嵌入式开发·调试定位
何粥学3 小时前
Vivado 2024.2 开发记录(AC820 Zynq-7020)——软件使用,点亮led灯
单片机·嵌入式硬件·zynq
Sakura_j_h_4 小时前
51 单片机驱动四位数码管:动态扫描、限流电阻与消影的取舍
单片机·嵌入式硬件·51单片机·嵌入式·数码管·动态扫描·限流电阻
灼行16 小时前
Autosar SecOC 需求场景BUG(需求不一致性)【草稿】
bug
蹊黎16 小时前
Linux 下用 C 语言实现进度条
linux·c语言·单片机
Zw-awa20 小时前
从 CPU 搬运到自动搬运:DMA、空闲中断和两块缓冲
stm32
无敌贵点大王20 小时前
从寄存器层面重学STM32(6)——串口USART实战部分
stm32·单片机·嵌入式硬件
庙堂龙吟奈我何20 小时前
二进制和十六进制
stm32·单片机
国科安芯1 天前
长期在轨的计算底座:商业空间站与在轨服务飞行器健康管理中的抗辐射MCU—— 面向可维护空间平台的分层容错与安全通信综述
人工智能·单片机·嵌入式硬件·安全·低轨卫星·抗辐射