基于AM335X开发板 ARM Cortex-A8——NAND FLASH版本核心板使用说明
前 言:
NAND FLASH版本和eMMC版本核心板使用方法基本一致。本文主要描述U-Boot编译、基础设备树文件编译、固化Linux系统NAND FLASH分区说明和NAND FLASH启动系统、固化Linux系统、AND FLASH读写测试等,NAND FLASH版本与eMMC版本核心板在使用方面的不同之处,相同之处将不重复描述。
创龙科技TL335x-EVM-S是一款基于TI Sitara系列AM3352/AM3354/AM3359 ARM Cortex-A8高性能低功耗处理器设计的评估板。
评估板接口资源丰富,引出双路千兆网口、LCD、HDMI、GPMC、CAN等接口,方便用户快速进行产品方案评估与技术预研,应用在通讯管理、数据采集、人机交互、运动控制、智能电力等典型领域。
U-Boot编译
进行U-Boot编译选项配置时,请执行如下命令。
Host# make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- am335x_evm_s_nandboot_defconfig
图 1
我司提供经过验证的U-Boot镜像文件位于产品资料“4-软件资料\Linux\U-Boot\image\u-boot-2017.01-[Git系列号]-[版本号]\”目录下,分别为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
基础设备树文件编译
基础设备树源文件为内核源码“arch/arm/boot/dts/”目录下的tl335x-evm-s-nandflash.dts和tl335x-evm-s-nandflash-hdmi.dts,重新编译基础设备树时请使用此文件。我司提供经过验证的基础设备树文件为产品资料“4-软件资料\Linux\Kernel\image\linux-rt-4.9.65-[Git系列号]-[版本号]\”目录下的tl335x-evm-s-nandflash.dtb和tl335x-evm-s-nandflash-hdmi.dtb,请将其分别复制到系统启动卡rootfs分区以及rootfs-backup分区的boot目录下。
图 4
请执行如下命令将tl335x-evm.dtb软链到tl335x-evm-s-nandflash.dtb文件。tl335x-evm-s-nandflash.dtb支持LCD显示,如需使用HDMI显示,则将tl335x-evm.dtb软链到tl335x-evm-nandflash-hdmi.dtb文件即可。
Host# sudo rm tl335x-evm.dtb
Host# sudo ln -s tl335x-evm-s-nandflash.dtb tl335x-evm.dtb
Host# ls -l
图 5
使用替换了U-Boot和基础设备树文件的Linux系统启动卡启动评估板,进入文件系统执行如下命令可查看到NAND FLASH分区信息,即说明文件替换成功。
Target# cat /proc/mtd
图 6
固化Linux系统
本章节介绍Linux系统固化过程,包括固化U-Boot、内核、设备树和文件系统至NAND FLASH。
NAND FLASH分区说明
进入评估板系统后执行如下命令,查看NAND FLASH分区信息。
Target# cat /proc/mtd
图 7
表 1
NAND FLASH
MTD0
nand.spl:存放U-Boot第一阶段启动文件MLO
MTD1
nand.u-boot:存放U-Boot第二阶段启动文件u-boot.img
MTD2
nand.env:存放环境变量
MTD3
nand.devicetree:存放设备树文件
MTD4
nand.kernel:存放内核镜像
MTD5
nand.logo:存放LOGO文件
MTD6
nand.mini-fs:备用分区,一般存放小型文件系统(暂未使用)
MTD7
nand.rootfs:存放文件系统
固化Linux系统
Linux系统启动卡制作时,已将系统固化的脚本文件mknandboot.sh复制到了Linux系统启动卡文件系统的“/opt/tools/”目录下。
图 8
执行如下命令进行一键固化。
Target# /opt/tools/mknandboot.sh
图 9
脚本会进行如下操作:
擦除NAND FLASH。将Linux系统启动卡BOOT分区中的U-Boot、LOGO固化至NAND FLASH对应分区。将Linux系统启动卡rootfs-backup分区中的文件系统boot目录下的内核镜像和基础设备树文件固化至NAND FLASH对应分区。将Linux系统启动卡rootfs-backup分区中的文件系统固化至NAND FLASH对应分区。用时约5~10min,Linux系统固化成功,同时串口调试终端打印提示信息。
从NAND FLASH启动系统
评估板断电,将Linux系统启动卡从评估板Micro SD卡槽中取出,根据评估底板丝印将拨码开关拨为10110(1~5),此档位为NAND FLASH启动模式。评估板上电,串口调试终端将会打印如下类似启动信息。
图 10
图 11
NAND FLASH读写测试
本章节对NAND FLASH的MTD6分区进行读写速度测试。MTD6是NAND FLASH的备用分区,一般存放小型文件系统,大小为32MByte。读写测试会将该分区内容擦除,请做好数据备份。
执行如下命令查询NAND FLASH分区,确认MTD6分区大小(读写请勿超出分区大小),将该分区内容擦除。
Target# cat /proc/mtd
Target# flash_erase /dev/mtd6 0 0
图 12
NAND FLASH写速度测试
进入评估板文件系统,执行如下命令对NAND FLASH进行写速度测试。
Target# time dd if=/dev/zero of=/dev/mtd6 bs=1024k count=30
图 13
此处一共写30MByte测试数据到NAND FLASH的MTD6分区下,可看到本次测试的NAND FLASH写速度约为:30MByte/7.79s=3.85MB/s。
NAND FLASH读速度测试
重启评估板,进入评估板文件系统,执行如下命令对NAND FLASH进行读速度测试。
Target# time dd if=/dev/mtd6 of=/dev/null bs=1024k count=30
图 14
此处从NAND FLASH的MTD6分区读取30MByte数据,可看到本次测试的NAND FLASH读速度约为:30MByte/4.44s=6.75MB/s。
什么是NAND Flash位翻转?如何解决其带来的启动异常等问题?
位翻转特性。
大家是否遇到过设备运行一段时间后无法开机,程序运行异常,但重烧固件后问题又神奇消失了的情况。如果你使用的存储是NAND Flash,那么或许位翻转现象是你需要关注的重点问题。
NAND Flash工作原理与数据绝缘储存有关,当需要写入数据时施加电压会形成电场,使电子能够穿越绝缘体进入存储单元完成数据写入。当需要删除存储单元的数据时同时也是需要施加电压的,以引导电子穿越绝缘层使其离开存储单元。
然而问题的关键在于什么是位翻转?位翻转是指在NAND Flash存储单元中由于长期使用电压变化、物理效应等因素,存储单元内的电子状态发生意外变化的现象。举个例子,本应储存为0的状态可能被意外变成了1或者反之,这种变化可能导致数据的读取错误,进而引发设备异常运行、启动问题等。
位翻转的出现通常源于漂移效应、频繁对某一区域的读写操作以及存储单元寿命耗尽等原因。要解决这个问题一种很常见的方法是引入ECC校验机制,这个机制能够检验所读取数据的正确性并在一定范围内纠正错误。
为了应对NAND Flash位翻转可能带来启动异常等问题,致远电子M3352核心板提供了有力的解决方案。通过在U-Boot支持8位ECC校验算法,它可以纠正小于8位的位翻转的问题。而对于超过8位的数据位翻转,系统将从备份分区启动并恢复坏区,从而保障系统不会因NAND Flash位翻转而导致启动问题。
相关问答
NAND 与ROM有什么区别?NAND还是闪存速度接近每秒7M左右(数据线传输)ROM就是固态内存速度虽慢但可在无电状态下存储还有一个叫RAM其优点速度飞快不过只能在通电状态下保持一...
norflash和nandflash的区别?NANDflash和NORflash的区别一、NANDflash和NORflash的性能比较flash闪存是非易失存储器,可以对称为块的存储器单元块进行擦写和再编程。任何flash器件的....
电脑 默认 系统 或是恢復出厂设置的英语是什么?急!-ZOL问答之前系统好像是友善之臂改的Linux,应该在随板附送的光盘里有(Linux基本原则是开源)系统存放位置是在NandFlash里面,自己写个驱动,然后下载进去就行了,我现在用...
各位嵌入式高手,我想问一下,STM32中, 系统 存储器,用户闪存,SR...系统存储器是一块独立的rom,用来存储启动代码,实现通过串口、usb、网口等对单片...fsmc总线还可以扩展nor和nand有用(0)回复相关问题STM32与MSP430哪个好?...
bib 文件 是什么意思nboot是从NANDflash读image到内存并执行,eboot是从以太网(用tftp)下载image到内存并执行。将nboot.nb0烧到第0块,将eboot.nb0烧到第2块。启动时nbo....
创维酷开怎么升级 - 小红薯6A70C71F 的回答 - 懂得酷开板升级方法酷开板有2个IC存放软件,分别是U10和U15。其中U10是NandFlash,存放的是主程序;U15是SPIFlash,存放的是系统的启动程序和备份程序。系...
NandFlash烧录时坏块是如何处理的?WinCE或Linux系统通常存储于NandFlash中,而NandFlash频繁擦写易出现坏块,坏块影响系统正常工作,严重时会导致系统无法启动。M3352核心板、M283核心板、M287核...
我想让安卓 系统 每次开机自动运行某款软件,比如dsa善领电子狗的方法?你好这个毛病在实际装机上我遇到过几回解决方法分二步第一步安装DSA2010P46版第二部在卡根目录下建立一个文本文档写入\nandflash\DSA\DSA.EXE(注意...
NAND FLASH 128MB是什么意思?NANDFLASH应该就是NANDMEMORY吧,就是指手机或者MP4的内存,就像电脑的内存一样,为程序的运行保存一些参数变量,断电后会自动清除。他的大小当然也要影响到手...
cpu的spl是什么?SPL是uboot第一阶段执行的代码.主要负责搬移uboot第二阶段的代码到内存中运行.SPL是由固化在芯片内部的ROM引导的.我们知道很多芯片厂商固化的ROM支持从nan...