工欲善其事,必先利其器

古语说:“工欲善其事,必先利其器”。我记得小时候做链条枪,家里的废自行车链子怎么也拆不下来,弄得一手机油。后来同学的老爸教我们用榔头和大钢钉拆,真是有如神助,一会儿就全拆开了。

好工具是工程师的好帮手,在解决实际问题的过程中起着非常重要的作用。4 年前,我想自己在业余时间做点开发,但是费劲周折也没有找到能在Linux 下使用的实惠的ARM 仿真器。那时候还没有OpenOCD 这种开源的调试软件可供选择,市面上流行的调试工具有基于并口的,有基于USB 口的,也有一些是基于网口的。

并口调试工具中,Wiggler 是我们最熟悉的了。但是由于越来越多的计算机不再带并口,使得这一类调试工具的使用越来越受限制。USB 口调试工具现在大行其道。但是这类工具在Linux 下使用时,常会因为驱动程序和内核版本不兼容而麻烦多多。我在公司曾看到过别的同事用BDI2000Linux 上做ARM 开发。BDI2000 是基于网口的仿真器。它速度快、效率高,可以用在任何操作系统上。但是它太贵了,不是我所能负担得起的。

最后我决定自己干!开发一款能在Linux 上使用的ARM 仿真器。按照我的设想,它也基于网口,可以用在任何操作系统上;它造价低廉,但同时也提供比Wiggler 快得多的速度。

我的开发工作正在胶着状态的时候,OpenOCD 开始流行。我也曾考察过这种开源工具,发现把它真正用起来其实也不容易。编译安装OpenOCD 对一个熟练使用Linux 的程序员而言没有什么太大的难度,但是它丰富的命令行参数和灵活的配置过程却太过复杂了。

花费这么长的时间开发这件工具是我始料不及的。从嵌入式系统的设计到TCPIP 协议栈的移植,从对各种ARM 核的支持到动态加载flash 编程驱动,每一步都不是一帆风顺的。中间有好几次差点过不去了,但最后总是柳暗花明。最后我终于把它 打磨 了出来,并且给它起了一个名字叫“NetICE” ,意为 基于网络的在线仿真器 。这真是一段让我难忘的经历,后面有机会可以和大家好好聊一聊。

我的这件 利器 有些什么特点呢?它和那些现在流行的仿真器有那些不同呢?看看我的下一篇博客吧。


 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值