测试指南
测试环境
-
硬件
-
开发板,或者 FPGA 板子
-
板子上必须要接有 SPINAND
-
-
软件
-
PC 端的串口终端软件,用于 PC 和开发板进行串口通信
-
RT-Thread DFS 组件自带了一些命令的文件操作工具,如 cp、mkdir 等
-
编译烧录
配置完成后,保存退出,编译、烧录
验证
-
SPINAND 识别烧录完成后,断开电源并上电,使用下列命令检查设备:
list_device
在输出结果中,看到 spinand0 设备,表明系统已识别 SPINAND:device type ref count -------- -------------------- ---------- ... spinand0 SPI Device 0 ...
注:若使用手动挂载,则在此时执行 mount blk_rodata /rodata elm 和
mount data /data uffs
。 -
查看文件
-
进入 rodata 目录:
cd sd
cd rodata
-
使用下列命令查看文件:
ls
Directory /rodata: lvgl_data <DIR>
至此, SPINAND 挂载完成。
-
-
Baremetal 相关命令使用方法
Baremetal 和 Bootloader 中实现了
spinand
和mtd
命令测试工具,具体用法相同。使用前,需要在板子上运行 Luban-Lite Baremetal 程序。-
查看相关命令在串口控制台执行命令 help 查看当前系统命令
aic # help Command list: help Show all commands. history Show history. md Memory display mtd MTD R/W command. mw Memory write nid Display NAND manu ID. need init first reboot Reboot device. reset Reboot device. spinand SPI NAND flash R/W command.
从中可看到,
spinand
为mtd
命令工具。spinand 层之上的一层为 mtd 层, spinand 命令可以查看 spinand 层信息, mtd 命令可以查看 mtd 层信息。 -
获取命令帮助信息执行命 spinand help 可得到如下帮助信息
spinand read write command: spinand init <spi bus id> spinand read <addr offset size> spinand dump <offset size> spinand oobdump <offset> spinand write <addr offset size> spinand erase <offset size> spinand contread <offset size> spinand read 0x40000000 0 0x20000
执行命令 mtd help 可得到如下帮助信息
aic # mtd help mtd read write command: mtd list mtd dump <part> <offset> <size> mtd read <part> <addr> <offset> <size> mtd erase <part> <offset> <size> mtd write <part> <addr> <offset> <size> mtd oobdump <part> <offset> mtd oobread <part> <addr> <offset> mtd oobwrite <part> <addr> <offset> mtd contread <part> <addr> <offset> <size> e.g.: mtd read spl 0x40000000 0 0x1000
注:开发推荐使用 mtd 命令进行测试
-
测试 spinand 相关命令初始化 SPI NAND 设备
aic# spinand init 0
打印 SPI NAND 数据
aic # spinand dump 0 0X800 0x300540e0 : 41 49 43 50 2f 00 00 00 02 ff ff ff ff ff ff ff 0x300540f0 : ff ff ff ff 00 00 00 00 40 00 00 00 80 00 00 00 0x30054100 : c0 00 00 00 68 61 bc af 01 00 00 00 41 00 00 00 .........
读取 SPI NAND 数据到内存上
aic # spinand read 0x30060000 0x800 0x800 aic # md 0x30060000 0x800 0x30060000 : 41 49 43 20 e3 21 79 3b 01 00 01 00 10 6c 01 00 0x30060010 : 00 00 00 00 b0 6a 01 00 00 00 10 30 00 01 10 30 0x30060020 : 00 00 00 00 00 00 00 00 00 6c 01 00 10 00 00 00 .........
-
测试 mtd 相关命令
初始化 mtd 设备
aic # mtd list MTD devices:nand0 0x00000000 ~ 0x08000000 bootloader 0x00000000 ~ 0x00100000 os 0x00100000 ~ 0x00200000 data 0x00200000 ~ 0x00700000
打印 mtd 分区数据
aic # mtd dump bootloader 0 0x80 0x300540d0 : 41 49 43 50 32 00 00 00 02 ff ff ff ff ff ff ff 0x300540e0 : ff ff ff ff 00 00 00 00 40 00 00 00 80 00 00 00 0x300540f0 : c0 00 00 00 99 5a bc af 01 00 00 00 41 00 00 00 ......... aic # mtd dump os 0 0x80 0x300540d0 : 41 49 43 20 56 f4 1b 53 01 00 01 00 10 e4 00 00 0x300540e0 : 00 00 00 00 c0 e2 00 00 00 00 04 30 00 01 04 30 0x300540f0 : 00 00 00 00 00 00 00 00 00 e4 00 00 10 00 00 00 .........
测试 mtd 读速度,并打印读取的数据aic # mtd read os 0x30060000 0x800 0x800 sfud_read speed: 2048 byte, 241 us -> 8297 KB/s aic # md 0x30060000 0x800 0x30060000 : 06 00 82 80 81 47 01 00 0b c7 f5 80 0b 57 f5 00 0x30060010 : 85 07 7d fb 82 80 2a 86 d9 b7 aa 85 17 d5 00 00 0x30060020 : 03 25 c5 20 09 a0 41 11 26 c2 aa 84 2e 85 06 c6 .........
测试擦除命令aic # mtd dump data 0 0x800 //打印擦除前的数据 0x30054158 : 41 49 43 20 6a 55 c3 39 01 00 01 00 10 69 01 00 0x30054168 : 00 00 00 00 88 67 01 00 00 00 10 30 00 01 10 30 0x30054178 : 00 00 00 00 00 00 00 00 00 69 01 00 10 00 00 00 ......... aic # mtd erase data 0 0x20000 //执行擦除命令, 大小与块大小对齐 aic # mtd dump data 0x0 0x800 //打印擦除后的数据 0x30054318 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x30054328 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff 0x30054338 : ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff .........
测试写入新数据aic # mtd write data 0x30060000 0 0x800 aic # mtd dump data 0 0x800 //读取新数据,判断是否写入正确 0x3005435c : 06 00 82 80 81 47 01 00 0b c7 f5 80 0b 57 f5 00 0x3005436c : 85 07 7d fb 82 80 2a 86 d9 b7 aa 85 17 d5 00 00 0x3005437c : 03 25 c5 20 09 a0 41 11 26 c2 aa 84 2e 85 06 c6 .........
-
-
RTOS 相关命令使用方法参考调试指南配置,并编译,烧录程序,在板子上运行 Luban-Lite 程序。
-
查看相关设备
aic /> list device device type ref count -------- -------------------- ---------- wdt WDT Device 0 data MTD Device 1 rodata Block Device 1 os MTD Device 0 spl_2 MTD Device 0 spl_1 MTD Device 0 aicfb Graphic Device 0 gt911 Touch Device 0 norflash Block Device 0 qspi01 SPI Device 0
-
查看相关命令
aic /> mtd_nand mtd_nand [OPTION] [PARAM ...] id <name> Get nandid by given name read <name> <bn> <pn> Read data on page <pn> of block <bn> of device <name> readcont <name> <bn> <pn> <size> Read size data on page <pn> of block <bn> of device <name> readoob <name> <bn> <pn> Read oob on page <pn> of block <bn> of device <name> write <name> <bn> <pn> Run write test on page <pn> of block <bn> of device <name> erase <name> <bn> Erase on block <bn> of device <name> eraseall <name> Erase all block on device <name>
具体用法可以参考上面 mtd 用法
-