ARM的半主机模式(Semihosting)

本文介绍ARM的半主机模式,并介绍在MCU进行调试时其他的调试方法和手段。

1.ARM半主机模式(Semihosting)

ARM Semihosting是ARM平台的一个独特功能,它允许使用主机上的输入和输出函数,通过硬件调试器转发到微控制器,通过挂接到I/O函数,如printf()和scanf(),甚至fopen()。

Semihosting由一组定义的软件指令(例如 SVC)实现,这些指令从程序控制中生成异常。应用程序调用相应的Semihosting调用,然后调试器通过与主机上的调试应用程序通信来处理异常。

ARMv7之前的ARM处理器使用SVC指令(以前称为SWI指令)进行Semihosting调用。但是,对于ARMv6-M或ARMv7-M,在Cortex-M1或Cortex-M3处理器中,Semihosting是使用BKPT指令实现的。

如图,目标板,如MCU内部调用printf(),Host和Target通过仿真器连接,这样printf()就可以通过仿真器将字符输出到开发环境相应的调试窗口上,方便我们调试。

2.其他调试方法

另外,除了semihosting调试方式外,MCU还有其他的调试方法。

1)Semihosting:内置于每个ARM芯片,需要添加额外的库并在调试模式下运行。

2)控制台日志:转发到本机UART端口,通过USB端口转发到虚拟COM端口。

3)串行线视图(SWV):通过专用单线输出(SWO)引脚快速输出,但它仅在Cortex-M3+上可用,这是单向通信。

4)实时传输(RTT):速度极快,但只能与SEGGER调试器配合使用,可以进行实时双向通信。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值