Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3005919
  • 博文数量: 523
  • 博客积分: 11908
  • 博客等级: 上将
  • 技术积分: 5475
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-03 15:50
文章分类

全部博文(523)

文章存档

2019年(3)

2013年(4)

2012年(71)

2011年(78)

2010年(57)

2009年(310)

分类: LINUX

2009-07-12 01:30:52

 

【摘要】在嵌入式系统的程序设计中,由于软硬件平台的多变性,对程序的可移植性、可扩充性、可裁减性及可维护性等有更严格的要求。本文从宏定义设计、数据结构设计及函数设计等方面,简单介绍了可移植性的设计问题。在嵌入式应用中非常注重代码的时空效率,即产生的代码运行时间和占用的存储空间尽可能少。程序设计一章介绍了如何提高程序的运行效率的相关技巧。
 
【关键词】嵌入式,可移植性,可维护,可裁减,宏定义设计,数据结构设计,时空效率
 
 
目录
 
1   宏定义设计... - 1 -
1.1     为何要采用宏定义?... - 1 -
1.2     宏定义的基本规则... - 1 -
1.3     依赖关系定义宏改善移植性... - 1 -
1.4     通过偏移量和掩码进行位操作... - 2 -
2   数据结构设计... - 4 -
2.1     结构体中成员对齐规则... - 4 -
2.1.1        自然对界... - 4 -
2.1.2        指定对界... - 4 -
2.2     合理设计成员顺序... - 5 -
2.2.1        减少结构体存储空间... - 5 -
2.2.2        填充部分域,避免字节对齐问题... - 6 -
2.2.3        字节对齐问题实例... - 7 -
2.3     采用位域构造结构体... - 8 -
2.3.1        位域设计传输协议... - 8 -
2.3.2        位域的可移植性问题... - 9 -
2.3.3        位域设计硬件配置字... - 10 -
2.4     通过union和struct传递不同格式报文... - 11 -
2.5     将相关功能变量封装为结构体... - 13 -
3   函数设计... - 15 -
3.1     避免过多函数参数,提高调用性能... - 15 -
3.2     合理设计模块,减小耦合度... - 16 -
3.3     用宏函数提高时间效率... - 18 -
3.3.1        宏参数的基本规则... - 18 -
3.3.2        宏语句的基本规则... - 18 -
3.3.3        宏的副作用... - 20 -
3.4     Const修饰输入指针参数... - 21 -
4   程序设计... - 22 -
4.1     循环转置... - 22 -
4.2     减小运算强度... - 23 -
4.2.1        位操作实现求余运算... - 23 -
4.2.2        用移位实现乘除法运算... - 23 -
4.2.3        将循环体内的乘法运算改成循环自加运算... - 23 -
4.3     减少不变计算... - 24 -
4.3.1        循环内部避免恒定式... - 24 -
4.3.2        避免结构体深度访问... - 25 -
4.4     减少存储访问指令周期和个数... - 26 -
4.5     查表... - 28 -
4.6     使用自加、自减指令... - 28 -
4.7     根据频率进行case 排序... - 29 -
4.8     函数指针表替代switch-case. - 30 -
 
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/sailor_8318/archive/2008/07/16/2663148.aspx
阅读(1864) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~