亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 基礎常識 > 正文

物理地址映射是什么

2020-04-27 18:53:20
字體:
來源:轉載
供稿:網友

  為了保證CPU執行指令時可正確訪問存儲單元,需將用戶程序中的邏輯地址轉換為運行時由機器直接尋址的物理地址,這一過程稱為地址映射。那么物理地址映射是什么呢?下面大家跟著學習啦小編一起來了解一下吧。

  物理地址映射方法

  一般情況下,Linux系統中,進程的4GB內存空間被劃分成為兩個部分------用戶空間和內核空間,大小分別為0~3G,3~4G。

  用戶進程通常情況下,只能訪問用戶空間的虛擬地址,不能訪問到內核空間。

  每個進程的用戶空間都是完全獨立、互不相干的,用戶進程各自有不同的頁表。而內核空間是由內核負責映射,它并不會跟著進程改變,是固定的。內核空間地址有自己對應的頁表,內核的虛擬空間獨立于其他程序。

  3~4G之間的內核空間中,從低地址到高地址依次為:物理內存映射區—隔離帶—vmalloc虛擬內存分配區—隔離帶—高端內存映射區—專用頁面映射區—保留區。

物理地址映射是什么

  【內核空間內存動態申請】

  主要包括三個函數:kmalloc(), __get_free_pages, vmalloc。

  kmalloc(), __get_free_pages申請的內存位于物理地址映射區,而且在物理上也是連續的,它們與真實的物理地址只有一個固定的偏移,因此存在較簡單的轉換關系。而vmalloc申請的內存位于vmalloc虛擬內存分配區(這些區都是以線性地址為度量),它在虛擬內存空間給出一塊連續的內存區,實質上,這片連續的虛擬內存在物理內存中并不一定連續,而vmalloc申請的虛擬內存和物理內存之間也沒有簡單的換算關系。

  因為vmalloc申請的在虛擬內存空間連續的內存區在物理內存中并不一定連續,可以想象為了完成vmalloc,新的頁表需要被建立,因此,知識調用vmalloc來分配少量內存是不妥的。

  一般來講,kmalloc用來分配小于128K的內存,而更大的內存塊需要用vmalloc來實現。

  【虛擬地址與物理地址關系】

  對于內核物理內存映射區的虛擬內存(用kmalloc(), __get_free_pages申請的),使用virt_to_phys()和phys_to_virt()來實現物理地址和內核虛擬地址之間的互相轉換。它實際上,僅僅做了3G的地址移位。

  上述方法適用于常規內存(內核物理內存映射區),高端內存的虛擬地址與物理地址之間不存在如此簡單的換算關系。因為它涉及到了分離物理頁的頁表控制機制。

  【ioremap】

  在ARM中,設備的寄存器或者存儲塊的這部分空間屬于內存空間的一部分,我們稱之為IO內存。

  在內核中訪問IO內存之前,我們只有IO內存的物理地址,這樣是無法通過軟件直接訪問的,需要首先用ioremap()函數將設備所處的物理地址映射到內核虛擬地址空間(3GB~4GB)。然后,才能根據映射所得到的內核虛擬地址范圍,通過訪問指令訪問這些IO內存資源。

  在將I/O內存資源的物理地址映射成核心虛地址后,理論上講我們就可以象讀寫RAM那樣直接讀寫I/O內存資源了。為了保證驅動程序的跨平臺的可移植性,我們應該使用Linux中特定的函數來訪問I/O內存資源,而不應該通過指向核心虛地址的指針來訪問。

  【mmap】

  用mmap映射一個設備,意味著使用戶空間的一段地址關聯到設備內存上,這使得只要程序在分配的地址范圍內進行讀取或者寫入,實際上就是對設備的訪問。這種數據傳輸是直接的,不需要用到內核空間作為數據轉移的中間站。

  remap_page_range函數的功能是構造用于映射一段物理地址的新頁表,實現了內核空間與用戶空間的映射。

  在內核驅動程序的初始化階段,通過ioremap()將物理地址映射到內核虛擬空間;在驅動程序的mmap系統調用中,使用remap_page_range()將該塊ROM映射到用戶虛擬空間。這樣內核空間和用戶空間都能訪問這段被映射后的虛擬地址。

  Ioremap:

  進程空間ç內核空間çIO內存

  其中,后面兩個指的是同一段物理內存區域,只是一個為虛擬地址,一個為物理地址。進程空間和內核空間對應著不同的物理地址,它們之間的數據傳遞,是實際的數據的拷貝。

  Mmap:

  進程空間çIO內存

  其中,進程空間mmap得到的那段虛擬地址跟IO內存對應著同一段物理地址。這個過程沒有額外的數據中轉,讀寫都直接針對硬件的物理地址進行。

  一般來講,小數據量的傳輸用ioremap()就足夠了,

  【IO內存的一般訪問方法】

  1. 首先是調用request_mem_region()申請資源,即告訴內核,本驅動正在使用這段物理內存,其他驅動不得訪問它們。在設備驅動模塊加載或open()函數中進行。

  2. 接著講寄存器地址通過ioremap()映射到內核空間虛擬地址,之后就可以通過Linux設備訪問編程接口訪問這些設備的寄存器了。在設備驅動初始化、write(),read(),ioctl()函數中進行。

  3. 訪問完成之后,應對ioremap()申請的虛擬地址進行釋放,并釋放release_mem_region()申請的IO內存資源。在設備驅動模塊卸載或release()函數中進行。

  看過“ 物理地址映射是什么 ”的人還看了:

1.物理地址與虛擬地址映射

2.物理地址與虛擬地址怎么轉換

3.linux虛擬地址怎么映射物理地址

4.虛擬地址空間映射到物理地址空間

5.物理地址和邏輯地址的區別


(責任編輯:VEVB)

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
57pao成人永久免费视频| 91av在线播放| 成人黄色在线播放| 日韩风俗一区 二区| 国产精品一区二区在线| 中文字幕在线观看日韩| 国产精品视频中文字幕91| 午夜免费日韩视频| 8x拔播拔播x8国产精品| 亚洲自拍欧美色图| 国产精品日韩在线播放| 欧美日韩激情美女| 亚洲图中文字幕| www国产亚洲精品久久网站| 欧美一区三区三区高中清蜜桃| 免费成人高清视频| 亚洲石原莉奈一区二区在线观看| 国产精品观看在线亚洲人成网| 国模视频一区二区三区| 91av视频在线播放| 国产免费观看久久黄| 日韩精品在线观| 欧美精品videosex极品1| 一二美女精品欧洲| 欧美日本高清视频| 国产精品久久一区| 亚洲级视频在线观看免费1级| 国产精品久久久久久久天堂| 欧美精品成人在线| 狠狠色狠狠色综合日日小说| 久久久之久亚州精品露出| 日韩电影中文字幕| 欧美激情综合色综合啪啪五月| 欧美xxxx14xxxxx性爽| 日韩在线观看高清| 伊人久久久久久久久久久| 成人妇女免费播放久久久| 青青久久aⅴ北条麻妃| 91九色视频在线| 91精品国产综合久久久久久久久| 久久精品福利视频| 成人中心免费视频| 久久综合久久美利坚合众国| 日韩精品在线观看视频| 日韩国产激情在线| 国产成人亚洲综合青青| 国产日韩在线亚洲字幕中文| 最近2019中文免费高清视频观看www99| 国产va免费精品高清在线| 色av吧综合网| 国产精品爽爽ⅴa在线观看| 成人中文字幕+乱码+中文字幕| 国产美女主播一区| 国产成人精品午夜| 91精品久久久久久久久不口人| 亚洲精品综合精品自拍| 成人国产精品一区二区| 国产69精品久久久久99| 国产精品日日摸夜夜添夜夜av| 欧美午夜电影在线| 人人爽久久涩噜噜噜网站| 欧美成人三级视频网站| 91精品国产高清自在线| 91精品免费久久久久久久久| 国产免费成人av| 日本精品久久中文字幕佐佐木| 国产日韩欧美另类| 久久久久女教师免费一区| 亚洲欧美制服中文字幕| 5252色成人免费视频| 欧美极品欧美精品欧美视频| 国产一区二区三区在线| 亚洲影视中文字幕| 日本不卡免费高清视频| 亚洲欧洲自拍偷拍| 国产精品扒开腿做爽爽爽男男| 日韩在线欧美在线国产在线| 久久精品视频一| 欧美性视频精品| 国产一区二区日韩精品欧美精品| 性欧美xxxx视频在线观看| 亚洲另类欧美自拍| 91成人性视频| 亚洲国产精品推荐| 第一福利永久视频精品| 亚洲人成欧美中文字幕| 日韩av免费网站| 在线观看精品自拍私拍| 国产一区二区三区视频在线观看| 国产精品高潮呻吟久久av黑人| 久久精品国产成人精品| 国产精品扒开腿爽爽爽视频| 欧美黑人性猛交| 欧美香蕉大胸在线视频观看| 欧美xxxx18性欧美| 777777777亚洲妇女| 亚洲色图综合网| 欧美激情日韩图片| 亚洲图片欧美日产| 亚洲福利在线看| 欧美日韩xxx| 麻豆国产va免费精品高清在线| 亚洲性av在线| 亚洲最大在线视频| 国产91精品高潮白浆喷水| 日韩有码在线观看| 久久综合伊人77777尤物| 91日韩在线播放| 茄子视频成人在线| 午夜精品久久久久久久99热浪潮| 最近日韩中文字幕中文| 国产亚洲欧洲在线| 国产精品劲爆视频| 欧美成人免费一级人片100| 久99九色视频在线观看| 欧美性猛交99久久久久99按摩| 成人网址在线观看| 亚洲国产91色在线| 成人有码在线播放| 91亚洲永久免费精品| 色综合视频一区中文字幕| 成人日韩在线电影| 欧美高清视频在线| 色综合视频一区中文字幕| 26uuu日韩精品一区二区| 91精品国产91久久久久福利| 亚洲午夜女主播在线直播| 久久99久久99精品中文字幕| 欧美日韩国产在线播放| 欧洲日本亚洲国产区| 国产精品v日韩精品| 久久躁狠狠躁夜夜爽| 久久久精品日本| 久久久国产一区二区三区| 欧美激情在线狂野欧美精品| 日韩精品视频观看| 日韩电影第一页| 夜夜嗨av色综合久久久综合网| 日韩免费在线免费观看| 97久久精品视频| 国产日韩av在线播放| 久久亚洲国产精品成人av秋霞| 伦伦影院午夜日韩欧美限制| 亚洲成人网av| 日韩电影免费观看在线观看| 亚洲毛片在线看| 成人国产精品久久久久久亚洲| 国产精品自拍小视频| 亚洲欧美国产另类| 国产婷婷色综合av蜜臀av| 精品国产电影一区| 91av网站在线播放| 欧美黄色片视频| 久久久最新网址| 一道本无吗dⅴd在线播放一区| 久久亚洲私人国产精品va| 91精品国产自产在线| 欧美专区第一页| 亚洲男人天堂九九视频| 成人xvideos免费视频| 亚洲第一免费网站| 日韩精品在线电影| 播播国产欧美激情| 亚洲精品456在线播放狼人|