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.

[参考译文] LP-AM243:core0和 core1之间的共享存储器

Guru**** 2463330 points
Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1477094/lp-am243-shared-memory-between-core0-and-core1

器件型号:LP-AM243
主题中讨论的其他器件:SysConfig

工具与软件:

您好!

我尝试在 CPU0和 CPU1之间设置一个共享存储器。 我使用 ipc_spinlock_sharedmem_am243x-lp_system_freertos_nortos 示例作为模板。

遗憾的是、我可以在调试器中看到、两个 CPU 上的数据并不相同。

在存储器浏览器中、变量 gMySharedMem 包含 CPU0的值0x54321、CPU1的值为0x0。

代码:

易失性 uint32_t gMySharedMem __属性___ ((aligned (128)、section (".bss.user_shared_mem")));

ipc_sharemem_lock (&gMutexObj、gSpinlockBaseAddr、gLockNum);

gMySharedMem = 0x54321;

ipc_sharemem_unlock (&G、gMutexObj、gSpinlockBaseAddr、gLockNum);

CPU_1

代码:

易失性 uint32_t gMySharedMem __属性___ ((aligned (128)、section (".bss.user_shared_mem")));

ipc_sharemem_lock (&gMutexObj、gSpinlockBaseAddr、gLockNum);

aktualVelocity = gMySharedMem;

ipc_sharemem_unlock (&G、gMutexObj、gSpinlockBaseAddr、gLockNum);

 

SysConfig 配置如下所示:

以下是映射文件中的有趣内容:

我想我在配置中犯了一个错误、但我不知道在哪里。

我希望你能帮我。

此致 Alexander

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

    尊敬的 Alexander:

    您能否确认您是否将存储器区域标记为缓存?

    如果是、请尝试将存储器标记为未缓存并更新结果。

    此致、

    Tushar

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

    Tushar、您好!

    >> 将存储器标记为非缓存

    我该怎么做?

    此致、

    Alexander

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

    尊敬的 Alexander:

    检查工程的 example.syscfg 文件中的 MPU 区域设置。 查找您配置的共享内存区域并将其标记为非缓存。

    请参阅下图。

    此致、

    Tushar

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

    尊敬的 Tushar:

    你救了我的周末!

    将内存区域标记为 non_cache 后、它会起作用。  

    非常感谢。

    亚历山大的问候