历史上的今天
今天是:2025年05月20日(星期二)
2018年05月20日 | STM32 在 KEIL 下使用 SWV 输出调试信息
2018-05-20 来源:eefocus
—— 使用STM32,个人认为 keil 还是首选
SWV 需要占用一个引脚 PB3/JTDO/TRACES WO 与 JTDO 复用,使用 SW 时,这一脚将被占用,作为 TRACES WO,一般常见仿真器直接支持
首先重写 fputc
#include
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》其它没有什么好设置的
史海拾趣
|
本帖最后由 jameswangsynnex 于 2015-3-3 19:58 编辑 每周一轮的京城彩电价格战打到上周末打出一个拐点:40英寸液晶跌破1万元大关,首次低于42英寸等离子价格线。失去价格优势的等离子阵营正面对液晶阵营的步步逼宫,“生存还是毁灭?”这已是等离 ...… 查看全部问答> |
|
lpc11xx就不用说,咱论坛也做过类似的讲座:https://bbs.eeworld.com.cn/thread-91994-1-1.html 且说说EFM32: 一个运行电流为50nA的32kHz实时计数器,一个运行电流为100nA的、可达9600bps的通用异步收发传输器。感觉超NB 很希望可以用用,大家 ...… 查看全部问答> |
|
关于wince5 串口中断服务函数SerialDispatchThread的疑问 在SerialDispatchThread函数中有下面语句,请问: /* Wait for the event that any serial port action creates. */ while ( !pSerialHead->KillRxThread ) { DEB ...… 查看全部问答> |
|
用wince下的串口驱动移植的。 写完测试的时候都是在16字节以内进行的,收发正常。现在PC端每次发送超过16字节的数据,我的WINCE设备这边只能收到16字节,每次发送超过16字节的就丢失了。 芯片用得是16554. 这个可能是什么原因啊? 很奇怪我把FIFO ...… 查看全部问答> |
|
UART1串口只能接收16个字节的数据,超过16个字节的数据全部丢失 void uart1IsrInit(void) { INT16U usFdiv; U1LCR = 0x87; & ...… 查看全部问答> |
|
这次的工程师名叫稻叶拓也(Takuya Inaba),他在完成了拆卸 10 颗螺丝、撕下防水胶带等一系列动作之後,把包括英伟达芯片在内的大小零件全部展现在了我们眼前。如果你觉得上次的图集还不够过瘾的话,跳转后可以看到完整的拆解视频(其实后来他还 ...… 查看全部问答> |




