### hi3515 NAND Flash 烧写说明 #### 一、概述 本文档旨在详细介绍如何对华为海思hi3515芯片中的NAND Flash进行烧录操作,并提供了必要的注意事项来确保烧录过程的顺利进行。在进行烧录之前,请确保已正确配置好所需的环境,并熟悉基本的操作流程。 #### 二、烧录前准备 在开始烧录前,首先需要将开发板上的开关SW7和SW8设置为0状态,这表明系统将从NOR Flash启动。此步骤是为了确保可以通过NOR Flash加载U-Boot,进而通过U-Boot对NAND Flash进行烧写操作。 #### 三、NAND Flash烧录步骤 1. **烧录U-Boot** - 使用命令`nand erase 0 3`擦除指定区域的NAND Flash空间。 - 接着执行`mw.b 0xC1500000 0xFF 0x100000`,该命令用于在内存地址0xC1500000处填充0xFF,长度为0x100000。 - 使用`tftp 0xC1500000 u-boot-hi3520v100_200M.bin`将U-Boot镜像下载到内存地址0xC1500000。 - 用`nand write 0xC1500000 0x0 0x100000`将内存中的U-Boot镜像写入NAND Flash的起始位置(0x0),大小为0x100000。 2. **烧录Kernel** - 擦除Kernel所占用的NAND Flash空间:`nand erase 0x100000 0x200000` - 在内存地址0xC1500000处填充0xFF,长度为0x200000:`mw.b 0xC1500000 0xFF 0x200000`。 - 下载Kernel镜像至内存:`tftp 0xC1500000 kernel-hi3520v100_full_release.img`。 - 将Kernel写入NAND Flash:`nand write 0xC1500000 0x100000 0x200000`。 3. **烧录Slave U-Boot** - 在内存地址0xC1500000处填充0xFF,长度为0x100000:`mw.b 0xC1500000 0xFF 0x100000`。 - 下载Slave U-Boot镜像至内存:`tftp 0xC1500000 u-boot-hi3520v100_slave_200M.img`。 - 设置Slave Boot参数:`setenv slave_bootargs mem=32M console=ttyAMA0,115200`。 - 将Slave U-Boot写入NAND Flash:`nand write 0xC1500000 0x300000 0x100000`。 - 保存环境变量:`saveenv`。 4. **烧录Kernel (Slave)** - 在内存地址0xC1500000处填充0xFF,长度为0x200000:`mw.b 0xC1500000 0xFF 0x200000`。 - 下载Kernel镜像至内存:`tftp 0xC1500000 kernel-hi3520v100_full_release_slave.img`。 - 将Kernel写入NAND Flash:`nand write 0xC1500000 0x400000 0x200000`。 5. **烧录Root File System** - 在内存地址0xC1500000处填充0xFF,长度为0x800000:`mw.b 0xC1500000 0xFF 0x800000`。 - 下载Root File System镜像至内存:`tftp 0xC1500000 rootfs-SLV_FULL_REL.cramfs.initrd.img`。 - 将Root File System写入NAND Flash:`nand write 0xC1500000 0x600000 0x800000`。 6. **使用YAFFS2 File System** - 在内存地址0xC1500000处填充0xFF,长度为0x800000:`mw.b 0xC1500000 0xFF 0x800000`。 - 下载YAFFS2 Root File System镜像至内存:`tftp 0xC1500000 rootfs-FULL_REL-Flash.yaffs2`。 - 将YAFFS2 File System写入NAND Flash:`nand write.yaffs 0xC1500000 0xE00000 xxx`,其中`xxx`表示实际的YAFFS2文件系统的大小(单位为字节)。 - 设置环境变量:`setenv bootargs 'mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=yaffs2 mtdparts=hinand:14M(n1),32M(n2),32M(n3),48M(n4)'`。 - 保存环境变量:`saveenv`。 7. **使用JFFS2 File System** - 在内存地址0xC1500000处填充0xFF,长度为0x800000:`mw.b 0xC1500000 0xFF 0x800000`。 - 下载JFFS2 Root File System镜像至内存:`tftp 0xC1500000 rootfs-FULL_REL-Flash.nand.jffs2`。 - 将JFFS2 File System写入NAND Flash:`nand write 0xC1500000 0x300000 0x800000`。 - 设置环境变量:`setenv bootargs 'mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hinand:14M(boot),16M(rootfs)'`。 - 保存环境变量:`saveenv`。 8. **自动启动** - 由于NAND Flash无法直接启动,因此需要通过设置U-Boot的`bootcmd`环境变量来实现自动启动: - `setenv bootcmd 'nand read 0xE0A00000 0x400000 0x200000; nand read 0xE1100000 0x600000 0x800000; nand read 0xE1000000 0x300000 0x100000; slave_start 0xE0A00000 0xE1100000; nand read 0xC1300000 0x100000 0x200000; bootm 0xC1300000'`。 #### 四、注意事项 - 在烧录过程中,一定要确保所使用的命令与文件路径正确无误。 - 对于NAND Flash的擦除操作,请务必谨慎,错误的擦除可能会导致数据丢失。 - 当系统使用NOR Flash启动时,Kernel会自动搜索NOR Flash上的文件系统;若未找到,则会继续搜索NAND Flash。 - 如果只使用了NAND Flash而没有NOR Flash,那么应将`root`设置为`root=/dev/mtdblock1`。 - 确保在进行烧录操作之前,所有的开关SW7和SW8都处于正确的状态(SW7为0,SW8为1),以确保从NAND Flash启动。 - 对于不同类型的文件系统(如YAFFS2和JFFS2),需要根据实际情况调整环境变量中的`rootfstype`和`mtdparts`参数。 #### 五、结束语 通过以上步骤,您应该能够顺利完成hi3515芯片的NAND Flash烧录工作。在烧录过程中遇到任何问题,请仔细检查每一步骤是否准确无误,并确保所有配置均符合文档中的说明。希望本指南能对您的工作有所帮助。
1、准备
先调整拨码开关:底板Sw7和Sw8均拨为0,表示nor flash boot。
复位单板,通过nor flash启动,进入u-boot之后,运行如下步骤。
2、擦除整个 nand flash
nand erase 0
3、烧写主uboot到nand
mw.b 0xC1500000 0xFF 0x100000; # 内存清除为0xFF;
tftp 0xC1500000 u-boot-hi3520v100_200M.bin; # 先把boot load到内存;
nand write 0xC1500000 0 0x100000; # 然后把内存中的boot烧写到flash上,参数0表示偏移地址,0x100000表示写入文件的大小;
4、烧写主kernel到nand
mw.b 0xC1500000 0xFF 0x200000;
tftp 0xC1500000 kernel-hi3520v100_full_release.img;
nand write 0xC1500000 0x100000 0x200000;
# 注:若仅更新kernel,可仅擦除nand flash中kernel对应地址空间即可。擦除命令如下:
# nand erase 0x100000 0x200000
5、烧写从uboot到nand并设置
mw.b 0xC1500000 0xFF 0x100000;
tftp 0xC1500000 u-boot-hi3520v100_slave_200M.img;
nand write 0xC1500000 0x300000 0x100000;
set slave_bootargs mem=32M console=ttyAMA0,115200;
saveenv
6、烧写从kernel和文件系统到nand
mw.b 0xC1500000 0xFF 0x200000;
- yongkaka2012-07-10网上资料的整理,有一定参考性
- ww8801272014-06-23网上资料的整理
- bailiju2013-03-27有一定参考价值,收藏了。
- 粉丝: 18
- 资源: 8
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 微信小程序运营.pdf
- Simulink数据可视化:频谱图与星座图的深度解析
- Typora(version 1.2.3)导出 pdf 自定义水印的 frame.js 文件
- 【重磅,更新!】全国省市指数、新质生产力等数字经济资源合集(2022年)
- 2024年下半年软考中级网络工程ipsec over gre配置思路文档
- Simulink数值稳定性全攻略:技巧与实践
- Easy to use karmadactl command
- 2024年下半年软考中级网络工程GRE与IPSEC的联动配置思路文档
- Transformer-BiLSTM多特征输入时间序列预测(Pytorch完整源码和数据)
- 2024年下半年软考中级网络工程GRE与IPSEC的联动配置