三种常见的嵌入式调试方法
一、打印法
最简单的调试方法就是直接打印或输出到日志文件里。请参考:http://www.top-e.org/jiaoshi/html/?177.html
二、GDB远程调试
请参考:http://tope.eefocus.com/article/09-07/1389691246949101.html
三、CDT远程调试
请参考:http://blog.simophin.net/?p=774
(转)C语言:内存字节对齐详解
一、什么是对齐,以及为什么要对齐:
1. 现代计算机中内存空间都是按照byte划分的,从理论上讲似乎对任何类型的变量的访问可以从任何地址开始,但实际情况是在访问特定变量的时候经常在特定的内存地址访问,这就需要各类型数据按照一定的规则在空间上排列,而不是顺序的一个接一个的排放,这就是对齐。
2. 对齐的作用和原因:各个硬件平台对存储空间的处理上有很大的不同。一些平台对某些特定类型的数据只能从某些特定地址开始存取。其他平台可能没有这种情况, 但是最常见的是如果不按照适合其平台的要求对数据存放进行对齐,会在存取效率上带来损失。比如有些平台每次读都是从偶地址开始,如果一个int型(假设为 32位)如果存放在偶地址开始的地方,那么一个读周期就可以读出,而如果存放在奇地址开始的地方,就可能会需要2个读周期,并对两次读出的结果的高低 字节进行拼凑才能得到该int数据。显然在读取效率上下降很多。这也是空间和时间的博弈。
(整理)踏入C++中的雷区——C++内存管理小结
参考网址:http://dev.yesky.com/108/2380608.shtml
内存管理是C++最令人切齿痛恨的问题,也是C++最有争议的问题,C++高手从中获得了更好的性能,更大的自由,C++菜鸟的收获则是一遍一遍的检查代 码和对C++的痛恨,但内存管理在C++中无处不在,内存泄漏几乎在每个C++程序中都会发生,因此要想成为C++高手,内存管理一关是必须要过的,如果不想触雷,唯一的解决办法就是做到真正地通晓内存管理,发现所有潜伏的地 雷并且排除它们。
(引)重构学习资料
引自:http://www.cnblogs.com/xiaosuo/archive/2009/12/26/1632141.html
最近在看Matrin Fowler的著作《重构——改善既有代码的设计》。刚开始阅读的时候总感觉书中所列的许多重构方法过于平淡,重构步骤也过于琐屑,这些我们平常也经常会 做到,习惯大气挥洒的动作,何必以近乎枯燥的过程小步前进?然而,渐渐我才体会,正是这样的小步与缓步,不过激,不躁进,再加上完整的测试配套,才是不带 来bug的最佳保障。
(转)代码的21种“坏味道”
选自 Martin Fowler的《Refactoring,Improving the design of the existing code》一书
1.Duplicated Code
代码重复几乎是最常见的异味了。他也是Refactoring 的主要目标之一。代码重复往往来自于copy-and-paste 的编程风格。与他相对应OAOO 是一个好系统的重要标志。