Thread 中讨论的其他器件:SYSBIOS
您好!
我对 MAR 配置有疑问。 我在 C6678 EVM 上`m OpenMP 运行时(由 ProcSDK 版本03.03.00提供)。 它工作正常、但我需要确认 MAR 配置。
默认情况下、MAR12配置为0x0000000D。 当我使用 OpenMP 运行时,MAR12在到达 main()函数之前被配置为0x0000000B。
4.4.5存储器属性寄存器(MARN)定义
它表示 MAR 的位1和位2是保留的。 如果看到配置为0x0000000B、则表示 OpenMP 运行时设置 MAR12位0以启用缓存、设置 bit1以用于某些未知用途、设置 bit3以启用预取。
为什么即使保留了 MAR12位1,OpenMP 也会设置它。
此外、我注意到我们不应将 MAR12配置为可编程。 请看一下 
咨询28读取异常和数据损坏问题
`m、现在我想知道我们是否应该将 MAR12配置为0x00000003而不是0x0000000B。 您对此有什么意见吗? 供参考,我尝试在 main()开头覆盖 MAR12配置(如下所示),发现它仍然适用于我的 OpenMP 应用。
marVal = cache_getMar ((ptr) 0x0c020000); marVal &=~(1 <<3); cache_wbInvAll (); cache_setMar ((ptr) 0x0c020000、0x003e0000、marVal);
此致、
Naoki