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.

[参考译文] CCS/BeagleBoard-X15:在不同内核中运行两个不同的代码

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/727216/ccs-beagleboard-x15-running-two-different-codes-in-different-cores

器件型号:BeagleBoard-X15

工具/软件:Code Composer Studio

您好,

我已允许 http://processors.wiki.ti.com/index.php/Multi-Core_Debug_with_CCS 中提到的步骤 。  

我在每个项目中使用简单的 printf 创建了两个不同的 CCS 项目。 然后启动目标配置和连接的目标 cortexa15_0和 cortexa15_1。

然后在内核中加载两个不同的项目,并将两个内核分组。

到这里、还可以、但问题在于运行两个内核时、一个内核正在工作、另一个内核进入未定义指令或未处理的 ADP 指令。

请在这方面帮助我。

谢谢、此致、

Chitanya。

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

    为多核器件创建工程时的一个常见问题是确保它们不使用相同的内存。

    例如、如果在两个项目上将代码分配给外部 DDR、则必须在链接器脚本文件中分离它们的内存段、以便它们不会重叠。 否则、当另一个内核正常运行并修改变量、跳转到例程等时、您可能最终锁定一个内核

    假设您的项目使用预安装的链接器脚本文件、则必须在每个 AM572x.lds 文件的顶部修改条目以分隔它们的存储器:

    内核0:
    存储器


    OCMC_RAM1:o = 0x40300000、l = 0x00080000 // 512KB L3 OCMC RAM1 *
    OCMC_RAM2:o = 0x40400000、l = 0x00100000 // 1MB L3 OCMC RAM2 */
    OCMC_RAM3:o = 0x4050000、l = 0x00100000 // 1MB L3 OCMC RAM3 */
    DDR0_0: O = 0x80000000、l = 0x20000000 // 512MB 外部 DDR 组0 */
    DDR1 _0: O = 0xC0000000、l = 0x20000000 // 512MB 外部 DDR 组1 */



    内核1:
    存储器


    OCMC_RAM1:o = 0x40300000、l = 0x00080000 // 512KB L3 OCMC RAM1 *
    OCMC_RAM2:o = 0x40400000、l = 0x00100000 // 1MB L3 OCMC RAM2 */
    OCMC_RAM3:o = 0x4050000、l = 0x00100000 // 1MB L3 OCMC RAM3 */
    DDR0_1: O = 0xA0000000、l = 0x20000000 // 512MB 外部 DDR 组0 */
    DDR1_1: O = 0xE0000000、l = 0x20000000 // 512MB 外部 DDR 组1 */



    在文件的其余部分、您必须将 DDR0条目替换为上面相应的段(DDR0_0或 DDR0_1、具体取决于内核)。

    有关链接器文件上存储器段的其他详细信息、请参阅:
    processors.wiki.ti.com/.../Linker_Command_File_Primer

    希望这对您有所帮助、
    拉斐尔
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Rafael、

    谢谢,这解决了我的问题。 但是、我对中断将如何定向到内核有很小的疑问。 这只有一个内核将处理中断或同时处理中断。 如果只有一个内核将处理中断。 是否有任何方法可以将中断重定向到其他 内核。

    谢谢、此致、

    Chitanya。

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

    我不确定;我怀疑中断矢量表对于两个内核都是唯一的(分配在共享存储器中)、但我不是器件专家。 Sitara 论坛上的专家可以更好地解决这个问题。

    此致、
    拉斐尔
x 出现错误。请重试或与管理员联系。