|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請教ARM9訪問外部存儲器SRAM的操作! |
| 作者:caozltao 欄目:ARM技術(shù) |
看了AT91RM9200datasheet,現(xiàn)用其NCS2和地址數(shù)據(jù)線連接一外部的SRAM,這樣外部的SRAM的尋址范圍是0x30000000到0x3fffffff。 現(xiàn)在需對此SRAM里面進行讀寫操作,寫操作編寫如下程序,不知道寫進去了沒有?在axd里面調(diào)試,是每個地址單元的數(shù)據(jù)都在一起變化。 不知道有用過9200外部擴展SRAM的例程或用過的高手執(zhí)教下,謝謝! #include "AT91RM9200.h" #include "lib_AT91RM9200.h" #define AT91C_SMC2_CSR2 ((unsigned int *) 0xFFFFFF78) //SMC里面片選寄存器2的絕對地址 #define a ((unsigned CHAR *) 0x30000000)//SRAM的初始地址 extern void AT91F_DBGU_Printk(CHAR *);//打印消息 int main() { unsigned CHAR num,n; unsigned CHAR *p; AT91F_DBGU_Printk("begin to write to SRAM"); p=a;//指針指向SRAM的初始地址 *AT91C_SMC2_CSR2=(unsigned int)(1<<14); //寄存器賦值,即SRAM是8位的數(shù)據(jù)寬度 for(num=0;num<100;num++) *p++=num; //循環(huán)賦值填寫SRAM里面前100個數(shù)據(jù) AT91F_DBGU_Printk(" write 100 bytes to SRAM is over!"); } |
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |