Keil存储器模式

来源:互联网 发布:java 鼠标移动事件 编辑:程序博客网 时间:2024/06/07 06:18
存储器模式
C51 提供了3 种存储器模式来存储变量过程参数和分配再入函数堆栈你应该尽量
使用小存储器模式很少应用系统需要使用其它两种模式像有大的再入函数堆栈系统那
样一般来说如果系统所需要的内存数小于内部RAM 数时都应以小存储模式进行编译
在这种模式下DATA 段是所有内部变量和全局变量的默认存储段所有参数传递都发生在
DATA 段中如果有函数被声明为再入函数编译器会在内部RAM 中为他们分配空间这种
模式的优势就是数据的存取速度很快但只有120 个字节的存储空间供你使用总共有128
个字节但至少有8 个字节被寄存器组使用你还要为程序调用开辟足够的堆栈
如果你的系统有256 字节或更少的外部RAM 你可以使用压缩存储模式这样一来
如果不加说明变量将被分配在PDATA 段中这种模式将扩充你能够使用的RAM 数量对
XDATA 段以外的数据存储仍然是很快的变量的参数传递将在内部RAM 中进行这样存储
速度会比较快对PDATA 段的数据的寻址是通过R0 和R1 进行间接寻址比使用DPTR 要快
一些
在大存储模式中所有变量的默认存储区是XDATA 段Keil C 尽量使用内部寄存器组
进行参数传递在寄存器组中可以传递参数的数量和和压缩存储模式一样再入函数的模
拟栈将在XDATA 中对XDATA 段数据的访问是最慢的所以要仔细考虑变量应存储的位置
使数据的存储速度得到优化
原创粉丝点击