打印
[STM32F1]

如何获取 dwarf2 文件以使用 proteus进行仿真

[复制链接]
183|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
柴库柴库|  楼主 | 2025-5-26 10:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在 STM32Cube IDE 中为 proteus ISIS 中的STM32F103C6创建的项目,出于调试目的,搜索查到我需要 .elf 文件和 dwarf2 文件,我发现 STM32Cube IDE 的 GCC 使用选项 -gdwarf-2 生成 dwarf 2 文件,
我在项目属性 选择 -gdwarf-2和 -gdwarf-2 都不起作用,
在 Tool Settings 中还有几个相关选项是 none、minimal (-g1)、default (g) 和 maximum (-g)

不知道如何配置这些内容

使用特权

评论回复
沙发
公羊子丹| | 2025-5-27 07:40 | 只看该作者
我记得 CubeIDE 默认生成的 .elf 文件本身就带 debug 信息了,你直接用 .elf 文件试试看能不能在 Proteus 里跑?

使用特权

评论回复
板凳
周半梅| | 2025-5-27 07:41 | 只看该作者
Tool Settings 那边选 “maximum (-g3)” 就行,不用强行指定 -gdwarf-2,GCC 默认就是 dwarf2。

使用特权

评论回复
地板
帛灿灿| | 2025-5-27 07:42 | 只看该作者
你试试看 Project -> Properties -> C/C++ Build -> Settings -> Optimization,把优化等级调低一点,debug 信息更完整。

使用特权

评论回复
5
童雨竹| | 2025-5-27 07:42 | 只看该作者
Proteus 主要是吃 .elf 文件的符号表,不一定非要独立的 .dwarf 文件,你 elf 文件是 Release 还是 Debug 版本?

使用特权

评论回复
6
万图| | 2025-5-27 07:43 | 只看该作者
有时候 elf 里虽然包含 debug 信息,但你用 hex/bin 烧录就丢了,调试必须 elf 全文件一起用。

使用特权

评论回复
7
Wordsworth| | 2025-5-27 07:44 | 只看该作者
不要手动加 -gdwarf-2,容易冲突,选 “maximum” 就可以,CubeIDE 会自动处理。

使用特权

评论回复
8
Bblythe| | 2025-5-27 07:45 | 只看该作者
如果你一定要确认 elf 中有 dwarf 信息,可以用 readelf -wi your.elf 查看段信息。

使用特权

评论回复
9
Pulitzer| | 2025-5-27 07:45 | 只看该作者
建议你生成后,在 Console 里检查 build 命令行,看有没有包含 -g,确认编译器参数是否生效了。

使用特权

评论回复
10
Uriah| | 2025-5-27 07:46 | 只看该作者
有些情况下你需要手动告诉 Proteus 加载符号信息,比如 elf 文件路径里不能有中文和空格。

使用特权

评论回复
11
Clyde011| | 2025-5-27 07:47 | 只看该作者
我在 Proteus 用 STM32 仿真时,只用 .elf 文件 + STLink 仿真配置就能跑了,没额外设置 dwarf。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

21

主题

26

帖子

0

粉丝