免费看操,色天堂在线视频,色伊人网站全部,JIZZJIZZ亚洲农村少妇

案例&資訊
案例&資訊
主頁(yè) ? 案例&資訊 ? 資訊動(dòng)態(tài) ? 查看詳情

如何對(duì)外擴(kuò)SRAM進(jìn)行讀寫(xiě)

來(lái)源:宇芯有限公司 日期:2020-02-20 10:58:13

如何對(duì)SRAM進(jìn)行讀寫(xiě)
 
使用指針的方法進(jìn)行讀寫(xiě)
 
不需要寫(xiě)讀寫(xiě)函數(shù),可以直接使用指針的方式對(duì)STM32的內(nèi)存地址進(jìn)行訪問(wèn)。
 
(1)首先要定義SRAM的基地址:
 
#defeine SRAM_BASE_ADDR       (0x68000000)  //基地址從0x68000000開(kāi)始
 
#define SRAM_SIZE                      (1*1024*1024) //一共有1M字節(jié)
 
#define SRAM_END_ADDR          (SRAM_BASE_ADDR + SRAM_SIZE)   //SRAM結(jié)束的地址
 
//用#define定義宏的時(shí)候用括號(hào)是個(gè)習(xí)慣,防止以后如果有運(yùn)算的時(shí)候會(huì)影響宏的運(yùn)算法則。
 
 (2)定義指針,操作單字節(jié)數(shù)據(jù)
 
u8 *p;
 
p = (u8 *)SRAM_BASE_ADDR; //把數(shù)據(jù)SRAM_BASE_ADDR強(qiáng)制轉(zhuǎn)換成指針
 
*p = 0xAB;    //向0x68000000地址寫(xiě)入0xAB
 
 
 
如何操作雙字節(jié)數(shù)據(jù)
 
先定義一個(gè)16位的指針
 
u16 *p16;
 
p = (u16 *)SRAM_BASE_ADDR; //把數(shù)據(jù)SRAM_BASE_ADDR強(qiáng)制轉(zhuǎn)換成16位指針
 
*p16 = 0xCDEF;   //一次可以操作2個(gè)字節(jié)
 
 
 
如何操作浮點(diǎn)數(shù)
 
定義一個(gè)指向浮點(diǎn)數(shù)的指針
 
float *pf;
 
p = (float *)SRAM_BASE_ADDR; //把數(shù)據(jù)SRAM_BASE_ADDR強(qiáng)制轉(zhuǎn)換成指向浮點(diǎn)數(shù)的指針
 
*pf = 56.35;
 
使用絕對(duì)地址的方式訪問(wèn)SRAM
 
u8 testValue __attribute__ ( (at (SRAM_BASE_ADDR ) ) );
 
把變量testValue的地址定義到0x68000000
 
testValue = 50;
 
注意:使用 __attribute__定義變量時(shí)必須定義為全局變量
 
否則如果使用局部變量,變量還是會(huì)被定義在內(nèi)部RAM中。


關(guān)鍵詞:SRAM

相關(guān)文章:可穿戴電子設(shè)備中的SRAM

宇芯有限公司自成立以來(lái),我們專注于代理國(guó)內(nèi)外各大知名品牌的半導(dǎo)體元器件,代理品牌有NETSOL、JSC、everspin、來(lái)?xiàng)頛yontek、ISSI、CYPRESS等多個(gè)品牌總代理資質(zhì),主要產(chǎn)品線為sram、mram、psram等其他存儲(chǔ)器芯片,致力于為客戶提供具有競(jìng)爭(zhēng)優(yōu)勢(shì)的產(chǎn)品,是一家專業(yè)提供存儲(chǔ)方案解決商。