906|0

79

帖子

0

TA的资源

一粒金砂(高级)

【VisionFive 2:集成3D GPU RISC-V单板计算机】+03.存储功能测试(zmj) [复制链接]

【VisionFive 2:集成3D GPU RISC-V单板计算机】+03.存储功能测试(zmj)

赛昉科技的“昉·星光 2”开发板的板载QSPI-FLASH(型号GD25LQ128ESIGR)提供BOOT功能,TF卡存放image和文件系统。同时,板卡还有4 × USB 3.0接口(通过PCIe 2.0 1 × lanes复用),以及M.2连接器/nvme接口。对于eMMC插槽来讲,暂时未找到合适的配件暂不测试。

本章节测试“昉·星光 2”开发板的存储功能(QSPI-FLASH/NVME-SSD/TF卡/USB3.0-U盘)。 注:未测试eMMC。

在测试前,切换至root用户,通过“fdisk -l”指令可以查看存储介质的相关信息:

//------切换至root用户,通过“fdisk -l”指令可以查看存储介质的相关信息:
user@starfive:~$ sudo su                                                         
[sudo] password for user:                                                        
root@starfive:/home/user# fdisk -l                                               
Disk /dev/mtdblock0: 256 KiB, 262144 bytes, 512 sectors                          
Units: sectors of 1 * 512 = 512 bytes                                            
Sector size (logical/physical): 512 bytes / 512 bytes                            
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mtdblock1: 3 MiB, 3145728 bytes, 6144 sectors                          
Units: sectors of 1 * 512 = 512 bytes                                            
Sector size (logical/physical): 512 bytes / 512 bytes                            
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/mtdblock2: 1 MiB, 1048576 bytes, 2048 sectors                          
Units: sectors of 1 * 512 = 512 bytes                                            
Sector size (logical/physical): 512 bytes / 512 bytes                            
I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk /dev/nvme0n1: 465.76 GiB, 500107862016 bytes, 976773168 sectors             
Disk model: KIOXIA-EXCERIA SSD                                                   
Units: sectors of 1 * 512 = 512 bytes                                            
Sector size (logical/physical): 512 bytes / 512 bytes                            
I/O size (minimum/optimal): 512 bytes / 512 bytes                                
Disklabel type: dos                                                              
Disk identifier: 0x27a17600                                                      
                                                                                 
Device         Boot     Start       End   Sectors   Size Id Type                 
/dev/nvme0n1p1 *         2048 974772223 974770176 464.8G 83 Linux                
/dev/nvme0n1p2      974774270 976771071   1996802   975M  5 Extended             
/dev/nvme0n1p5      974774272 976771071   1996800   975M 82 Linux swap / Solaris

Disk /dev/mmcblk1: 58.61 GiB, 62929764352 bytes, 122909696 sectors               
Units: sectors of 1 * 512 = 512 bytes                                            
Sector size (logical/physical): 512 bytes / 512 bytes                            
I/O size (minimum/optimal): 512 bytes / 512 bytes                                
Disklabel type: gpt                                                              
Disk identifier: E05DB137-41F7-47A6-B1C1-E9BE91A4BC0E                            
                                                                                 
Device          Start       End   Sectors  Size Type                             
/dev/mmcblk1p1   4096      8191      4096    2M HiFive BBL                       
/dev/mmcblk1p2   8192     16383      8192    4M HiFive FSBL                      
/dev/mmcblk1p3  16384    221183    204800  100M EFI System                       
/dev/mmcblk1p4 221184 122896383 122675200 58.5G Linux filesystem

Disk /dev/sda: 116.37 GiB, 124948316160 bytes, 244039680 sectors   
Disk model: TransMemory                                            
Units: sectors of 1 * 512 = 512 bytes                              
Sector size (logical/physical): 512 bytes / 512 bytes              
I/O size (minimum/optimal): 512 bytes / 512 bytes                  
Disklabel type: dos                                                
Disk identifier: 0x150d0bb7                                        
                                                                   
Device     Boot Start       End   Sectors   Size Id Type           
/dev/sda1        6144 244039679 244033536 116.4G  7 HPFS/NTFS/exFAT
root@starfive:/home/user#

 

1. QSPI-FLASH功能测试

“昉·星光 2”开发板的QSPI-FLASH(型号GD25LQ128ESIGR)因为含有BOOT信息,因此此次测试已FLASH信息读取和FLASH内容读取为主。

//------QSPI-FLASH原理图

image-20230716202116992.png

QSPI-FLASH基础操作指令说明:

//------QSPI-FLASH基础操作指令说明:
//---1.hexdump :查看分区内容
hexdump -C /dev/mtd0
hexdump -C /dev/mtd1
或者查看前10行内容
hexdump -C /dev/mtd0 | head -10
hexdump -C /dev/mtd1 | head -10
//---2.mtd工具安装
sudo apt install mtd-utils -y
//---3.mtd_debug read : 用来读取 qspi 数据到文件
mtd_debug read /dev/mtd1 0x0 140 read_mtd1.txt
读取mtd1分区的140Bytes内容并写入read_mtd1.txt。
//---4.mtd_debug erase :擦除 qspi 数据(不要随便操作)
mtd_debug erase /dev/mtd0 0 0x1000
从0x0起始地址开始,擦除4096Bytes(0x10000 = 4096)。
//---5.mtd_debug wirte:用来写入文件数据到 qspi(不要随便操作)
echo "1234567890abcdefghABCDEFGH1234567890Hello_World!MYIR-QSPI-FLASH." > qspi_wr.txt
准备文件qspi_wr.txt,内容自定义即可。
mtd_debug write /dev/mtd0 0x0 16 qspi_wr.txt
读取文件内容(共计64Bytes)并写入mtd0的分区。

//------QSPI-FLASH:一共3个可视分区
分区1:/dev/mtdblock0: 256 KiB
分区2:/dev/mtdblock1: 3   MiB
分区3:/dev/mtdblock2: 1   MiB

 

image-20230716203300714.png

 

2. TF卡速率测试

简单测试64GB-TF卡的读写速度:

//------WR写入测试:19.1MB/S
dd if=/dev/zero of=/testfile bs=1M count=512 conv=fsync
//------RD读取测试:22.9MB/S
dd if=/testfile of=/dev/zero bs=1M count=512
//------log信息
root@starfive:/mnt# dd if=/dev/zero of=/testfile bs=1M count=512 oflag=direct
512+0 records in                                                             
512+0 records out                                                            
536870912 bytes (537 MB, 512 MiB) copied, 28.1562 s, 19.1 MB/s               
root@starfive:/mnt# dd if=/testfile of=/dev/zero bs=1M count=512             
512+0 records in                                                             
512+0 records out                                                            
536870912 bytes (537 MB, 512 MiB) copied, 23.4747 s, 22.9 MB/s               
root@starfive:/mnt#                                                          

 

3. U盘(USB3.0)速率测试 (异常及定位)

赛昉科技的“昉·星光 2”开发板有4 × USB 3.0接口(通过PCIe 2.0 1 × lanes复用),随机选择一个USB3.0接口进行读写测试。

//------WR写入测试:90.3MB/S
dd if=/dev/zero of=/media/user/KIOXIA/testfile bs=1M count=512 oflag=direct
//------RD读取测试-1:329MB/S(第一次读取异常,见后面分析)
dd if=/media/user/KIOXIA/testfile of=/dev/zero bs=1M count=512
//------RD读取测试-2:93.6MB/S(第二次读取正常,见后面分析)
dd if=/media/user/KIOXIA/testfile of=/dev/zero bs=1M count=512
//------log信息
root@starfive:/home/user# dd if=/dev/zero of=/media/user/KIOXIA/testfile bs=1M count=512 oflag=direct
512+0 records in                                                                                     
512+0 records out                                                                                    
536870912 bytes (537 MB, 512 MiB) copied, 5.94628 s, 90.3 MB/s                                       
root@starfive:/home/user# dd if=/media/user/KIOXIA/testfile of=/dev/zero bs=1M count=512             
512+0 records in                                                                                     
512+0 records out                                                                                    
536870912 bytes (537 MB, 512 MiB) copied, 1.63083 s, 329 MB/s
< 此处断电重启系统,然后重新挂载USB3.0-U盘,再次进行U盘读取,测试正常>
root@starfive:/home/user# dd if=/media/user/KIOXIA/testfile of=/dev/zero bs=1M count=512
512+0 records in
512+0 records out
536870912 bytes (537 MB, 512 MiB) copied, 5.73332 s, 93.6 MB/s
user@starfive:~$
//------U盘读取速度异常分析(个人猜测):
U盘在写数据时,先在Cache中缓存数据再写入FLASH;
U盘在读取数据,先从FLASH读取数据写入缓存Cache,再传给CPU;
前期写入的数据还在Cache中,此时省略了FLASH写入Cache的流程,所以感觉读取速度非常快。
重启系统(先断电再上电,确保USB3.0-U盘的Cache掉电后丢失对应缓存),重新测试U盘RD读测试,测试数据正常。

 

image-20230716211213031.png

4. M.2-Key/NVME-SSD

赛昉科技的“昉·星光 2”开发板有一个M.2-Key接口,可以接入NVME-SSD。

//------WR写入测试:242MB/S
dd if=/dev/zero of=/media/user/KIOXIA/testfile bs=1M count=512 oflag=direct
//------RD读取测试:190MB/S
dd if=/mnt/nvme_0/testfile of=/dev/zero bs=1M count=512
//------log信息
user@starfive:~$ sudo su                                                                      
[sudo] password for user:                                                                     
root@starfive:/home/user# dd if=/dev/zero of=/mnt/nvme_0/testfile bs=1M count=512 oflag=direct
512+0 records in                                                                              
512+0 records out                                                                             
536870912 bytes (537 MB, 512 MiB) copied, 2.21975 s, 242 MB/s                                 
root@starfive:/home/user# dd if=/mnt/nvme_0/testfile of=/dev/zero bs=1M count=512             
512+0 records in                                                                              
512+0 records out                                                                             
536870912 bytes (537 MB, 512 MiB) copied, 2.82966 s, 190 MB/s                                 
root@starfive:/home/user#

 

image-20230716211230200.png

//------综合测试结果:

image-20230716205909139.png

结论:赛昉科技的“昉·星光 2”开发板的存储接口丰富,对于用户使用非常友好且功能十分强大。

PS:后面有机会尝试NVME系统镜像,理论上讲系统性能会有小幅提升。

 

//------end


回复
举报
您需要登录后才可以回帖 登录 | 注册

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表