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

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

相关推荐
wuyk5555 小时前
第2章:六步换相原理全解+STM32工程实战
c语言·开发语言·stm32·单片机·嵌入式硬件
小僧景贤9 小时前
单片机全方位调试实战指南:串口/RTT/逻辑分析仪/示波器/内核排错分层避坑教程
单片机·嵌入式硬件·物联网
2401_8275012813 小时前
【无标题】
arm开发·嵌入式硬件
LeoZY_13 小时前
LinkScope 使用笔记:基于 OpenOCD 的通用硬件芯片调试助手
笔记·单片机·嵌入式硬件·开源软件
星空真迷人15 小时前
嵌入式鸿蒙并非精简版,核心究竟是什么?
stm32·单片机·嵌入式硬件·物联网·华为·harmonyos·iot
iCxhust15 小时前
8088单板机VScode集成开发环境使用方法二(汇编版)
汇编·单片机·微机原理·8088单板机
hongmai66688815 小时前
GK7205V300芯片深度解析:H.265低功耗视觉主控,助力安防监控高效选型
arm开发·嵌入式硬件·物联网·智能家居·h.265·risc-v
2301_8014349817 小时前
STM32F407移植TinyUSB
stm32·单片机·嵌入式硬件
Dlrb121117 小时前
Linux驱动---Linux 中断系统及其上与下半部的介绍与阻塞IO实现按键检测
linux·嵌入式硬件·imx6ull·中断·阻塞io
国产HT1621B18 小时前
YL4056 NTC 外围电阻 R3/R4 计算:从公式推导到工程选型
科技·单片机·嵌入式硬件