在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            ARM寄存器地址定義

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

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

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

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

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

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

            4. 關(guān)于rGPBCON這個特殊寄存器到底有沒有這樣一個寄存器?

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



            關(guān)鍵詞: ARM寄存器地址定

            評論


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

            關(guān)閉