天天看點

S3C2440 Linux 系統 --- 移植步驟記錄

1,在系統添加對ARM的支援:

      進入核心源碼頂層目錄,修改Makefile檔案  大概193行 ARCH ?=(SUBARCH) 和 194 行 CRSS_COMPILE ?=

      修改為:ARCH =arm 和 CRSS_COMPILE =arm-linux- 儲存退出.

      當然也可以第一次使用make menuconfig 指令時 增加如下參數代替前面的步驟 make ARCH =arm   CRSS_COMPILE =arm-linux-  menuconfig .

2,修改平台輸入時鐘:

      修改核心源碼 arch/arm/mach-s3c2440/mach-smdk2440.c 的163行附近 把16.9344MHz 改為12MHz  .

3,制作自己闆子的配置單:

      在源碼頂層 make menuconfig 進入配置菜單界面,在配置菜單選擇“Load an Alternate Configuration File”

      可以在别人配置單的基礎上配置,比如輸入  arch/arm/configs/s3c2410_defconfig 回車 在System Type 選項下配置2440平台相關.

      可以在General setup-->Local ersion -append kernel release 加入自己的資訊 . 

4,選擇是否支援EABI :

      Kernel Features ---> 選擇 Use the ARM EABI to compile the kernel  

      選擇 Allow old ABI binaries to run with this kernel (EXPERIMENTAL) 

      4.3.3編譯器可以,剛才我測試的時候使用3.4.5的編譯器就出錯,是以3.4.5的編譯器 不要選擇這兩項.

别的配置太多,就不列舉了.

5,修改機器碼:

      Uboot 設定機器碼為168,機器碼儲存在核心源碼 arch/arm/tools/mach-types 檔案的大概379行 把S3C2440對應的362改為168.

      為什麼要改:因為arch/arm/mach-s3c2440/mach-smdk2440.c檔案的MACHINE_START(S3C2440,"SMDK2440");的關鍵字S3C2440,這裡的S3C2440

      就是機器碼所在的位置,我們可以自己修改Uboot的機器碼再來修改核心的機器碼.

6,儲存配置單:

      最後選擇:Save an Alternate Configuration File 儲存為 .config檔案後,退出配置單.

      make distclean . 使用别人配置好的配置檔案,建議複制為 .config檔案使用.

7,編譯鏡像:

      輸入 #make zImage 編譯完畢後會在 arch/arm/boot 目錄下生成zImage鏡像,然後可以将其燒寫到開發闆中.

      為了友善,可以在arch/arm/boot 下的Makefile58行增加如下内容,将zImage拷貝到核心根目錄下:@cp -f arch/arm/boot /zImage zImage.bin.

      同時修改核心根目錄下的Makefile 1255行的-type f -print | xargs rm -f 後添加如下内容 rm -f zImage.bin.

S3C2440 Linux 系統 --- 移植步驟記錄

繼續閱讀