TI中文支持网
TI专业的中文技术问题搜集分享网站

TMS320C6657 双核加载问题

你们好:

我在调试C6657 SPI BOOT 双核启动的时候遇到了一些问题,代码烧写到了NOR  FLASH,core0 启动成功,core1没有启动,使用仿真器监控发现core0入口地址正确,core1的入口地址使用core0的程序写入了,也给了IPC中断,但是core1没有启动,我不知道怎么判断core1代码是否加载到了指定位置?两个核的程序使用的是一个工程编译的,L2的地址0x800000没有改变,能指导一下吗?先行谢过!下面是程序main函数代码,附近时使用工具链生成的双核.dat

文件

void main()
{ platform_init_flags init_flags;
platform_init_config init_config;
int *pBootMagicAddCore0;
int *IpcGr0;
int *KICK0 = (int*)UPP_KICK0;
int *KICK1 = (int*)UPP_KICK1;
int coreId = 0;
int i = 0;
/* Set default values */
memset(&init_flags, 0, sizeof(platform_init_flags));
memset(&init_config, 0, sizeof(platform_init_config));
init_flags.pll = 1;
init_flags.ddr = 1;
init_flags.tcsl = 1;
init_flags.phy = 1;
init_flags.ecc = 1;

init_config.pllm = 0;
coreId = platform_get_coreid ();

if(coreId == 0)
{
if (platform_init(&init_flags, &init_config) != Platform_EOK)
{
System_printf("Platform failed to initialize, errno = 0x%x \n", platform_errno);
}
else
{
platform_uart_init();
platform_uart_set_baudrate(115200);
if(Sock_init() < 0)
{
printf("Sock_init failed.\n");
}
pBootMagicAddCore0 = (int*)0x108FFFFC;
(*pBootMagicAddCore0) += 0x10000000;// translate to global address
for(i = 1;i < CORE_NUM_6657; i++)//write the other cores' boot magic address
{
*(pBootMagicAddCore0+ (0x01000000*i)/4 ) = (*pBootMagicAddCore0) + 0x01000000 * i;
}
*KICK0 = 0x83E70B13;
*KICK1 = 0x95A4F1E0;
platform_delay(500);
IpcGr0 = (int*)0x02620240;
/*warning:when running on no-boot mode,core0~core7 must all be connected to the target*/
for(i = 1;i < CORE_NUM_6657; i++)//core0 sent ipc interrupt to
{
*(IpcGr0+i) = (*(IpcGr0+i)) | 0x00000001;
}
test_uart(1);
}
}
if(Buff_init() < 0)
{
printf("Buff_init failed.\n");
}
BIOS_start();

zhang zhangyu:

回复 Allen35065:

确实是这样,多谢了!我想再问一下,使用NDK网络通信,最大数据包只能是3072吗?我仿真调试的时候可以最大传8192,但是程序烧写启动后,传输总是失败.

user3743567:

*(pBootMagicAddCore0+ (0x01000000*i)/4 ) = (*pBootMagicAddCore0) + 0x01000000 * i;

这里的/4是什么意思,因为我看手册上的各个核的地址感觉不需要/4,求解释?如果加上/4的话,你的多核启动解决了嘛?还有一个问题,我们的生成的.out文件很大,大概是3.7MB,用的是8核,现在摸不清楚该如何多核启动,希望能和您交流下您的资料和启动的具体方法。

zhang zhangyu:

回复 user3743567:

参考 http://www.deyisupport.com/question_answer/dsp_arm/c6000_multicore/f/53/t/8065.aspx striker 大神的回复

jimmy cui:

回复 Allen35065:

Allen Yin 您好!我现在正在用C6657做项目,目前调试功能用的只是单 个核,我想问题,如何使用双核呢?需要哪些步骤呢?这点我不太理解,或有什么资料可供参考呢?

赞(0)
未经允许不得转载:TI中文支持网 » TMS320C6657 双核加载问题
分享到: 更多 (0)