CC2530之Flash映射

標準51系列內核的邏輯空間爲哈佛結構,也就是說,程序空間和地址空間是分開的。具體分爲:工具

CODE區:存放程序代碼和一些常量信息,有16根地址總線,尋址範圍爲0x0000~0xFFFF,共計64Kblog

DATA區:存放運行中的數據,8根地址總線,尋址範圍爲0x00~0xFF,共計256個字節,其中,低128字節可直接尋址,高128字節可間接尋址。ci

XDATA:外部數據存儲器,間接尋址,16根地址總線,尋址範圍爲0x0000~0xFFFF.共計64K。get

Technorati 標籤: CC2530 Flash

51系列內核的物理存儲空間劃分爲Flash,SRAM,SFR,Info Page,XREG。it

邏輯空間劃分爲4類,CODE、DATA、SFR、XDATA。table

CODE所有映射到Flash中去,DATA區所有映射到SRAM中去,其中,低128字節的DATA可直接或間接尋址,高128字節只能間接尋址。XDATA大部分映射到Flash,少部分映射到SRAM中。DMA在XDATA上尋址。class

這裏,就有一個疑問了,既然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 中去。配置

空間結構圖以下:float

image

下圖是示意Flash映射分配圖程序

image

 

Flash中,一個page的大小爲2K,.SRAM映射的空間爲低位的8K空間,地址範圍爲0x0000~0x1FFF.其頂部256個字節用於映射DATA區。

那麼,在這麼些bank裏面,每一個區域又是如何劃分的呢?這就要用到IAR的全局連接文件f8w2530.xcl了。

f8w2530.xcl文件時IAR的連接工具的配置文件,其中,定義了許多段(-Z.-P)、宏(-D)。 image

 

對於一些NV項目的存儲,連接文件中有以下說明:

image

內部NV項存儲地址開始和結束,整體預留空間爲6個page,也就是12K。

 

在Flash中的最後一個bank的最後一個page,保留使用,其內容分佈以下:

 image

相關文章
相關標籤/搜索