您好,登錄后才能下訂單哦!
小編給大家分享一下Utility之內(nèi)存尺寸的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
雖然現(xiàn)在64位處理器越來(lái)越多,而且VxWorks也從6.9開(kāi)始提供64位處理器的支持,但是目前VxWorks更多的應(yīng)用場(chǎng)景還是32位的。那么VxWorks在32位處理器上最多可以使用多少內(nèi)存呢?
32位系統(tǒng)的尋址范圍是232 = 4G,但至少得給外設(shè)預(yù)留部分空間,因此可使用的內(nèi)存范圍肯定要小于4GB了。做個(gè)實(shí)驗(yàn):X86的設(shè)備上,插一個(gè)4GB的內(nèi)存條
使用LOCAL_MEM_AUTOSIZE模式
啟動(dòng)VxWorks,內(nèi)存尺寸顯示為3071MB
看一下內(nèi)存的Top點(diǎn)在哪,可由函數(shù)sysPhysMemTop()獲得,是3GB=3072MB
少的那一個(gè)MB去哪了?原來(lái)X86的內(nèi)存是從0x100000開(kāi)始算的
那這3071MB都可以隨便使用嗎?當(dāng)然不是
內(nèi)存的大致布局如下
挨個(gè)看一下
在LOCAL_MEM_LOCAL_ADRS和RAM_LOW_ADRS之間的區(qū)域,VxWorks系統(tǒng)存儲(chǔ)了一些特定的數(shù)據(jù)
例如Boot line,在LOCAL_MEM_LOCAL_ADRS+ BOOT_LINE_OFFSET
從RAM_LOW_ADRS開(kāi)始,存放的就是VxWorks系統(tǒng)鏡像。編譯時(shí),鏡像尾部會(huì)加入一個(gè)全局變量end,因此可以通過(guò)end來(lái)計(jì)算鏡像的尺寸
其實(shí)這個(gè)尺寸在編譯時(shí)就確定了,只不過(guò)因?yàn)閷?duì)齊的關(guān)系,略有偏差
從內(nèi)存頂部往下看,有兩塊預(yù)留區(qū)域。上面一塊預(yù)留給EDR機(jī)制,其尺寸默認(rèn)是24KB (PM_RESERVED_MEM = 6*VM_PAGE_SIZE)
下面一塊是用戶保留區(qū),其尺寸是USER_RESERVED_MEM
這個(gè)區(qū)域的起始位置,可以由函數(shù)sysMemTop()獲得
可以看到與sysPhysMemTop()值相同,那是因?yàn)樵诋?dāng)前鏡像里這倆保留區(qū)域默認(rèn)都沒(méi)有使能,因此尺寸還都是0
而end與sysMemTop()之間的區(qū)域,又可以分為三塊
從end開(kāi)始,存放WDB內(nèi)存池,占用的空間WDB_POOL_SIZE默認(rèn)是(sysMemTop()-end)/16
WDB之后,就是系統(tǒng)內(nèi)存池,其尺寸KERNEL_HEAP_SIZE默認(rèn)是(sysMemTop()-FREE_MEM_START_ADRS)/3*2 = WDB_POOL_SIZE*10
最后剩下的一塊,是預(yù)留給RTP或共享庫(kù)或共享數(shù)據(jù)區(qū)的,當(dāng)它們加載時(shí),再進(jìn)行動(dòng)態(tài)映射。其尺寸,就是(sysMemTop()-end)再減去WDB內(nèi)存池和系統(tǒng)內(nèi)存池,因此默認(rèn)等于WDB_POOL_SIZE*5
那系統(tǒng)內(nèi)存池的最大尺寸到底可以是多少?那就把另外幾個(gè)可選區(qū)域都去掉:WDB內(nèi)存池、RTP、用戶保留區(qū)、EDR區(qū)域。系統(tǒng)內(nèi)存池就是(sysPhysMemTop()-end):3GB減去RAM_LOW_ADRS之前的幾個(gè)MB,再減去系統(tǒng)鏡像的幾個(gè)MB
以上是“Utility之內(nèi)存尺寸的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。