workbench编译镜像
Ⅰ iar Embedded Workbench 如何看串口输出信息
1)打开KE02 platinum的IAR工程,进入到platinum.c文件,找到main函数如下图1,可以看到其调用了printf打印函数,而该工程是默认调用底层串口的,跳转到该函数的定义如图2,再继续跳转到out_char的函数定义如图3,这下就屡清楚了,可以很直观的看到工程默认是调用UART底层的,下面就要动手改造它对printf进行重定向;
2)首先需要注释掉printf的实现函数,将其屏蔽掉,然后需要给printf一个重新指向的地址,下面就该常见的<stdio.h>这位老兄出场了(貌似当初自打我开始接触Turbo C的时候就已经用到它了,老生常谈的“Hello world”就是调用它内部的printf来实现的)。找到Common.h文件,将<stdio.h>添加到其中,如下图,这样凡是需要printf的文件只需要添加common.h头文件即可:
3)这里先说说stdio.h文件的作用,打开stdio.h文件可以看到其内部定义了标准输入输出函数,包括常见的scanf和printf等函数,而这些函数所调用的底层即为IAR提供的链接到其Terminal的驱动,所以……懂的,呵呵。除此之外,肯定不满足只输出打印(给人略显低端的赶脚有木有),所以为了体现我们不是“土豪”,有必要让它交互起来,实现真正的串口功能(因为一些类似bootloader之类的还是需要输入参数的),我在main函数添加了scanf语句用来测试输入功能,如下:
4)准备工作就绪,编译链接整个工程,然后下载到KE02的板子中并进入到Debug调试环境中,点击View->Terminal I/O调出虚拟终端,然后全步运行,就可以看到Terminal下开始打印调试信息,如下。当然显示输出有点小case了,我们再试试输入功能,在input框中输入‘a’,然后回车,如下图,perfect:
5)还没完,要玩就玩高端大气上点档次的,再探索探索呢,结果又发现个小惊喜,点击上图右下角的“Input Mode”,弹出设置框如下,很高端啊有木有: