CC2530共计有256KBflash,每2KB划分为1page,每16page划分为1 bank,如图:
在读取flash中数据的时候,首先要知道是读的哪个第几个bank中的数据,因为要把对应的flash bank映射到xdata地址空间的XBANK上,在xdata地址空间去读。映射bank的时候需要配置寄存器MEMCTR为相应的bank号。
在f8w2530.xcl中有对flash逻辑地址作如下定义
- // Texas Instruments device specific
- // =================================
- //
- //
- // Layout of CODE banks
- // -------------------
- //
- //-D_BANK0_START=0x08000
- //-D_BANK0_END=0x0FFFF
- //
- //-D_BANK1_START=0x18000
- //-D_BANK1_END=0x1FFFF
- //
- //-D_BANK2_START=0x28000
- //-D_BANK2_END=0x2FFFF
- //
- //-D_BANK3_START=0x38000
- //-D_BANK3_END=0x3FFFF
- //
- //-D_BANK4_START=0x48000
- //-D_BANK4_END=0x4FFFF
- //
- //-D_BANK5_START=0x58000
- //-D_BANK5_END=0x5FFFF
- //
- //-D_BANK6_START=0x68000
- //-D_BANK6_END=0x6FFFF
- //
- //-D_BANK7_START=0x78000
- //-D_BANK7_END=0x7FFFF
与falsh的实际物理地址如下对应