● 摘要
Flash存储器由于体积小、功耗低、性能稳定等特点在便携式电子产品中得到了广泛的应用,并且系统内核信息就保存在Flash中,而Flash驱动程序质量的好坏,能直接影响到整个系统的性能,如何设计一种高效的Flash驱动,在主流的Linux嵌入式产品中它可以起着至关重要的作用。 本文主要是实现在多核多线程XLR732处理器上Nor-Flash驱动的读、擦、写操作过程,及Flash启动脚本的实现;首先在文章中分析了多核多线程处理器的启动和对Flash的加载方式,做出了与单核处理器对Flash操作的对比;紧接着分析了NOR-Flash和NAND-Flash的区别,由于需要把Nor-Flash的地址映射到CPU的启动地址中,把它作为启动设备来使用,所以选择了Nor-Flash,它具有XIP(eXecute In Place)特性,可以直接在芯片上执行代码,而且读取速度较快的特点。然后,对Nor-Flash驱动进行总体的设计和具体的实现,在具体的实现过程中,通过CPLD驱动中设置的bit(1)位来实现对Flash的读、写控制,保证数据不会被意外改写,并且基于多核中LL(Load-Linked)和SC(Store-Conditional)指令,实现扩展原子加法的操作,对Flash进行计数操作。 最后,通过系统的顺利启动,验证Flash驱动的正确性,并使用CRC校验在进行读取和写入操作时,保证数据的可靠性,最终还使用了毁灭性测试,进行了Flash计数功能的验证。
相关内容
相关标签