zoukankan      html  css  js  c++  java
  • 按照官方手册进行mini2440 linux移植及遇到的问题

    按照”Mini2440 Linux移植开发实战指南.pdf”(2010-4-14版)来操作

    一.按部就班

    1.安装arm-linux-gcc 4.3.2

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


    export KBUILD_BUILDHOST := $(SUBARCH)
    ARCH    ?= $(SUBARCH)
    CROSS_COMPILE ?= 
    改为
    export KBUILD_BUILDHOST := $(SUBARCH)
    ARCH    ?= arm
    CROSS_COMPILE ?= arm-linux-

    3.将 linux-2.6.32.2/arch/arm/mach-s3c2440/目录下的 mach-smdk2440.c 复制一份。命名为
    mach-mini2440.c ,找到 MACHINE_START(S3C2440, "SMDK2440") ,修改为
    MACHINE_START(MINI2440, "Cody’s mini2440 DevBoard")。

    4. 修改时钟源频率为12MHz(12000000)

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

    6. make mini2440_defconfig然后make zImage,成功!

    7. 把生成的zImage文件烧到板上运行,出现如下错误:

    Copy linux kernel from 0x00060000 to 0x30008000, size = 0x00200000 ... done
    zImage magic = 0x016f2818
    Setup linux parameters at 0x30000100
    linux command line is: "noinitrd root=/dev/mtdblock3 init=/linuxrc console=ttySA
    C0"
    MACH_TYPE = 1999
    NOW, Booting Linux......
    Uncompressing Linux.............................................................
    .................................................................... done, booti
    ng the kernel.

    到这里就不动了,把开关拨到从Nand启动,还是出现上面几行字就不动了.

    二.先不管它,按照实战手册后面的说明继续做下去.在mach-mini2440.c中加入如下代码:

    Code

     

    再修改如下信息,加入红色那一行

    static struct platform_device *mini2440_devices[] __initdata = {
        &s3c_device_usb,
        &s3c_device_lcd,
        &s3c_device_wdt,
        &s3c_device_i2c0,
        &s3c_device_iis,
       &s3c_device_nand, //;把nand flash设备添加到开发板的设备列表结构
    };

    重新make zImage,这次出现很多错误,看不懂

    错误信息

    baidu一下,发现有人(原文)遇到同样的错误,OK,按照原文的做,在mach-mini2440.c加入头文件,在 static void __init mini2440_map_io(void)加入红色内容

    #include <linux/mtd/mtd.h>
    #include <linux/mtd/nand.h>
    #include <linux/mtd/nand_ecc.h>
    #include <linux/mtd/partitions.h>
    #include <plat/nand.h>

    static void __init mini2440_map_io(void)
    {
        s3c24xx_init_io(mini2440_iodesc, ARRAY_SIZE(mini2440_iodesc));
        s3c24xx_init_clocks(120000000);
        s3c24xx_init_uarts(mini2440_uartcfgs, ARRAY_SIZE(mini2440_uartcfgs));
        s3c_device_nand.dev.platform_data = &mini2440_nand_info;
    }

    再次make试试看....

    还是出现错误,提示找不到mini2440_nand_info'

    错误信息

    可能是分区信息在文件的后面导致找不到的原因,把第二步加入的分区信息移到最前面试试看…经过十多分钟,make成功了,把zImage下载到板上试试看

    郁闷,跟第一步信息一下,到booting the kernel.就不到了. 下班了,先吃饭去,下午再回来试试.

    -------------------------------------------------------------------------------------------

    下午,实在不知道问题在哪里,修改一下mach-mini2440.c,源代码如下(网上copy的):

    mach-mini2440.c

    可以启动了,神了,但是还是有错误:

    错误信息

    可能是分区不对,先不管,移植文件系统再说.贴上完整的启动信息

    启动信息


     

  • 相关阅读:
    mysql完全卸载教程(图文详细)
    windows:安装django
    01 Java的NIO三大组件以及buffer的原理以及应用
    16 JDK8的concurrenthashmap的原理介绍
    07 Java源码字节码层面简单分析
    06 Java字节码的基础知识
    05 Java的class文件的组成介绍
    04 G1垃圾回收器的介绍以及垃圾回收调优的基础知识和简单案例
    03 JVM中垃圾回收算法以及典型的垃圾回收器
    02 Java的引用类型以及应用场景
  • 原文地址:https://www.cnblogs.com/openusb/p/1773577.html
Copyright © 2011-2022 走看看