项目简介
本项目是基于C语言和驱动框架开发的测试系统,主要用于对NAND Flash控制器的逻辑功能进行测试。系统通过模拟NAND Flash控制器的读写操作,来验证其逻辑地址到物理地址的转换(Flash Translation Layer, FTL)、垃圾回收以及坏块管理等关键功能。
项目的主要特性和功能
- 测试框架:具备一套完整的测试框架,涵盖测试函数与相关辅助函数,可执行各类NAND Flash控制器测试。
- 测试类型:支持顺序写入测试和随机写入测试,用以验证NAND Flash控制器的读写性能。
- 数据填充和老化:提供数据填充和老化功能,通过随机写入数据到NAND Flash模拟长时间使用情况。
- 错误处理:支持处理NAND Flash的错误中断(如数据损坏、坏块中断),保障系统的稳定性与容错性。
- 日志和监控:具备日志和监控功能,用于记录测试过程和结果,以及监控系统的运行状态。
安装使用步骤
通用步骤
- 环境准备:确保开发环境已安装必要的C语言编译器和驱动开发框架。
- 代码下载:从指定的源代码仓库下载此项目的源代码。
- 编译配置:依据开发环境和目标硬件,配置编译选项(如
OPTION_UART_DEBUG
和OPTION_FTL_TEST
),决定是否包含调试和测试代码。 - 编译构建:使用C语言编译器构建项目,生成可执行文件。
- 运行测试:运行生成的可执行文件,执行NAND Flash控制器的测试。
- 结果分析:分析测试结果,验证NAND Flash控制器的功能和性能。
编译固件
使用GNU工具编译
- 确保PC已安装gcc,Jasmine已使用Sourcery G++ Lite 2010.09 - 51 for ARM EABI进行构建和测试。
- 从
build_gnu
目录运行Make工具。Makefile默认配置为构建Tutorial FTL,若要构建Greedy FTL,需将Makefile的第一行修改为FTL = greedy
。 - 构建完成后,会生成
firmware.bin
(固件的二进制镜像)。
使用RealView工具编译
- 确保PC已安装RVDS,Jasmine已使用RVDS v3.1进行构建和测试。
- 若要构建Tutorial FTL,在命令提示符窗口中执行
cd build_rvds
和build.bat tutorial
。 - 若要构建Greedy FTL,在命令提示符窗口中执行
cd build_rvds
和build.bat greedy
。 - 构建完成后,会生成
firmware.bin
(固件的二进制镜像)。
编译安装程序
installer\installer.sln
是Visual C++ 2005的解决方案文件,也已在Visual C++ 2010 Express免费版中测试过。双击installer.sln
并进行构建。
安装固件
- 将跳线J2设置为工厂模式位置,然后开启Jasmine板的电源。若主板支持SATA热插拔,可将Jasmine板热插拔到PC的SATA接口;若不支持,应先连接SATA电缆,再开启PC电源。
- 确保
install.exe
和firmware.bin
在同一目录。 - 根据安装情况选择不同步骤:
- 重新安装:若不是首次安装固件到Jasmine板,NAND闪存不是空白的。运行
install.exe
,按1 initialize
、2 read scan list from flash block 0
、3 install FW
步骤操作。若第二步出现“ERROR: cannot find scan list on bank”,可能是块#0空白(新出厂板卡情况)或因自己的FTL实现错误意外擦除,可参考对应解决方法;若出现“ERROR: corrupted scan list (or unknown type of data) on bank”,参考相应解决方法。安装完成且无问题后,关闭Jasmine板。 - 首次安装:若是首次安装固件到Jasmine板,NAND闪存是空白的。运行
install.exe
,按1 initialize
、4 scan init bad blks
、6 save scan list to file
、3 install FW
步骤操作。第三步务必备份扫描列表,因为开发自己的FTL时块#0数据可能因固件错误损坏。安装完成且无问题后,关闭Jasmine板。 - 扫描列表损坏时:若扫描列表因自己的FTL实现错误损坏,运行
install.exe
,按1 initialize
、7 read scan list from file
、3 install FW
步骤操作。安装完成后,关闭Jasmine板。
- 重新安装:若不是首次安装固件到Jasmine板,NAND闪存不是空白的。运行
运行
- 将跳线J2设置为正常模式位置,拔下SATA电缆。
- 开启Jasmine板的电源,Jasmine将进行内部低级格式化。
- 低级格式化完成后,D4位置的LED将亮起。此时Jasmine已准备好处理SATA命令,可插入SATA电缆。
注意:此测试系统可能需根据具体的硬件环境和开发工具进行一定的配置和修改,以适应开发环境。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】