STM32裸机编程指南-9

系列目录

用Segger Ozone进行调试

如果我们的固件卡在某个地方并且 printf 调试不起作用怎么办?甚至连启动代码都不起作用怎么办?我们需要一个调试器。那有很多选项,但我建议使用Segger的Ozone调试器。为什么?因为它是独立的,不依赖任何IDE。我们可以把 firmware.elf 直接提供给Ozone,它会自动拾取源文件。

可以从Segger网站下载 Ozone。在用它调试我们的Nucleo开发板之前,我们需要把板载的ST-LINK固件改成jlink的固件,这样Ozone才能识别。遵循Segger网站的说明完成固件修改。

现在,运行Ozone,在向导中选择设备:

选择我们要用的调试器硬件:

然后选择 firmware.elf 固件文件:

接下来的步骤保持默认,点击“完成”,调试器已经载入(可以看到mcu.h源码被拾取):

点击左上角的绿色按钮,下载、运行固件,然后会停在这里:

现在我们可以单步运行代码,设置断点,以及其它调试工作。有一个地方可以注意,那就是Ozone方便的外设视图:

我们可以用它直接检查或设置外设的状态,例如,点亮板子上的绿色LED(PB0):

  1. 先使能GPIOB时钟,找到 Peripherals -> RCC -> AHB1ENR,然后把 GPIOBEN 位设为1:

  2. 找到 Peripherals -> GPIO -> GPIOB -> MODER,设置 MODER0 为1(输出):

  3. 找到 Peripherals -> GPIO -> GPIOB -> ODR,设置 ODR0 为1(高电平):

这样绿色LED就被点亮了。愉快地调试吧!

公众号 | FunIO
微信搜一搜 “funio”,发现更多精彩内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值