mini2440系統移植篇之kernel編譯

2021-07-02 18:55:24 字數 2023 閱讀 4652

linux核心的

makefile分為5

個部分:

makefile                 頂層

makefile

.config                  核心配置檔案

arch/$(arch)/makefile    具體架構的

makefile

scripts/makefile.*       通用的規則等。面向所有的

kbuild makefiles。

kbuild makefiles         核心源**中大約有

500個這樣的檔案

頂層makefile

閱讀的.config

檔案,而該檔案是由核心配置程式生成的

根據.config

自動生成

-->include/linux/autoconf.h

這個檔案供所有原始檔使用

-->include/config/auto.conf

這個檔案供makefile使用,被頂層makefile包含

1、包含配置

442 -inlcude include/config/auto.conf

2、包含體系

arch

的makefile

491 include $(srctree)/arch/$(arch)/makefile

3、包含

13個子目錄分為5類

433 

init-y := init/

drivers-y := drivers/ sound/

net-y := net/

libs-y := lib/

core-y := usr/

core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/

4、修改體系和交叉編譯

185 arch ?= arm

cross_compile ?= arm-linux-

head-y := arch/arm/kernel/head.o arch/arm/kernel/init_task.o

core-y += arch/arm/kernel/ arch/arm/mm/ arch/arm/common

core-y += $(machine)

core-$(config_arch_s3c2410) += arch/arm/mach-s3c2410/

core-$(config_arch_s3c2410) += arch/arm/mach-s3c2412/

core-$(config_arch_s3c2410) += arch/arm/mach-s3c2440/

libs-y := arch/arm/lib/ $(libs-y)

vmlinux:

$(vmlinux-lds) $(vmlinux-init) $(vmlinux-main) $(kallsyms.o) force

vmlinux-init :=  $(head-y) $(init-y)

head-y := arch/arm/kernel/head.o arch/arm/kernel/init_task.o 

init –y := init/built-in.o

vmlinux-main := $(core-y) $(libs-y) $(drivers-y) $(net-y)

core-y := usr/

core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/

libs-y := lib/lib.a lib/built-in.o

drivers-y := drivers/built-in.o sound/built-in.o

net-y := net/built-in.o

vmlinux-all :

= $(vmlinux-init) $(vmlinux-main)

vmlinux-lds :

= arch/$(arch)/kernel/vmlinux.lds

mini2440硬體篇之系統時鐘

一般系統的時鐘又外部晶振促發,通過內部電路產生時鐘源。2440時鐘控制邏輯給整個晶元提供了三種時鐘,fclk用於cpu核,hclk用於ahb匯流排裝置,如cpu核 儲存控制器 中斷控制器 ldc控制器 dma pclk用於apb匯流排裝置,如看門狗 iis iic pwm定時器 mmc adc ua...

mini2440移植之目標環境搭建

一.建立環境 1.目標環境 linux 2.6.32.2 smdk2440 mini2440 2.指定交叉編譯變數 修改總目錄下的makefile,設定預設目標平台及預設編譯器 原export kbuild buildhost subarch arch subarch cross compile 改...

Madplay移植到mini2440全過程詳解

madplay交叉編譯 交叉編譯器 arm linux gcc 3.4.1 pc環境 ubuntu 8.10 注意 最好在root許可權下執行以下移植,否則在make install時可能許可權不夠。一 移植madplay前的準備 madplay的移植需要以下的幾個包 libid3tag 0.15....