8709|9

87

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

如何在NOR Flash上使用jffs2根文件系统 [复制链接]

Hi,guys:

基本配置:
CPU:LPC2478
SDRAM:16M
NOR Flash:4M
kernel:uClinux(2.6.24.2)

开发板提供的根文件系统只有ROMFS,而且是通过uboot通过U盘down到SDRAM上运行的

我已经实现TFTP启动,根文件系统ROMFS,也能挂载NFS文件系统,下一步,打算制作jffs2根文件系统,这个才是产品需要的,
网上搜罗下资料,加上个人理解,是不是制作流程如下:
1。
首先利用现在已经生成的romfs文件系统,然后使用mkfs.jffs2工具把这个文件夹制作成jffs2的镜像文件啊
mkfs.jffs2 -o rootfs_jffs2.img -r romfs -e 0x40000 -l --pad=0x1e80000
然后写入flash?

2。可不可以直接生成jffs2根文件系统镜像,因为我在makefile文件中看到romfs文件系统使用genromfs工具生成的,如下:
image:
        [ -d $(IMAGEDIR) ] || mkdir -p $(IMAGEDIR)
        genromfs -v -V "ROMdisk" -f $(ROMFSIMG) -d $(ROMFSDIR)
        $(CROSS_COMPILE)objcopy -O binary \
                        $(ROOTDIR)/$(LINUXDIR)/vmlinux $(IMAGE)
是否可以直接使用mkfs.jffs2替换genromfs生成jffs2镜像


3。我使用笔记本,没有并口,暂时还没有Jlink,可不可以直接通过tftp把内核VMlinux.bin和根文件系统jffs2.img下载
到SDRAM上运行啊,每次刷写flash好累哦

最新回复

不懂,up  详情 回复 发表于 2010-6-18 17:12
点赞 关注

回复
举报

73

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
1.2.都没问题。
注意一下,第一步的这个0x40000表示flash块大小的,要和flash规格对应,常见的是128KB和64KB的,256KB没见过,你要查一下规格书。
3.可以,但是下载的时候,内核不是vmlinux.bin,这是个压缩文件,你要下载编译直接生成的那个vmlinux文件。jff2的img文件好像不行,你可以烧录一个jffs2的img文件到flash,引导起来以后再把目录mount过来。
 
 

回复

55

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
3.内核不是bin文件?
我最开始用的U-boot从U盘启动和TFTP启动,都是vmlinux.bin文件啊?
tftp_boot=tftpboot 0xa0008000 vmlinux.bin;tftpboot 0xa0800000 romfs_5.img;go 0xa0008000
usb_boot=usb start;fatload usb 0 0xa0800000 romfs_5.img;fatload usb 0 0xa0008000 vmlinux.bin;go a0008000

都是bin文件啊,文件系统是romfs的镜像文件

现在的问题就是无法通过jlink V8的jflash下载bin文件到片外NOR flash,所以才想把内核和根文件系统(jffs2)都直接down到SDRAM上运行,这样只要根文件系统能挂上,在调flash也好调点
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
0xa0080000是你的flash地址还是内存地址?如果是内存地址应该就可以使用了。之前不知道你这个vmlinux.bin怎么来的,所以推测可能是经过压缩的镜像文件,这是不能直接执行的,需要解压到内存中执行。内存中可以直接执行的那个vmlinux是可以直接下载运行的。

但romfs是压缩的文件系统,内核需要进行正确的挂载mtd分区;下载到内存中以后,内核怎么挂载,光给个内存地址是不行的。

我调试的时候,一般是要接上网线的,内核起来以后,将本地编译的可执行文件所在目录,通过nfs mount到romfs中某个指定的目录就能用了。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

5
 
这个不行。
应该也没有必要,你的flash里面装一个通用的jffs2文件系统,然后mount服务器的一个目录。那个目录可以是你做jffs2文件系统之前的文件夹,里面你想怎么改就怎么改。
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

6
 
比较懵懂
笔记本没有并口,不能download bin文件到NOR flash
正在尝试通过uboot 把bin文件down到NOR flash,CFI驱动还有点问题,
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

7
 
可以这样啊!怎么不能下载?
只要烧写了bootloader,并且bootloader支持tftp就没问题。
PC端:
开启tftp服务器(tftp.exe);
开发板端:
[u-boot]# tftp 30000000 vmlinux.bin 回车,
下载完就来个cp.b 30000000 20000000(这是你要往nor flash中写的起始地址)size(就是你上面通过tftp下载的文件的大小,下载完会有显示)。
注:这样还可以来个bootloader自己更新自己。
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

8
 
路过……
 
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 7 楼 zgp826 的回复:

可以这样啊!怎么不能下载?
只要烧写了bootloader,并且bootloader支持tftp就没问题。
PC端:
开启tftp服务器(tftp.exe);
开发板端:
[u-boot]# tftp 30000000 vmlinux.bin 回车,
下载完就来个cp.b 30000000 20000000(这是你要往nor flash中写的起始地址)size(就是你上面通过tftp……

这个当然知道,cp前面还缺个erase bank 2
uboot是使用连续擦除扇区的方式去进行片擦除,不能下载的原因是扇区未擦除
发现在每个sector擦除时延时了udelay(25000),根据datasheet是最大25ms,貌似是正确的
但好像udelay(25000)没有达到要求,使用了一下方式
for (i=0 ;<25;i++) udelay(1000);
这样就行了
直接延时25000好像不行,也没有用示波器看下到底延时了多久,使用for就可以了
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

10
 
不懂,up
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表