标准51系列内核的逻辑空间为哈佛结构,也就是说,程序空间和地址空间是分开的。具体分为:

CODE区:存放程序代码和一些常量信息,有16根地址总线,寻址范围为0x0000~0xFFFF,共计64K

DATA区:存放运行中的数据,8根地址总线,寻址范围为0x00~0xFF,共计256个字节,其中,低128字节可直接寻址,高128字节可间接寻址。

XDATA:外部数据存储器,间接寻址,16根地址总线,寻址范围为0x0000~0xFFFF.共计64K。

Technorati 标签: CC2530 Flash

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映射的更多相关文章

  1. CC2530的Flash

    CC2530F256内部集成一个增强型8051单片机,拥有8 KB SRAM和256 KB内部Flash存储器.内部Flash主要用来保存程序代码和常量数据.由于传统8051代码存储空间寻址范围只有6 ...

  2. 第24章 QSPI—读写串行FLASH

    本章参考资料:<STM32F76xxx参考手册>.<STM32F76xxx规格书>.库帮助文档<STM32F779xx_User_Manual.chm>及<S ...

  3. ARM地址重映射机制

    转:http://blog.csdn.net/yuanzhangmei1/article/details/8395028 ARM体系结构中,系统上电或复位后,处理器将从地址0x0处取第一条指令,因此, ...

  4. linux下Pl353 NAND Flash驱动分析

    linux的NAND Flash驱动位于drivers/mtd/nand子文件夹下: nand_base.c-->定义通用的nand flash基本操作函数,如读写page,可自己重写这些函数 ...

  5. 30个类手写Spring核心原理之MVC映射功能(4)

    本文节选自<Spring 5核心原理> 接下来我们来完成MVC模块的功能,应该不需要再做说明.Spring MVC的入口就是从DispatcherServlet开始的,而前面的章节中已完成 ...

  6. (转载)spring mvc DispatcherServlet详解之一---处理请求深入解析

    要深入理解spring mvc的工作流程,就需要先了解spring mvc的架构: 从上图可以看到 前端控制器DispatcherServlet在其中起着主导作用,理解了DispatcherServl ...

  7. 转 android launch flow

    Android系统开机主要经历三个阶段: bootloader启动 Linux启动 Android启动 启动文件: 对于机器从通电到加载Linux系统一般需要三个文件:bootloader(引导文件) ...

  8. android开机启动过程

    Android系统开机主要经历三个阶段: bootloader启动 Linux启动 Android启动 启动文件: 对于机器从通电到加载Linux系统一般需要三个文件:bootloader(引导文件) ...

  9. MTD NANDFLASH驱动相关知识介绍

    转:http://blog.csdn.net/zhouzhuan2008/article/details/11053877 目录 MTD总概述 MTD数据结构 MTD相关层实现 MTD,Memory ...

随机推荐

  1. 23+ Useful HTML5 Open Source Online Video Players & Libraries,

    Akamai’s Open Video Player for HTML5 <video> Akamai has released a new Open Video Player for H ...

  2. NopCmmerce Area前后台分离

    Nop 前后台是独立的应用程序:使用用Area技术分离:Nop.Admin项目放在Nop.Web项目的administration文件夹下面,通过编辑类库输入路径到Nop.Web的Bin目录下面: 分 ...

  3. 标准库 - fmt/scan.go 解读

    // Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a B ...

  4. ARM指令系统

    转载自:http://cxb4224.blog.163.com/blog/static/191224151201110220325976/ ARM处理器的工作状态和工作模式 工作状态 ARM处理器一般 ...

  5. Hadoop从2.2.0到2.7

    Hadoop2.2.0 GA release 通用版本,Hadoop2.2.0就是一个通用版本 Hadoop2.2.0是从Hadoop1.1.0升级过来的,增加了以下特性: 1.增加了YARN: 2. ...

  6. 测试你是否和LTC水平一样高

    Problem Description 大家提到LTC都佩服的不行,不过,如果竞赛只有这一个题目,我敢保证你和他绝对在一个水平线上!你的任务是:计算方程x^2+y^2+z^2= num的一个正整数解. ...

  7. IOS UItableView 滚动到底 触发事件

    开发过程中,在使用UItableView 总会遇到加载更多的问题,到底是手势响应瀑布流的方法好? 还是添加一个底端cell点击触发加载更多好?我也想有自己的判断.但是我们老板总说了算,没办法,谁叫我给 ...

  8. 关于 2dx v3.7 UIScale9Sprite的bug

    关于 2dx v3.7 UIScale9Sprite的bug 刚把引擎从js binding v3.0升级到v3.7,发现了一些bug,这里先说说关于scale9sprite的 1. 关于capIns ...

  9. [设计模式] .NET设计模式笔记 - 有多少种设计模式

    .NET下的23中设计模式. ※创建型模式篇 ●单件模式(Single Pattern) ●抽象工厂模式(Abstract Factory) ●建造者模式(Builder Pattern) ●工厂方法 ...

  10. UITabbar的简单操作和实际应用

     简易编辑Tabbar //**标签栏控制器的初始化 UITabBarController * tabbarC = [[UITabBarController alloc] init]; //设置tab ...