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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > ARM寄存器地址定義

          ARM寄存器地址定義

          作者: 時間:2016-11-09 來源:網絡 收藏
          今天學習DMA,需要傳遞地址,我想從串口傳到寄存器來點亮led燈,只是學習一下DMA的原理,首先說明一點的是程序還很爛,沒有做成功。其中發(fā)現(xiàn)了一個問題,就是寄存器的地址#define rGPBCON (*(volatile unsigned *)0x56000010)我看了這個的時候,到底這是定義的一個什么呢?上網搜了一下,總結一下。

          1.首先這是定義的一個變量,這一點要非常明白,因為rGPBCON就是一個寄存器變量,我們可以給他賦值對他讀寫操作,這是一個變量,而不是一個指針或者地址。

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

          2.這是一個地址固定的變量,以前分配的變量地址是隨機的,但這里的地址是固定的,就是0x56000010。

          3.#define rGPBCON (*(volatile unsigned *)0x56000010)宏定義的過程,首先把0x56000010這個物理地址強制轉換為指針變量

          (volatile unsigned *)0x56000010 這就是一個指針變量。然后再用*符號對指針變量操作相當于*p是一個變量。其中因為這里是寄存器映射到內存是虛地址,所以需要用關鍵字volatile寫回,而不是讀緩沖器中的值。

          4. 關于rGPBCON這個特殊寄存器到底有沒有這樣一個寄存器?

          這個我一直很迷惑,直到今天,我才明白,其實沒有這樣一個寄存器,這個寄存器是0x56000010開始的四個字節(jié)的內存地址的別名,rGPBCON是占用內存的,而不存在IO空間或者說IO寄存器。因為ARM根本久沒有IO空間,直接映射到內存空間。



          關鍵詞: ARM寄存器地址定

          評論


          技術專區(qū)

          關閉
          看屁屁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); })();