OpenVINOTM,给你看得见的未来!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » semihosted 请教semihosted

共2条 1/1 1 跳转至

semihosted 请教semihosted

院士
2006-12-22 22:43:00    评分
semihosted 请教semihosted



关键词: semihosted     请教    

院士
2006-12-22 22:43:00    评分
2楼
问 请教semihosted的含义及其机理是什么?非常感谢!! 1: 我也曾经遇到这个问题!大意是你可以在你的Application Code中使用printf等Stand IO Function in C Library!
方便调试吧!
更多的你可以参考ARM DUI 0058D(Debug Target Guide!) 2: 谢谢楼上 3: 我这段时间也在读这个!现在理解的意思大致如下,不当之处,请指正:

1、ARM公司对Semihosting的中文解释是半主机机制。为什么叫半主机呢?主要是指应用程序的代码运行在目标系统上,当需要类似PC平台下的控制台输入输出时,会调用Semihosting去利用PC上的控制台输入输出设备:如打开关闭文件,PC显示器输出,键盘输入等等。

2、Semihosting在ADS1.2的开发环境下,只能在以下调试代理上运行,ARMulator, RealMonitor, Multi-ICE以及Angle。这就是为什么周工的EasyJTAG不支持Semihosting的原理,因为它不属于上述四种调试代理中的任何一种。

3、Semihosting是一段功能代码,这段功能代码主要运行在PC上,并由调试工具上的固件来激活调用。而周工的EasyJTAG没有实现这个激活调用功能。

4、对于开发用户来说,Semihosting是目标系统通过调用SWI  0x123456或 SWI 0xAB来调用的。前者ARM状态下的专用操作号,后者是THUMB状态的专用操作号。当开发者的软硬件调试工具配置正确时,可以正确执行Semihosting功能。打个比方说,你在ARMulator下仿真指令
MOV   R1, 0x18
SWI   0x123456
ARMulator会正确终止你的程序执行。
而在EasyJTAG下仿真时,却会跳入0x08的异常向量入口处。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]