鏈結指令碼之LMA VMA解釋

2021-09-07 05:59:51 字數 382 閱讀 4631

鏈結指令碼中的lma和vma是什麼意思。這個問題糾結了一段時間,今天在看《arm體系結構與程式設計》時,豁然開朗,寫下自己的認識。分享例如以下:

vma:執行位址(虛擬位址) 執行時的位址 virtual memory address  為什麼用vma表示吶?由於cpu執行的位址都是虛擬位址,經過mmu轉為實體地址。在沒有開mmu的裸板下,延續了這一稱呼。理解為執行位址。

為什麼要分 兩種位址?

執行映像檔案時,有些域能夠移動到新的儲存區域。

鏈結指令碼中

expect指令碼解釋

使用expect實現自動登入的指令碼,網上有很多,可是都沒有乙個明白的說明,初學者一般都是照抄 收藏。可是為什麼要這麼寫卻不知其然。本文用乙個最短的例子說明指令碼的原理。指令碼 如下 usr bin expect set timeout 30 spawn ssh l username 192.168...

gcc 鏈結引數 解釋

l引數就是用來指定程式要鏈結的庫,l引數緊接著就是庫名,那麼庫名跟真正的庫檔名有什麼關係呢?就拿數學庫來說,他的庫名是m,他的庫檔名是libm.so,很容易看出,把庫檔名的頭lib和尾.so去掉就是庫名了 好了現在我們知道怎麼得到庫名,當我們自已要用到乙個第三方提供的庫名字libtest.so,那麼...

ARM之重定位和鏈結指令碼

一 重定位 1 靜態重定位 靜態重定位是在程式執行之前進行重定位,它根據裝配模組將要裝入的記憶體起始 位置,直接修改裝配模組的有關使用位址的指令。切地說,是在每次訪問記憶體單元前才進行位址變換。動態重定位可是裝配模組不加任何修改而裝入內 存,但是它需要硬體 定位暫存器的指出。3 為什麼需要重定位?我...