STM32 在 KEIL 下使用 SWV 输出调试信息

原文地址::http://www.360doc.com/content/10/0714/22/1090703_39061838.shtml


—— 使用STM32,个人认为 keil 还是首选
SWV 需要占用一个引脚 PB3/JTDO/TRACES WO 与 JTDO 复用,使用 SW 时,这一脚将被占用,作为 TRACES WO,一般常见仿真器直接支持

首先重写 fputc

#include <stdio.h>
int fputc(int c, FILE *f)
{
ITM_SendChar(c);
return(c);
}

就可以使用 printf 输出调试信息,但实际上我这么做失败了,初始化的时候不知道卡在了哪里,也不弄了,反正 ITM_SendChar 一样可以输出。

打开工程选项:
- project -> options for target
- "Debug"标签
- Initialization File: Keil\ARM\Boards\Keil\MCBSTM32\STLIB_Blinky\STM32DBG.ini
因为 SWV 设置只能由调试器写入

仿真器选择:
如果使用 ULINK,则选择 SWJ/Port SW
如果是 JLINK,则选择 Port SW

Trace 选择:
- Trace enable
- Core Clock 填写你捕获时CPU的频率
- ITM 使用端口 0 ,这个改不改应该影响不大

进入调试后:
View -> Serial Windows -> Debug (printf) Viewer 就看到输出信息了

最后备注一下:我山寨版的 ULINK2 失败了……但同样是山寨版的 JLINK 成功了


//======================================================
备注::
1》这样试了一下还真的是可以打印出调试消息----用printf函数-----打印到了UART#1
2》配置工程使用的是仿真环境----Options/Debug/Use Simulator/++++指定STM32DBG.ini做为初始化文件
3》其它没有什么好设置的


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Proteus是一款虚拟电子电路设计与仿真软件,而STM32F103是一款32位微控制器,而Keil是一款针对ARM架构的集成开发环境。如何在Proteus中与Keil进行联合调试呢? 首先,要在Proteus中加入STM32F103的元件库。通过打开Proteus软件,在元件库中搜索并添加STM32F103元件。接下来,点击元件库下方的“编辑器”按钮,进入编辑模式。然后,将STM32F103元件拖动到原理图工作区。 其次,在Keil软件中创建一个新的工程,在工程设置中选择正确的目标芯片型号,即STM32F103。编写或导入你想要调试的C代码,并进行编译。 接下来,在Proteus的编辑模式中,右键点击STM32F103元件,选择“特性”选项。在弹出的特性对话框中,找到“仿真路径”选项,并将其设置为Keil软件的安装路径。 然后,将Keil生成的.hex或.bin文件导入到Proteus中。在Proteus的编辑模式中,右键点击STM32F103元件,选择“加载程序文件”,并选择你编译好的.hex或.bin文件进行加载。 最后,点击Proteus软件的“运行”按钮,进行仿真。Proteus将会启动Keil软件,并在Keil的调试界面中显示源代码和调试器状态。你可以使用Keil的调试功能来单步执行代码、查看变量的值等。 通过以上步骤,你可以在Proteus中进行STM32F103的联合调试。这样可以方便地在虚拟环境中调试和验证你的代码,节省了硬件资源和成本。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值