登录
注册
一键加入QQ群
友善之臂官方网站
首 页
联系我们
淘宝店铺
维基教程
固件下载
资料汇总
搜索帖子!
NanoPC 系列:
NanoPC-T2
NanoPC-T3 Plus
NanoPC-T4
NanoPC-T6
NanoPC-T6 Plus
NanoPi 系列:
NanoPi-NEO
NEO Core
NEO Air
M1 Plus
Duo2
NEO3
NEO4
M4B
M5
M6
M6V2
核心板:
Smart4418
Core4418
Smart6818
Core6818
SOM-RK3399V2
CM3588
CM3588 Plus
迷你R系列:
NanoPi-R1
R1S
R2S
R2S Plus
Zero2
R3S
R76S
R4S
R5S
R5C
R6C
R6S
热门版块:
友善之臂最新动态
开发板实战手册及教程
友善之臂官方客服中心
ROM发布区
NanoPi 玩家交流区
我的论坛我的贴
默认风格
用户中心首页
编辑个人资料
查看个人资料
好友列表
用户权限查看
积分管理
积分转换
特殊组购买
收藏夹
我的主题
基本统计信息
到访IP统计
管理团队
管理统计
在线统计
会员排行
版块排行
帖子排行
个人首页
我的收藏
好友近况
Linux技术交流区
如何修改vivi代码使2440支持128M nand flash
友友粉丝快线
开发板销售中心
嵌入式最新资讯
友善之臂最新动态
友善之臂官方客服中心
开发板实战手册及教程
应用方案和定制开发
NanoPi 交流与讨论
NanoPi 玩家交流区
ROM发布区
硬软DIY及开发
嵌入式交流与讨论
Android技术交流区
Linux技术交流区
U-boot技术交流区
WinCE技术交流区
Ubuntu技术交流区
裸机程序和微型OS
OpenWRT讨论区
开发板硬件讨论区
相关资料下载及使用技巧
站点服务
二手交易区
我的论坛我的贴
站务管理与公告
上一主题
下一主题
«
1
2
»
Pages: 1/2 Go
新 帖
主题 : 如何修改vivi代码使2440支持128M nand flash
复制链接
|
浏览器收藏
|
打印
stone
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
9254
精华:
0
发帖:
44
金钱:
450 两
威望:
225 点
综合积分:
88 分
注册时间:
2009-09-23
最后登录:
2009-12-12
楼主
发表于: 2009-09-23 10:47
只看楼主
|
小
中
大
如何修改vivi代码使2440支持128M nand flash
管理提醒:
本帖被 kasim 从 QQ2440资料下载中心 移动到本区(2009-10-30)
我修改了vivi代码,使它支持128M NAND FLASH,现在vivi能够起来,,但是我用,load flash vivi x重新下载vivi后,就无法启动了,我看了源码的nand_erase()和nand_write(),感觉应该是地址和操作的问题,可是我觉得和文档对着,,不知道该怎么办,请斑竹给点建议。。。
顶端
回复
引用
分享
kasim
*無鈳取玳
级别: 论坛版主
作者资料
发送短消息
加为好友
QQ联系
UID:
27
精华:
12
发帖:
5398
金钱:
40120 两
威望:
17929 点
综合积分:
11036 分
注册时间:
2008-01-16
最后登录:
2014-11-22
1楼
发表于: 2009-09-23 11:47
只看该作者
|
小
中
大
抱歉,我猜不到你是怎么改的
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
顶端
回复
引用
分享
stone
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
9254
精华:
0
发帖:
44
金钱:
450 两
威望:
225 点
综合积分:
88 分
注册时间:
2009-09-23
最后登录:
2009-12-12
2楼
发表于: 2009-09-23 15:04
只看该作者
|
小
中
大
我主要修改了nand_read.c文件中的nand_read_ll()这个函数,因为head.s调用这个函数,我改了操作方式,
NFCMD = 0;
NFADDR = 0x0;
NFADDR = 0x0;
NFADDR = (i >> 11) & 0xff;
NFADDR = (i >> 19) & 0xff;
NFCMD=0x30;
然后就是修改了每页的大小的那个宏,现在vivi能跑起来,,但是,load命令用不了,一烧完就起不来了,我用sourceinsight跟踪代码,感觉就是nand_erase()和nand_write()这两个函数的问题,版主能不能给点意见。。
顶端
回复
引用
分享
kasim
*無鈳取玳
级别: 论坛版主
作者资料
发送短消息
加为好友
QQ联系
UID:
27
精华:
12
发帖:
5398
金钱:
40120 两
威望:
17929 点
综合积分:
11036 分
注册时间:
2008-01-16
最后登录:
2014-11-22
3楼
发表于: 2009-09-23 15:25
只看该作者
|
小
中
大
我的建议是去对比512 page size和2048 page size的NAND Flash datasheet, 找出erase和program时两种Flash的命令,地址时序不同,然后相应的调整nand_erase()和nand_write()
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
顶端
回复
引用
分享
stone
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
9254
精华:
0
发帖:
44
金钱:
450 两
威望:
225 点
综合积分:
88 分
注册时间:
2009-09-23
最后登录:
2009-12-12
4楼
发表于: 2009-09-23 16:28
只看该作者
|
小
中
大
我也是这个思路,,我已经对比过这两个芯片手册了,他们的erase和write命令是一样的的,至于地址时序问题,感觉是一样的,我再仔细看看。。
顶端
回复
引用
分享
stone
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
9254
精华:
0
发帖:
44
金钱:
450 两
威望:
225 点
综合积分:
88 分
注册时间:
2009-09-23
最后登录:
2009-12-12
5楼
发表于: 2009-09-24 16:06
只看该作者
|
小
中
大
版主,我现在用vivi烧写vivi已经可以了,但是烧写内核时却出现以下的信息
Downloaded file at 0x30000000, size = 1753088 bytes
Found block size = 0x001c0000
Erasing... nand_erase(): Unaligned address
... failed
Unaligned address是什么意思呢?是没有对齐吗,难道这个和vivi中kernel的起始地址还有关?请斑竹指点一下。。
顶端
回复
引用
分享
kasim
*無鈳取玳
级别: 论坛版主
作者资料
发送短消息
加为好友
QQ联系
UID:
27
精华:
12
发帖:
5398
金钱:
40120 两
威望:
17929 点
综合积分:
11036 分
注册时间:
2008-01-16
最后登录:
2014-11-22
6楼
发表于: 2009-09-24 16:24
只看该作者
|
小
中
大
2048 page size的NAND Flash的block size应该是2048 * 64 = 128K, 因为NAND Flash擦除的最小单位是一个block,所以擦除操作的起始地址必须是128K对齐的(相对于NAND Flash的偏移量)。
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
顶端
回复
引用
分享
stone
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
9254
精华:
0
发帖:
44
金钱:
450 两
威望:
225 点
综合积分:
88 分
注册时间:
2009-09-23
最后登录:
2009-12-12
7楼
发表于: 2009-09-24 16:29
只看该作者
|
小
中
大
也是就说,我在vivi分区时,,必须把vivi,kernel,root的offset地址对齐128k,我的内核的offset是0x00050000,这个地址是不行的,是这个意思吗?
顶端
回复
引用
分享
kasim
*無鈳取玳
级别: 论坛版主
作者资料
发送短消息
加为好友
QQ联系
UID:
27
精华:
12
发帖:
5398
金钱:
40120 两
威望:
17929 点
综合积分:
11036 分
注册时间:
2008-01-16
最后登录:
2014-11-22
8楼
发表于: 2009-09-24 16:52
只看该作者
|
小
中
大
是的,因为写内核之前必须擦除内核镜像所在的NAND Flash区域,这块区域的起始地址和长度必须是128K对齐的
"If you have an apple and I have an apple and we exchange apples, then you and I will
still each have one apple. But if you have an idea and I have an idea and we exchange
these ideas, then each of us will have two ideas."
顶端
回复
引用
分享
stone
级别: 新手上路
作者资料
发送短消息
加为好友
UID:
9254
精华:
0
发帖:
44
金钱:
450 两
威望:
225 点
综合积分:
88 分
注册时间:
2009-09-23
最后登录:
2009-12-12
9楼
发表于: 2009-09-25 13:03
只看该作者
|
小
中
大
版主,现在我把内核和文件系统都烧进去了,,然后引导,又出现了这样的问题: <0>Kernel panic - not syncing: Attempted to kill init!,我在网上查了一下,,也没有解决,另外我想了解一下内核是如何加载文件系统这一流程?是不是需要读内核的启动过程呢?请斑竹给些建议。。。
顶端
回复
引用
分享
上一主题
下一主题
«
1
2
»
Pages: 1/2 Go
Linux技术交流区
http://121.40.142.80
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问