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 速度最慢

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

相关推荐
kebidaixu1 小时前
FreeRTOS 移植到 STM32F407VETX 记录(一)
stm32·单片机·嵌入式硬件
CSDN官方博客1 小时前
「谁说嵌入式只是调包和焊板子?」—— 2026嵌入式全栈技术征锋令
嵌入式硬件·物联网·embedding
点灯小铭2 小时前
基于单片机的数码管定时插座设计与定时开关功能实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
云栖梦泽2 小时前
玩转RK3506SDK
linux·嵌入式硬件
数智工坊4 小时前
机器人四大主控板系统分层选型指南:树莓派、ESP32、STM32与Arduino的能力边界与实战定位
stm32·嵌入式硬件·机器人
进击的小头5 小时前
第8篇:IGBT 从零到精通:核心原理、关键参数、选型指南与工业级应用要点
经验分享·嵌入式硬件·学习
点灯小铭5 小时前
基于单片机的多模式智能洗衣机设计
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
项目題供诗5 小时前
STM32-AD单通道&AD多通道(十九)
stm32·单片机·嵌入式硬件
南岸的水5 小时前
BMS国标充电解析
单片机·嵌入式硬件·mcu
清风6666665 小时前
基于单片机的可调数控电源设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业