`
bigfirebird
  • 浏览: 128815 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

初试mini2440 nandflash驱动移植

阅读更多
今日根据《Mini2440_Linux移植开发实战指南》一文进行nandflash驱动
的移植出现了不少问题。不知道是我操作失误还是该文编写出现错漏导致的。
    首先按照步骤修改相关信息之后执行make zImage出现了不少错误:
    其中有代表性的错误如下:
arch/arm/mach-s3c2440/mach-mini2440.c:189: error: array type has incomplete element type
arch/arm/mach-s3c2440/mach-mini2440.c:190: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:190: error: (near initialization for 'smdk_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:191: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:191: error: (near initialization for 'smdk_default_nand_part')

arch/arm/mach-s3c2440/mach-mini2440.c:193: error: unknown field 'tacls' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:193: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:193: warning: (near initialization for 'mini2440_nand_info')
arch/arm/mach-s3c2440/mach-mini2440.c:194: error: unknown field 'twrph0' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:194: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:194: warning: (near initialization for 'mini2440_nand_info')
arch/arm/mach-s3c2440/mach-mini2440.c:195: error: unknown field 'twrph1' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:195: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:195: warning: (near initialization for 'mini2440_nand_info')
arch/arm/mach-s3c2440/mach-mini2440.c:196: error: unknown field 'nr_sets' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:196: warning: type defaults to 'int' in declaration of 'type name'
arch/arm/mach-s3c2440/mach-mini2440.c:196: warning: type defaults to 'int' in declaration of 'type name'
arch/arm/mach-s3c2440/mach-mini2440.c:196: error: negative width in bit-field '<anonymous>'
arch/arm/mach-s3c2440/mach-mini2440.c:196: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:196: warning: (near initialization for 'mini2440_nand_info')
arch/arm/mach-s3c2440/mach-mini2440.c:197: error: unknown field 'sets' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:197: warning: excess elements in struct initializer
arch/arm/mach-s3c2440/mach-mini2440.c:197: warning: (near initialization for 'mini2440_nand_info')
arch/arm/mach-s3c2440/mach-mini2440.c:198: error: unknown field 'ingnore_unset_ecc' specified in initializer
arch/arm/mach-s3c2440/mach-mini2440.c:198: warning: excess elements in struct initializer

开始以为是输错代码,搞了一个上午都没有搞明白。
到了下午,通过查找网上的资料(还真难找),再对比原来2.6.32内核中外国爱好者编写的mach-mini2440.c
文件,隐约知道是头文件的问题。
于是在自己的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的分区信息。
    当然网上还有所谓的“石器时代”的移植方法,迟下再
试,毕竟这里头很多内在原理还是没搞明白的。当下先对文
件系统的移植作个了解,过一阵子再回过头来详细分析。
    我对这两天的移植有2个感受:一是“尽信书不如无书”,
二是不学一些原始的方法,单是站在巨人的肩上去开发是
学不透彻的,虽然移植成功但是还是糊里糊涂。。。。。。
分享到:
评论

相关推荐

    mini2440的nandflash读写源码和手册

    标题中的“mini2440的nandflash读写源码”是指针对Mini2440开发板的NAND Flash驱动程序,它包含了进行读写操作的C语言源代码。这类源代码通常包括初始化、地址映射、ECC校验、坏块管理、页面读写等功能,对于理解...

    mini2440 nandflash 裸机驱动(包括读写)

    Mini2440是一款基于Samsung S3C2440处理器的开发板,它内置了NAND Flash接口,使得开发者可以直接在硬件上进行NAND Flash驱动的开发和测试。本文将深入探讨NAND Flash的基本原理以及如何为Mini2440编写裸机驱动程序...

    利用jlink command 烧写uboot到mini2440 nand flash方法

    利用jlink command 烧写uboot到mini2440 nand flash方法 mht格式

    MINI2440 QQ2440 NAND FLASH

    《MINI2440与QQ2440 NAND FLASH技术详解》 在嵌入式系统领域,MINI2440和QQ2440是两种常见的开发板,它们在许多项目中扮演着核心角色。这两款开发板通常用于教学、实验以及产品的原型设计,尤其在嵌入式Linux系统的...

    mini2440 nandflash裸机

    总结,Mini2440 nand flash裸机程序的开发是一项技术含量较高的工作,涉及到处理器接口、NAND Flash特性、驱动编写和硬件调试等多个方面。只有深入理解这些知识点,才能确保程序在实际应用中高效、稳定地运行。通过...

    根据韦东山修改的mini2440nand flash裸机程序

    在韦东山修改的mini2440 NAND FLASH裸机程序中,使用到了nf_readpage函数,该函数负责从NAND FLASH的指定页读取数据到内存缓冲区。 3. **绝对地址与相对地址**:在NAND FLASH编程中,块和页可以用相对地址或绝对...

    arm_mini2440_nand_flash 的操作

    - 在Mini2440上操作NAND Flash,需要编写相应的驱动程序,该驱动需适配S3C2440的NAND控制器。 - 驱动程序包括初始化、读/写/擦除操作、ECC计算等功能。 - 驱动程序通常会实现Linux的块设备模型,以便于上层应用...

    mini2440驱动移植开发手册

    《mini2440驱动移植开发手册》是广州友善之臂计算机科技有限公司为嵌入式开发者精心准备的一份详尽指南,重点介绍了基于Linux-2.6.32.2内核的mini2440开发板驱动移植与开发流程。这份手册不仅包含了mini2440所有驱动...

    mini2440-bsp-nand,MINI2440开发板nand flash操作

    总之,MINI2440开发板上的NAND Flash操作涉及到硬件接口、驱动程序、文件系统等多个层次。理解并熟练掌握这些知识点,对于在嵌入式领域进行高效、稳定的应用开发至关重要。通过深入学习和实践,开发者能够充分发挥...

    NandFlash驱动程序

    Nand Flash驱动程序是嵌入式系统中一个关键的组件,它使得系统能够与Nand Flash存储设备进行有效的通信,实现数据的读取、写入和擦除操作。Nand Flash作为一种非易失性存储器,广泛应用于各种电子设备,如手机、平板...

    mdk下烧写mini2440 K9F2G08U nandflash烧写算法

    本教程主要涉及使用MDK(Keil uVision)工具在ARM架构的微控制器S3C2440上烧写Mini2440开发板上的NandFlash——K9F2G08U0C芯片。我们将探讨相关的知识点,包括MDK工具的使用、NandFlash的特性和烧写算法。 首先,...

    stm32 nand flash 驱动代码

    在本文中,我们将深入探讨如何使用STM32的FSMC(Flexible Static Memory Controller,灵活静态存储器控制器)来驱动NAND Flash,特别是针对K9F1G08型号的NAND Flash。 NAND Flash是一种非易失性存储器,常用于存储...

    NAND Flash的驱动程序设计

    在嵌入式系统的设计中,存储模块是关键组成部分,NAND Flash作为其核心存储介质之一,它的驱动程序设计至关重要。 ARM架构下的S3C2410处理器是三星电子推出的一款针对嵌入式系统的微控制器单元,它内嵌了NAND Flash...

    nand_flash驱动编写与移植

    ### NAND Flash驱动编写与移植详解 #### 一、NAND Flash概述 NAND Flash是一种非易失性存储技术,广泛应用于各种嵌入式系统中,如智能手机、平板电脑和个人计算机等。NAND Flash的主要特点是成本低、存储密度高,...

    nand.rar_mini2440_mini2440 nand

    综上所述,"nand.rar"压缩包提供的内容涵盖了Mini2440开发板上的NAND Flash读取实验,涉及了硬件接口、驱动程序开发、错误校验等多个方面,对于深入理解和实践嵌入式系统的存储技术具有重要意义。通过这样的实验,...

    TQ2440 Nand Flash完美测试程序

    《TQ2440 Nand Flash完美测试程序详解》 在嵌入式系统领域,NAND Flash作为一种非易失性存储器,广泛应用于各种设备中,如嵌入式主板、移动设备等。TQ2440是三星公司推出的一款基于ARM926EJ-S内核的微处理器,其在...

    nand.rar_2440_2440 FLASH_2440 NAND FLASH_nand 2440

    标签“2440 2440_flash 2440_nand_flash nand_2440”进一步强调了这个主题,表明这个资源与S3C2440处理器的NAND Flash驱动和控制器开发密切相关。 压缩包内的单一文件“nand”可能是源码文件夹或者一个包含了所有...

    u-boot1.1.6在mini2440上nor和nandflash启动

    u-boot1.1.6在mini2440上nor和nandflash启动需要掌握u-boot的移植过程、开发板的配置、存储结构、启动过程等知识点。同时,我们也需要进行实践,积累经验,熟悉u-boot的移植过程。 知识点: 1.u-boot的移植过程 2....

    mini2440 linux系统安装

    在嵌入式开发领域,Mini2440是一款基于S3C2440处理器的开发板,常用于教学和产品研发。本篇文章将详细介绍如何在Mini2440上安装Linux系统,包括必要的分区、Bootloader的选择与安装、Linux内核的烧写以及根文件系统...

    nand-mini2440

    Mini2440的Nand Flash裸板案例

Global site tag (gtag.js) - Google Analytics