• «
  • 1
  • 2
  • 3
  • »
  • Pages: 2/3     Go
主题 : Mini2440之Linux移植开发实战指南请关注它是否正确 复制链接 | 浏览器收藏 | 打印
级别: 骑士
UID: 11942
精华: 1
发帖: 144
金钱: 775 两
威望: 155 点
贡献值: 1 点
综合积分: 308 分
注册时间: 2009-12-25
最后登录: 2022-01-16
10楼  发表于: 2010-06-29 16:26

 回 4楼(cs2003happy) 的帖子

还有不明白,TWRPH0和TWRPH1的取值范围应该是0-7啊,怎么会 =8?
级别: 侠客
UID: 21258
精华: 1
发帖: 120
金钱: 655 两
威望: 131 点
贡献值: 1 点
综合积分: 260 分
注册时间: 2010-05-13
最后登录: 2023-11-17
11楼  发表于: 2010-08-11 14:22
回cole3:

不对的是  Tacls=4, 39ns Twrph0=8 79ns, Twrph1=8 79ns,
对的是 Tacls=3, 29ns Twrph0=7 69ns, Twrph1=3 29ns。
没有8啊 。请看清楚。

但我在想啊,时间更长应该更好才是啊 ,怎么反而不对呢,难道因为 ,譬如Twrph0 设成8 ,是1000,但Twrph0 只能 是3位的,变成了0了?
cjs
级别: 新手上路
UID: 23460
精华: 0
发帖: 35
金钱: 175 两
威望: 35 点
贡献值: 0 点
综合积分: 70 分
注册时间: 2010-06-20
最后登录: 2016-03-23
12楼  发表于: 2010-10-19 15:49

 回 1楼(kasim) 的帖子

首先如果认为书是对的,就不会来这指出错误了;对于高手来说手册当然没啥用,但对于我们这种自学,而且大多是一个人自学,必须有一个切入点,这种有具体实例的手册之类的资料,就提供我们这类菜鸟一个切入点。如果没有看了N久书,理解那些晦涩的原理,到头来还是蒙蒙懂懂,不知如何下手。
手册有点小错误从另个角度来说其实是一个好处,因为出现错误,就会去找解决方法,从而进一步理解为什么会出错,为什么要这样做,而解决方法就需要你们这些高手来提供,所以希望各位大神慷慨赐教。
菜鸟起飞~~~~
级别: 新手上路
UID: 32699
精华: 0
发帖: 2
金钱: 10 两
威望: 2 点
贡献值: 0 点
综合积分: 4 分
注册时间: 2010-11-19
最后登录: 2010-11-21
13楼  发表于: 2010-11-19 17:47
我安书里面做的就不行呀,
就是到添加下面代码这步
编译总是出现后面的问题呀。
/* nand driver info */

static struct mtd_partition mini2440_default_nand_part[] = {
    [0] = {
        .name    = "supervivi",
        .size    = 0x00040000,
        .offset    = 0,
    },
    [1] = {
        .name    = "param",
        .offset = 0x00040000,
        .size    = 0x00020000,
    },
    [2] = {
        .name    = "Kernel",
        .offset = 0x00060000,
        .size    = 0x00500000,
    },
    [3] = {
        .name    = "root",
        .offset    = 0x00560000,
        .size    = 1024*1024*1024,
    },
    [4] = {
        .name    = "nand",
        .offset = 0x00000000,
        .size    = 1024*1024*1024,
    }
};

static struct mini2440_nand_set mini2440_nand_sets[] = {
    [0] = {
        .name        = "NAND",
        .nr_chips    = 1,
        .nr_partitions    = ARRAY_SIZE(mini2440_default_nand_part),
        .partitions    = mini2440_default_nand_part,
    },
};


static struct s3c2410_platform_nand mini2440_nand_info = {
    .tacls        = 20,
    .twrph0        = 60,
    .twrph1        = 20,
    .nr_sets    = ARRAY_SIZE(mini2440_nand_sets),
    .sets        = mini2440_nand_sets,
    .ignore_unset_ecc = 1,
};



rch/arm/mach-s3c2440/mach-mini2440.c:107: error: array type has incomplete element type
arch/arm/mach-s3c2440/mach-mini2440.c:108: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:108: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:109: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:109: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:110: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:110: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:111: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:111: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:113: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:113: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:114: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:114: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:115: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:115: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:116: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:116: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:118: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:118: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:119: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:119: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:120: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:120: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:121: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:121: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:123: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:123: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:124: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:124: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:125: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:125: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:126: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:126: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:128: error: array index in non-array initializer
arch/arm/mach-s3c2440/mach-mini2440.c:128: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:129: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:129: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:130: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:130: error: (near initialization for 'mini2440_default_nand_part')
arch/arm/mach-s3c2440/mach-mini2440.c:131: error: field name not in record or union initializer
arch/arm/mach-s3c2440/mach-mini2440.c:131: error: (near initialization fo
级别: 新手上路
UID: 28500
精华: 0
发帖: 39
金钱: 195 两
威望: 39 点
贡献值: 0 点
综合积分: 78 分
注册时间: 2010-09-12
最后登录: 2014-06-25
14楼  发表于: 2010-11-23 00:07
回13楼:
把下面几个头文件加上:

#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>
级别: 新手上路
UID: 36810
精华: 0
发帖: 49
金钱: 260 两
威望: 52 点
贡献值: 0 点
综合积分: 98 分
注册时间: 2011-01-21
最后登录: 2020-07-03
15楼  发表于: 2011-04-02 18:54
只需要把<linux/mtd/nand.h>和<plat/nand.h>加上就好了   另外就是s3c_device_nand.dev.platform_data=&mini2440_nand_info加在那个初始化函数里就行了  否则回警告但是可以编译通过,结果就是nand没有被内核认到   哈哈   也折腾我几个小时啊
级别: 新手上路
UID: 60304
精华: 0
发帖: 15
金钱: 85 两
威望: 17 点
贡献值: 0 点
综合积分: 30 分
注册时间: 2011-12-08
最后登录: 2012-04-15
16楼  发表于: 2011-12-08 13:40
谢谢,我正为这事头疼,谢谢高手们。
级别: 新手上路
UID: 60304
精华: 0
发帖: 15
金钱: 85 两
威望: 17 点
贡献值: 0 点
综合积分: 30 分
注册时间: 2011-12-08
最后登录: 2012-04-15
17楼  发表于: 2012-01-04 22:25
这些手册没有经过验证,就发出来了,对于想自学的人是一种不负责任的态度。
级别: 新手上路
UID: 60304
精华: 0
发帖: 15
金钱: 85 两
威望: 17 点
贡献值: 0 点
综合积分: 30 分
注册时间: 2011-12-08
最后登录: 2012-04-15
18楼  发表于: 2012-03-25 12:31

 回 楼主(bynce) 的帖子

论坛上的教程有些是根本行不通,希望高手们能替初学者们舍身处地的想一下,同样产交流,但也不能给了别人希望,又让人绝望。好的、有用的教程才能流向社会,广为传播!
:)
级别: 骑士
UID: 61588
精华: 5
发帖: 248
金钱: 1500 两
威望: 300 点
贡献值: 5 点
综合积分: 596 分
注册时间: 2012-01-02
最后登录: 2018-03-05
19楼  发表于: 2012-12-01 11:52
再次照着手册移植,遇到这个问题,解决了  哈哈!!!
“只需在mach-mini2440.c的初始化函数mini2440_machine_init(void)里加入s3c_nand_set_platdata(&mini2440_nand_info);即可。”
  • «
  • 1
  • 2
  • 3
  • »
  • Pages: 2/3     Go