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.

[参考译文] TMS320F28379D:CPU2 内存分配问题

Guru**** 2529560 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1564893/tms320f28379d-cpu2-memory-allocation-problem

部件号:TMS320F28379D


工具/软件:

您好!

在我的应用程序中、我需要在 CPU1 和 CPU2 处分配存储器。 在链接器文件中、我已为两个 CPU 配置了 RAMLS1。 CPU1 可以分配存储器、但当 CPU2 尝试分配存储器时、它会从 alligned_alloc 函数进入 nlative_isr。 问题可能是什么?  

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

    您好、

    在 CPU2 处的应用程序中、我使用文件系统、此文件系统分配文件和数据。 在分配它时、我的程序会进入非法 ISR。 我发现该函数使用在.ebss 定义的全局变量、并 将 RAMLS0、RAMGS0、RAMG1 和 RAMGS2 指定为.ebss。 CPU1 授予 CPU2 使用这些区域的权限。 这个全局变量 在 RAMGS1 处定义。 我更改了.ebss RAM 区域、并将 RAMLS0 更改为 RAMLS4、再改为.ebss。 因此、我的全局变量在本地共享存储器中定义。 当我尝试分配存储器时、它不会进入 非法 ISR。  

    我已经解决了当代码加载到 CPU2 时、初始化的全局变量不会初始化的问题。