2884|2

1143

帖子

15

TA的资源

纯净的硅(高级)

楼主
 

MSP430的C语言编写注意事项 [复制链接]

微处理器一般用于特定环境和特定用途,出于成本、功耗和体积的考虑,一般都要求尽量节省使用资源,并且,由于微处理器硬件一般都不支持有符号数、浮点数的运算,且运算位有限,因此,分配变量时必须仔细。另外要说明的是,速度和存储器的消耗经常是2个不可兼顾的目标,在多数情况下,编程者必须根据实际情况作出权衡和取舍。

需要注意的事项如下:

1) 通常在满足运算需求的前提下,尽量选择为变量定义字节少的数据类型。比如最常用的 int和 char, int是 16 位的, char 是8位的,如果没有必要,不要使用 int,而且使用 char 也最好使用 unsigned char。运行时,可以在变量窗口看到,使用类型为unsigned char 的变量是 16 进制的格式,而使用 int 的是十进制格式,如果 char 没有定义为 unsigned,会出现负号,如果没有必要的话,在 430 中是不需要负数的。

2) 尽量不用过长的数据类型,如 long、long long和 double

3) MSP430的 C编译器不支持位寻址,所以运算中尽量减少位操作,对于只有“是”和“否”的变量,如果RAM 容量允许,则可分配为 unsigned char类型,可提高运算速度。如果分配为某字节的某个位,可以减少存储器的消耗,但是会降低运算速度

4) 避免使用浮点数,尽量使用定点数进行小数运算。如果必须使用浮点数,则尽量用 32 位的 float,而不是 64位的 double

5) 尽量将变量分配为无符号数据类型

最新回复

  详情 回复 发表于 2017-1-3 15:56
 
点赞 关注

回复
举报

1143

帖子

15

TA的资源

纯净的硅(高级)

沙发
 

6) 对于指针变量,如果声明后其值不再改变,则声明为 const 类型,这样编译器编译时能更好的优化生成的代码

7) 尽可能的使用局部变量而非全局变量或者静态变量(static) 。这样有利于编译器编译时更好的优化生成的代码

8) 避免对局部变量使用 &取地址符。因为这样会使编译器无法把此变量放在 CPU的寄存器中,而是放在RAM中,从而失去了优化的机会

9) 仅在模块内使用的变量声明为 static,有利于优化代码

10) 如果堆栈空间有限,尽量减少函数调用的层次和递归调用


 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表