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:IPC示例测试失败

Guru**** 2548290 points
Other Parts Discussed in Thread: SYSBIOS

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

https://e2e.ti.com/support/tools/code-composer-studio-group/ccs/f/code-composer-studio-forum/581747/ccs-ipc-example-test-failed

“Thread:SysBIOS”中讨论的其它部件

工具/软件:Code Composer Studio

我使用AM572X EVM根据以下URL测试IPC hello示例:processors.wiki.ti.com/.../AM572x
我创建了CCS项目“DSP1”并生成了DSP1.out文件。 此时,我将DSP1.out加载到DSP1内核,并将hello_dsp2.xe66加载到IPC数据包中到DSP2内核,然后我成功连接了这两个内核。

但是,我正在进行“DSP1”项目,该项目被稍微修改为“DSP2”,这次只是将对等项从“DSP2”更改为“DSP1”,并将DSP2.out加载到DSP2内核,但此时无法连接。

那么问题是什么呢? 我认为这可能是CCS调试地址问题,因为CCS在起始地址为0x80万时连接到DSP1核心DSP2核心。 如果是,如何修改我的程序,使DSP1核心上的起始地址为8C00_0000,而DSP2核心上的地址为8D00_0000?

这是我的DSP2.c:

/*
*========= HelloDsp2.c =========
*平台:DRA7XX_BIOS_elf
*/

/*包头文件*/
#include <XDC/std.h>
#include <XDC/cfg/globL.h>
#include <XDC/runtime / Diags.h>
#include <XDC/runtime / Error.h>
#include <XDC/runtime/Log.h>
#include <XDC/runtime /System.h>

#include <ti/IPC/IPC.h>
#include <ti/IPC/MessageQ.h>
#include <ti/IPC/MultiProc.h>
#include <ti/IPC/SharedRegion.h>

#include <ti/SysBIOS/BIOS.h>
#include <ti/SysBIOS/KNL/Task.h>

/*本地头文件*/
#include "../SYSCFG.h"


/*私人函数*/
void App_taskFxn (UArg arg0,UArg arg1);


/*定义应用程序角色*/
#define role_reader 1.
#define role_writer 2.

Int角色= role_reader;/*此处理器的角色*/
字符串对等端="DSP1";/*对等处理器的名称*/


/*
*========= 主====
*/
int main (int argc,char *argv[])

错误块EB;
task_Params taskParams;

log_print0 (Diags_entry,"main:-->");

/*创建主线程(在BIOS上主中未启用中断)*/
task_params_init(&taskParams);
taskParams.instance->name ="App_taskFxn";
taskParams.arg0 =(UArg) argc;
taskParams.arg1 =(UArg) argv;
taskParams.STACKSIZE = 0x1000;
ERROR_INIT(&E);

TASK_CREATE (App_taskFxn,&taskParams,&EB);

如果(Error_check (&EB)){
system_abort("main: failed to create application threads";
}

/*启动调度程序,这从不返回*/
BIOS_START();

/*永远不会来这里*/
log_print0 (Diags_exit,"main:<--");
返回(0);
}

/*
*========= app_taskFxn ==========
*/
void App_taskFxn (UArg arg0,UArg arg1)

INT状态;
UINT16 remoteProcId;

log_print0 (Diags_entry,"App_taskFxn:-->");

/*
*初始化IPC层
*/
状态= IPC_START();

如果(状态< 0){
system_abort("IPC_start failed\n");
}

remoteProcId = MultiProc_getid (对等);
执行{
状态= IPC_ATTATT(remoteProcId);

}同时((status <0)&&(status == IPC_E_NotReady));

}

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

    您好,

    BIN xu44 说:
    如何修改我的程序,使DSP1核心上的起始地址为8C00_0000,而DSP2核心上的地址为8D00_0000?

    您需要为DSP2创建一个单独的链接程序命令文件,该文件将代码分配到另一个地址:

    有关如何修改链接程序命令文件的详细信息,请参阅下面的优秀文章:

    http://processors.wiki.ti.com/index.php/Linker_Command_File_Primer

    谢谢

    KI