实时软件编程问题

来源:互联网 发布:洛阳师范网络 编辑:程序博客网 时间:2024/05/29 16:37

实时控制系统编程问题

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

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

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

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

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

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

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

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

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

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

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

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

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

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

效果将尤其突出明显。

>>位运算代替数学运算

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

>>if 语句和switch 语句

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

>>循环处理

    主要是将循环体内不变的部分提到循环体外(如一些与循环变量无关
的运算和操作)来减少不必要的重复计算,从而降低循环体内程序运
行的强度。 
    另外,也可以在循环体内运用上述的若干种代码优化方法来实现循环
体内运行强度的降低。
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 吃母乳的宝宝不吃奶粉怎么办 宝宝吃母乳不吃奶粉怎么办 1岁婴儿不吃辅食怎么办 不喝奶瓶的宝宝怎么办 母乳不足宝宝不吃奶粉怎么办 4岁宝宝注意力不集中怎么办 孩子上课不专心听讲怎么办 小孩上课不认真听讲怎么办 一年级孩子上课不认真听讲怎么办 打了孩子很自责怎么办 4岁宝宝讲话结巴怎么办 网销客户不说话怎么办 两岁宝宝不说话怎么办? 4岁儿童说话结巴怎么办 3岁宝宝说话结巴怎么办 6岁儿童舌头短怎么办 5岁宝宝说话结巴怎么办 两岁宝宝说话晚怎么办 6岁儿童说话结巴怎么办 2岁宝宝呕吐拉稀怎么办 2岁宝宝突然呕吐怎么办 2岁宝宝呕吐发烧怎么办 2岁宝宝呕吐厉害怎么办 1岁宝宝半夜呕吐怎么办 2岁半宝宝呕吐怎么办 2岁宝宝半夜呕吐怎么办 两岁宝宝一直吐怎么办 原画师老了以后怎么办 孩子不想上学怎么办怎么去说服 嫉妒别人比我好怎么办 三岁宝宝爱打人怎么办 1岁宝宝喜欢打人怎么办 ps图层解锁不了怎么办 沈腾结婚马丽怎么办 延长甲没有纸托怎么办 高考第一志愿没录取怎么办 电子画颜料干了怎么办 数字画颜料干了怎么办 彩砂纸画不好了怎么办 宝宝吃了油画棒怎么办 2岁宝宝不爱刷牙怎么办