zoukankan      html  css  js  c++  java
  • 板子操作

    struct mtd_partition

    提示信息 data abort

     

     

    略过Uboot

     

    2.6.30.4    先能正常工作,然后其他版本 升级

    内核移植,完全参考手册。

    ftp服务器下载内核2.6.30.4

     

    也可以参考:http://blog.csdn.net/huihui1988/article/details/5799500

    1、下载 解压内核

    从官网上下载linux-2.6.34的内核, http://www.cnblogs.com/ai616818/admin/ftp://ftp.kernel.org/pub/linux/kernel/v2.6/

    CROSS_COMPILE        ?= /usr/local/arm/3.4.1/bin/arm-linux-

    修改平台输入时钟:       平台 ——板卡  对应的文件是:

    arch/arm/ 目录

    mach-s3c2440/ 目录

    clock.c  irq.c          mach-at2440evb.c  mach-rx3715.c    s3c2440.c
    dma.c    Kconfig        mach-nexcoder.c   mach-smdk2440.c
    dsc.c    mach-anubis.c  mach-osiris.c     Makefile

    下的文件 mach-smdk2440.c       mach 平台的    SMDK  Samsung MCU Development Kit  三星开发板

    Nand Flash:  仅仅是做修改

    arch/arm

    plat-s3c24xx/

    common-smdk.c

    目标:结构体

    static struct mtd_partition  smdk_default_nand_part[] =

    添加内核配置选项:

    drivers mtd nand Kconfig文件

    yaffs2支持   打补丁即可

    支持后,内核源码的 fs/ 有yaffs2/ 目录

    同时fs/ 目录下的Makefile 和Kconfig 文件也添加了yaffs2 的配置

    DNW 配置中download address 问题,需要改吗?       SDRAM 的地址    ram(是内存)

    天嵌:

    设置0x3000 0000 是因为 sdram 的开始地址是这个值。

    也就是说 这是 sdram 的地址

    天嵌: 已经全部 固化下载到了0x3000 0000   DNW 中任意设置,都是可以的。

    随意更改DNW 配置,信息都是下面的:

    串口打印信息:

    USB host is connected. Waiting a download.

    Now, Downloading [ADDRESS:30000000h,TOTAL:1939526]
    RECEIVED FILE SIZE: 1939526 (947KB/S, 2S)

    NAND erase: device 0 offset 0x200000, size 0x200000
    Erasing at 0x3fc000 -- 100% complete.
    OK

    NAND write: device 0 offset 0x200000, size 0x1d983c

    Writing data at 0x3d9800 -- 100% complete.
     1939516 bytes written: OK

    运行kernel:

    串口信息

    Start Linux ...
    Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00200000 ... Copy Kernel to SDRAM done,NOW, Booting Linux.....

    关于0x30008000

    grep -rn 0x30008000 ./

    先是下载到 SDRAM  0x3000 0000

    下载后烧写到 NAND FLASH 0x200000

    然后是拷贝到 SDRAM (内存) 的0x30008000   运行地址?

    8000  32k???1000 00 k

    2^5=32 k

    文件系统移植:

    cramfs 文件系统没问题

    移植 最新版本kernel 3.3.1 2012-4-10

    step1 修改Makefile 添加 arm支持

    step2 修改平台输入时钟  mach-s3c2440    mach-smdk2440.c 

    step3 配置菜单 

    step4 修改机器码 

    编译镜像。

    step1  Nand Flash 进一步修改:

    修改分区表

    (修改drivers mtd nand Kconfig)

    烧写 后 解压Image 后 提示data abort

    Booting Linux ...
    Copy linux kernel from 0x00200000 to 0x30008000, size = 0x00200000 ... Copy Kernel to SDRAM done,NOW, Booting Linux......
    data abort
    原因:镜像文件太大,超过了分区设置的2M大小。

    2.17M 去掉一些无用的内核选项后

    可以,但是乱码! 2.6.32.59同样裁剪后仍正常。

    移植2.6.32.59内核:同2.6.30.4 完好。

    继续,android4.0 Linux3.0内核移植

    http://wenku.baidu.com/view/658fc561783e0912a2162aae.html

    除了修改了内核配置菜单中的 boot 选项,其它一样。  Linux 3.0 移植OK。

     / # uname -r
    3.0.27

  • 相关阅读:
    POJ1182 食物链---(经典种类并查集)
    HDU1025---(LIS 最长上升子序列 的应用)
    HDU5748---(记录每个元素的 最长上升子序列 nlogn)
    c++ 批量初始化数组 fill和fill_n函数的应用
    JNI 方法注册与签名+BufferedReader使用readLine问题
    正确在遍历中删除List元素
    Head First Java设计模式思维导图总结
    关于一些基础的Java问题的解答(七)
    关于一些基础的Java问题的解答(六)
    关于一些基础的Java问题的解答(四)
  • 原文地址:https://www.cnblogs.com/ai616818/p/2426438.html
Copyright © 2011-2022 走看看