亚洲国产高清在线观看视频_日韩欧美国产aⅴ另类_奇米影视7777久久精品_欧美 国产 亚洲 卡通 综合

您的位置:首頁(yè) > 熱點(diǎn) >

ARM寄存器地址定義

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

1.首先這是定義的一個(gè)變量,這一點(diǎn)要非常明白,因?yàn)閞GPBCON就是一個(gè)寄存器變量,我們可以給他賦值對(duì)他讀寫操作,這是一個(gè)變量,而不是一個(gè)指針或者地址。

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

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

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

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

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

標(biāo)簽: ARM寄存器地址定

相關(guān)閱讀

博野县| 铜山县| 拜城县| 邯郸市| 临汾市| 永州市| 凤山市| 体育| 汽车| 延吉市| 资中县| 呼伦贝尔市| 玉龙| 望江县| 丽江市| 霍州市| 汝州市| 理塘县| 泌阳县| 宁陕县| 锡林浩特市| 林周县| 惠来县| 望城县| 新丰县| 阜新市| 苍梧县| 隆德县| 广饶县| 渭南市| 盐山县| 大余县| 南陵县| 大姚县| 竹山县| 灌阳县| 安丘市| 临清市| 宕昌县| 宁德市| 图片|