This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] OSPI-AM263PX:MCU-PLUS-SDK API、用于阻止与 FIFO 的事务

Guru**** 1791630 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1398848/mcu-plus-sdk-am263px-ospi-api-for-blocking-transactions-with-fifo

器件型号:MCU-PLUS-SDK - AM263PX

工具与软件:

 我的应用需要将数据存储在 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 是否可以同时运行而无需考虑上述用例?