使用printf函数在串口终端上打印输出这种调试方法能在一定程度上满足我们的调试要求。但是有的时候串口资源已经被占用或为了节约开发时间不使用串口,这时我们就需要一个不依赖于MCU外设的调试方法,例如非常经典的调试工具-半主机(semihosting)。
半主机是在调试ARM设备时,主机电脑可以与设备进行输入输出通信的一个机构。这个机构可以直接调用C语言库中类似printf和scanf的函数。这个机构的好处在于允许用户使用主机电脑的输入输出设备,方便了工程师们的软件开发过程。Semihosting 是通过设置软件中断(SWI)来实现的。调用了适当的软件中断和易于操作的软件中断的向量。
下面是使用STM32的板子在IAR下测试的实例:
1、首先在源代码中加入#include <stdio.h>,并在适当位置添加
printf("This is the sample project for semihosting\r\n");
2、在工程中进行以下设置:
3、编译工程之后进入Debug模式,再打开Terminal I/O窗口,运行代码即可看到打印信息了。
半主机调试技巧
本文介绍了一种不依赖MCU外设的调试方法——半主机调试技术。该技术允许开发者通过主机电脑进行输入输出操作,特别适合串口资源被占用的情况。文章通过STM32平台的实例演示了如何在IAR环境中配置并使用半主机调试。
766

被折叠的 条评论
为什么被折叠?



