行情
HOME
行情
正文内容
固化linux到nand 基于AM335X开发板 ARM Cortex-A8——NAND FLASH版本核心板使用说明
发布时间 : 2024-10-10
作者 : 小编
访问数量 : 23
扫码分享至微信

基于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。

全志T113-i开发板——评估板测试手册(1)

希望这些能对想要学习嵌入式、进入嵌入式行业和那些刚学习嵌入式不久的朋友有所帮助。 如果你是在嵌入式开发阶段或者正在选型阶段,遇到了什么需求、问题以及经验感想,欢迎在评论区和大家分享!本文测试内容包含系统启动测试、文件传送测试、LED测试、按键测试、按键测试、时钟设置测试、DDR读写测试等。

前 言

本文档适用开发环境:

Windows开发环境:Windows 7 64bit、Windows 10 64bit

虚拟机:VMware15.5.5

Linux开发环境:Ubuntu18.04.4 64bit

LinuxSDK:T113-i_V1.0(Linux)

U-Boot:U-Boot-2018.05

Kernel:Linux-5.4.61、Linux-RT-5.4.61

无特殊说明情况下,本文默认基于NAND FLASH配置评估板进行测试。默认使用USB TO UART0作为调试串口,使用Linux系统启动卡(SD启动模式)启动系统,并将评估板通过路由器与PC机进行网络连接。

测试板卡为创龙科技的TLT113-EVM,它是一款基于全志科技T113-i双核ARM Cortex-A7 + 玄铁C906 RISC-V + HiFi4 DSP异构多核处理器设计的国产工业评估板,ARM Cortex-A7处理器单元主频高达1.2GHz。评估板由核心板和评估底板组成,核心板CPU、ROM、RAM、电源、晶振等所有器件均采用国产工业级方案,国产化率100%。同时,评估底板大部分元器件亦采用国产工业级方案。核心板经过专业的PCB Layout和高低温测试验证,稳定可靠,可满足各种工业应用环境。

进行本文档操作前,请先按照《调试工具安装》、《Linux开发环境搭建》相关文档,安装SecureCRT串口调试终端、VMware虚拟机、Ubuntu系统等相关软件。

对于NAND FLASH配置评估板,Linux系统启动卡、NAND FLASH分区说明如下表所示。

表 1

设备名称

设备分区

分区说明

Linux系统启动卡

/dev/mmcblk0p1

boot-resource分区,存放bootlogo等资源

/dev/mmcblk0p2

env分区,存放U-Boot环境变量env.fex

/dev/mmcblk0p3

env-redund分区,存放U-Boot环境变量env.fex

/dev/mmcblk0p4

boot分区,存放内核镜像boot.fex

/dev/mmcblk0p5

rootfs分区,存放文件系统镜像rootfs.fex

/dev/mmcblk0p6

dsp0分区,存放DSP镜像dsp0.fex

/dev/mmcblk0p7

private分区,暂未使用

/dev/mmcblk0p8

UDISK分区,储存介质剩余未使用空间

NAND FLASH

/dev/mtdblock0

boot0分区,存放SPL镜像(只读分区)

/dev/mtdblock1

uboot分区,存放U-Boot镜像(只读分区)

/dev/mtdblock2

secure_storage分区(只读分区)

/dev/mtdblock3

sys分区,mtdblock4~mtdblock12分区基于mtdblock3分出

/dev/mtdblock4

mbr分区,存放sunxi_mbr.fex镜像

/dev/mtdblock5

boot-resource分区,存放bootlogo等资源(只读分区)

/dev/mtdblock6

env分区,存放U-Boot环境变量env.fex

/dev/mtdblock7

env-redund分区,存放U-Boot环境变量env.fex

/dev/mtdblock8

boot分区,存放内核镜像boot.fex

/dev/mtdblock9

rootfs分区,存放文件系统镜像rootfs.fex(请勿直接对"/dev/mtdblock9"设备节点进行写操作,否则会损坏文件系统)

/dev/mtdblock10

dsp0分区,存放DSP镜像dsp0.fex

/dev/mtdblock11

private分区,暂未使用

/dev/mtdblock12

UDISK分区,储存介质剩余未使用空间

对于eMMC配置评估板,Linux系统启动卡、eMMC分区说明如下表所示。

备注:eMMC配置评估板的Linux系统启动卡的设备分区为mmcblk1pX,但NAND FLASH配置评估板的Linux系统启动卡的设备分区为mmcblk0pX。

表 2

设备名称

设备分区

分区说明

Linux系统启动卡

/dev/mmcblk1p1

boot-resource分区,存放bootlogo等资源

/dev/mmcblk1p2

env分区,存放U-Boot环境变量env.fex

/dev/mmcblk1p3

env-redund分区,存放U-Boot环境变量env.fex

/dev/mmcblk1p4

boot分区,存放内核镜像boot.fex

/dev/mmcblk1p5

文件系统分区,存放文件系统镜像rootfs.fex

/dev/mmcblk1p6

dsp0分区,存放DSP镜像dsp0.fex

/dev/mmcblk1p7

private分区,暂未使用

/dev/mmcblk1p8

储存介质剩余未使用空间

eMMC

/dev/mmcblk0p1

boot-resource分区,存放bootlogo等资源

/dev/mmcblk0p2

env分区,存放U-Boot环境变量env.fex

/dev/mmcblk0p3

env-redund分区,存放U-Boot环境变量env.fex

/dev/mmcblk0p4

boot分区,存放内核镜像boot.fex

/dev/mmcblk0p5

文件系统分区,存放文件系统镜像rootfs.fex

/dev/mmcblk0p6

dsp0分区,存放DSP镜像dsp0.fex

/dev/mmcblk0p7

private分区,暂未使用

/dev/mmcblk0p8

储存介质剩余未使用空间

评估板快速测试

系统启动测试

评估板接入电源,并使用Type-C线连接PC机和评估板USB TO UART0调试串口。打开设备管理器,确认评估板USB TO UART0调试串口对应的COM端口号。

图 1

图 2

打开串口调试终端SecureCRT,选择对应的COM端口号,设置波特率为115200,8N1,无校验位。建立串口连接,如下图所示。

图 3

将Linux系统启动卡插入评估板Micro SD卡槽,根据评估底板SW2拨码开关旁丝印(并非拨码开关上文字),将拨码开关拨为0,使能Micro SD功能。将评估板上电启动,系统将会自动登录root用户,串口终端会打印如下类似启动信息。

图 4

图 5

核心板LED在系统启动过程中的变化说明如下:

评估板上电后,电源指示灯LED0点亮;随后SPL阶段启动,LED1点亮;紧接着U-Boot启动,LED2点亮;直至内核启动运行时,LED2熄灭,LED1进行心跳闪烁;NAND FLASH或eMMC进行读写时,LED2闪烁。

图 6

备注:如需从NAND FLASH或eMMC启动评估板,请参考《Linux系统启动卡制作及系统固化》文档固化Linux系统至NAND FLASH或eMMC。

文件传送测试

PC机和评估板之间传送文件的常见方式如下:

通过Linux系统启动卡、U盘等存储介质方式拷贝。通过NFS、TFTP、OpenSSH等网络方式拷贝。

通过Linux系统启动卡

将配套的系统启动卡通过读卡器插至PC机挂载至虚拟机Ubuntu系统,如下图,查询系统启动卡设备节点,其中"/dev/sdb5"为Linux系统启动卡文件系统分区,具体以实际名称为准。

图 7

执行如下命令,将"/dev/sdb5"设备节点挂载至"/mnt/"目录下。

Host# sudo mount /dev/sdb5 /mnt

Host# ls /mnt/

图 8

执行如下命令在Ubuntu系统中创建文件test0,并将test0文件拷贝至Linux系统启动卡文件系统root目录。

Host# touch test0

Host# sudo cp test0 /mnt/root/

图 9

文件拷贝完成后,请执行如下命令卸载设备,并拔出读卡器,从中取出Linux系统启动卡。

Target# sudo umount /dev/sdb5

图 10

将Linux系统启动卡插至评估板Micro SD卡槽,评估板上电启动即可查看root目录下的文件。

Target# ls

图 11

通过OpenSSH

OpenSSH是SSH(Secure Shell)协议的免费开源实现。SSH协议族可用来进行远程控制,或在计算机之间传送文件,评估板文件系统默认已支持SSH库。

在Ubuntu系统中执行如下命令,查询是否已安装OpenSSH。由下图可见系统已自带OpenSSH。如未安装,请先自行正确安装OpenSSH。

Host# ssh -v

图 12

将评估板ETH0(RGMII)网口通过路由器与PC机进行网络连接。执行如下命令可自动获取到评估板IP地址,"-i"用于指定网卡,eth0为网卡名字,请根据实际情况修改。

Target# udhcpc -i eth0

图 13

执行如下命令可查询评估板网卡IP地址。本次查询到的IP地址是192.168.0.30。

Target# ifconfig

图 14

使用OpenSSH从PC机传送文件至评估板

执行如下命令在Ubuntu系统中创建文件test1,并使用OpenSSH命令将test1文件拷贝至评估板文件系统根目录。

Host# touch test1

Host# scp test1 root@192.168.0.30:/

图 15

若出现提示"Are you sure you want to continue connecting (yes/no)?",请输入:yes。

在评估板文件系统执行如下命令,可看到从Ubuntu拷贝过来的文件,如下图所示。

Target# ls /

图 16

使用OpenSSH从评估板传送文件至PC机

执行如下命令,在评估板文件系统根目录创建文件test2。

Target# cd /

Target# touch test2

图 17

在Ubuntu系统执行如下命令,将评估板文件系统根目录下的test2文件拷贝至Ubuntu系统"/home/tronlong/"目录下。若传输内容为文件夹,请在scp后面添加参数"-r"。

Host# sudo scp root@192.168.0.30:/test2 /home/tronlong/

Host# ls

图 18

使用OpenSSH登录到评估板文件系统

在Ubuntu系统执行如下命令可通过OpenSSH登录评估板文件系统。

Host# sudo ssh root@192.168.0.30

图 19

如需退出登录,请执行exit或者logout命令。

LED测试

进入评估板文件系统,执行如下命令熄灭、点亮LED1。

Target# echo 0 > /sys/class/leds/user-led0/brightness //熄灭LED1

Target# echo 1 > /sys/class/leds/user-led0/brightness //点亮LED1

图 20

按键测试

评估底板包含1个CPU RESET(KEY0)按键,1个USB0 UPGRADE(KEY1)按键,1个USER(KEY2)用户输入按键。

CPU RESET(KEY0)按键测试

按下CPU RESET(KEY0)按键后,评估板系统将重新启动,说明按键功能正常。

USB0 UPGRADE(KEY1)按键测试

参考《Linux系统启动卡制作及系统固化》文档步骤,可固化Linux系统至NAND FLASH并正常启动,说明按键功能正常。

USER(KEY2)用户输入按键测试

进入评估板文件系统,执行如下命令,查看用户按键对应的事件号为event0。

Target# cat /proc/bus/input/devices

图 21

执行如下命令,按下KEY2按键进行测试,串口调试终端将会打印如下类似信息。其中"0094"表示KEY2按键,按"Ctrl + C"可终止测试命令。

Target# od -x /dev/input/event0

图 22

时钟设置测试

Linux系统中分系统时钟(软件时钟)和RTC时钟(硬件时钟),系统时钟掉电即会消失,RTC时钟在安装电池的情况下会长期运行。

如需使用外部RTC时钟,请将ML2032(3V可充)或CR2032(3V不可充)电池安装至RTC纽扣电池座。

备注:使用CR2032不可充电电池时,请勿将跳线帽插入J1接口。

如下为时钟相关的常用命令。

查看系统时钟

Target# date

图 23

查看RTC时钟

Target# hwclock -u

图 24

设置系统时间

Target# date -s "2023-01-10 16:15:00" //设置时间:2023年1月10日16点15分00秒

Target# date

图 25

同步系统时钟至RTC时钟

Target# hwclock --systohc -u

Target# hwclock -u

图 26

同步系统和RTC的时钟

执行如下命令后,系统将同步RTC时钟作为系统时钟。

Target# hwclock --hctosys -u

图 27

DDR读写测试

本小节使用文件系统自带内存读写工具测试DDR读写性能。DDR读写速度受测试方法和实际情况影响,如下测试数据仅供参考。

DDR读速度测试

进入评估板系统,执行如下命令对DDR进行读速度测试。"-P"参数指定CPU核心数量。

Target# bw_mem -P 2 30M frd

图 28

测试从DDR中读取30MByte数据,可看到本次测试的读速度为1925.47MB/s。

DDR写速度测试

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

Target# bw_mem -P 2 30M fwr

图 29

测试写入30MByte数据至DDR,可看到本次测试的写速度为659.99MB/s。

DDR拷贝速度测试

进入评估板系统,执行如下命令对DDR进行拷贝速度测试。

Target# stream -M 30M -P 2

图 30

测试拷贝30MByte数据至DDR中,可看到本次测试的拷贝速度为2179.35MB/s。

Micro SD接口读写测试

本小节使用SanDisk公司、128GByte容量的Micro SD卡来测试评估板Micro SD接口性能。请参考《Linux系统启动卡制作及系统固化》文档将其制作成Linux系统启动卡,再进行测试。不同的Micro SD卡以及不同的测试方法,对Micro SD接口测试结果将造成一定差异。

请将Linux系统启动卡插至评估板Micro SD卡槽,评估板上电,进入评估板文件系统执行如下命令查看Linux系统启动卡信息。

Target# fdisk -l

图 31

执行如下命令,对Linux系统启动卡mmcblk0p8分区(剩余未使用空间)进行格式化,请提前做好数据备份。

备注:若使用eMMC配置评估板,则Linux系统启动卡对应设备分区为mmcblk1p8(剩余未使用空间),请注意区分。

Target# mkfs.ext4 /dev/mmcblk0p8

图 32

执行如下命令,创建目录并对分区进行挂载。

Target# mkdir -p /run/media/mmcblk0p8

Target# mount /dev/mmcblk0p8 /run/media/mmcblk0p8

图 33

Micro SD接口写速度测试

进入评估板系统,执行如下命令测试Micro SD接口写速度。

Target# echo 3 > /proc/sys/vm/drop_caches

Target# time dd if=/dev/zero of=/run/media/mmcblk0p8/test bs=1024K count=100 conv=fsync

time命令有计时作用,dd用于复制,从if(input file)文件读出,写到of(output file)指定的文件,bs是每次写块的大小,count是读写块的数量。

"if=/dev/zero"不产生IO,即不断输出数据,可用来测试纯写速度。

图 34

此处一共写100MByte测试数据至Linux系统启动卡的test文件,可看到本次测试的Micro SD接口写速度约为:100MByte / 4.85s ≈ 20.62MB/s。

Micro SD接口读速度测试

执行如下命令测试Micro SD接口读速度。

Target# echo 3 > /proc/sys/vm/drop_caches

Target# time dd if=/run/media/mmcblk0p8/test of=/dev/null bs=1024K

"of=/dev/null"不产生IO,即不断接收数据,可用来测试纯读速度。

图 35

此处从test文件一共读出100MByte的数据,可看到本次测试的Micro SD接口读速度约为:100MByte / 4.92s ≈ 20.33MB/s。

测试完成后,执行如下命令卸载挂载分区。

Target# umount /run/media/mmcblk0p8/

Target# rm -r /run/media/mmcblk0p8

图 36

更多案例测试详情说明,欢迎关注Tronlong创龙科技获取,也可以在评论区留言,感谢你的支持。

相关问答

linux 内核,驱动,应用程三者的概念和之间的关系-ZOL问答

其次,Linux内核是Linux系统的核心程序,主要完成任务调度、内存管理、IO设备管理等等功能,主要目的是为了应用程序提供一个稳定良好的运行环境,这是一个基础。再...

NandFlash烧录时坏块是如何处理的?

WinCE或Linux系统通常存储于NandFlash中,而NandFlash频繁擦写易出现坏块,坏块影响系统正常工作,严重时会导致系统无法启动。M3352核心板、M283核心板、M287核...

芯片的采购金额早就超过石油了?震惊嘛?

这个数据的确让人感到震惊,但这又是不争的事实。石油进口世界第一,半导体进口世界也第一,半导体超进口金额超芯片,可见中国科技发展是迅猛的。据了解,2018...

什么是嵌入式系统?

嵌入式系统是指由硬件和软件组成并且能够移植到硬件设备的操作系统。而相比较于普通的PC操作系统,嵌入式操作系统不能存储大容量的内存和程序。所以嵌入式操作系...

非常期待国产电脑的出现,系统、主板、CPU、GPU都是国产的还的多久上市?

费...首先兆芯最新的KX-6000系列的性能和3年前的inteli5差不多,似乎听起来性能够大家日常使用了。但如果这样的市场推向市场,个人消费者会买么?抛开情怀,我估...

dx3000说明书?

产品特点:高性能:采用最新的NAND闪存和主控芯片,具有高读取和写入速度,能够大幅提高计算机的性能。低功耗:固态硬盘的工作功耗远低于传统机械硬盘,能够大幅...

android系统盘根目录中的(文件)谁给讲一下是干什么的?-ZOL问答

init是系统启动到文件系统的时候第一个运行的程序。Android的根文件系统并非标准的Linux文件系统,所以以後还得仔细分析一下启动过程,才能认识Android系统。今...

expressgatecloud是什么东西?

内嵌式系统代表技术:ExpressGate(基于Splashtop)ExpressGate技术其实是基于Splashtop进行开发的一个内嵌式操作系统,采用的是Linux操作系统核心。由.....

SSD是否需要使用特别的文件系统?

用认真的态度与专业的情怀倾注于存储,欢迎关注我,与我交流哦!我们常用的电脑系统主要是Windows和Linux,其中,Windows系统中常用的文件系统主要是FAT和NFTS...其...

怎么用DELPHI开发串口通信程序-ZOL问答

你可以自己写一个汇编的程序,把NandFlash中的程序搬到SDRAM中。因为S3C2410有NorFlash和NandFlash有两种启动方式,所以在搬移过程中略有不同。如果用Nand....

 刘海莉  hold it against me 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2024  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部