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

歷史上的今天

今天是:2025年06月05日(星期四)

2018年06月05日 | S3C2440 存儲器地址映射

發布者:科技革新者 來源: eefocus關鍵字:S3C2440  存儲器  地址映射 手機看文章 掃描二維碼
隨時隨地手機看文章

一、S3C2440存儲控制器

如果大家寫過S3C2440的ARM裸機程序都應該知道通常SDRAM的起始地址是0X30000000,但是大家有沒有想過為什么呢?下面我將給大家做一個簡要的介紹。

查S3C2440的手冊可知S3C2440可尋址1G的地址范圍,但是S3C2440的地址線只有27根,理論上只能尋址2的27次方等于128M的地址范圍。于是S3C2440通過一個叫BANK的東東解決了這個問題。S3C2440引出了8根BANK線(對應nGCS0~ nGCS7),通過這個8根線來選通和關閉不同的存儲器,這樣S3C2440最多就可以連接8個128M的存儲器,只要在某一時刻只選通一個BANK就可以實現1G的尋址空間每個BANK有個地址,對該BANK地址的訪問實際上就是選通該BANK,于是ARM核只要發出一個地址,然后S3C2440的儲存控制器只要把該地址解釋成兩部分:一部分是BANK地址一部分是連接到該BANK存儲器內部的地址就可以訪問了。

而作為32位的CPU,可以使用的地址范圍理論上可以達到2的32次方等于4G,除去上述的1G地址空間,還有一部分是CPU內部寄存器的地址,剩下的地址空間沒有使用。

下面我們來看到S3C2440存儲器的地址空間分布圖


ARM9 存儲器地址映射 - dingmz_frc - dingmz_frc的博客

左邊的是表示CPU從NORFLASH啟動時的地址空間圖,右邊是CPU從NANDFLASH啟動時的地址空間圖。

說明:從上面ARM9的存儲器映射與ARM7的映射對比來看,在ARM9中似乎將一個很重要的東西拋開不提了 - BootBlock!

我們知道在ARM7中這個東西是無處不在的,他最為復位、開機最先執行的系統內嵌代碼,會在執行所有用戶程序之前被執行,其被映射在了接近2G地址上面,詳見《ARM7 存儲器映射》。而在ARM9中我們一般可尋址的只有1G的內存空間(只是一般我們常使用的),并將其劃分為8個bank,這種映射方式仿佛只是針對我們用戶直接使用的那些flash、sram、sdram等的映射而已。而在原本ARM7中常見的”BootBlock“及”APB AHB外設“等地址都沒直接映射關系。這樣做可能是為了讓我們開發用戶把心思全部放在我們常用的資源上面,而對那些系統級的東西隱蔽起來。但是并不是說ARM9中就不存在BootBlock了,我們知道在ARM9的nandflash啟動過程就是使用了BootBlock進行的,詳見《ARM9啟動過程》。


從圖中可以看出SDRAM接在BANK6上面,地址為0X30000000,這就解釋了開始最開始的那個問題。問題又來了為什么CPU從NAND和NOR啟動時地址空間不同?這是因為NOR是線性結構,跟普通的內存差不多,它接在BANK0上。而NAND則是另外一種結構,S3C2440有專用的NAND控制器和地址線來連接,它不能接在BANK0上。CPU啟動時必定從0地址開始執行程序,而從NAND啟動時,0地址沒有存儲器,那CPU怎么辦呢?于是就出現了一種叫“起步石”(stepping stone)的東東 - 4K的SRAM,它是S3C2440內部的一塊4K的存儲器,當從NAND啟動時,0地址線會連接到起步石上面,同時CPU會通過內部的硬件將NAND FLASH開始的4K數據復制到起步石里面。起步石里面的程序一般設計為對SDRAM進行初始化,然后將NAND里面的部分程序復制到SDARM,然后跳到SDRAM開始執行程序。所以當做U-BOOT移植使其支持從NAND的啟動時,需要對NAND的前4K程序做處理。



但是,ARM9作為32位的CPU,理論上可以使用的地址范圍可以達到2的32次方等于4G,除去上述的1G地址空間,還有一部分是CPU內部寄存器的地址,剩下的地址空間沒有使用。那么,0x4000 0000以后的地址是怎樣映射的呢?

------------------------------------------------------------------------------------------------------

0x4000 0000——0x4000 0FFF            從NOR Flash啟動時片內4KB SRAM映射在這個地址范圍,而從NAND啟動時片內4KB SRAM映射在0x0000 0000地址,則這個地址范圍是保留的。

0x4000 0FFF——0x4800 0000            保留

0x4800 0000——0x6000 0000             特殊功能寄存器的地址

0x6000 0000——0xFFFF FFFF           未用

------------------------------------------------------------------------------------------------------

其中特殊功能寄存器的地址分布如下所示:


表2-14 S3C2440設備寄存器地址空間

外接設備

起始地址

結束地址

存儲控制器

0x48000000

0x48000030

USB Host控制器

0x49000000

0x49000058

中斷控制器

0x4A000000

0x4A00001C

DMA

0x4B000000

0x4B0000E0

時鐘和電源管理

0x4C000000

0x4C000014

LCD控制器

0x4D000000

0x4D000060

NAND FLASH控制器

0x4E000000

0x4E000014

攝像頭接口

0x4F000000

0x4F0000A0

UART

0x50000000

0x50008028

脈寬調制計時器

0x51000000

0x51000040

USB設備

0x52000140

0x5200026F

WATCHDOG計時器

0x53000000

0x53000008

IIC控制器

0x54000000

0x5400000C

IIS控制器

0x55000000

0x55000012

I/O端口

0x56000000

0x560000B0

實時時鐘RTC

0x57000040

0x5700008B

A/D轉換器

0x58000000

0x58000010

SPI

0x59000000

0x59000034

SD接口

0x5A000000

0x5A000040

AC97音頻編碼接口

0x5B000000

0x5B00001C

具體這些地址是如何映射的,可以參考《對S3C2440特殊功能寄存器地址的深入挖掘》

以上部分源自:http://www.linuxidc.com/Linux/2011-11/46479.htm


下面我們再來看看S3C440存儲控制器一般所接外設的訪問地址和部分寄存器的訪問地址。

二、S3C2440MMU

1.MMU的作用

我們再第一部分討論的全部都是物理地址,注意不要與這部分要將的虛擬地址給混淆起來。

內存管理單元(Memory ManagerUnit)簡稱MMU。它負責將虛擬地址轉換成物理地址,然后傳給上部分介紹的存儲管理器進行尋址。

現代的多用戶多進程操作系統通過MMU使各個用戶進程都有自己的獨立的地址空間:地址映射功能功能使的個進程擁有“看起來”一樣的地址空間,而內存訪問權限的檢查可以保護每個進程所用的內存不會被其他進程破壞。

我來打個蹩腳的例子:甲同學(進程甲)去一個圖書管理員那兒去借名為“內存”的一本書,說他7點鐘要用。圖書管理員給甲同學一個牌子上面寫著哪個層樓房哪個房間有這本書,不過這塊牌子只能7點鐘去取書,且只能借三個小時(權限),而乙同學同樣要借這本書不過是12點,圖書館同樣給乙同學一塊牌子,不同的時這塊牌子只能12點鐘去取書也只能借三個小時。結果是甲乙同學都借到了這本書,他們都感覺擁有了這本書,在他們擁有這本書的期間不會被其他同學打擾。實際上這里的同學就代表進程,圖書管理員代表是內核,牌子代表的是虛擬地址,書代表實際的內存,而MMU完成的工作就是拿到同學的牌子幫同學找到書的過程。

虛擬地址最終要轉成物理地址才能讀寫實際的數據,這通過將虛擬地址空間、物理地址空間劃分為一個同樣大小的一塊塊小空間,然后為著兩類小空間建立映射空間,有可能多塊虛擬地址映射到同一塊物理地址空間,或者有些虛擬地址空間映射具體物理地址空間上去。啟動MMU后,CPU對外發出虛擬地址,然后MMU將虛擬地址轉成物理地址再進行訪問。

2.虛擬地址空間到物理空間的轉換過程

在ARM CPU中使用頁表的方式進行轉換。linux內核一般使用兩級頁表的方式。頁表是個什么東東,他就像我們的書上的目錄,有主目錄,次目錄。當我們要找一個知識點的時候先找到主目錄,然后再找到次目錄再找到相應的知識點。每一個進程都會在內存里面創建一個目錄,目錄的存放地址保存起來。當需要訪問目錄時,就會將目錄放到CPU的一個專用寄存器里面,然后MMU讀取這個寄存器里面的值就會幫我們找到我們要訪問的物理地址。

頁表是怎樣建立的呢?

         實際上它就是在內存的一個地址內存放了第一級目錄的內存地址,然后在第一個級的目錄的內存內又存放了實際的物理地址。


關鍵字:S3C2440  存儲器  地址映射 引用地址:S3C2440 存儲器地址映射

上一篇:Cortex-M3的存儲器映射
下一篇:關于存儲器與ARM連線方式及地址的確定

推薦閱讀

網易科技訊6月5日消息,據國外媒體報道,消息人士稱目前夏普正就以約50億日元(約合4570萬美元/2.9億元人民幣)的價格收購東芝個人電腦業務進行談判,這也標志著這家隸屬于富士康旗下的日本電子公司正試圖重新進入個人電腦市場 。匿名消息人士表示,這兩家公司正在爭取在本周早些時候達成交易。《日本經濟新聞》(Nikkei business daily)首先報道了夏普重...
“我們對iPad有了一些重大變化。”蘋果公司軟件主管克雷格·費德瑞說。蘋果在WWDC推出了針對iPad的大型軟件更新,現在它正在拆分iOS,為平板電腦組建新的iPadOS。 Apple長期以來一直在調整iOS以包含更多的多任務處理功能,包括分屏功能,幻燈片切換和多任務處理改進以及對Dock的更改。 iPadOS現在包含一個新的主屏幕,其中的小部件可以與應用程...
  6月2日,發改委發布的《鉛蓄電池回收利用管理暫行辦法(征求意見稿)》明確,國家實行鉛蓄電池回收目標責任制,到2025年底,鉛蓄電池回收率要達到70%以上。鉛蓄電池生產企業(含進口企業),應通過自主回收、聯合回收、委托回收等方式,實現國家確定的回收目標,于每年3月底前提交上年度目標完成情況報告。   生產企業回收率=(當年廢鉛蓄電池自...
集微網6月5日消息,近日,vivo 推出了千元5G手機Y70t, 6G+128G售價1499元,到手價1299元,8G+128G售價1699元,到手價1499元,8G+256G售價1999元。vivo Y70t采用6.53英寸LCD挖孔屏,分辨率為2340×1080,前置為800萬像素自拍鏡頭,后置為4800萬主攝+200萬微距+200萬虛化三攝組合,機身厚為8.46mm,重約190g,提供秘鏡黑、雪羽白、碧海藍三種配色。vivo...

史海拾趣

問答坊 | AI 解惑

基于ARM的網絡收音機

來源:窗戶紙 http://www.getproject.com.cn/post/129.html 與大家分享下 很早以前用過網絡收音機,N年前了,都忘記了當初用的是什么軟件了,當時只是覺得整天聽MP3聽膩了,想回到過去,聽聽廣播,盡管有時候會插播廣告,比較煩人,不過有笑話 ...…

查看全部問答∨

與大家分享一些單片機應用實例與300種常用芯片資料

今天要下載模電和數電的電子書,沒想到在本論壇剛注冊就可以下載完了。速度非常快,所以懷著一顆感恩的心分享一些自己的電子資料!因為300種常用芯片資料太大,而且我是剛注冊的號等級較低,如有需要的請發信息到9125980@qq.com郵箱索取。我會在第 ...…

查看全部問答∨

閑著沒事,發幾張我們煤礦上的立井提升系統特寫

外景,煤礦立井主要負責將井下的掘進巖石提升到地面,此立井深度683米,提升速度9.2米/秒,提升機在此樓頂端,機械系統、電控系統均為洛陽中信 機房內部 提升電機,電壓6000V,功率1000kw,轉子電壓660V 高壓開關,雙電源切換 調速用的轉子 ...…

查看全部問答∨

IR2101和IR2110有什么區別

朋友說,2110是高要求場合用的,驅動和邏輯獨立供電,帶使能控制引腳,2101是低成本應用的,驅動和邏輯輸入公用電源 . 這個區別在實際使用時會影響什么? 有高手難過來說說不?…

查看全部問答∨

Windows CENET的串口解析.pdf

Windows CENET的串口解析.pdf…

查看全部問答∨

TMS320F240采用一個線性電阻測量三相電流

TMS320F240采用一個線性電阻測量三相電流…

查看全部問答∨

wince 數據庫安裝問題

大家好:     我在臺式機上面安裝在wince 數據庫SQL CE遇到了問題:     安裝SQL SERVER CE2000(包含Adoce3.1)時候,提示我。下面的信息:the installation interrupted before Microsofe SQL Server Windows CE Edition c ...…

查看全部問答∨

請問wince opengl es sdk哪里有下?

RT! WINCE 可以用Vincent Rendering Library嗎?它的文檔說用于PocketPC 2003 和Microsoft Smartphone 2003,不知道WINCE下可以不!…

查看全部問答∨

高端電流檢測:差動放大器vs.電流檢測放大器(中文)

高端電流檢測:差動放大器vs.電流檢測放大器…

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

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 凌云县| 新余市| 来宾市| 松江区| 西平县| 宝兴县| 河池市| 水富县| 新乡县| 攀枝花市| 鱼台县| 竹山县| 昔阳县| 石楼县| 金塔县| 平定县| 河北区| 泾源县| 桐庐县| 黑山县| 盐山县| 乌鲁木齐市| 天气| 普兰县| 永仁县| 阳新县| 天长市| 锦屏县| 孟州市| 贺兰县| 化州市| 洛浦县| 桂阳县| 永嘉县| 天全县| 娄烦县| 嵊泗县| 东山县| 漯河市| 青州市| 盘锦市|