CC2530儲存空間 Code

2021-09-08 10:27:16 字數 2420 閱讀 2345

硬體平台:

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

對映到位址空間

對映不同

bank

時,需使用

fmap

暫存器。

注: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

檔案用於程式執行時自己主動切換

測試**例如以下:

__code const char code0_buf[10000]@0x48000 = ;

#pragma location="bank4"

void demo1_code()

__code const char code1_buf[10000]@0x58000 = ;

#pragma location="bank5"

void demo2_code()

當中bank5

,bank4

是連線配置檔案

」lnk51ew_cc2530f256_banked.xcl「

定義的segment

。執行結果例如以下:

串列埠列印的除錯資訊例如以下:

外部中斷 CC2530

中斷在計算機組成中都有詳細介紹。中斷分為外部中斷和內部中斷。對於cc2530片上系統來說,通用i o引腳設定為輸出時候,可以用於產生中斷,可以設定為外部訊號的上公升或下降沿出發。p0,p1,p2都有中斷使能位。對於ien1 2暫存器內的埠所有的位都是公共的。此外還包括其他很多態別的中斷 除了公共中斷...

CC2530學習筆記

第四單元 定時器計數器應用 1 定時器 計數器的分類 cc2530中共包括5個定時器 計數器,分別是定時器1 定時器2 定時器3 定時器4和睡眠定時器。2 定時器 計數器的作用 1 計數器功能 對任意時間間隔的輸入訊號的個數進行計數,一般用來對外界事件進行 計數。其輸入訊號一般來自微控制器外部開關型...

CC2530之時鐘源

系統時鐘 相關暫存器 32 mhz 晶振 16 mhzrc振盪器 注意 2mhz晶振啟動時間對一些應用程式來說可能比較長 16mhzrc振盪器功耗低於晶振,但是由於不像晶振那麼精確,不能用於rf收發器操作 32 khz 晶振 32 khzrc振盪器 注意 相對於32 khzxosc解決方案32 kh...