linux內(nèi)存管理的任務(wù)
1)組織規(guī)劃整個系統(tǒng)的物理和虛擬存儲空間分布;
2)為虛擬存儲空間(線性地址空間)建立頁表,即建立虛擬地址到物理地址的映射關(guān)系;
3)設(shè)置不同存數(shù)空間的訪問控制屬性,保護(hù)系統(tǒng)存儲空間不被非法訪問;
4)內(nèi)存分配和釋放。
1 linux中的物理和虛擬存儲空間的分布
支持MMU的32位微處理器上,linux物理存儲空間和虛擬存儲空間尋址范圍都是0x0000_0000~0xFFFF_FFFF,為4GB。
但是linux運行在虛擬存儲空間中,而實際使用中將 遠(yuǎn)小于4GB的物理內(nèi)存映射為虛擬內(nèi)存的4GB。
物理存儲空間分布(引用《嵌入式系統(tǒng)linux內(nèi)核開發(fā)實戰(zhàn)指南(ARM平臺)》)
其中:
1)noden,n <= MAX_NUMNODES-1,MAX_NUMNODES在ARM系統(tǒng)中,sharp芯片支持16個nodes,其他支持4個。
2)numnodes為當(dāng)前node個數(shù)。
3)設(shè)置CONFIG_DISCONTIGMEM的系統(tǒng)中,可以有多個node,否則只含node0。
4)bankn,n <= NR_BANKS-1,NR_BANKS在ARM系統(tǒng)中,sharp芯片支持16個nodes,其他支持4個。
5)mem_init()可以將所有節(jié)點的頁幀位碼所占空間、孔洞頁描述符空間及空閑內(nèi)存釋放。
虛擬存儲空間分布(引用《嵌入式系統(tǒng)linux內(nèi)核開發(fā)實戰(zhàn)指南(ARM平臺)》)
1)線性地址空間0x0000_0000~0xFFFF_FFFF,4GB
用戶空間0x0000_0000~0xBFFF_FFFF(3GB),內(nèi)核空間0xC000_0000~0xFFFF_FFFF(1GB)
2)低端內(nèi)存:內(nèi)核邏輯地址空間所映射的物理內(nèi)存就是低端內(nèi)存。
低端內(nèi)存物理內(nèi)存的物理地址與線性地址之間的轉(zhuǎn)換可以通過__pa(x)和__va(x)來進(jìn)行。
#define __pa(x) __virt_to_phys((unsigned long)(x))
//宏__pa(x)
#define __virt_to_phys(x) ((x) - PAGE_OFFSET + PHYS_OFFSET)
#define __va(x) ((void *)__phys_to_virt((unsigned long)(x)))
//宏__va(x)
#define __phys_to_virt(x) ((x) - PHYS_OFFSET + PAGE_OFFSET)
3)高端內(nèi)存
0xFFFF_FFFF -- --
--|-- //這部分即為高端物理內(nèi)存,從high_memory~0xFFFF_FFFF
--|-- //若實際物理內(nèi)存>896MB,則high_memory = 896MB
--|-- //若實際物理內(nèi)存<896MB,則直接分配high_memory = 實際物理內(nèi)存
--|-- //意為 0C000_0000~high_memory對應(yīng)的就是實際的物理內(nèi)存地址
high_memory --|--
0xC000_0000 -- --
在ARM處理器中,從虛擬地址到物理地址可以只經(jīng)過一級地址轉(zhuǎn)換,也可以經(jīng)過兩級地址轉(zhuǎn)換。
上一篇:宿主機與開發(fā)板的文件交流
下一篇:ARM平臺linux內(nèi)核Notes 1
推薦閱讀最新更新時間:2025-04-17 01:41





設(shè)計資源 培訓(xùn) 開發(fā)板 精華推薦
- iTOP-i.MX6開發(fā)板設(shè)備數(shù)驅(qū)動Menuconfig的用法
- 迅為IMX6ULL開發(fā)板Qt for Android搭建開發(fā)環(huán)境
- 迅為i.MX8M mini開發(fā)板Windots QT系統(tǒng)開發(fā)環(huán)境搭建
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)使用Gstarwmra(一)
- 迅為IMX8M mini開發(fā)板Linix系統(tǒng)修改默認(rèn)屏幕
- iTOP-4412開發(fā)板支持4G以上文件系統(tǒng)擴展
- 迅為IMX8MM開發(fā)板Yocto系統(tǒng)設(shè)置開機自啟動
- 迅為IMX6Q開發(fā)板 Buildroot文件系統(tǒng)mqtt測試
- 迅為IMX8MM開發(fā)板Linux系統(tǒng)修改默認(rèn)屏幕
- 使用 LTC2377HMS-18、18 位、500ksps、低功耗 SAR ADC 的典型應(yīng)用
- 門禁系統(tǒng)3
- LTC2493CDE 24 位、4 通道 ADC 的典型應(yīng)用電路和簡單驅(qū)動 ADC 簡化了高阻抗傳感器的測量
- LTC2144-14、14 位、105Msps 低功耗雙路模數(shù)轉(zhuǎn)換器的典型應(yīng)用
- 使用 ON Semiconductor 的 CMPWR100 的參考設(shè)計
- TS431可調(diào)精密并聯(lián)穩(wěn)壓器典型應(yīng)用電路
- 【訓(xùn)練營_基礎(chǔ)班】立創(chuàng)EDA基礎(chǔ)訓(xùn)練營-GD32V開發(fā)板
- AM2G-1218SZ 18V 2 瓦 DC/DC 轉(zhuǎn)換器的典型應(yīng)用
- DC1053A-A,使用 LTC3526EDC、0.8 至 5.5 Vin、1.8/3.3/5 Vout @ 100mA 高效同步升壓轉(zhuǎn)換器的演示板
- 【涂鴉智能】遠(yuǎn)程溫濕度感應(yīng)控制器
- 英特爾攜海信發(fā)布端側(cè)會議領(lǐng)域垂域模型解決方案,讓商務(wù)會議更安全更智能
- 英特爾攜手MAXHUB聯(lián)合發(fā)布企業(yè)級AI PC, 加速AI大模型在端側(cè)落地
- 助力低碳數(shù)字未來 英飛凌攜多款創(chuàng)新成果亮相2025慕尼黑上海電子展
- ?日清紡微電子科技賦能產(chǎn)業(yè)升級,亮相慕尼黑上海電子展
- 泰克閃耀 2025 慕尼黑上海電子展,引領(lǐng)測試技術(shù)新變革
- 破局AI眼鏡性能、續(xù)航、成本“不可能三角”:芯原推出高集成度參考設(shè)計方案
- 人形機器人成下一風(fēng)口,各大車企紛紛入局,比智能汽車潛力更大?
- 業(yè)績最高 TDK為汽車應(yīng)用推出電容值達(dá)100V的MLCC
- 微型柔性機器人:開啟智能救援與精準(zhǔn)醫(yī)療新紀(jì)元
- 人工智能加速芯片設(shè)計:動態(tài)自適應(yīng)流程引領(lǐng)高效創(chuàng)新
- TI 工業(yè)月,靈感不設(shè)限!21天習(xí)慣養(yǎng)成記!打卡贏好禮啦!
- 有獎直播:TI 的故事—— IC 創(chuàng)世紀(jì)
- Littelfuse 碳化硅(SiC) MOSFET和肖特基二極管產(chǎn)品介紹及相關(guān)應(yīng)用
- 有獎直播報名中|基于英飛凌AIROC™ CYW20829低功耗藍(lán)牙芯片的無線組網(wǎng)解決方案
- 100%獲獎,EE新年福利!
- 極簡主義,足不出戶,看東芝在線展會,安心答題送好禮!
- EE大學(xué)堂新年游戲之\\
- 為你點贊——我最愛有“干貨”的博文
- TI即將直播【 MSP430 系列最新超聲波流量測量方案】,你會錯過?報名看直播贏雙重好禮嘍!
- 紫光展銳榮獲“2017年中國集成電路設(shè)計十大企業(yè)”
- 合肥晶合:正積極導(dǎo)入國產(chǎn)設(shè)備中,已有 3 家被采購
- 合肥通富:3年內(nèi)建成一條世界先進(jìn)的液晶驅(qū)動芯片封測生產(chǎn)線
- 艾為電子2017年凈利增長153.64%,申請23項集成電路布圖登記
- 中興成祭品?繼敘利亞之后,美國再次對中國實施了精確打擊
- 蘋果發(fā)善心了?允許部分iPhone設(shè)備降級
- iPhone X Q1砍單至2500萬支 日系外資降鴻海目標(biāo)價
- 蘋果新機代工雙雄兩樣情
- 三星未來旗艦初探:和魅族PRO 7相似背面有副屏
- 三星S8安卓8.0內(nèi)測行將結(jié)束:正式版要來了!