浅谈工程师的调试法宝(二)---半主机的巧妙应用
来源:互联网 发布:全球贸易预警数据库 编辑:程序博客网 时间:2024/05/15 16:11
半主机是在调试ARM设备时,主机电脑可以与设备进行输入输出通信的一个机构。这个机构可以直接调用C语言库中类似printf和scanf的函数。这个机构的好处在于允许用户使用主机电脑的输入输出设备,方便了工程师们的软件开发过程。
Semihosting 是通过设置软件中断(SWI)来实现的。调用了适当的软件中断和易于操作的软件中断的向量。关于半主机的实现原理,感兴趣的读者可以自行查阅资料,本篇文章重点介绍如何将半主机模式应用到实际的软件开发过程中。
我们测试是使用飞思卡尔公司的FRDM-KE06开发板,如图 1所示。关于飞思卡尔系列的更多的开发板资料,请访问http://www.zlgmcu.com/Freescale/。
图 1 KE06开发板
打开IAR工程,在主函数文件起始处包含stdio.h文件,如下所示。
#include
在主函数中,我们调用printf函数打印一些与芯片有关的信息,编译完成之后,对工程按照图 2所示配置。
点击OK,进入Debug模式之后,按照如图 3所示,打开Terminal I/O窗口。
当我们点击全速运行之后,我们可以在Terminal I/O窗口看到如图 4所示的信息。
可以看到,相关的芯片信息已经通过semihost打印出来了,并且也可以获得用户输入的字符哦。是不是很酷?
当我们高高兴兴地看着打印出来的信息时,发现字符输出的速度很慢,查阅资料才明白,在半主机模式下,输出字符的速度大概是10ms每个字符!
God!多么好的一个调试工具,但是字符输出的速度也太慢了吧。那么有没有一种调试方法和semihost一样不占用MCU外设资源,并且字符输出速度也很快呢?当然有,敬请大家关注《浅谈工程师的调试法宝(3)之SWO引脚的巧妙应用》。
原文出处:http://maker.zlgmcu.com/portal.php?mod=view&aid=1877
- 浅谈工程师的调试法宝(二)---半主机的巧妙应用
- 浅谈工程师的调试法宝(三)---SWO引脚的巧妙应用
- 浅谈工程师的调试法宝(四)---RTT的应用
- 浅谈工程师的调试法宝(5) -JScope的应用_MCU
- 单片机调试——《浅谈工程师的调试法宝(四)——RTT的应用》
- 工程师的调试法宝之半主机模式使用
- 浅谈工程师的调试法宝(五) -JScope的应用_MCU
- 浅谈工程师的调试法宝(一)---Printf串口输出
- 工程师的调试法宝之Printf串口输出
- 工程师的调试法宝之Segger RTT使用
- 硬件工程师调试法宝
- 浅谈iOS调试技巧的实际应用(二) UI篇
- 浅谈iOS调试技巧的实际应用(二) UI篇
- 浅谈iOS调试技巧的实际应用(二) UI篇
- hash的巧妙应用
- 位的巧妙应用
- 高效、奋进的工程师团队:华为制胜的法宝
- 程序员的法宝 – GitHub(二)
- laravel5.4 使用多字段查询分组报错
- 3d模型任意切割的思路(续)
- 使 Oracle 索引失效的七大限制条件
- 3.4—字符串—Add Binary
- js知识总结思维导图
- 浅谈工程师的调试法宝(二)---半主机的巧妙应用
- 编码
- kotlin Android中 findViewById()不能推导类型的错误
- Intellij IDEA的常用设置
- Android Coding 利器 之 掌握小技巧
- 1107. Social Clusters (30)并查集
- composer安装laravel
- 什么是BIM
- 回应『Angular有哪些地方比Vue更优秀?』