理解KEIL C51库函数:存储模式与指针
4星 · 超过85%的资源 需积分: 9 58 浏览量
更新于2024-07-23
收藏 113KB DOC 举报
"KEIL C51库函数是用于8051微控制器的编程工具,提供了对标准C语言的扩展,以适应8051系列CPU的硬件特性。这些扩展包括特定的存储类型、存储模式、位变量、特殊功能寄存器(SFR)、指针类型和函数属性等。C51 V4.0版本包含19个扩展关键字,如_at_、idata、sfr等,用于在不同存储区域定义变量和函数。"
在C51编程中,了解和掌握这些扩展关键字至关重要,因为它们直接影响程序的运行效率和内存管理。其中,存储模式定义了未指定存储类型的变量和函数参数的默认存储位置,包括Small、Compact和Large三种模式。Small模式适合小规模程序,所有变量存于内部RAM,访问速度快但空间有限。Compact模式允许在外部RAM的一页中存储变量,空间比Small模式更宽裕,但速度稍慢。Large模式则提供最大64KB的外部RAM空间,适合大型程序,但访问速度最慢。
C51中的指针分为一般指针和存储器指针。一般指针与标准C相同,可以声明存储类型,如long*state。存储器指针则专门用于指定变量在特定存储区域的地址,如char*xdata ptr,其中ptr本身存储在外部RAM,而它所指向的数据可以存放在任何存储器中。C51的一般指针通常占用3个字节来存储存储器类型、偏移地址和段地址。
此外,C51还支持位变量和位寻址,这在处理8051的位操作时非常有用,因为8051可以直接对单个位进行读写操作。特殊功能寄存器(SFR)是8051微控制器特有的,C51通过关键字可以直接访问这些寄存器,如#define或sfr声明。
函数属性在C51中允许程序员指定函数的存储类别和调用约定,以优化代码执行和内存使用。例如,使用关键字_reentrant_可以声明函数为可重入的,这对于中断服务程序和多线程环境很重要。
理解并熟练运用这些C51库函数和扩展关键字对于开发8051微控制器的嵌入式系统是至关重要的,能够帮助程序员更高效地利用硬件资源,编写出运行更快、更节省内存的程序。
2013-08-04 上传
2011-05-21 上传
2011-11-19 上传
2009-07-23 上传
2023-02-22 上传
2021-09-13 上传
2023-02-22 上传
YY学习中
- 粉丝: 1
- 资源: 11
最新资源
- 平尾装配工作平台运输支撑系统设计与应用
- MAX-MIN Ant System:用MATLAB解决旅行商问题
- Flutter状态管理新秀:sealed_flutter_bloc包整合seal_unions
- Pong²开源游戏:双人对战图形化的经典竞技体验
- jQuery spriteAnimator插件:创建精灵动画的利器
- 广播媒体对象传输方法与设备的技术分析
- MATLAB HDF5数据提取工具:深层结构化数据处理
- 适用于arm64的Valgrind交叉编译包发布
- 基于canvas和Java后端的小程序“飞翔的小鸟”完整示例
- 全面升级STM32F7 Discovery LCD BSP驱动程序
- React Router v4 入门教程与示例代码解析
- 下载OpenCV各版本安装包,全面覆盖2.4至4.5
- 手写笔画分割技术的新突破:智能分割方法与装置
- 基于Koplowitz & Bruckstein算法的MATLAB周长估计方法
- Modbus4j-3.0.3版本免费下载指南
- PoqetPresenter:Sharp Zaurus上的开源OpenOffice演示查看器