2026 / 07 / 22
e² studio printf console调试

Question:

如何启用 printf() 等Console(控制台)调试工具?

Answer:

可以通过以下几种方法在e² studio中实现Console(控制台)调试。


方法1:通过“Dynamic printf”实现

在e²studio中,作为CDT (C/C++ Development Tooling) debugger,“Dynamic printf”也可以用来执行 printf 格式的控制台输出。此功能无需在源代码中编写 printf 函数实现,即可在调试控制台(非虚拟控制台)中输出字符串、变量和表达式。

操作视频: e² studio Tips - How to use printf debugging without changing the source code (Using Dynamic Printf) (00:01:38)


启动调试,在代码左侧处单击右键,菜单中会出现 “Add Dynamic Printf...”。

(与设置断点时的操作相同)。
点击后,出现 “Properties for C/C++ Line Dynamic Printf”对话框,在“printf(”中以printf格式输入字符串或变量名。
凡是可设断点的地方,都可以设置Dynamic printf。

利用该特性(Dynamic printf)无需在源代码中写 printf函数实现。
需注意,使用Dynamic printf会破坏实时性,这是因为每次输出console都会先停止再恢复调试器。
另外,与设置断点一样,在一个工程中设置的Dynamic printf 不会在导入另一个工程时继续生效。


方法2:通过 Semihosting 或 RTT(适用于基于 Arm® 内核的产品,如 RA 和 RZ)进行虚拟控制台输出

Arm®-core Semihosting 功能可将标准 I/O 重定向到虚拟控制台。使用 J-Link 仿真器时还可以利用 RTT(RTT = Real Time Transfer;详情请参阅相关的FAQ)。

有关 Semihosting 功能的详细信息,请参阅以下 e²studio Help。


方法3:通过“Renesas Debug Virtual Console” 实现printf output (仅限RX系列)

标准 I/O 库功能(如 printf)需要执行底层函数。

有关该库的详细信息,请参阅CC-RX编译器帮助信息“Section 8.4 - Coding Example”的内容。

如果使用的是e²studio V7.3.0 或更高版本,假如创建新项目时勾选了“Use Renesas Debug Virtual Console”(使用瑞萨调试虚拟控制台),将会生成底层函数作为启动代码的一部分。

启动代码文件在 {Project folder}/src/smc_gen/r_bsp/mcu/all (使用Smart Configurator的工程)或 {Project folder}/generate 中。

“Renesas Debug Virtual Console” 默认为隐藏状态。

打开“Renesas Views”菜单,在 “Debug”类别中选择“Renesas Debug Virtual Console”后,即可显示视图窗口。

然后启动调试,控制台视图中将显示以下信息。


通过将 CC-RX 样例工程中的下列文件复制到当前的 RX 工程,也可添加控制台输出功能。

  •  lowlvl.src
  •  lowsrc.c
  •  lowsrc.h

If the following block is disabled in your startup code (typically in resetprg.c), define the symbol (use #define or -D option) to enable it.

如果在启动代码(通常在 resetprg.c中)中禁用了以下代码块,请通过定义宏名DEBUG_CONSOLE(使用 #define 或 -D 选项)来启用。

#ifdef DEBUG_CONSOLE
 _INIT_IOLIB();
#endif
文件下载
隐私条款

一、接受条款 使用者(也称"您")在访问或使用本网站及其服务时,即已经表示同意并不加修改地接受本《用户协议》、本网站的《隐私声明》、《法律声明》以及其关或相链接的网页和网站的条件和条款的规定。我们强烈建议:在您阅读和接受本《用户协议》时,也应阅读并接受本《用户协议》中所提到《隐私声明》、《法律声明》及其相关或相链接网页或网站所包含的资料,因为《隐私声明》、《法律声明》及其它相关网页或网站可能包含对您适用的进一步规定。(请注意:点击划有底线的词句即可链接到上述《隐私声明》、《法律声明》及其它相关或相链接的网页和网站。

 

二、使用者的资格要求 在本网站中"使用者"指的是浏览、阅读、使用本网站信息或服务的任何个人或组织。本网站的服务仅适用于根据相关法律的规定具有签订有约束力的合同的个人或组织并仅由其使用。本网站的服务不向18周岁以下的个人使用者提供,也不向临时被本网站中止或取消使用者资格的使用者提供。如果使用者不符合本条规定,请停止使用本网站或本网站的服务。

样品
申请

应用
资源

微信