我想请教下,cc2530的手册描述有四个存储空间,分别是code(64KB),data(256B),xdata(64KB)和SFR(128B)。问题一:这四个存储空间应该是逻辑上的空间吧?具体对应到物理存储器应该还需要映射才可以。
上面的图分别说明了xdata,code映射到物理存储器的关系。我用的2530是8k sram,256k flash。通过iar编译出来的map文件发现编译出来的二进制文件已经差不多200kB,问题二:那2530上电后执行代码应该只能在flash里面执行吧?也没有看到有地方把代码搬运到sram中执行,况且sram才8k,也放不下整个code。
问题三:如果代码执行都是在flash中,code存储空间才64KB,那超过64K之后的代码要执行是不是还需要从flash map到code区?如果是那这个map过程是芯片自己完成的吗?
问题四:xdata也把sram映射到最低8k,那代码访问sram是不是都要通过xdata访问呢?还有xdata和code的地址都是从0到0xffff的64KB,那芯片访问0地址是xdata的0地址还是code的0地址呢?
呵呵,小弟才接触单片机不久,以前都是做cpu方面的工作。所以问题有点多,问题可能也很低级。请大家谅解并帮我解答这些疑惑。谢谢!