加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

CC2530存储空间——Code

发布时间:2020-12-15 07:04:56 所属栏目:百科 来源:网络整理
导读:硬件平台: 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

开发环境: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有着256KFlash,其代码存储空间如图2-2(来自CC2530User‘s Guide)所示,但是51单片机只支持64K的访问空间。

CODE Memory Space

? ? ? ?于是CC2530便采用Bank映射的方式,地址空间0x0000-0x7FFF,作为ROOT,用于存放启动代码等,地址空间0x8000-0xFFFF用于映射不同的Bank0~7),如图4(来自IARC/C++ Compiler Reference Guide)所示,需要访问某个Bank的数据或代码时,将该Bank映射到地址空间0x8000-0xFFFF

Banked code memory layout


? ? ? ? 映射不同Bank时,需使用FMAP寄存器。

Flash Bank Map

注:

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存储空间使用

?

? ? ? ? IARCC2530的有两种代码模式,NearBanked。其中Banked模式是ZStack使用的模式,ZStackROM使用大约在100KB。其中Near是普通的51单片机模式,只支持64KB的访问范围。

Target Set

? ? ? ? 在目录8051srclib中有一个iar_banked_code_support.s51文件用于程序运行时自动切换Bank

Code Bank Set


? ? ? ? 测试代码如下:

__code const char code0_buf[10000]@0x48000 = {0,1};

#pragma location="BANK4"
void demo1_code()
{
	TRACE("FMAP: %02xrn",FMAP);
	TRACE("%02x %02xrn",code0_buf[0],code0_buf[1]);
}

__code const char code1_buf[10000]@0x58000 = {2,3};

#pragma location="BANK5"
void demo2_code()
{
	TRACE("FMAP: %02xrn",code1_buf[0],code1_buf[1]);
}

? ? ? ? 其中BANK5BANK4是连接配置文件”lnk51ew_CC2530F256_banked.xcl“定义的segment。运行结果如下:

debug memory



? ? ? ? 串口打印的调试信息如下:

Test

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读