您的位置 首页 ADAS

单片机中存储区的使用

data区空间小,所以只有频繁用到或对运算速度要求很高的变量才放到data区内,比如for循环中的计数值。2、data区内最好放局部变量。因为局

data区空间小,所以只要频频用到或对运算速度要求很高的变量才放到data区内,比方for循环中的计数值。

2、 data区内最好放局部变量。

由于局部变量的空间是能够掩盖的(某个函数的局部变量空间在退出该函数是就开释,由其他函数的局部变量掩盖),能够进步内存利用率。当然静态局部变量在外,其内存运用办法与全局变量相同;

3、 保证你的程序中没有未调用的函数。

在Keil C里遇到未调用函数,编译器就将其以为可能是中止函数。函数里用的局部变量的空间是不开释,也便是同全局变量相同处理。这一点Keil C做得很愚笨,但也没办法。

4、 程序中遇到的逻辑标志变量能够界说到bdata中,能够大大下降内存占用空间。

在51系列芯片中有16个字节位寻址区bdata,其间能够界说8*16=128个逻辑变量。界说办法是: bdata bit LedState;但位类型不能用在数组和结构体中。

5、 其他不频频用到和对运算速度要求不高的变量都放到xdata区。

6、假如想节约data空间就必须用large形式,将未界说内存方位的变量全放到xdata区。当然最好对一切变量都要指定内存类型。

7、 当运用到指针时,要指定指针指向的内存类型。

在C51中未界说指向内存类型的通用指针占用3个字节;而指定指向data区的指针只占1个字节;指定指向xdata区的指针占2个字节。如指针p是指向data区,则应界说为: char data *p;。还可指定指针自身的寄存内存类型,如:char data * xdata p;。其意义是指针p指向data区变量,而其自身寄存在xdata区。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/258919.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部