DM36x使用串口和NAND启动完成NAND Flash烧写(二)
来源:互联网 发布:手机图片渲染软件 编辑:程序博客网 时间:2024/05/04 01:01
接上一篇,完成UBL,U-Boot和kernel烧写以后,还剩下文件系统烧写,就完成了Nand Flash的系统启动。
根据DM36x所支持的文件系统格式,我们选择了jffs2格式。
在Ubuntu10.04系统上,并没有安装jffs2文件系统的镜像生成工具。
使用U-Boot烧写文件系统,nand write/nand read等等命令,能操作文件是特定的,需要上述工具来制作。
一,安装制作镜像的工具命令:
sudo apt-get install mtd-utils
二,制作文件系统的镜像命令:
sudo mkfs.jffs2 -x lzo -r=rootfs/ --faketime -o=rootfs.jffs2 --little-endian --eraseblock=0x20000 -n
使用 mkfs.jffs2的help查看这个具体参数的配置。
三,准备一个sd卡,把刚刚制作好的镜像文件rootfs.jffs2拷贝到sd卡中
四,给开发版上电启动,进入U-boot命令行模式,插入sd卡
五,执行如下命令:
mmc initmmc rescan 0nand erase clean 0x900000 0xc900000mw.b 0x81000000 0xFF 0x6400000fatload mmc 0 0x81000000 rootfs.jffs2nand write.jffs2 0x81000000 0x900000 0x4D20000
依次完成的作用:
sd卡初始化;
sd卡的序号为0;
擦写nand flash从地址0x900000开始大小为0xc900000的区域,也就是将值变成1;
将文件系统镜像加载到DDR内存的0x81000000地址处;
将DDR内存0x81000000处的镜像内容写到nand flash的0x900000地址处,往后大小为0x4D20000
在这里,需要说明0x4D20000是怎么计算得到的?
由于fs_root.jffs2镜像的实际大小为80859312bytes,换算成十六进制为0x4D1D0B0;在就是因为烧写的时候块对齐,现在每块大小为128K,换算成十六进制是0x20000,按照向上对齐,也就是0x4D20000。
做到这里,如果没有任何错误,就代表linux系统启动的所有需要步骤全部完成了。
下面,我们还需要完成最后一步,设置启动参数:
接下来就是修改bootargs和bootcmd的启动参数:
//(只列出了需要修改的)setenv bootargs root=/dev/mtdblock3 rw rootfstype=jffs2 setenv bootcmd "read 0x81000000 0x500000 0x1b1aac;bootm 0x81000000"setenv bootdelay 6 //设置等待进入加载内核的秒数
最后,记得saveenv,然后断电上电重新启动。
注意:在烧写文件系统完成以后,系统怎么也启动不起来,并且每次都会报下面错误:
mtd->read(0x400 bytes from 0x0) returned ECC error
这表示Nand Flash芯片的ECC校验没有通过,如果为了快速测试,只需要把ECC校验关闭即可。但是,关闭会有其他什么问题,都是未知的。。。。。。。。
- DM36x使用串口和NAND启动完成NAND Flash烧写(二)
- DM36x使用串口和NAND启动完成NAND Flash烧写(一)
- nand flash 烧写
- nand flash烧写
- nand flash(进价)——通过串口写nand flash
- 使用JLINK间接烧写NAND FLASH
- nand flash启动和nor flash启动
- DM8168 nand flash烧写与启动步骤
- Nand Flash和Nor Flash 启动区别
- NAND FLASH 和 NOR FLASH开机启动
- Nand Flash和Nor Flash 启动区别
- NAND FLASH学习笔记之nand flash基础(二)
- NAND FLASH学习笔记之nand flash基础(二)
- NAND FLASH (二)NAND FLASH的坏块
- Nand Flash介绍和Nand Flash控制器使用
- nand flash粗析(二)------NAND flash 读写
- nand flash启动
- nand flash启动分析
- 再说JSP中pageEncoding& charset
- java基础(3)--数据类型
- java笔记创建对象(待深究)
- 莫对
- qmake以及makefile总结
- DM36x使用串口和NAND启动完成NAND Flash烧写(二)
- 如何安装配置DirectX,在VS2010
- Source Insight入门教程
- 【C语言简单说】九:输入
- 体检套餐管理系统
- git指令图解
- 个人高仿APP及自创天气APP源码
- 模拟电视之信号节目过程
- 贪心算法--PAT.A1033.To Fill or Not to Fill