娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

存儲器(Memory)作為計算機系統的重要組成部分,可分為RAM,ROM??梢允瞧瑑?,也可在片外。一般來說,片內容量小,速度較快一些,片外的容量大,速度較慢一些。

片內/片外 是針對于MCU而言,而不同芯片廠家的MCU芯片,都可以采用同樣的內核,比如說CM3。


CM3提供了預先定義好的存儲器地址映射表,極大的方便了軟件在各種基于CM3的MCU間的移植。


1 存儲系統功能概覽

CM3 的存儲器系統與從傳統 ARM 架構的相比,已經脫胎換骨了:

第一, 它的存儲器映射是預定義的, 并且還規定好了哪個位置使用哪條總線。

第二, CM3 的存儲器系統支持所謂的“位帶”( bit‐band)操作。

第三, CM3 的存儲器系統支持非對齊訪問和互斥訪問。 這兩個特性是直到了 v7M 時才

出來的。


最后, CM3 的存儲器系統支持小端配置和大端配置。


2 存儲器映射

主要分為6大區域:

1 code區,存放指令,只讀不可改,一般是flash

2 sram區,存放數據,片內靜態ram,由芯片廠商決定使用多大的內存,可讀可寫

3 peripheral區,外設寄存器地址,由芯片廠商布局各式各樣的外部設備

4 external ram區,片外擴展ram,當片內資源不夠時,可進行擴展

5 external device區,片外擴展設備

6 private bus區,CM3內核的系統級組件,以及私有總線


3 位帶操作

位帶操作,在于通過訪問字的方式來訪問單個比特位,達到提高訪問效率以及原子操作的目的,同時具有消耗了多余內存的缺點。


擴展成字的區域 稱之為 位帶別名區(bit-band alias)。

支持單個比特位擴展成字的區域 稱之為 位帶區(bit-band)。


支持位帶操作的兩個內存區的范圍是:

0x2000_0000‐0x200F_FFFF( SRAM 區中的最低 1MB)

0x4000_0000‐0x400F_FFFF(片上外設區中的最低 1MB)

擴展的對應關系:(n為位序號(0<= n <= 7))

AliasAddr = 0x22000000+((A‐0x20000000)*8+n)*4 =0x22000000+ (A‐0x20000000)*32 + n*4;

’*8‘ 表示一個地址中存放了一個字節,一個字節中包含8位

’*4‘ 表示一個位擴展為32位的字,這樣的一個字包含4個字節


為什么能夠提高效率?

傳統的寫操作--讀,改,寫。包含這三步驟

位帶的寫操作--讀,寫。


傳統的讀操作--讀,移位,提取。包含這三步驟

位帶的讀操作--總線單次讀。

從以上匯編代碼可以看出,通過操作位帶別名區來操作位帶區中的單個比特位,匯編指令較少,CPU執行效率較高。


在 C 語言中使用位帶操作:

不幸的是,在 C 編譯器中并沒有直接支持位帶操作。比如, C 編譯器并不知道同一塊內存能夠使用不同的地址來訪問,也不知道對位帶別名區的訪問只對 LSB 有效(最低位有效,因為最終作用到的是位帶區的單個比特位,所以高位是無效的)。欲在 C 中使用位帶操作,最簡單的做法就是#define 一個位帶別名區的地址。例如:


#define DEVICE_REG0 ((volatile unsigned long *) (0x40000000))

#define DEVICE_REG0_BIT0 ((volatile unsigned long *) (0x42000000))

#define DEVICE_REG0_BIT1 ((volatile unsigned long *) (0x42000004))


*DEVICE_REG0 = 0xAB; 


*DEVICE_REG0 = *DEVICE_REG0| 0x2; //使用傳統方法設置 bit1


*DEVICE_REG0_BIT1 = 0x1; // 通過位帶別名地址設置 bit1


這里注意的是關鍵字 volatile

volatile 本意是指”易變的“,目的在于告訴編譯器:”這個變量(內存區域)是容易改變的,不要進行編譯優化(存放在寄存器中,或者cache中,來提高執行效率)“。因為一旦優化了,CPU每次對這塊區域的訪問不再是如實的讀寫內存,而是與寄存器(或cache)進行數據交互,最后才把結果寫回內存,這樣的話,若其他地方對該內存進行的修改,將不能被及時知曉,從而導致數據丟失或出錯。


4 非對齊訪問

在ARMv6之前,是不支持非對齊訪問的,一旦非對齊訪問,將引發異常。

在CM3(ARMv7-M)中,支持非對齊訪問,但是,非對齊的數據傳送只發生在常規的數據傳送指令中,如 LDR/LDRH/LDRSH/STR。


其它指令則不支持,包括:

1 多個數據的加載/存儲(LDM/STM)

2 堆棧操作 PUSH/POP。堆棧指針SP(R13)的最低兩位默認為0,也就是表示了四字節對齊

3 互斥訪問(LDREX/STREX)。如果非對齊會導致 fault

4 位帶操作。因為只有 LSB 有效,非對齊的訪問會導致不可預料的結果。

關鍵字:ARM  Cortex-M3  存儲器系統 引用地址:【ARM】Cortex-M3 存儲器系統

上一篇:【ARM】Cortex-M3 異常系統
下一篇:【ARM】內核寄存器以及常用匯編指令分析

推薦閱讀

全國政協十三屆一次會議在北京人民大會堂閉幕。全國政協委員、百度公司董事長兼CEO李彥宏在“委員通道”接受采訪時,再次談到了人工智能與自動駕駛。當時,記者提問:去年您乘坐無人駕駛汽車上了北京五環,并且為此吃到了罰單,百度公布了無人車量產計劃,請問計劃目前的進展如何?普通的民眾什么時候才能夠做到無人車?另外除了無人車人科技能還會給我們...
疑似蔚來汽車前員工通過知乎爆料多個問題稱,蔚來汽車在貸款購車流程上存在問題、2018年1萬輛的交付是通過員工“自導自演”、存在大量裁員現象。 爆料中,蔚來汽車稱為 “風光”的2018,“卸磨殺驢”的2019,主要講了三個關于蔚來的內幕:第一、蔚來汽車的信貸審核購車流程有問題;第二、去年李斌賭贏何小鵬的“一萬輛”,只不過是自導自演的結果,其中多...
  隨著疫情的逐步緩解,中央提出的“新基建”發展路徑成為社會各界關注的一個熱點。“新基建”主要包括七大領域:5G基建、特高壓/電力物聯網、高鐵/軌道交通、新能源汽車/充電樁、云計算/數據中心、人工智能、工業互聯網。   隨著政策紅利的加持,新能源充電樁行業有望迎來新一輪發展,市場前景廣闊,并帶動產業鏈上下游企業發展。   在充電樁...
在上一次的“小米造車”傳言中,盡管小米沒有承認網傳的造車計劃,但似乎已是“司馬昭之心路人皆知”。3月19日上午,36氪拿到了獨家消息,有關小米造車的傳言再度出現:最快在4月,小米的造車計劃即將公布。 36氪的報道補充了較多的細節,例如小米的汽車業務會由老將王川負責,“品牌定位和小鵬類似”,“技術重點放在智能駕駛的硬件技術,包括芯片和激光...

史海拾趣

問答坊 | AI 解惑

常用資料

常用設計資料 與大家共享…

查看全部問答∨

09電設高頻類原理圖和pcb,我自己畫的 離散元件

本帖最后由 paulhyde 于 2014-9-15 04:23 編輯 這是我自己畫的無線收發的原理圖和pcb板 希望對大家有所幫助  …

查看全部問答∨

串口發送long類型數據

串口發送數據,long類型,四字節,范圍是0x00 ~ 0x7fffffff 每次發送1個字節,比如0x7abcdeff,第一次發送7a,第二次發送bc,第三次發送de,第四次發送ff 接收端在接收到數據后,要組合成原來的樣子。 該怎么操作?用C語言?!?

查看全部問答∨

2個小問題,請教各位!??!

1、wince的backspace也就是vk_back鍵盤消息    在WINCE桌面&焦點不在任務欄上時,一發這個消息就把IE打開    請問有好的解決方法嗎?    或者微軟有明文說明這個是他的一個功能?。。。浚?? 2、是否有人用過這 ...…

查看全部問答∨

請教一下PB5.0啟動后畫面錯誤問題?謝謝

我在XP SP2 下安裝了wince5.0,可是從開始菜單中打開PB5.0后,中間一部分界面空白,沒有正常 情況下的一些字符: Home Getting Started What\'s New Online Communication .... 等! 請問是否是安裝過程中出錯??已試過兩次,都是這樣 ...…

查看全部問答∨

女生選擇數據庫方向合適嗎?

  我是計算機一名大三女生,現在開始選方向了,只有4個方向,權衡了一下,覺得好像除了數據庫方向,其它都很差勁,可又不知道這個方向具體以后可以從事哪些職業,適不適合女生,學好它還需要哪些基礎課程...(c,java,我比較喜歡java,C很差...) ...…

查看全部問答∨

stm32之pwm

#include "stm32f10x.h"#include"stm32f10x_tim.h"#include"stm32f10x_rcc.h"void RCC_Configuration(void);void GPIO_Configuration(void);void TIM_Configuration(void);int main(void){{RCC_Configuration();GPIO_Configuration();TIM_Configura ...…

查看全部問答∨

NSJS16R1學習板原理圖 acoba

就是這次USB學習板活動的原理圖pdf格式,如果acrobat打不開,請用foxit reader打開…

查看全部問答∨

電池電壓過低的問題~

做一個產品,有后備電池。后備電池和主電源分別接2個二極管,陰極相連給電路供電,當主電掉了以后立即切換到備電。電池高于1.8V時沒問題,但當電池掉電下降到1.6伏后再上電發現系統死機,晶振已經起振了。有人碰到過嗎,有什么解決辦法。 還有電池 ...…

查看全部問答∨

關于紅外的一點心得

本帖最后由 paulhyde 于 2014-9-15 03:14 編輯 由于紅外傳輸語音用模擬就搞定了,后來試驗了一下,用脈寬調制一個信號,用比較器卡住一個電壓,這樣將語音和溫度信號區分出來,再解調一下脈寬,就得到了溫度值。一對紅外可以實現。距離3-5m。 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 冕宁县| 肥城市| 霸州市| 马公市| 屯门区| 刚察县| 黑龙江省| 芮城县| 岢岚县| 高青县| 镇安县| 辽源市| 内乡县| 琼海市| 育儿| 乌拉特中旗| 天等县| 措勤县| 祁连县| 仁布县| 镇沅| 承德市| 长乐市| 弋阳县| 尉氏县| 马鞍山市| 赣榆县| 佛冈县| 惠东县| 永善县| 湄潭县| 黔西县| 西华县| 芜湖市| 吉林省| 游戏| 安龙县| 潍坊市| 灌南县| 景泰县| 湟源县|