国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > 裸機(jī)程序中頭文件的來源

裸機(jī)程序中頭文件的來源 時(shí)間:2018-12-11      來源:未知

特殊功能寄存器SFR,是Special Function Register的縮寫。特殊功能寄存器是一個(gè)芯片功能得以實(shí)現(xiàn)的載體,我們可以理解為芯片廠商留給開發(fā)人員的控制接口,用于控制片內(nèi)外設(shè),比如GPIO、UART、ADC等。在常見的單片機(jī)或以ARM處理器為核心的芯片中,每個(gè)片內(nèi)外設(shè)都有對(duì)應(yīng)的特殊寄存器,用于存放相應(yīng)功能部件的控制命令,數(shù)據(jù)或者狀態(tài)。

特殊功能寄存器是有地址的,其地址也是使用的處理器尋址范圍之內(nèi)的一段空間,所以我們對(duì)于特殊功能寄存器的操作與操作內(nèi)存類似,只是特殊功能寄存器是用于存放片內(nèi)外設(shè)的的控制命令,數(shù)據(jù)或者狀態(tài),我們可以通過操作特殊功能寄存器達(dá)到對(duì)片內(nèi)外設(shè)的控制。

查看Exynos4412芯片手冊(cè)地址映射表,如圖所示,我們可以看到Exynos4412的特殊功能寄存器絕大部分都放到了0x1000_0000到0x1400_0000的地址空間內(nèi)。

裸機(jī)程序中頭文件的來源

Exynos4412地址映射表

在芯片手冊(cè)中我們可以看到對(duì)各個(gè)寄存器的描述。我們以GPA0CON寄存器為例,該寄存器是用于配置GPA0組管腳功能的寄存器。

GPA0組的配置寄存器GPA0CON的地址是:基地址+偏移量

0x11400000 + 0x0000 = 0x11400000

裸機(jī)程序中頭文件的來源

GPA0CON寄存器

一般情況下我們經(jīng)常對(duì)一個(gè)芯片當(dāng)中的所有寄存器進(jìn)行如下定義,然后將這些宏定義都寫在一個(gè)頭文件中,在需要使用寄存器時(shí)直接引用該宏定義就可以操作該寄存器中的數(shù)據(jù)。

例如:

#define  GPA0CON  (*(unsigned int *)0x11400000)

這里定義了一個(gè)宏,宏定義在預(yù)處理階段進(jìn)行直接替換,0x11400000 是一個(gè)16進(jìn)制的數(shù)據(jù),前面用(unsigned int *)修飾意在把0x11400000強(qiáng)制轉(zhuǎn)換成了一個(gè)指向unsigned int型變量的指針。簡(jiǎn)單的說,(unsigned int  *)0x11400000指向了內(nèi)存中從0x11400000開始的連續(xù)的4個(gè)字節(jié)空間。(0x11400000—0x11400003)。(*(unsigned int  *)0x11400000)是在(unsigned int  *)0x11400000又加了一個(gè)指針運(yùn)算符*,表示取內(nèi)存單元里的數(shù)據(jù)。所以如果我們操作(*(unsigned int  *)0x11400000)就相當(dāng)于通過間接的方式操作以起始地址為0x11400000的連續(xù)的四個(gè)字節(jié)的地址空間當(dāng)中的數(shù)據(jù)。所以我們?cè)趯?shí)際使用時(shí)只要把寄存器提前進(jìn)行宏定義封裝在實(shí)際使用時(shí)直接引用該寄存器的名字就可以,我們可以像unsigned int變量一樣訪問特殊功能寄存器。

例如:

GPA0CON = (GPA0CON & ~(0xf<<4))| 1<<4; //將GPA0_1引腳設(shè)置為輸出功能

上一篇:堆棧溢出一般是什么原因?

下一篇:紅外感應(yīng)器工作原理

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5,京公海網(wǎng)安備11010802025203號(hào)

回到頂部