怎么理解c51的存储模式,c51存储模式

首页 > 实用技巧 > 作者:YD1662024-01-16 13:27:37

51单片机 C51对标准C的扩展(一)。

先看一下都增加了哪些关键字,以及它们的作用,后面一一详解。C51增加了这么多关键字,是因为51单片机并不是C语言友好的单片机,主要归因于两点:①、51单片机复杂的存储空间结构;②、C51的函数调用默认不使用栈来传递参数和分配自动变量,不同于其他常见处理器只有一个统一的地址空间。

51有四个独立编址的地址空间,分别是64K的程序存储空间、256字节的直接寻址空间、256字节的间接寻址空间和64K外部扩展RAM存储空间(也可用来控制外设)。

怎么理解c51的存储模式,c51存储模式(1)

C51引入存储类型的概念来区分不同的存储区域:用来存储程序代码和常量的只读code区、间接寻址的内部内存idata区、扩展内存xdata区;xdata区中某一页(256字节)被划为pdata区。编译器默认在哪个区域分配存储空间?C51引入了存储模式(memory models),来控制内存分配的默认存储类型。

怎么理解c51的存储模式,c51存储模式(2)

有三个存储模式,分别是small、compact、large。在CS环境中,可以在工程的Option对话框的Target选项卡下设置默认的存储模式。small模式默认的存储类型是data,data区访问速度最快但是空间最小。compact模式默认的存储类型是pdata。

pdata是xdata区的某一页(共256字节),对大部分51来说默认pdata是xdata中的第一页(最开始256字)。large模式默认的存储类型是xdata,因为C51的函数默认不使用栈来传参和分配自动变量,因此全局变量和局部变量默认都是存放在其中某一个区域,比如在small模式下只会在data区分配存储空间。即使这个区域被用尽了也不会自动在其他区域分配内存了。

怎么理解c51的存储模式,c51存储模式(3)

那么如何使用其他存储区域呢?除了全局设置的存储模式来指定变量的默认存储类型外,c五幺还可以在变量声明时,在变量名前加存储类型关键字来指定容量的存储类型。

怎么理解c51的存储模式,c51存储模式(4)

首页 12下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.