当前位置:网站首页>HI3521D 烧录128M nand flash文件系统过程-一定要注意flash的容量
HI3521D 烧录128M nand flash文件系统过程-一定要注意flash的容量
2022-08-03 03:23:00 【ltqshs】
1.nand flash信息:
SPI Nand(cs 0) ID: 0xef 0xaa 0x21 Name:"W25N01GV"
Block:128KB Page:2KB Chip:128MB*1 OOB:64B ECC:4bit/512
2.准备工作
编译好的uboot,kernel,rootfs
我使用的是海思的u-boot-hi3521d.bin,uImage_hi3521d,rootfs_hi3521d_2k_4bit.yaffs2
3.使用HiTool-Hi3521D工具,使用配置如下:

xml文件:
<?xml version="1.0" encoding="GB2312" ?>
<Partition_Info>
<Part Sel="1" PartitionName="fastboot" FlashType="nand" FileSystem="none" Start="0" Length="1M" SelectFile="E:\work\vmShare\image_uclibc\u-boot-hi3521d.bin"/>
<Part Sel="1" PartitionName="kernel" FlashType="nand" FileSystem="none" Start="1M" Length="4M" SelectFile="E:\work\vmShare\image_uclibc\uImage_hi3521d"/>
<Part Sel="1" PartitionName="rootfs" FlashType="nand" FileSystem="yaffs" Start="5M" Length="96M" SelectFile="E:\work\vmShare\image_uclibc\rootfs_hi3521d_2k_4bit.yaffs2"/>
</Partition_Info>
烧录成功,然后打开串口终端,上电发现只启动了uboot,打印printenv,发现bootargs不对,设置bootargs:
setenv bootargs 'mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 rw mtdparts=hinand:1M(boot),4M(kernel),96M(rootfs),27M(test)'
setenv bootcmd 'nand read 0x82000000 0x100000 0x400000;bootm 0x82000000'
sa
系统正常启动。
用linux命令查看:df -h
Filesystem Size Used Available Use% Mounted on
/dev/root 96.0M 13.2M 82.8M 14% /
tmpfs 28.6M 4.0K 28.6M 0% /dev
第一次尝试的错误,参考
4)烧写文件系统
mw.b 82000000 ff 2000000
tftp 82000000 rootfs_hi3521d_2k_4bit.yaffs2
nand erase 500000 2000000
nand write.yaffs 82000000 500000 96d200 #注意:96d200为rootfs文件实际大小(16进制)
烧录成功,但是文件系统启动不起来,必须修改 96d200 这个数字。改为实际大小,烧写的时候就出错,
Attempt to write error length data
Uboot代码:
if(((*length)%(nand->oobsize+nand->writesize)) != 0 )
{
printf("Attempt to write error length data\n")
return -EINVAL;
}
对于128M的NAND Flash来说,nand->oobsize = 64,nand->writesize = 2048,
所以写入NAND Flash的数据应该是2112(=2048 + 64)字节的整数倍。
改写实际大小后,能正常烧录系统了。
第二个错误:
文件系统大小设置,按照参考文档,64M的flash 设置为32M,所以当设置为32M的时候,df -h 查看只有32M。所以现在改为了98M,查看就是98M。
————————————————
版权声明:本文为CSDN博主「ACoderLife」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:《HI3521D 烧录128M nand flash文件系统》
边栏推荐
猜你喜欢

Jmeter TCP/UDP测试

数字3d虚拟交互展厅顺应时代发展需求和趋势

C语言——-动态内存开辟与管理(malloc,free,calloc,realloc)+柔性数组

05-分布式计算框架

VS中使用BugTrap定位程序崩溃点

高等代数_证明_矩阵乘以自身的转置的特征值不小于0

MySQL-Explain详解

Chinese valentine's day??To the liver is the way!!!!!Auto. Js special position control method

2022-08-02 顾宇佳 学习笔记 多线程

Sentinel vs Hystrix 限流对比,到底怎么选?
随机推荐
Useful Monitoring Scripts What you want part1 in Oracle
els 计分
leetcode:149. 直线上最多的点数
Auto.js Pro 计算脚本运行时间
Jincang Database Pro*C Migration Guide ( 5. Program Development Example)
【基础数学--埃氏筛】204. 计数质数
leetcode:151. 颠倒字符串中的单词
# RACE32——高级断点的设置和应用
HCIP第十八天
【GO记录】从零开始GO语言——用GO语言做一个示波器(二)基于arduino的简易示波器
Base64编码原理
iScroll系列之下拉刷新 + 上拉加载更多
Nacos入门学习
金仓数据库 Pro*C 迁移指南(3. KingbaseES Pr*oc 对 Oracle Pro*c 的兼容)
mysql8默认密码丢失,如何更改密码详细步骤??
IDEA如何创建父子工程
Best Practices for Migration from Jincang Database from MySQL to KingbaseES (3. MySQL Database Migration Practice)
Methods annotated with ‘@Async‘ must be overridable
多线程使用哈希表
对话框管理器第四章:对话框消息循环