i386核心編譯轉換到ARM核心操作

2022-03-23 04:00:33 字數 699 閱讀 3202

今天從i386核心編譯轉換到arm核心編譯上遇到一點細節問題,寫下來:

<2> : 進入linux-2.6.23核心根目錄,輸入make menuconfig,具體預設是哪個cpu,要參考根目錄下的arch = (kernel type指定)

<3> : 配置好kernel後,儲存退出.

<4> : make zimage即可,如果arch = i386,那麼在arch/i386/boot目錄下就會產生zimage映象檔案;

<5> : 上面的適合計算機等同型別的cpu,不適合arm,那麼就要編譯適合arm的核心;

<6> : 開啟根目錄下makefile檔案編譯下列字段並且儲存退出

arch ?= arm

cross_compile ?= arm-linux-

<7> : make mrproper

<8> : make menuconfig

<9> : make ;等待半個小時即可.

<10> : 半個小時過去,結果有錯誤

drivers/char/drm/drm_lock.c:310: undefined reference to `cmpxchg'

蛋疼!!!

<11> :重新配置系統,make menuconfig

在device driver/裡選擇了direct rendering manager驅動,arm裡不支援這個驅動,去掉選項就可以了

i386的頁機制

i386cpu不僅有段機制,而且支援頁機制。乙個32位的邏輯位址經過段機制對映成線性位址後,還要經過頁機制對映成32位的邏輯位址。與頁機制有關的暫存器有 cr3,cr0 cr0的最高位pg是頁對映機制的總開關,如果pg位是1則開啟頁對映機制。cr3暫存器用來存放頁面目錄的首位址。頁面目錄dir,10...

計組 i386呼叫約定

x64呼叫約定是由硬體的彙編指令call和ret的微指令和軟體的彙編指令規範共同完成的 一般為如下順序 父函式引數入棧 軟體彙編 父函式call 硬體微指令 子函式棧建立 軟體彙編 子函式棧清理 軟體彙編 子函式ret 硬體微指令 父函式棧清理 軟體彙編 下文中將演示 f a1,a2,a3,a4,a...

i386和i686的區別

i386和i686 現在所有的intel 32位體系 包括amd等相容cpu 都叫i386體系,包括p4。i686仍然屬於i386體系,不過對cpu 相對於386 的特性作了指令優化。gnu linux分為alpha powerpc sun等各個不同版本,所有從intel386 p4都用i386版本...