亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Cortex-M3位帶地址映射技術(shù)的位帶操作研究與實現(xiàn)

        2020-11-13 08:20:02李國強
        關鍵詞:外設存儲器字節(jié)

        李國強

        (安徽華東中投科技有限公司,安徽 合肥 230000)

        在當今的計算機控制領域中,許多智能控制產(chǎn)品都使用了基于Cortex-M3內(nèi)核的Arm處理器。在這里,主要針對Arm處理器內(nèi)核Cortex-M3存儲器支持的“bit-band”位帶,對位帶地址映射技術(shù)進行研究以及如何實現(xiàn)位帶操作。

        一、 Cortex-m3的位帶區(qū)與位帶別名區(qū)

        Cortex-M3是Arm處理器內(nèi)核,可支持4GB存儲空間,Cortex-M3內(nèi)核是通過ICode、DCode、System總線與STM32內(nèi)部的Flash、SROM相連接的,Cortex-M3存儲器支持“bit-band”位帶。在Cortex-M3存儲器中有二個 1MB的位帶區(qū),以及對應的32MB的“位帶別名(alias)區(qū)” 。位帶別名區(qū)可以把每個位(bit)擴展成一個32位的字。當通過位帶別名區(qū)訪問這些字時,就可以達到訪問原來位的目的,如圖1所示。

        在SRAM區(qū)的底部,有一個 1MB的位帶區(qū),這個位帶區(qū)還有一個對應的32MB的“位帶別名(alias)區(qū)”,容納了8M個“位變量”,每個位變量是32位(既1個字4個字節(jié))。位帶區(qū)對應的是最低的1MB地址范圍,而位帶別名區(qū)里面的每個字對應位帶區(qū)的一個bit位。位帶操作只適用于數(shù)據(jù)訪問,不適用于取指。

        圖1 位帶區(qū)與位帶別名區(qū)示意圖

        在片上外設區(qū)的底部,也有一個1MB的位帶區(qū),并有一個與其對應的32MB的位帶別名區(qū),用于快捷訪問外設寄存器。這樣,就使得我們訪問各種控制位和狀態(tài)位,就像訪問普通內(nèi)存一樣方便。

        二、Cortex-m3的位帶地址映射

        存儲器映射是指把芯片中或芯片外的FLASH、RAM以及外設等進行了統(tǒng)一編址,即用地址來表示對象。Cortex-M3存儲器的4G地址空間被劃分為大小相等的8塊區(qū)域,每塊區(qū)域大小為512M。

        這里劃分的8塊區(qū)域是粗線條的,主要包括代碼、SRAM、外設、外部RAM、外部設備、專用外設總線-內(nèi)部、專用外設總線-外部、特定廠商等。只要芯片制造商能按照Cortex-M3存儲器的結(jié)構(gòu)進行各自芯片的存儲器結(jié)構(gòu)設計,就允許芯片制造商靈活的分配存儲器空間,以制造出各具特色的基于Cortex-M3的芯片。Cortex-M3存儲器映射有2個32MB的位帶別名區(qū),這2個區(qū)被映射為2個1MB的位帶區(qū)。

        (一) SRAM區(qū)的位帶地址映射關系分析

        SRAM區(qū)的位帶地址從地址0x20000000開始的1MB位帶區(qū),其對應的位帶別名區(qū)的地址是從0x22000000開始的32MB。對32MB SRAM位帶別名區(qū)的訪問,映射為對1MB SRAM位帶區(qū)的訪問。

        假設SRAM位帶區(qū)的某個位(bit),此位的所在字節(jié)地址記為A,位序號為n(n的值為0—7),則該位在位帶別名區(qū)的地址為:

        上式中的“*4”表示一個字為4個字節(jié),“*8”表示一個字節(jié)有8個bit(位)。對于SRAM區(qū)中,位帶地址映射關系,如表1所示。

        表1 SRAM區(qū)中的位帶地址映射關系表

        例如:已在地址0x20000000中寫入了0x12345678,現(xiàn)要求對bit2位置1。過程如下:

        首先讀取位帶別名地址0x22000008。這次讀訪問將會讀取位帶地址0x20000000,并提取bit2位,其值為0;

        然后往地址0x22000008處寫1。這次操作將會被映射成對地址0x20000000的“讀-改-寫”操作,把bit2位置1。

        最后我們再讀取地址0x20000000,讀到的數(shù)據(jù)是0x1234567C,bit2位已置1了。

        (二) 片上外設區(qū)的位帶地址映射關系分析

        片上外設區(qū)的位帶地址從地址0x40000000開始的1MB位帶區(qū),其對應的位帶別名區(qū)的地址是從0x42000000開始的32MB。對32MB外設位帶別名區(qū)的訪問,映射為對1MB外設位帶區(qū)的訪問。

        同樣假設片上外設位帶區(qū)的某個位(bit),此位的所在字節(jié)地址也記為A,位序號為 n(n的值為0—7),則該位在位帶別名區(qū)的地址為:

        上式中的“*4”表示一個字為4個字節(jié),“*8”表示一個字節(jié)有8個bit(位)。對于片上外設區(qū)中,位帶地址映射關系,如表2所示。

        表2 片上外設區(qū)中的位帶地址映射關系表

        另外,在訪問位帶別名區(qū)時,不管使用哪一種長度的數(shù)據(jù)傳送指令(字/半字/字節(jié)),都把地址對齊到字的邊界上,否則會產(chǎn)生不可預料的結(jié)果。

        三、位帶操作實現(xiàn)

        (一) 位帶地址轉(zhuǎn)換的宏

        在C語言中使用位帶操作,最簡單的做法就是使用define宏定義一個位帶別名區(qū)的地址??梢韵冉⒁粋€把“位帶地址+位序號”轉(zhuǎn)換成別名地址的宏,然后再建立一個把別名地址轉(zhuǎn)換成指針類型的宏。

        1.建立一個把“位帶地址+位序號”轉(zhuǎn)換成位帶別名地址的宏,宏定義代碼如下:

        參考前面介紹的轉(zhuǎn)換公式,完成“位帶地址+位序號”轉(zhuǎn)換成位帶別名地址的計算,宏定義代碼說明如下:

        2.建立一個把別名地址轉(zhuǎn)換成指針類型的宏,宏定義代碼如下:

        由于C編譯器并不知道同一個bitn位可以有兩個地址,所以要使用這個volatile關鍵字。這樣,就能確保本條指令不會因編譯器的優(yōu)化而被省略,每次都能如實的把新數(shù)值寫入存儲器中。

        (二)IO口位帶操作的宏定義

        采用逐層地址映射方式,對IO口位帶操作進行宏定義,可以實現(xiàn)IO口的輸入輸出讀取和控制。

        1.對外設基地址和APB2外設基地址映射宏定義,宏定義代碼如下:

        2.對片上外設區(qū)的外設基地址都進行了宏定義,如ADCn、DAC、TIMn、USARn以及GPIOx等。在這里主要闡述GPIOx外設基地址宏定義,宏定義代碼如下:

        3.對GPIOx口ODR和IDR寄存器地址映射進行了宏定義,宏定義代碼如下:

        (4)GPIOA口的輸入輸出宏定義,宏定義代碼如下:

        其中n的取值范圍是0~15,GPIOA_ODR_Addr和GPIOA_IDR_Addr是GPIOA口的寄存器ODR和IDR在片上外設區(qū)的位帶地址。其他的GPIOB—GPIOG口的輸入輸出宏定義以此類推。

        四、結(jié)語

        在基于Cortex-M3位帶地址映射技術(shù)的位帶操作研究基礎上,對Arm處理器的IO引腳操作就更加方便了。比如,若在PA8引腳輸出一個“1”,代碼如下:

        這樣的操作,就像51單片機操作一樣方便。又如,若讀PD15引腳上所接按鍵的狀態(tài),代碼如下:

        由此可以看出,通過Cortex-M3位帶地址映射技術(shù)的研究,位帶操作非常容易的實現(xiàn)Arm處理器的IO引腳位操作,就不需要使用Cortex-m3的固件庫GPIO_SetBits ()和GPIO_ResetBits ()函數(shù),或者使用GPIO口相關寄存器去實現(xiàn)了。

        猜你喜歡
        外設存儲器字節(jié)
        No.8 字節(jié)跳動將推出獨立出口電商APP
        靜態(tài)隨機存儲器在軌自檢算法
        No.10 “字節(jié)跳動手機”要來了?
        簡談MC7字節(jié)碼
        存儲器——安格爾(墨西哥)▲
        基于Nand Flash的高速存儲器結(jié)構(gòu)設計
        Microchip推出具備雙ADC外設的全新器件,擴展其低成本8位PIC?單片機產(chǎn)品線
        人類進入“澤它時代”
        貼身呵護 必不可少的PSP外設
        外設天地行情
        国内精品人人妻少妇视频| 97人伦影院a级毛片| 日本做受120秒免费视频| 怡红院a∨人人爰人人爽| 亚洲国产一区在线二区三区| 无码中文字幕久久久久久| 在线亚洲妇色中文色综合| 亚洲最好看的中文字幕| 国产一精品一av一免费| 精品无码一区二区三区亚洲桃色| 男性一插就想射是因为啥| 在线一区二区三区免费视频观看 | 男女搞基视频免费网站| 午夜天堂av天堂久久久| 99久久久无码国产精品6| 亚洲最大成av人网站| 亚洲国产av自拍精选| 99久久国产精品免费热| 男人和女人做爽爽免费视频| 中文字幕一区二区三区精华液| 中文字幕第一页亚洲观看| 天天综合色中文字幕在线视频| 中文字幕女同系列在线看一| 青春草在线视频免费观看 | 视频一区精品自拍| 亚洲精品国产精品系列| 91久久偷偷做嫩模影院| 熟女少妇精品一区二区| 国产精品久久久av久久久| 国产精品亚洲av网站| 日韩中文字幕久久久老色批| 夜夜爽日日澡人人添| 人妻丰满熟妇av无码区免| 日本一道dvd在线中文字幕| 国产不卡在线播放一区二区三区| www夜插内射视频网站| 亚洲色大成网站www久久九| 婷婷色国产精品视频一区| 中文字幕视频一区二区| 亚洲综合另类小说色区| 欧洲熟妇色xxxx欧美老妇多毛图片|