mini2440移植linux内核,mini2440的 linux内核移植

mini2440的linux内核移植

电脑主机系统:Ubuntu 9.04 mini2440开发板bootloader:supervivi

交叉编译器使用友善之臂提供的符合EABI标准的交叉编译器arm-linux-gcc-4.3.2

1.首先到http://www.doczj.com/doc/8c66c043b307e87101f6964b.html/去下载内核源码。我是下载的linux-

2.6.3x.x.tar.bz2

2.将内核源码解压,可以解压到任意你想放源码文件的地方

tar xvzf linux-2.6.3x.x.tar.gz

3.修改顶层makefile指定交叉编译变量

进入内核源码,修改顶层Makefile文件中的编译器选项。

gedit Makefile 打开Makefile

将makefile里的

ARCH ?= $(SUBARCH)

CROSS_COMPILE ?=

修改为

ARCH ?= arm

CROSS_COMPILE ?= arm-linux-

4.将linux-2.6.3x.x/arch/arm/mach-s3c2440/目录下的mach-smdk2440.c 复制一份。命名为

mach-mini2440.c ,找到MACHINE_START(S3C2440, "SMDK2440") ,修改为

MACHINE_START(MINI2440, "Cody’s mini2440 DevBoard")。

***********最好整个板级目录复制**************

5.修改内核中平台的时钟频率(mini2440开发板使用12M晶振)。

修改内核源码“ar ch/arm/mach- s3c2440/mach-smdk2440.c” 文件的163 行,

把16.9344MHz 修改为12MHz

static void __init smdk2440_map_io(void)

{

s3c24xx_init_io(smdk2440_iodesc, ARRAY_SIZE(smdk2440_iodesc));

s3c24xx_init_clocks(12000000); //修改为12000000,默认为16934400

s3c24xx_init_uarts(smdk2440_uartcfgs, ARRAY_SIZE(smdk2440_uartcfgs));

}

6. 替换所有mach-mini2440.c中的smdk2440为mini2440,在mini2440_machine_init(void)函数中,把smdk_machine_init()函数调用注释掉.

7.修改对nand的分区信息。要让内核知道nand flash的分区信息,设置成跟bootloader一致。

在arch/arm/plat-s3c24xx/common-smdk.c中修改smdk_default_nand_part[],注意这个一定要跟bootloader的一致。在我的板子中修改如下:

static struct mtd_partition smdk_default_nand_part[] = {

[0] = {

.name = "supervivi",

.size = 0x000000030000,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值