CC2530存储空间——Code
硬件平台:CC2530-F256
开发环境:IAR 8051(版本号 8.10)
參考:
1、《CC2530 User's Guide.pdf》(swru191c)
2、《IAR C/C++ Compiler Reference Guide.pdf》
3、《IAR Linker and Library Tools.pdf》
一、CC2530代码空间介绍
CC2530-F256有着256K的Flash,其代码存储空间如图2-2(来自CC2530User‘s
Guide)所看到的,可是51单片机仅仅支持64K的訪问空间。
于是CC2530便採用Bank映射的方式,地址空间0x0000-0x7FFF,作为ROOT,用于存放启动代码等,地址空间0x8000-0xFFFF用于映射不同的Bank(0~7),如图4(来自IARC/C++
Compiler Reference Guide)所看到的,须要訪问某个Bank的数据或代码时,将该Bank映射到地址空间0x8000-0xFFFF。
映射不同Bank时,需使用FMAP寄存器。
注:
CC2530 ROM的不同地址:
物理地址:0x00000~0x3FFFF
Bank地址:
Bank0:0x00000~0x07FFF
Bank1:0x18000~0x1FFFF
Bank2:0x28000~0x2FFFF
Bank3:0x38000~0x3FFFF
Bank4:0x48000~0x4FFFF
Bank5:0x58000~0x5FFFF
Bank6:0x68000~0x6FFFF
Bank7:0x78000~0x7FFFF
二、CC2530存储空间使用
IAR中CC2530的有两种代码模式,Near和Banked。当中Banked模式是ZStack使用的模式,ZStack的ROM使用大约在100多KB。当中Near是普通的51单片机模式,仅仅支持64KB的訪问范围。
在文件夹8051\src\lib中有一个iar_banked_code_support.s51文件用于程序执行时自己主动切换Bank。
測试代码例如以下:
__code const char code0_buf[10000]@0x48000 = {0, 1};
#pragma location="BANK4"
void demo1_code()
{
TRACE("FMAP: %02x\r\n", FMAP);
TRACE("%02x %02x\r\n", code0_buf[0], code0_buf[1]);
}
__code const char code1_buf[10000]@0x58000 = {2, 3};
#pragma location="BANK5"
void demo2_code()
{
TRACE("FMAP: %02x\r\n", FMAP);
TRACE("%02x %02x\r\n", code1_buf[0], code1_buf[1]);
}
当中BANK5,BANK4是连接配置文件”lnk51ew_CC2530F256_banked.xcl“定义的segment。执行结果例如以下:
串口打印的调试信息例如以下:
CC2530存储空间——Code的更多相关文章
- CC2530之Flash映射
标准51系列内核的逻辑空间为哈佛结构,也就是说,程序空间和地址空间是分开的.具体分为: CODE区:存放程序代码和一些常量信息,有16根地址总线,寻址范围为0x0000~0xFFFF,共计64K DA ...
- CC2530的Flash
CC2530F256内部集成一个增强型8051单片机,拥有8 KB SRAM和256 KB内部Flash存储器.内部Flash主要用来保存程序代码和常量数据.由于传统8051代码存储空间寻址范围只有6 ...
- CC2530使用串口下载(SBL)
工作环境: WIN7 64位 IAR 版本: 8.10.3 (8.10.3.10338) ZStack-CC2530-2.3.1-1.4.0协议栈,下载地址:http://download.csdn. ...
- AppBox升级进行时 - 拥抱Entity Framework的Code First开发模式
AppBox 是基于 FineUI 的通用权限管理框架,包括用户管理.职称管理.部门管理.角色管理.角色权限管理等模块. 从Subsonic到Entity Framework Subsonic最早发布 ...
- 转载扩展Windows Mobile模拟器存储空间的方法
扩展Windows Mobile模拟器存储空间的方法 在Windows Mobile应用程序开发的初期,可以使用SDK自带的模拟器来进行调试,这给我们开发人员提供了一种方便的途径.一般的应用程序,占用 ...
- Entity Framework Code First 映射继承关系
转载 http://www.th7.cn/Program/net/201301/122153.shtml Code First如何处理类之间的继承关系.Entity Framework Code Fi ...
- C语言编译数组中有的加code有的不加,有什么区别
像uchar code table[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};和uchar ds1302[]={0xfe,0xfd,0xfb,0xf7,0 ...
- CC2530 Debug ---CC2530 无启动之32K晶振
今天焊接CC2530,其中有个模块下载程序(协议栈程序),无法创建也无法加入网络. 第一步先检查32MH 晶振是否启动,用basice 程序看uart,发现可以正常打印log. 第二步,在线调试,看看 ...
- Keil中 Program Size: Code RO-data RW-data ZI-data
一般 MCU 包含的存储空间有:片内 Flash 与片内 RAM,RAM 相当于内存,Flash 相当于硬盘. 现在我们就一个STM32的工程为例子 linking... Program Size: ...
随机推荐
- GNU C的使用
基本语法 gcc [options] [filenames] 说明: 在gcc后面可以有多个编译选项,同时进行多个编译操作.很多 的gcc选项包括一个以上的字符.因此你必须为每个选项指定各 自 ...
- HDU 3613 Best Reward 正反两次扩展KMP
题目来源:HDU 3613 Best Reward 题意:每一个字母相应一个权值 将给你的字符串分成两部分 假设一部分是回文 这部分的值就是每一个字母的权值之和 求一种分法使得2部分的和最大 思路:考 ...
- zend framework将zip格式的压缩文件导入并解压到指定文件
html代码 <pre class="php" name="code"><fieldset> <legend>批量导入学生照 ...
- SharePoint 2013的HTML5特性之响应式布局
今天偶然看到一本书<Pro SharePoint 2013 Branding and Responsive Web Development>,看到SharePoint 2013基于HTML ...
- 2014年度辛星解读css第四节
接下来的这一节我计划解说的是超链接和列表的样式,然后我们做出一个导航栏出来,事实上导航栏是很常见的,可是我们这里做得这个有点并不那么完好,等我们学完了css之后再完好它. ************** ...
- Linux SSH端口转发
SSH端口转发分为两种,一种是本地端口转发,又称为本地SSH隧道.一直是远程端口转发.SSH端口转发,还必须指定数据传送的目标主机,从而形成点对点的端口转发. 本地端口转发 假定有三台主机A. ...
- ocx控件手动修改clsid的方法
替换掉工程的两个地方:IDL文件和CTRL文件. IMPLEMENT_OLECREATE_EX(CMultiwndCtrl, "MULTIWND.MultiwndCtrl.1", ...
- ArcGIS For Flex报错
1.错误描写叙述 2.错误原因 3.解决的方法
- 运行一个android程序,直接访问某个网站
package android.com.youtube; import android.app.Activity; import android.content.Intent; import andr ...
- [IOS]本地化
我们在IOS开发应用中,会碰到做好的一个应用,如何趋向国际化,也就是说支持多种语言?下面我就来简单演示一下,用一个Demo来实现中文和英文的实现. 实现步骤: 1.本地化项目中xib的view 1.在 ...