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 buffer[10];,unsigned char idata buffer[10];,unsigned char buffer[10];
code 放在单片机flash中,一般容量较大 const定义的常量,const char code msg[]
xdata 片外大容量RAM/片内扩展RAM unsigned int xdata big_array[]

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

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

相关推荐
悠哉悠哉愿意2 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
Lester_11012 天前
STM32霍尔传感器输入口设置为复用功能输入口时,还能用GPIO函数直接读取IO的状态吗
stm32·单片机·嵌入式硬件·电机控制
LCG元2 天前
低功耗显示方案:STM32L0驱动OLED,动态波形绘制与优化
stm32·嵌入式硬件·信息可视化
三佛科技-187366133972 天前
120W小体积碳化硅电源方案(LP8841SC极简方案12V10A/24V5A输出)
单片机·嵌入式硬件
z20348315202 天前
STM32F103系列单片机定时器介绍(二)
stm32·单片机·嵌入式硬件
Alaso_shuang2 天前
STM32 核心输入、输出模式
stm32·单片机·嵌入式硬件
脚后跟2 天前
AI助力嵌入式物联网项目全栈开发
嵌入式硬件·物联网·ai编程
2501_918126912 天前
stm32死锁是怎么实现的
stm32·单片机·嵌入式硬件·学习·个人开发
z20348315202 天前
STM32F103系列单片机定时器介绍(一)
stm32·单片机
星马梦缘2 天前
驱动层开发——蜂鸣器驱动
stm32·单片机·嵌入式硬件·hal·驱动