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

最近学习嵌入式,使用的是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

 

有网络真好啊,可以站在巨人的肩膀之上。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值