工具与软件:
您好!
我有一个要求、即我要在 FreeRTOS 任务中访问通过中断句柄更新的变量。 这样就不会希望禁用和启用中断来访问该变量。 我 转而尝试在 FreeRTOS 任务中自动访问该变量。 TI Code Composer Studio 编译器是否提供对原子访问的支持。 如果是、是否有列出所有这些函数的文档?
Ravi
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.
工具与软件:
您好!
我有一个要求、即我要在 FreeRTOS 任务中访问通过中断句柄更新的变量。 这样就不会希望禁用和启用中断来访问该变量。 我 转而尝试在 FreeRTOS 任务中自动访问该变量。 TI Code Composer Studio 编译器是否提供对原子访问的支持。 如果是、是否有列出所有这些函数的文档?
Ravi
尊敬的 Ravi:
我认为我们不具有 Hercules 器件中的原子内存(包括 RM57x)。 实际上、它不是关于 TI Code Composer Studio、基本而言、内核应支持原子访问(单周期访问)。 遗憾的是、我们没有这种支持。
您已提到一种禁用和启用中断的方法、我认为另一种方法是使用信标或互斥量来控制访问。 我认为通过这种方法、你无需禁用中断。
——
谢谢、此致、
Jagadish。
尊敬的 Jagadish:
原子访问、我不认为我指的是单周期访问。 它可能需要多少个周期。 但我唯一的要求是存储器访问以原子方式完成。 这意味着 ARM 内核通过提供诸如 LDREX 和 strex tto 等指令以原子方式访问数据来提供架构支持、并且不会被中断和使用原子访问被构建。 工具链所提供的。 实际上、它甚至在第82页的 TI 编译器用户手册中提到。 但它只讨论了 cortex R5微控制器中为实现原子访问提供的 LDREX 和 strex 支持、但在 TI 编译器库使用这些原子访问指令提供的 API 上没有讨论。
这是用户手册中提到的内容
在 ARM V7A8 (Cortex-A8)、ARM V7M3 (Cortex-M3)、ARM V7M4 (Cortex-M4)、ARM V7R4 (Cortex-R4)和上
Arm V7R5 (Cortex-R5)、原子操作是使用处理器支持的独占访问来实现的
学习指令。
此处是 TI 编译器用户手册供您参考。
尊敬的 Ravi Teja:
对不起,我被很多其他问题卡住了.
请参阅以下线程、它们对于此上下文可能非常有用:
(+)用于信号量处理的原子操作-基于 Arm 的微控制器-内部论坛-基于 Arm 的微控制器-内部- TI E2E 支持论坛
(+)专有读取/修改/写入-基于 Arm 的微控制器-内部论坛-基于 Arm 的微控制器-内部- TI E2E 支持论坛
(+)适用于 TMS570LS3137的 Atomic TAS 实现-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
(+) TMDS570LS31HDK:正确的汇编语法-基于 Arm 的微控制器论坛-基于 Arm 的微控制器- TI E2E 支持论坛
——
谢谢、此致、
Jagadish。