您的位置:首页 > 运维架构 > Linux

Mini2440 Linux移植开发实战指南——移植Nand驱动并更改分区信息

2012-06-22 22:27 537 查看
最近学习嵌入式,使用的是mini2440。

依照《Mini2440 Linux移植开发实战指南》移植到Nand驱动了,但是按照手册步骤,出问题了,出现错误如下:

error: array type has incomplete element type

error: array index in non-array initializer

error: (near initialization for 'mini2440_default_nand_part')

error: field name not in record or union initializer

error: (near initialization for 'mini2440_default_nand_part')

error: field name not in record or union initializer

error: (near initialization for 'mini2440_default_nand_part')

..................................

反复看着手册进行对比,感觉是nandflash没有定义,最后通过于mini2440 官方给出的arch/arm/mach-s3c2440/mach-mini2440.c进行详细对比得出,是因为没有包含头文件的问题,呵呵简单的问题,就是没有想到。

修改之后编译成功了内核,下载后发现缺少打印关于nandflash的信息,网上查询得知解决方法,一下就直接复制这位博主的博文:

头文件的问题,于是在的mach-mini2440.c中加入

#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>

果然make过了,不过仍然有一行warning:

arch/arm/mach-s3c2440/mach-mini2440.c:233: warning: 'mini2440_nand_info' defined but not used

把生成的zImage下载到板子上运行,也没有出现该文中所描述的情形,初步估计还是移植失败

看来该文漏洞不少,这次不得不依靠网上的高手了。

warning: 'mini2440_nand_info' defined but not used

终于还是解决了,在这个函数

static void __init mini2440_map_io(void)

{

}

中加入以下代码:

s3c_device_nand.dev.platform_data = &mini2440_nand_info;

再次make zImage,没有再出现warning,下载到板子, 成功出现了nand flash的分区信息。

参考于:http://blog.chinaunix.net/space.php?uid=26877317&do=blog&id=3181527



有网络真好啊,可以站在巨人的肩膀之上。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: