劳动者,心常青

昨晚和家里人一起吃饭,聊起明天是青年节。我说,“青年的标准不一样”,这时女儿转过头看着我,我接着说,“按某些标准,爸爸还是青年^_^”

最后几个字一出口,立刻遭到打击,妻子的话最直接:“按哪里的标准,你也算不上了” :-(

在别人眼里算不上就算不上吧,只要自己的内心仍然年轻。根据我的经验,有两种方法可以保持内心年轻:一种是不断学习,另一种便是经常劳动。二者是相辅相成的,最好的学习方法便是在劳动实践中学习,最好的劳动便是可以收获新知的劳动。

这个小长假的第一天,也就是5月1日,魔都阳光灿烂,天气非常好。一早起来,我便开始体力劳动,躬耕于格蠹园。

5月1日干了一天的体力活后,5月2日开始改为脑力劳动,到办公室加班。

加班的内容是想解决一个技术问题,也就是使用JTAG技术来调试ARM架构的CPU核心。

JTAG是一种底层的调试技术,利用芯片中内建的调试设施来建立调试会话,实现多种应用场景,比如烧录固件、底层调试等。我的目标是用JTAG来调试系统中的固件和软件。

与X86上的JTAG技术长期封闭不同,ARM上的JTAG技术是相对开放的。首先,ARM公司开放了较多的技术细节,并且制定了一些标准,比如CoreSight技术,以及ARM Debug Interface(简称ADI),目前常用ADI版本一般是5.1 (比如ADIv5.1)。

第二,ARM还以开源项目的形式开放了一些代码,比如CMSIS DAP,以及较新的DAPLink等。

第三,业界也有一些著名的开源项目,比如OpenJTAG,OpenOCD等。

第四,市场上的调试器硬件比较多,除了官方的DSTREAM,还有很多品牌的产品,以及非品牌的产品。在淘宝上搜一下,可以找到很多。

虽然如此,仍有几个较大的问题:

- 目前能调试ARM-M核心的方案较多,能调试ARM-A核的较少。简单说,M核心不能跑标准的Linux内核,A系列的可以。

- 使用JTAG技术来刷固件的方案很多,但是使用JTAG来调试的方案相对较少。

市面上的很多ARM板子都没有引出JTAG信号,包括一些针对开发者设计的xx PI,网页做的很漂亮,口号也很响,但连个JTAG口都不留,怎么对得起开发板的称呼?

为了解决上述问题,我特意请伙伴工厂帮忙,做了一个转接板,目的是把隐藏的JTAG信号拉出来。

 因为历史原因,ARM上的JTAG接口非常乱套,首先是信号数量差别很大,从4线的SWD口,到10线或者20线的JTAG口。其次是接口尺寸大小不一,同样是20线的,针脚之间的间距还不一样,常见的有2.0mm,也有2.45mm的。

为了把不同大小的口能互联,有人做了转接卡。

还有所谓的“7种排线”,就是7条不同规格接口的并排软线。

因为准备工作不充分,我们忘记采购“7种排线”,导致有些接口之间连不上,只好用杜邦线,一根根的连接,这样连接不接费时费工,而且容易接错。

除了线和接口之外,另一个选择符合我们要求的JTAG适配器(有时叫调试器硬件,也叫xx盒)。短短几天时间里,我们尝试了好多种不同年代、不同风格、当然也是不同价位的适配器。

最老的要算这个与主机通过“并行口”连接的EasyJTAG,它是多年前我在北京东路的科技京城上班时买的,店家是著名的“周立功”上海公司。

最贵的要数ARM官方的DSTRAEM。

目标板也试验了很多块,有Firefly的3399,ASUS的Tinker Board,以及Orange Pi,还有很老的A7单片机。

5月2日收获不大,下班路上,风好大......

5月3日发现了一个接一个的问题,并且快速在淘宝上下单购买了一批新装备。

感谢淘宝上加班的商家伙伴,也感谢不休息的快递员,5月4日上午一大早,我们就收到了新装备。但是收到后,立刻发现还是缺了一种连接线。只好用杜邦线替代。

5月4日下午调整思路,对调试器的核心进程上调试器,跟踪OpenOCD的工作过程。

在调试器中建立了信心后,接下来整顿软硬件组合,再此试验,终于看到了期待已久的结果,可以使用定制的适配器把A72核心中断下来,并且可以稳定地单步跟踪。

成功的时间是4:35分,加班的小伙伴们拍了一张照片留念。

左上角白色台式机上面有一台GDK7,它是去年开发的X86调试方案的主角,今年我们用它做主机来开发它的兄弟产品GDK8。

回想去年4月初解决了GDK7的最重要技术问题,4月18日召开了线上发布会,5月份发出第一批产品。

让我没有想到的是,去年生产的最后一批GDK7到了今年,硬件部件的价格不仅没有下降,而且上升很多。或者说,办公室里的存货还涨价了。原因是很多人都知道的芯片紧缺和供货不足。

芯片是信息时代的最重要“引擎”,离开芯片很多东西都“玩不转”了。JTAG是与芯片设计、研发、生产、测试和生态系统都密切相关的核心技术。有了JTAG,我们便有了一种神奇的控制力,可以让以光速运行的CPU引擎停下来接受审查,“看见我们所看不见的”,这便是JTAG技术的魅力所在。

人生易老,有谁会不老呢?做一些自己喜爱的技术,向着梦想一步步前进可以让心保持年轻。

(写文章很辛苦,恳请各位读者点击“在看”,不胜感激)

*************************************************

正心诚意,格物致知,以人文情怀审视软件,以软件技术改变人生

扫描下方二维码或者在微信中搜索“盛格塾”小程序,可以阅读更多文章和有声读物

也欢迎关注格友公众号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值