keil5中数据的不同定义和单片机(以stc8为例)里的对应关系(idata,xdata,data,code)

不同的定义和存储位置

程序来源于千问AI

c 复制代码
// 存储在 Flash(只读)
const char code msg[] = "Hello";  

// 存储在内部 RAM(data 区,快速访问)
unsigned char data buffer[10];  

// 存储在外部 RAM(xdata 区)
unsigned int xdata big_array[100];  

// 存储在 idata 区(可间接寻址的内部 RAM)
unsigned char idata temp;

不同的位置数据访问速度 的不同

stc8G1K08的手册对应关系

个人理解总结

掉电数据变化

在flash中,掉电后的数据依然可以保存,在RAM中的数据掉电后就会被初始化。

从程序中,不同定义的数据存储位置

存储位置 定义的一般格式
idata 默认的临时变量 unsigned char data buffer10;,unsigned char idata buffer10;,unsigned char buffer10;
code 放在单片机flash中,一般容量较大 const定义的常量,const char code msg\[\]
xdata 片外大容量RAM/片内扩展RAM unsigned int xdata big_array\[\]

从下图中看出,flash 一般容量最大idata/iRAM 最小但访问速度最快xdata 速度最慢

程序中修改后各种内存的变化对比,

相关推荐
sramdram2 小时前
基于32位微控制器的FOC汽车水泵方案
单片机·嵌入式硬件·汽车·微控制器·32位微控制器
开发笔记-阿牛5 小时前
解析一款有意思的产品||CK6159A语音芯片设计的儿童专注力训练机-舒尔特玩具
stm32·单片机·嵌入式硬件·音频
残影飞雪6 小时前
ESP32-C5下载烧录固件失败报错的原因
单片机·嵌入式硬件
搞全栈小苏7 小时前
SIMetrix_simplis8.4安装教程——附安装包
stm32·单片机·嵌入式硬件·电力电子
qq_573967828 小时前
STM32控制器
stm32·单片机·嵌入式硬件
某林2129 小时前
履带小车底盘stm32F103RCT6开发
人工智能·stm32·单片机·嵌入式硬件·架构·人机交互·ros2
sramdram9 小时前
低功耗MCU微控制器在动态血糖仪(CGM)中的应用方案
单片机·嵌入式硬件·mcu·mcu微控制器
Dlrb12119 小时前
ARM--IMX6ULL的SDK学习,BSP开发工程管理,以及链接脚本与Makefile的编写
单片机·嵌入式硬件·arm·sdk·链接脚本·i.mx6ull·cortex-a7
李永奉10 小时前
杰理可视化SDK开发-配置ANC主动降噪功能模块教程
单片机·嵌入式硬件·物联网
云泽80810 小时前
嵌入式环境搭建(一):Keil MDK5 安装流程及 DFP 器件包配置实战
嵌入式硬件·keil5·keil mdk5·dfp器件包配置