当前位置: 首页 > article >正文

51单片机-内部扩展RAM的应用

RAM是在程序运行中存放随机变量的数据空间,51单片机球认的内部RAM只有128B,c
清于编程者来说,一个芯片的RAM空间越大,RAM不够用怎么办,连过多的变量都不敢定义。写起程序来就越容易得心应手,不会总考忠压前面我们写程序时曾讲到过,如果定义个变量后,不对这个变量进行初始化,这个修就是0,其实这个结论是流要一定的条的闲四写.政酸石用防学节之利要于品东粗烘器技式内叫限款边装控观
有初哈化时编译器会默认将变量值设定为0。一旦程序中的总变量超过128娜,
有交量进行初始化,否则没有被初始化的变量款认值将是不确定的,当变量总利配
2B时,还必须要在编译器中重新设定存储器的存储模式
器模式一共有三种,分别为small,compact和large模式,在Keil编译器中有配
选项表如图13.4,1所示。它决定了没有明确指定存储类型的变量、函数参数等数据的
驱欢,如果在来些函数中需要使用现的在滋楼武,也可用夫费字直装观
下面分别介绍这三种模式。

1.small模式

ma模式中,所有默认变量均装入单片机内部123BRAM中,当定义类似如“uchar a; float b”等变量时,这些变量都装入内部128BRAM中,使用该模式的优点是访问速度快
缺点是空间有限,且对堆栈的空间分配比较少,难以把握,碰到递归调用的时候需要小心。
这种模式只适用于小程序。

2.compact模式

compact模式中,所有默认变量均位于单片机内部256BRAM中,和在smal模式中使用
关键字pdata来定义变量的效果相同,如“uchar pdata a[10o;”在该模式下,程序总变量空间不得超过256B。对于只有128B的单片机,使用此模式定义变量超过128B时,程序将出错。
其优点是空间较small模式宽裕,速度较smal慢,但较large模式要快,是一种中间状态。

3.large模式

在large模式中,所有默认变量可放在多达64KB的RAM区,包括内部RAM和外部RAM,
这和使用关键字xdta来定义变量的效果相同。该模式的优点是空间大,可存变量多:缺点是访问速度慢,尤其对于两个以上的多字节变量访问速度来说更是如此。

参考来源

在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/443025.html

相关文章:

  • EtherCAT转Modbus网关与TwinCAT3的连接及配置详述
  • 【LeetCode Hot100 贪心算法】 买卖股票的最佳时机、跳跃游戏、划分字母区间
  • 在 Vue 3 集成 e签宝电子合同签署功能
  • 51单片机——定时器中断(重点)
  • 应急响应——Windows / Linux 排查笔记
  • springboot + vue+elementUI图片上传流程
  • nlp初学者怎么入门?需要学习哪些?
  • MySQL技术:深入理解索引与优化
  • 提升PHP技能:18个实用高级特性
  • Linux docker离线部署
  • 基于Armitage的MSF自动化集成攻击实践
  • Android显示系统(12)- 向SurfaceFlinger申请Buffer
  • 超详细 springboot 整合 Mock 进行单元测试!本文带你搞清楚!
  • 图(dfs与bfs)算法2
  • 如何配置VMware虚拟机的网络,使局域网内其它电脑可以访问?
  • git退掉远程仓库里的某个修改和记录
  • 鸿蒙风起,未来已来——云学堂鸿蒙应用认证开营啦!
  • C语言中信号量:<semaphore.h>头文件
  • 2024年12月18日Github流行趋势
  • vue3渲染el-tree组件,给默认选中的节点,禁用所有子节点
  • C# 实现 WinForm 全屏置顶
  • systemverilog中的循环(loop)
  • 批量DWG文件转换低版本(CAD图转低版本)——c#插件实现
  • TCP 三次握手四次挥手
  • Jmeter的性能测试
  • 汽车供应链 “剧变”开始,“智能感知潜在龙头”诞生