1.將核心從flash讀到記憶體
2.設定tag引數,
3.啟動kernel,引數1r0=0,r1=機器id,r3 = tag位址
1.讀取機器碼,呼叫相對應的初始化函式。
2.解析tag引數,
3.裝載驅動,網絡卡,flash等驅動
4.掛載根檔案系統,
5.啟動應用程式。
1.啟動核心函式檔案 cmd_bootm.c ->do_bootm函式
2.machid對應核心檔案mach-types.h
tar zxvf linux- 解壓檔案。
1.1 修改makefile
1.2 選擇使用預設配置exynos_defconfig
1.3 make uimage
//自帶uboot傳參r1-----mchid = 0xb16//2838
設定機器id set machid b16 //smdkc210
檢查波特率(在uboot啟動中設定),檢查晶振(檢查machine_start中的某個函式 晶振200m)
核心啟動後修改分割槽
2.1,
指定 loadaddr位址,高版本會用到, 在檔案arch/arm/mach-exynos/makefile.boot中
命令如下$ make loadaddr=0x40008000 uimage
Linux核心學習筆記 核心同步
linux核心中執行的程式,時刻都要防止併發引起的競態。這將會導致資料結構被破壞,嚴重的時候會引起核心崩潰。所以核心同步技術對核心開發的驅動程式來說非常重要。不懂核心同步技術的人,是寫不出安全健壯的核心驅動程式來的。在學習核心同步技術之前需要掌握一下幾個概念。1 並行,併發與競態 在smp執行的li...
Linux學習筆記 核心模組
模組 是linux高效利用微核心,同時不會降低系統效能與優點的一種方法。幾乎linux核心的每個高層元件 檔案系統 裝置驅動 網路,都可以作為模組進行編譯。linux的發布版,充分使用模組方式全面地支援多種品牌型號的硬體。但在某個計算機上只會有效載入其中乙個驅動程式。這樣核心就不會因為裝載那些數以百...
linux核心學習筆記
核心的配置 a.make s3c2410 deconfig b.make menuconfig 圖形化配置 c.使用廠家給出的配置 生成.config 編譯生成核心,使用如下命令 make vmlinux make uimage 帶頭部 真正核心 1 config 建立生成autoconf.h 供源...