大家都知道MCU是一种"麻雀"虽小,却"五脏俱全"的主控。它的应用领域非常广泛,小到手机手表,大到航空航天的设备上都会用到MCU.市面上目前几个主流厂商有意法半导体(其中最经典的一款就是STM32系列)、TI、NXP、Microchip、瑞萨等等。
那关于MCU的存储方面,以前基本上用内置的E2PROM,或者是外置的NOR Flash 就可以了。但随着物联网的兴起,MCU的应用越来越广泛了,逐渐的MCU会涉及到大容量的存储需求,用来存储音频,图片(GUI)、视频缓存、协议栈等等。我们知道MCU为了功耗,牺牲了很多性能,如果让MCU直接管理NAND Flash的话,复杂的驱动软件就会大量占用MCU的处理器资源,MCU没法干别的了。
(音频)
那传统的E2PROM和NOR Flash就不够用了。这个时候MCU可能就需要用到NAND Flash了。但MCU采用NAND Flash,面临着新的挑战:
1、MCU主流厂商ST、TI、NXP、Microchip、瑞萨等基本都没有针对NAND Flash提供官方驱动,即使零星的系列有,但支持列表中的NAND Flash好多都停产了。
2、如果自己编写驱动。又要面对很多头疼的问题:1,使用NAND Flash要进行坏块管理,也需要做EDC/ECC等操作;
3、不同品牌之间的NAND Flash由于内部Block大小,page页的大小,时序等参数不同,都需要重新调试驱动;
4、即使理论上的功能都实现了,但大家都知道MCU为了低功耗,性能上做了妥协的。针对这么复杂的驱动程序,MCU也有心无力,让人感觉是小马拉大车。