实时软件编程问题

实时控制系统编程问题

>>编程语言区别于一般计算机的C语言编译器

    单片机中的C 语言编译器提供多级代码优化, 以提高编译效率。

但是仅仅利用编译器的自动优化功能, 还不能很好地满足系统的

实时性要求。因此, 为了更好地提高嵌入式软件的实时性, 结合软

件的开发,应该采用手工代码优化的方法。

>>函数宏定义代替函数调用

    函数调用是使用系统的堆栈来保存数据的,函数在调用的时候

还要保存和恢复当前的现场, 进行压栈和出栈的操作。对于调用频

率不高的函数, 可以通过减少函数参数个数来减少参数传递的时间。

在不影响程序的模块化和函数的可重入的情况下, 也可以用全局变

量来代替函数的参数传递。

    而对于调用频率很高的函数,就可以用函数宏定义来代替,因为宏

定义函数只是在编译之前作为预先的写好代码替换当前代码,完成的

仅仅是字符串的替换,用空间换取了时间。这样代码执行效率提高的

效果将尤其突出明显。

>>位运算代替数学运算

    通过移位进行2的整数次幂的乘除法与直接进行乘除法两者在逻辑上完
全相同, 但是前者在运行速度上远远快于后者。
    除移位以外,位运算还能对char或int中的位进行测试、置位等操作,
如上面中提到的宏定义位操作函数。因此位运算很好地改善了数学运
算的效率。

>>if 语句和switch 语句

    在if的条件语句的判别中, 将可能性最大的条件放在最前面进行判断。
    在条件判断语句中若还存在逻辑表达式, 可以把发生概率最大的条件判
断放在最前面,这样可以节约判断整个条件真假的时间,以此提高运
算速率。
    switch 是一个分支选择语句, 可根据具体的情况按照各分支发生的相对
频率排序。即把最可能发生的情况放在第一位,最不可能的情况放在
最后,这样将节省大量的判断匹配的时间,提高程序的效率。

>>循环处理

    主要是将循环体内不变的部分提到循环体外(如一些与循环变量无关
的运算和操作)来减少不必要的重复计算,从而降低循环体内程序运
行的强度。 
    另外,也可以在循环体内运用上述的若干种代码优化方法来实现循环
体内运行强度的降低。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值