嵌软调试

做嵌软也有好几年了,但说起调试来,我还真没什么高明的办法。以前曾开发过台湾KB司的单片机,可以在线调试,这个还比较好玩。不过在线调试要控制器和调试器一起支持,一般是芯片公司要提供支持。目前常用的是采用打印信息的方法来进行调试。打印信息的方法不是很好用,所以为了尽量避免和少在目标机上调试,一般都会做好一个简易的目标机的返真,充分利用VC调试的便利性,把程序的逻辑问题在VC上调试解决,目标机上只调试和硬件相关的代码,这样会降低调试的工作量,加快开发进度。

有时候VC上运行的结果和目标机上运行的结果不一致,这说明我们写的代码的移植性不好。为了做到VC上运行的结果和目标机上运行的结果在逻辑上一致,我个觉得要做到以下几点,这也是为了减少调试的工作量和难度,算是未雨稠缪吧。

1、代码规范化

关于代码规范化,有很多这样的文章了,它的好处也不用多说了。这里说说我的见解。

l         写代码要形成自己的风格,当进入一个公司时,如果公司有代码规范,那要融入公司的代码规范。没有的话也要尽量和大家保持一致。

l         写代码时尽量不要出现一些无聊的空格、一些无聊的空行、一些无聊的注释。缩进统一用tab,不要用空格,最忌tab和空格共用。

l         标识符命名时尽量取些有意义的名字,最好不要名字和用途相差太远,以免让别人误解。

2、消除一切警告,因为警告多了,一些重要的警告就看不过来了。

3、代码可移植性要好。

l         多一些显示指定,如函数调用一定要有函数声明,类型不同时要显示转换,不要让编译器采用默认转换。

l         少用缺省,因有可能不同的编译器有不同的解释,或有的会导致维护难度增加,人家不明是漏了还是故意这样。如函数声明和定义时显示指定返回类型,switch语句中的default尽量不要省,如break要去除,最好注明。

l         小心用int型,因它的宽度与CPU相关,可能你在VC上调试的软件没问题,说不定到了16位机上就会有问题了。尽量采用预定义的类型如U8、S8、U16、S16等等这种类型,方便移植。

l         小心使用++和--,如下面这样的代码就要小心:

if ((b = (*a++)) + (c = (*a++)))

{//这里b和c和值有可能不能预料

//use b

//use c

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值