STM32-半主机
半主机
半主机是什么
根据我的理解,半主机就是将嵌入式设备与开发设备连接起来之后,嵌入式设备可以调用开发设备的显示器与键盘等输入输出设备这一种模式。
半主机是用于 ARM 目标的一种机制,可将来自应用程序代码的输入/输出请求传送至运行调试器的主机。 例如,使用此机制可以启用 C 库中的函数,如 printf() 和 scanf(),来使用主机的屏幕和键盘,而不是在目标系统上配备屏幕和键盘。
这种机制很有用,因为开发时使用的硬件通常没有最终系统的所有输入和输出设备。 半主机可让主机来提供这些设备。
参考链接1: STM32半主机模式。
半主机是怎么实现的?
半主机是通过一组定义好的软件指令(如 SVC)来实现的,这些指令通过程序控制生成异常。应用程序调用相应的半主机调用,然后调试代理处理该异常。
请使用 BKPT 指令来实现半主机。
啥是BKPT指令?
详细见这个大佬的调试过程。
BKPT指令
总之BKPT就是个ARMv5T之后加入的中断指令: 当程序运行到这个指令所在的地址时 处理器进入Debug状态 调试工具可以利用这个指令调查此时的系统情况.
在不使用半主机模式的情况下,我能使用开发设备的键盘与显示器么?
可能不大好用
什么是RealView?
RealView 是arm 没收购keil前自己的开发环境
然后arm收购了Keil,RealView就被弃用了。
现在用的都是Keil喽。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步