本帖最后由 wenyangzeng 于 2018-5-19 13:16 编辑
JLinkOB社区赠送板试用
感谢社区赠送JLinkOB板。
使用JLinkOB下载调试STM32可以直接利用板上的3.3V供电而无需对目标板外加供电。同时,Coreex-M3/M4支持仪器化跟踪单元(ITM),允许不同的软件把数据输出到不同的端口,用这个JLinkOB下载器可以利用板上的SWO引脚以printf格式将调试信息打印在PC端控制台。
在WIN10环境下,无需安装USB驱动就可以识别JLinkOB板子。本次试用,选择STM32F401discovery开发板和MDK5来调试。
JLinkOB与目标版的连接
在CubeMX中生成新的工程,在main.c中添加代码:
- #include <stdio.h>
- int fputc(int ch, FILE *f)
- {
- ITM_SendChar(ch);
- return(ch);
- }
- int main(void)
- {
- /* USER CODE BEGIN 1 */
- /* USER CODE END 1 */
- /* MCU Configuration----------------------------------------------------------*/
- /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
- HAL_Init();
- /* USER CODE BEGIN Init */
- /* USER CODE END Init */
- /* Configure the system clock */
- SystemClock_Config();
- /* USER CODE BEGIN SysInit */
- /* USER CODE END SysInit */
- /* Initialize all configured peripherals */
- MX_GPIO_Init();
- /* USER CODE BEGIN 2 */
- printf("Hello:STM32\n");
- /* USER CODE END 2 */
- /* Infinite loop */
- /* USER CODE BEGIN WHILE */
- while (1)
- {
- /* USER CODE END WHILE */
- /* USER CODE BEGIN 3 */
- }
- /* USER CODE END 3 */
- }
复制代码
选择J-LINK/J-TRACE Cortex
Port选择SW
Trace-ITM Stimulus Ports配置
编译下载后运行,在View->Serial Windows->点击Debug (printf)Viewer
printf信息显示在Debug (printf)Viewer
这款JLinkOB的下载速度挺快的。只不过STM32 ST-Link Utility与其不兼容。
|
int fputc(int ch, FILE *f)
{
ITM_SendChar(ch);
return(ch);
}
这个是printf的
ITM_SendChar(ch);的实现在哪儿啊
(因为我都是串口出去的 看到你keil在线仿真也看的debug了 挺高级的 问问)
在core_cm3.h
core_cm4.h
core_cm7.h
里
M0没有
谢谢 根据你的提示 果然成功了
有一个问题在请教一下
配置页面 我没有修改 也是可以printf ok的
这个配置页面是做啥用的
ITM 好像是 “Enable"的D0位。