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.

TMS320C6678: 6678多核多镜像问题

Part Number: TMS320C6678


你好,多核多镜像问题;分为以下步骤:

1,核0运行 将核1的程序按照mxp格式将各个段挑选出来按照重定位到ddr的运行地址空间;

2,boot magic addr地址填入核1的程序入口地址;

3,进行软复位寄存器配置;并给核1发送ipc中断;在线挂仿真器调试,核0无法唤起核1执行;

调试过程:

将核0核1设置为一组,核0上载核0的.out,核1上载核1的.out;运行核0,核0发送ipc中断后,没有唤起核1运行;

因为核1程序中有ddr 0x90000000 写11 ,ipc中断后,没有看到ddr 0x90000000 值的变化 ;

基本配置:

核1的magic地址核IPc中断按照下面的定义填入

// CorePac0-7 IPC 触发寄存器(IPCGRx)
#define IPCGR_0_REGS (*((volatile unsigned int *)(0x02620240)))
#define IPCGR_1_REGS (*((volatile unsigned int *)(0x02620244)))
#define IPCGR_2_REGS (*((volatile unsigned int *)(0x02620248)))
#define IPCGR_3_REGS (*((volatile unsigned int *)(0x0262024C)))
#define IPCGR_4_REGS (*((volatile unsigned int *)(0x02620250)))
#define IPCGR_5_REGS (*((volatile unsigned int *)(0x02620254)))
#define IPCGR_6_REGS (*((volatile unsigned int *)(0x02620258)))
#define IPCGR_7_REGS (*((volatile unsigned int *)(0x0262025C)))

// 核0~核7 魔术地址(L2地址后4字节)
#define CORE_0_MAGIC_ADDR (*((volatile unsigned int *)(0X1087FFFC)))
#define CORE_1_MAGIC_ADDR (*((volatile unsigned int *)(0X1187FFFC)))
#define CORE_2_MAGIC_ADDR (*((volatile unsigned int *)(0X1287FFFC)))
#define CORE_3_MAGIC_ADDR (*((volatile unsigned int *)(0X1387FFFC)))
#define CORE_4_MAGIC_ADDR (*((volatile unsigned int *)(0X1487FFFC)))
#define CORE_5_MAGIC_ADDR (*((volatile unsigned int *)(0X1587FFFC)))
#define CORE_6_MAGIC_ADDR (*((volatile unsigned int *)(0X1687FFFC)))
#define CORE_7_MAGIC_ADDR (*((volatile unsigned int *)(0X1787FFFC)))

// 寄存器锁
#define KICK0 (*((volatile unsigned int *)(0x02620038)))
#define KICK1 (*((volatile unsigned int *)(0x0262003C)))

#define KICK0_UNLOCK (0x83E70B13)
#define KICK1_UNLOCK (0x95A4F1E0)
#define KICK_LOCK (0x1)