NAND FLASH版本核心板使用说明

举报
tronlong小分队 发表于 2020/09/08 11:12:41 2020/09/08
【摘要】 前言NAND FLASH版本和eMMC版本核心板使用方法基本一致。本文主要描述NAND FLASH版本与eMMC版本核心板在使用方面的不同之处,相同之处将不重复描述。1.U-Boot编译进行U-Boot编译选项配置时,请执行如下命令。Host# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_evm_nandboot_confi...

前言

NAND FLASH版本和eMMC版本核心板使用方法基本一致。本文主要描述NAND FLASH版本与eMMC版本核心板在使用方面的不同之处,相同之处将不重复描述。

1.U-Boot编译

进行U-Boot编译选项配置时,请执行如下命令。

Host# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_evm_nandboot_config

图 1


我司提供经过验证的U-Boot镜像文件位于产品资料“4-软件资料/Linux/U-Boot/image/u-boot-2017.01-gad3370e-v2.1/”目录下,分别为MLO-nand、u-boot.img-nand。系统启动卡制作完成后,请将MLO-nand和u-boot.img-nand文件复制到系统启动卡BOOT分区下,备份原有的eMMC版本MLO、u-boot.img文件,并将MLO-nand和u-boot.img-nand文件重命名为MLO、u-boot.img。

图 2


Host# sudo cp MLO-nand MLO

Host# sudo cp u-boot.img-nand u-boot.img


图 3


2.基础设备树文件编译

基础设备树源文件为内核源码“arch/arm/boot/dts”目录下的tl335x-evm-nandflash.dts和tl335x-evm-nandflash-hdmi.dts,重新编译基础设备树时请使用此文件。我司提供经过验证的基础设备树文件为产品资料“4-软件资料/Linux/Kernel/image/linux-rt-4.9.65-gd8e636c-v2.1/”目录下的tl335x-evm-nandflash.dtb和tl335x-evm-nandflash-hdmi.dtb,请将其分别复制到系统启动卡rootfs分区以及rootfs-backup分区的boot目录下。


图 4


请执行如下命令将tl335x-evm.dtb软链到tl335x-evm-nandflash.dtb文件。tl335x-evm-nandflash.dtb支持LCD显示,如需使用HDMI显示,则将tl335x-evm.dtb软链到tl335x-evm-nandflash-hdmi.dtb文件即可。

Host# sudo rm tl335x-evm.dtb

Host# sudo ln -s tl335x-evm-nandflash.dtb tl335x-evm.dtb

Host# ls -l


图 5


使用替换了U-Boot和基础设备树文件的Linux系统启动卡启动评估板,进入文件系统执行如下命令可查看到NAND FLASH分区信息,即说明文件替换成功。

Host# cat /proc/mtd


图 6


3.固化Linux系统

本章节介绍Linux系统固化过程,包括固化U-Boot到SPI FLASH和固化文件系统到NAND FLASH。固化成功后,评估板即可从SPI FLASH启动U-Boot,然后从NAND FLASH加载内核、设备树和文件系统。

  • SPI FLASH、NAND FLASH分区说明

进入评估板系统后执行如下命令,查看SPI FLASH和NAND FLASH分区信息。

Target# cat /proc/mtd


图 7


SPI FLASH

MTD0

spi.spl:存放U-Boot第一阶段启动文件MLO

MTD1

spi.u-boot:存放U-Boot第二阶段启动文件u-boot.img

MTD2

spi.env:存放环境变量

MTD3

spi.devicetree:存放设备树文件(暂未使用)

MTD4

spi.kernel:存放内核镜像(暂未使用)

NAND FLASH

MTD5

nand.spl:存放U-Boot第一阶段启动文件MLO(暂未使用)

MTD6

nand.u-boot:存放U-Boot第二阶段启动文件u-boot.img(暂未使用)

MTD7

nand.env:存放环境变量(暂未使用)

MTD8

nand.devicetree:存放设备树文件

MTD9

nand.kernel:存放内核镜像

MTD10

nand.logo:存放LOGO文件

MTD11

nand.mini-fs:备用分区,一般存放小型文件系统(暂未使用)

MTD12

nand.rootfs:存放文件系统


  • 固化Linux系统

Linux系统启动卡制作时,已将系统固化的脚本文件mknandboot.sh复制到了Linux系统启动卡文件系统的“/opt/tools/make-system”目录下。


图 8


执行如下命令进行一键固化。

Target# /opt/tools/make-system/mknandboot.sh


图 9


脚本会进行如下操作:

  1. 擦除SPI FLASH、NAND FLASH。

  2. 将Linux系统启动卡BOOT分区中的U-Boot固化到SPI FLASH对应分区。

  3. 将Linux系统启动卡BOOT分区中的LOGO固化到NAND FLASH对应分区。

  4. 将Linux系统启动卡rootfs-backup分区中的文件系统boot目录下的内核镜像和基础设备树文件固化到NAND FLASH对应分区。

  5. 将Linux系统启动卡rootfs-backup分区中的文件系统固化到NAND FLASH对应分区。

用时约5~10min,Linux系统固化成功,同时串口调试终端打印提示信息。

备注:脚本文件会将设备树文件和内核镜像固化到SPI FLASH中,实际启动并不会从SPI FLASH中加载设备树和内核镜像。


4.从SPI+NAND FLASH启动系统

评估板断电,将Linux系统启动卡从评估板Micro SD卡槽中取出,根据评估底板丝印将拨码开关拨为10010(1~5),此档位为SPI FLASH启动模式。评估板上电,串口调试终端将会打印如下类似启动信息。


图 10



图 11


5.NAND FLASH读写测试

本章节对NAND FLASH的MTD11分区进行读写速度测试。MTD11是NAND FLASH的备用分区,一般存放小型文件系统,大小为32MByte。读写测试会将该分区内容擦除,请做好数据备份。

执行如下命令查询NAND FLASH分区,确认MTD11分区大小(读写请勿超出分区大小),将该分区内容擦除。

Target# cat /proc/mtd

Target# flash_erase /dev/mtd11 0 0


图 12


  • NAND FLASH写速度测试

进入评估板文件系统,执行如下命令对NAND FLASH进行写速度测试。

Target# time dd if=/dev/zero of=/dev/mtd11 bs=1024k count=30


图 13


此处一共写30MByte测试数据到NAND FLASH的MTD11分区下,可看到本次测试的NAND FLASH写速度约为:30MB/8.24s=3.64MB/s。

  • NAND FLASH读速度测试

重启评估板,进入评估板文件系统,执行如下命令对NAND FLASH进行读速度测试。

Target# time dd if=/dev/mtd11 of=/dev/null bs=1024k count=30


图 14

此处从NAND FLASH的MTD11分区读取30MByte数据,可看到本次测试的NAND FLASH读速度约为:30MB/4.47s=6.71MB/s。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。