DM320DM368 NAND Flash启动解析

需积分: 10 4 下载量 135 浏览量 更新于2024-09-11 收藏 439KB PDF 举报
"这篇技术文章深入探讨了DM368芯片使用NAND Flash进行系统启动的原理和实现方法。文章详细介绍了NAND Flash启动的基本流程,以及软件如何与硬件配合来完成启动过程。作者孟海燕是TI通用数字信号处理系统的技术支持专家。" DM368是一款强大的多媒体处理芯片,广泛应用于网络摄像机等设备中,它支持多种启动方式,包括NAND Flash启动。在NAND Flash启动过程中,DM365具有一些特定特性: 1. **不支持一次性全部固件下载启动**:启动时,DM365会将NAND Flash中的二级启动代码(UBL)复制到ARM的内存(AIM),然后将控制权交给UBL。 2. **支持最大4KB页大小的NAND Flash**:这意味着NAND Flash的最小编程和擦除单位为4KB。 3. **错误检测机制**:在加载UBL时,如果在第1个block未找到特定数字标志,会自动搜索最多24个block,确保系统的容错能力。 4. **30KB的UBL大小**:DM365内有32KB的内存,其中2KB用于RBL堆栈,剩余的30KB可存放UBL。 5. **RBL执行时的选项**:用户可选择是否在RBL阶段启用DMA和I-cache,这影响了启动速度和效率。 6. **4位硬件ECC支持**:DM365需要4位或更少的ECC位来校验每512字节的数据,以确保数据完整性。 7. **片选信号要求**:在快速读取操作时,NAND Flash需要片选信号。 启动流程分为以下几个关键步骤: 1. **NAND Flash启动流程**:从NAND Flash读取初始化代码,通常是RBL(Reset Boot Loader),RBL负责基本的硬件初始化和错误检查。 2. **UBL描述符的实现**:RBL根据UBL描述符定位并加载UBL到内存。描述符包含了UBL的位置和其他元数据。 3. **U-Boot启动实现**:UBL运行后,会进一步加载U-Boot,U-Boot是更高级别的引导加载程序,负责加载操作系统映像。 4. **更新UBL和U-Boot**:U-Boot还具备更新自身和UBL的能力,通过特定协议和机制,如TFTP或NFS,可以从网络或其他存储介质获取新的固件版本。 在NAND Flash没有坏块的情况下,整个启动过程将更加顺利。然而,实际应用中需要考虑坏块管理,以确保系统的可靠性和稳定性。 文章最后提到,了解这些启动原理和实现细节对于开发基于DM368的系统至关重要,能够帮助工程师更好地理解和优化启动过程,提高系统性能和可靠性。 参考文档可能包含更深入的技术规格、应用笔记、用户手册等,这些资料对于深入研究DM368的NAND Flash启动机制非常有价值。