<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > KEIL FOR ARM 下LPC22xx的外部RAM用法

          KEIL FOR ARM 下LPC22xx的外部RAM用法

          作者: 時(shí)間:2016-11-11 來(lái)源:網(wǎng)絡(luò) 收藏
          工作筆記:

          調(diào)試外部RAM,我是在CS0上外擴(kuò)了一個(gè)64K的RAM,也就是地址從0X80000000開(kāi)始。開(kāi)始不知道REALVIEW的設(shè)置,所以總是不能讀寫RAM,沒(méi)有輸出信號(hào),在KEIL下要做如下設(shè)置。

          本文引用地址:http://www.ex-cimer.com/article/201611/316613.htm

          一、在“Options for Target Targe 1”下,選擇Asm菜單,在“Conditional Assembly Control Symbols”下的輸入框中填上EXTERNAL_MODE,然后按OK結(jié)束,

          二、Startup.s這個(gè)文件也要做一定的改動(dòng)。

          EMC_SETUP EQU 1 ;使能外部RAM控制。

          BCFG0_SETUP EQU 1 ;使能CS0控制。如果用到別的片選,則都要使能。
          BCFG0_Val EQU 0x1000554A; ;

          ;此時(shí)要注意BCFG0這個(gè)寄存器的設(shè)置,要仔細(xì)看內(nèi)容,其分別定義了讀、寫、連續(xù)的時(shí)鐘周期,重要的是,如果是RAM,RVLE位一定要置1,別的要根據(jù)你RAM的速度,來(lái)設(shè)置一個(gè)合適的值,位29、28決定了RAM的寬度,8位、16位、32位等。

          三、另一個(gè)設(shè)置就是比較重要的PINSEL2

          PINSEL2_Val EQU 0x0F000914

          的設(shè)置的為16位總線,A1-23地址線使能,使能CS0,OE ,WE;別的引腳則設(shè)置為了I/O,這個(gè)寄存器的位4、5應(yīng)該看明白,你選擇的是多少位的總線,然后就是看你需要的選擇了。

          綜上,設(shè)置了這幾種寄存器,外部RAM就可以正常工作了。如果以上設(shè)置的不對(duì),則可能沒(méi)有WE信號(hào),也可能不產(chǎn)生CS0;下面是一個(gè)簡(jiǎn)單的例子。

          #define RAMADDR 0x80000000 //外部RAM的基址。

          void ExternRam(void)
          {
          volatile unint *buf;
          unint data[512];
          unint i;
          for (i=0x00;i<512;i++)
          {
          buf=(volatile unint *) (RAMADDR | i<<1);
          *buf=i;
          }
          for (i=0x00;i<512;i++)
          {
          buf=(volatile unint *) (RAMADDR | i<<1);
          data[i]=*buf;
          }
          }

          如果你寫入的數(shù)據(jù)與讀出的數(shù)據(jù)一樣,那就說(shuō)明設(shè)置的對(duì)了,調(diào)試時(shí),最好用示波器看看WE,OE,CS0等信號(hào)是否正常。



          關(guān)鍵詞: KEILFORARMLPC22xx外部RA

          評(píng)論


          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();