Other Parts Discussed in Thread: AM2434
器件型号: AM2434
您好、
我正在使用 AM2434 (FreeRTOS) 开发多核应用、遇到有关原子存储器访问的硬件异常。
架构:
-
CORE-1(服务器): 将 64 位变量写入共享的 MSRAM 区域。
-
其他内核(客户端): 不断轮询/读取这个完全相同的 64 位存储器地址。
内存配置: 共享 MSRAM 区域在 MPU 中配置为具有以下属性:
存储器类型: 正常
高速缓存策略: 不可缓存、不可缓冲 (,) TEX=001C=0B=0
可共享性: 可共享 () S=1
权限: 主管 RW、用户 RW、执行从不
问题: 为了防止内核之间的读取中断、我使用标准ATOMIC_STORE宏进行 64 位写入。 编译器正确生成 ldrexd了 ANDstrexd 指令。
但是、在 Code Composer Studio 中逐步执行反汇编时、CPU 在尝试在ldrexd该共享存储器指针上执行命令的确切时刻抛出数据中止异常。
我的问题:
AM2434 互连/AXI 总线是否支持共享 MSRAM 区域的全局专用监视器以允许ldrexd/strexd指令?
如果此处不支持专用监视器、那么用于锁定共享内存或在内核之间安全传递 64 位变量而不拆分读取的 TI 推荐解决方案是什么?
谢谢、
此致、
Eli