工具与软件:
我的应用需要将数据存储在 OSPI 闪存中。 我还希望在可用的 OCRAM 不足时支持 XIP。
用例
在本用例中:
- 每个任务的内存是独立的;这些内存区域不被共享。
- 每个任务 A 独立访问存储器。 任务之间的时间安排没有协调。 驱动程序代码应可重入。
- 任务可以阻止数百毫秒等待事务完成;没有实时限制。
- API 调用会返回事务状态。
- 如果 API 调用失败、任务将处理重试、
从 OSPI 驱动器的角度来看、它偶尔会看到多个任务、执行分部门擦除、然后是10到20个写入事务。
每分钟可能会发生几次。 对已擦除分区的写入将很小(16B 到32B)。
FIFO 中
我看到 AM263P 技术参考手册(SPRUJ55)第13节中的低级 SPI 协议控制器中有一个 FIFO。 3.2.4.1 OSPI 方框图。
这个 FIFO 很有吸引力、这是因为每个任务可以同时进行事务、阻止等待完成、并且使用最少的应用程序代码即可知道该事务的状态。
旧模式
在 SDK 文档中:
File:///C/C:/ti/mcu_plus_sdk_am263px_09_02_00_56/docs/api_guide_am263px/DRIVERS_OSPI_PAGE.html
…μ A 这里提到了"传统模式"。
我请参阅 AM263P 技术参考手册(SPRUJ55)第13节中所述的"旧模式"。 3.2.4.1 3.2.5.4使用 SPI 旧模式:
SDK 驱动程序:
我在驱动器中看到:
${MCU_PLUS_SDK_PATH}/source/board/flash/ospi/flash_nor_ospi.h
…μ A API 调用似乎被阻止且具有超时。
注意:这些函数是为 SDK 示例调用的函数。
问题:
问题1:
我‘使用 flash_nor_ospi 来获取我正在寻找的 fifo blocking’行为吗?
Q1b:
使用带有 FIFO 的旧模式吗?
问题1c:
XIP 是否可以同时运行而无需考虑上述用例?