当前位置: 代码迷 >> 单片机 >> STC 单片机 存储器 种类
  详细解决方案

STC 单片机 存储器 种类

热度:404   发布时间:2016-04-28 14:46:31.0
STC 单片机 存储器 类别
我使用的是STC12c5a60s2单片机 ,我看datasheet上说:60K片内程序存储器,1280字节片内RAM数据存储器
问题1:那我是不是可以理解该单片机没有片外程序存储器和片外数据存储器(可是我使用uchar xdata Frame[256];程序并没有报错)
问题2:我的理解是data,xdata是指数据的大小,那就是放在数据存储器里,code是指程序的大小,是存储在程序存储器里的,也就是存储在单片机flash中的,请问大神:我这样理解对吗?
问题3:那生成的hex大小可认为就是程序+数据的总大小吗?
如下为keil编译
------解决思路----------------------
问题1:60K片内程序存储器,1280字节片内RAM数据存储器 都在片内,data,xdata 是51的256字节外的ram  1280超过256 所以没错。
问题2:我也是这么理解的
问题3:hex的大小应该不是程序+数据的大小  这个你自己可以验证 看hex文件的大下是不是等于code+data+data 验证了麻烦也告诉我下,
------解决思路----------------------
STC12c5a60s2这个芯片
内存1280(128+128+1024),前2个128同8052,后1024相当于片外RAM,STC系列逻辑上,作为外部ram处理,之所以这么分,是因为访问不同区域的数据必须使用不同的指令,LZ好好研究一下8051的寻址方式
程序存储器:60K


keilc中,使用data 、idata、xdata....等和单片机并没有直接的关系,但是生成的代码有关,这些类型用于指明一个变量如何生成代码,因此,即使你用到了2K的xdata,但芯片只有1K编译也不会错误,只是运行会错。但data 、idata是固定范围的,如果超过,应该就会编译出错
  相关解决方案