在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux內(nèi)存占用分析

麥辣雞腿堡 ? 來源:嵌入式Linux充電站 ? 作者:Vincent ? 2023-10-08 10:38 ? 次閱讀

內(nèi)存占用分析

每顆芯片在出廠時(shí),其bootrom就已經(jīng)固化在芯片內(nèi)部,假設(shè)bootrom的地址是0x0,即上電后,會(huì)從0x0地址處開始運(yùn)行程序。

在啟動(dòng)RISC-VLinux之前,需要先運(yùn)行opensbi,因此應(yīng)該把opensbi放到地址0x0處,這樣芯片上電后,就會(huì)從0x0地址處執(zhí)行opensbi。在opensbi運(yùn)行完后,會(huì)跳轉(zhuǎn)到opensbi運(yùn)行地址偏移2M的位置去執(zhí)行下一級(jí)boot(這里下一級(jí)boot是kernel),即跳轉(zhuǎn)到0x200000地址處運(yùn)行kernel,因此應(yīng)該把kernel放到內(nèi)存的0x200000處。

內(nèi)存分布示意圖如下:

圖片

對(duì)于kernel來說,在啟動(dòng)時(shí)會(huì)從自己的kernel加載地址處(即0x200000)開始建立頁表映射,只有對(duì)物理內(nèi)存建立了頁表映射,后面才能訪問這些內(nèi)存。而kernel加載地址前面的2M內(nèi)存(即0x0- 0x200000)將被kernel忽略,不會(huì)對(duì)這2M內(nèi)存建立頁表,即kernel無法訪問這2M內(nèi)存。

在QEMU上RISC-V Linux的啟動(dòng)信息

圖片

但opensbi實(shí)際不需要使用2M這么大的范圍,默認(rèn)是512KB,opensbi的pmp會(huì)保護(hù)這512KB內(nèi)存,不讓其他程序訪問。

圖片

因此在Kernel和opensbi之間會(huì)存在1.5M的內(nèi)存空隙,并且這部分內(nèi)存空隙沒有程序使用,這就會(huì)造成內(nèi)存浪費(fèi),那如何讓kernel將前面的一部分內(nèi)存也利用起來呢?

優(yōu)化方案方案一:將opensbi放到內(nèi)存的最后面,kernel入口地址仍然保持2M對(duì)齊。

方案一

我們將opensbi放到內(nèi)存的最后面,kernel入口地址仍然保持2M對(duì)齊。

即kernel放到內(nèi)存的最前面,opensbi放到后面:

圖片

例如kernel放到內(nèi)存的0x0地址處,opensbi放到內(nèi)存的0x10000000地址處。這樣kernel前面就不會(huì)有預(yù)留內(nèi)存,只不過這樣需要修改bootrom的地址,將地址從0x0修改為0x0x10000000。這種方案只適合芯片還沒出廠前,因?yàn)橛脩魺o法修改bootrom的地址,芯片出廠后,bootrom地址是固定的,假設(shè)bootrom地址為0x0,那么芯片上電后,就會(huì)從0x0開始運(yùn)行程序,所以opensbi必須放到0x0地址處,這樣必然kernel只能往后偏移2M。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 芯片
    +關(guān)注

    關(guān)注

    456

    文章

    51283

    瀏覽量

    427812
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11351

    瀏覽量

    210512
  • 內(nèi)存
    +關(guān)注

    關(guān)注

    8

    文章

    3064

    瀏覽量

    74383
  • RISC
    +關(guān)注

    關(guān)注

    6

    文章

    468

    瀏覽量

    83909
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux內(nèi)存管理是什么,Linux內(nèi)存管理詳解

    Linux內(nèi)存管理 Linux內(nèi)存管理是一個(gè)非常復(fù)雜的過程,主要分成兩個(gè)大的部分:內(nèi)核的內(nèi)存管理和進(jìn)程虛擬
    的頭像 發(fā)表于 05-11 17:54 ?6168次閱讀
    <b class='flag-5'>Linux</b>的<b class='flag-5'>內(nèi)存</b>管理是什么,<b class='flag-5'>Linux</b>的<b class='flag-5'>內(nèi)存</b>管理詳解

    Linux下查詢進(jìn)程占用內(nèi)存方法總結(jié)

    今天浩道跟大家一篇關(guān)于運(yùn)維牛人如何在Linux下挖出吃內(nèi)存的進(jìn)程,可以說是相當(dāng)干的一個(gè)運(yùn)維技能了,一起看看吧!
    發(fā)表于 07-27 10:51 ?1.4w次閱讀
    <b class='flag-5'>Linux</b>下查詢進(jìn)程<b class='flag-5'>占用</b>的<b class='flag-5'>內(nèi)存</b>方法總結(jié)

    linux下查詢進(jìn)程占用內(nèi)存方法有哪些?

    linux下查詢進(jìn)程占用內(nèi)存方法
    發(fā)表于 04-08 06:03

    Linux的CPU和內(nèi)存占用率查看

    我們經(jīng)常需要查看CPU和內(nèi)存占用率,否則一旦存在情況很快就會(huì)有IDC(或客戶)找上門,Linux上查看資源使用情況有多種命令可以參考,CPU、內(nèi)存、IO、NETWORK等資源使用情況都
    發(fā)表于 07-24 06:52

    基于IMX6查看Linux下的CPU和內(nèi)存占用

    查看 Linux 下 CPU、內(nèi)存占用率方法1 : 如何查看 Linux內(nèi)存占用率 我們可
    發(fā)表于 10-30 10:18

    linux如何查看端口占用情況?

    今天要使用python寫一個(gè)端口探測的小程序,以檢測一些特定的服務(wù)端口有沒有被占用,突然發(fā)現(xiàn)自己居然不知道在linux中如何查詢端口被占用的情況。
    發(fā)表于 11-23 10:42 ?5528次閱讀
    <b class='flag-5'>linux</b>如何查看端口<b class='flag-5'>占用</b>情況?

    Android高效內(nèi)存:讓圖片占用盡可能少的內(nèi)存

    在做內(nèi)存優(yōu)化的時(shí)候,我們發(fā)現(xiàn)除了解決內(nèi)存泄露問題,剩下的就只有想辦法減少真實(shí)的內(nèi)存占用。而在App中,大部分內(nèi)存可能被我們圖片
    的頭像 發(fā)表于 06-02 11:05 ?4963次閱讀

    詳細(xì)介紹Linux 內(nèi)存使用方法

    Linux內(nèi)存管理上份為兩級(jí),一級(jí)是線性區(qū),類似于00c73000-00c88000,對(duì)應(yīng)于虛擬內(nèi)存,它實(shí)際上不占用實(shí)際物理內(nèi)存;一級(jí)是具
    發(fā)表于 05-16 17:13 ?532次閱讀

    Java服務(wù)器內(nèi)存和CPU占用過高的原因

    造成服務(wù)器內(nèi)存占用過高只有兩種情況:內(nèi)存溢出或內(nèi)存泄漏
    的頭像 發(fā)表于 03-21 15:50 ?2.2w次閱讀

    虛擬機(jī):查看進(jìn)程內(nèi)存和CPU占用的方法

    虛擬機(jī):查看進(jìn)程內(nèi)存和CPU占用的方法
    的頭像 發(fā)表于 06-22 11:06 ?8590次閱讀

    Linux:測試進(jìn)程占用的虛擬內(nèi)存大小

    Linux:測試進(jìn)程占用的虛擬內(nèi)存大小
    的頭像 發(fā)表于 06-23 09:23 ?2926次閱讀
    <b class='flag-5'>Linux</b>:測試進(jìn)程<b class='flag-5'>占用</b>的虛擬<b class='flag-5'>內(nèi)存</b>大小

    分析Linux操作系統(tǒng)的內(nèi)存

    前言:在Linux上不像在Windows上看內(nèi)存那樣方便,而且還有Swap這個(gè)新的概念,所以知道如何來看Linux內(nèi)存還是有一定意義的
    的頭像 發(fā)表于 03-31 16:43 ?1424次閱讀

    更低內(nèi)存占用的通用Json庫-RyanJson

    RyanJson是一個(gè)小巧的c語言json解析器,包含json文本文件解析 / 生成,專門針對(duì)內(nèi)存占用進(jìn)行優(yōu)化,相比cJSON內(nèi)存占用減少30% - 60%,運(yùn)行速度和cJSON差不多
    的頭像 發(fā)表于 08-24 17:23 ?1826次閱讀
    更低<b class='flag-5'>內(nèi)存</b><b class='flag-5'>占用</b>的通用Json庫-RyanJson

    分享排查Linux系統(tǒng)CPU占用的一個(gè)Shell腳本

    眾所周知,Linux系統(tǒng)CPU占用100%這個(gè)異常現(xiàn)象還是經(jīng)常遇到的,因此分析其導(dǎo)致異常原因是解決問題的根本。
    的頭像 發(fā)表于 09-04 09:17 ?1917次閱讀
    分享排查<b class='flag-5'>Linux</b>系統(tǒng)CPU<b class='flag-5'>占用</b>的一個(gè)Shell腳本

    Windows不明內(nèi)存占用案例分析:Driver Locked

    前一段有客戶反映Windows系統(tǒng)下不明內(nèi)存占用越來越多,128GB物理內(nèi)存的主機(jī),啟動(dòng)完成后就有大約一半的內(nèi)存占用,導(dǎo)致留給應(yīng)用的
    的頭像 發(fā)表于 09-25 14:49 ?2103次閱讀
    Windows不明<b class='flag-5'>內(nèi)存</b><b class='flag-5'>占用</b>案例<b class='flag-5'>分析</b>:Driver Locked
    主站蜘蛛池模板: 免费观看黄色网址 | 夜夜艹日日干 | 一级特级毛片免费 | 黄视频在线播放 | 天堂精品视频 | 狠狠狠狠操 | 婷婷综合 在线 | 午夜影视免费完整高清在线观看网站 | 宅男69免费永久网站 | 在线观看jyzzjyzz | 免费午夜影片在线观看影院 | 色成网| 亚洲午夜精品久久久久久人妖 | 5g影院午夜伴侣 | 国产一级做a爰片久久毛片 国产一级做a爰片久久毛片男 | 永久免费视频 | 亚洲综合色在线 | 免费污视频在线 | 高h道具触手play肉男男 | 成年色黄大色黄大片 视频 成年视频xxxxx免费播放软件 | 亚洲一二三四 | 国产精品女仆装在线播放 | 天天狠狠弄夜夜狠狠躁·太爽了 | 色www亚洲国产张柏芝 | 26uuu另类亚洲欧美日本一 | 91精品国产免费久久久久久青草 | 欧美午夜影视 | 资源视频在线观看 | 波多野结衣三个女人蕾丝边 | 福利一级片 | 久久综合色视频 | 欧美一级高清片在线 | 日本韩国三级在线 | 手机亚洲第1页 | 夜夜骑夜夜操 | 欧美高清在线观看视频 | 天天舔天天摸 | www毛片| 亚洲视频一区二区三区 | 免费一级欧美片在线观免看 | 日本午夜大片 |