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.

[参考译文] TDA2Px M4-Cortex IPU 子内核

Guru**** 2939240 points

Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/669308/tda2px-m4-cortex-ipu-sub-cores

Thread 中讨论的其他器件:SYSBIOS

您好!

我对 M4-Cortex 的 IPU 子内核有一些疑问。

我的实际设置:

•   Linux 正在启动 IPU1 (5502000.IPU)
•   我不使用 SDK、内核从汇编器启动文件开始
•   我能够在两个子内核 IPU1_0和 IPU1_1中启动代码
•   实际上、我正在为两个子内核使用一个通用堆栈/堆。

我的问题:

•   我是否需要为每个内核提供一个堆栈/堆、或者能否为两个子内核使用一个通用堆栈/堆?
•   也许您有更多有关 IPU1_0和 IPU1_1的寄存器、堆栈等上下文切换工作原理的信息。
•   您能否向我发送 IPU 的示例链接器/启动汇编器文件?

谢谢

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

    您应该为两个内核设置不同的堆栈。
    供您参考 链接器文件的\packages/ti\cSL\examples\lnk_m4.cmd。
    启动代码由 CGT 编译器的 RTS 库提供。

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

    您好、Rishabh、

    在链接器文件中、我找不到您使用单独堆栈的提示(请参阅下面的链接器文件)。 您能否向我发送一个使用两个堆栈段的链接器文件。
    如何处理汇编器启动代码中的堆栈指针寄存器、您能否为我展示一个示例?


    谢谢


    -stack 0x20000 //软件栈大小*/->一个栈
    堆0x20000 //堆区域大小*/

    /*指定系统内存映射*/

    存储器

    IRAM_MEM:org = 0x00000000 len = 0x1000 // RAM 0x1FBFF*/
    对于 EVE,/*SBL 将使用地址0x8000000中的1KB 空间*/
    DDR3_A8:org = 0x80000400 len =(0x02000000 - 0x400)/* 32 MB *
    DDR3_DSP:org = 0x82000000 len = 0x02000000 // 32 MB */
    DDR3_M4:org = 0x84000000 len = 0x02000000 // 32 MB */
    DDR3_SR0:org = 0x86000000 len = 0x01000000 // 16 MB */
    DDR3_M3VPSS:org = 0x87000000 len = 0x01000000 // 16 MB */


    /*指定段分配到内存中*/

    部分

    .intvecs:load > IRAM_MEM
    .intc_text:load > IRAM_MEM
    init:load > DDR3_M4

    .text:load > DDR3_M4 /* code */
    .data:load > DDR3_M4 /*已初始化全局和静态变量。 *
    .bss:load > DDR3_M4 /*未初始化或零初始化*/
    /*全局和静态变量。 *
    RUN_START (BSS_START)
    RUN_END (BSS_END)
    .const:load > DDR3_M4 /*全局常量*/
    .cinit:加载> DDR3_M4
    stack:load > DDR3_M4 /*软件系统堆栈*/->一个堆栈
    .plt:LOAD > DDR3_M4
    sysmem:load > ddr3_M4
    my_sect_DDR:加载> DDR3_M4

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

    您好!

    此链接器命令文件用于 IPU1_0。 您应该为内核1创建单独的链接器命令文件。
    遗憾的是、我没有为您提供汇编器示例。 您应该会看到它的 BIOS。

    此致、
    Rishabh

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

    您可以参阅 BIOS Ducati 文件夹: 用于 BIOS 初始化代码的\packages/ti\SysBIOS\family\ARM\Ducati\。
    如果要查看_c_int00例程、可以使用反汇编器从现有 RTS 库为您创建一个例程并使用它。

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

    我没有听到您的反馈,我认为您能够解决您的问题。 如果不是、只需在下面发布回复(如果该线程由于超时而锁定、则创建新线程)

    此致、
    Rishabh