硬體平台:
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...