CC2530之Flash映射
标准51系列内核的逻辑空间为哈佛结构,也就是说,程序空间和地址空间是分开的。具体分为:
CODE区:存放程序代码和一些常量信息,有16根地址总线,寻址范围为0x0000~0xFFFF,共计64K
DATA区:存放运行中的数据,8根地址总线,寻址范围为0x00~0xFF,共计256个字节,其中,低128字节可直接寻址,高128字节可间接寻址。
XDATA:外部数据存储器,间接寻址,16根地址总线,寻址范围为0x0000~0xFFFF.共计64K。
51系列内核的物理存储空间划分为Flash,SRAM,SFR,Info Page,XREG。
逻辑空间划分为4类,CODE、DATA、SFR、XDATA。
CODE全部映射到Flash中去,DATA区全部映射到SRAM中去,其中,低128字节的DATA可直接或间接寻址,高128字节只能间接寻址。XDATA大部分映射到Flash,少部分映射到SRAM中。DMA在XDATA上寻址。
这里,就有一个疑问了,既然CC2530系列内部Flash最大可达256K,最小可以为32K。但是CODE区可寻址范围最大只有64K,如何去寻址256K呢?为了兼容不同系列的Flash大小空间读写问题,以32K为一个bank单位,最大空间256K,划分为8个bank,编号为bank0~bank7,其中,bank0是root bank,始终占有。那么CODE寻址还剩下32K空间,因此,最多可以再映射一个bankx(x=1~7),其中,x值的选择由FMAP[2:0]数值来确定将高位空间映射到剩下的0x8000-0xFFFF 中去。
空间结构图如下:

下图是示意Flash映射分配图

Flash中,一个page的大小为2K,.SRAM映射的空间为低位的8K空间,地址范围为0x0000~0x1FFF.其顶部256个字节用于映射DATA区。
那么,在这么些bank里面,每个区域又是如何划分的呢?这就要用到IAR的全局链接文件f8w2530.xcl了。
f8w2530.xcl文件时IAR的链接工具的配置文件,其中,定义了许多段(-Z.-P)、宏(-D)。 
对于一些NV项目的存储,链接文件中有如下说明:

内部NV项存储地址开始和结束,总体预留空间为6个page,也就是12K。
在Flash中的最后一个bank的最后一个page,保留使用,其内容分布如下:

CC2530之Flash映射的更多相关文章
- CC2530的Flash
CC2530F256内部集成一个增强型8051单片机,拥有8 KB SRAM和256 KB内部Flash存储器.内部Flash主要用来保存程序代码和常量数据.由于传统8051代码存储空间寻址范围只有6 ...
- 第24章 QSPI—读写串行FLASH
本章参考资料:<STM32F76xxx参考手册>.<STM32F76xxx规格书>.库帮助文档<STM32F779xx_User_Manual.chm>及<S ...
- ARM地址重映射机制
转:http://blog.csdn.net/yuanzhangmei1/article/details/8395028 ARM体系结构中,系统上电或复位后,处理器将从地址0x0处取第一条指令,因此, ...
- linux下Pl353 NAND Flash驱动分析
linux的NAND Flash驱动位于drivers/mtd/nand子文件夹下: nand_base.c-->定义通用的nand flash基本操作函数,如读写page,可自己重写这些函数 ...
- 30个类手写Spring核心原理之MVC映射功能(4)
本文节选自<Spring 5核心原理> 接下来我们来完成MVC模块的功能,应该不需要再做说明.Spring MVC的入口就是从DispatcherServlet开始的,而前面的章节中已完成 ...
- (转载)spring mvc DispatcherServlet详解之一---处理请求深入解析
要深入理解spring mvc的工作流程,就需要先了解spring mvc的架构: 从上图可以看到 前端控制器DispatcherServlet在其中起着主导作用,理解了DispatcherServl ...
- 转 android launch flow
Android系统开机主要经历三个阶段: bootloader启动 Linux启动 Android启动 启动文件: 对于机器从通电到加载Linux系统一般需要三个文件:bootloader(引导文件) ...
- android开机启动过程
Android系统开机主要经历三个阶段: bootloader启动 Linux启动 Android启动 启动文件: 对于机器从通电到加载Linux系统一般需要三个文件:bootloader(引导文件) ...
- MTD NANDFLASH驱动相关知识介绍
转:http://blog.csdn.net/zhouzhuan2008/article/details/11053877 目录 MTD总概述 MTD数据结构 MTD相关层实现 MTD,Memory ...
随机推荐
- linux入侵检测系统snort安装配置
队长让俺瞅瞅snort,没想到安装配置都遇到问题...整理下过程,给跟我一样的家伙看看.. 由于本人机器是ubuntu,apt-get 几下就可以了,其实网上有不少这样的文章...之所以还要写就是.. ...
- jquery 动态事件绑定(0512)
jquery动态事件绑定,父元素需为静态元素,(不能是动态生成): $("#parent").on("click","#child",fun ...
- initrd映像文档的作用和制作
1.http://pan.baidu.com/s/1dDrGeKL 2.http://wenku.baidu.com/link?url=qPa_jfkEZCbERnwMYWLwm9EZJ_ebMRJA ...
- CentOS6.3配置yum源
转载:http://www.linuxidc.com/Linux/2012-10/72750.htm 全新以最小化包安装了64位的CentOS6.3系统,作为本地的Web服务器使用,现记录全过程第二步 ...
- IOS 按比例裁剪图片
拍照或者从图片库中获取图片 操作过程中容易闪退,也总会有内存压力警告,第一步,首先可以考虑裁剪图片,实际上可能不需要那么大的.其次可以考虑把耗时的比如存储过程放进线程. 这里封装裁剪图片的类方法. / ...
- How to installation V145 Renault CAN Clip diagnostic software
Eobd2.fr has launched the new 2015 V145 Renault CAN Clip diagnostic tool (SP19-A and SP19-B). Here i ...
- 2dx关于js响应layer触摸消息的bug
cocos2dx关于js响应layer触摸消息的bug cocos2d-x 3.7 问题描述: 目前这个版本中(3.7),c++层的layer触摸消息只能通过消息的方式发送给js,不能像lua一样直接 ...
- 【阿里云产品公测】给ACE的建议
作者:阿里云用户云想未来 今天给ace带来一些建议,首先,集群模式没什么好说的了,也不是新手用的,今天讲下单实例模式,建议ace开放独立ip购买,按天按月按年付费,收费可以5元左右,为什么这么说呢?其 ...
- c++的输入流基础知识
cin是istream类的对象,它从标准输入设备获取数据,程序中的变量通过流提取符“>>”从流中提取数据.从流中提取数据时通常跳过输入流中的空白符 只有在输入完数据并按回车后,该行数据 ...
- 精通CSS高级Web标准解决方案(1-1选择器)
设计代码的结构 使用有意义的标记 css可以控制页面的外观并将表现与内容分隔开. 在分配ID与类名时尽量保证有意义且与表现无关. div可以对块级元素进行分组,而span可以对行内元素进行分组或标识. ...