【海东青电子原创**,转载请注明出处:https://www.jianshu.com/p/77f7bd0817e9】 TM32F746的文档在介绍QaudSPI时,上来就说了三种工作模式: 1、“间接”模式
2、状态轮询模式
3、内存映射模式
这是什么意思呢?本人当时读文档读到此处时,是一脸的懵逼。有了前一讲 《STM32硬件基础--QaudSPI总线读写片外FLASH(一)》的基础,再来理解就容易多了。QSPI的这三种工作模式,是相对于ST MCU而言的,是为了简化MCU对QSPI器件(多为FLASH)而设立的。MCU针对FLASH主要就是做了两件事:一个是读写数据等收发命令,还有一个是:要经常查询FLASH的状态。比如写入数据,在写FLASH之前,必须先进行擦除,擦除需要时间,后续的写入命令必须等待擦除完成。怎么能知道是否擦除完成了呢?就得不断查询FLASH的状态。所以,常用的读写等命令就对应了上面的模式一:间接模式(ST MCU又把它具体分为间接写、间接读两种模式),而查询FLASH状态就对应了模式二:状态轮询。
至于模式三:内存映射模式,是为了简化读FLASH的操作。实际应用中,片外FLASH大多用于图片等静态数据存储,其写入是在烧写MCU时通过ST-LINK之类软件工具完成的。MCU运行时,基本上都是只从FLASH中读出数据。为了简化这个操作,可以使用模式三,将片外FLASH的地址映射到片内的地址空间(BANK1的起始地址为0x9000 0000),从而可以像访问片内地址一样来访问外部FLASH。不难理解,模式三只能用于读、不能写。(而且,映射的最大地址空间不能超过256MB。)
作者:海东青电子
链接:https://www.jianshu.com/p/77f7bd0817e9
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
|