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

sys/bios下的多核工程固化

请问一下,有谁做过sys/bios下的多核工程固化吗?我按照不带sys/bios下的多核固化流程做,发现程序无法启动。

Thomas Yang1:

不好意思,没太明白,您提到的多核工程固化是什么意思?是多核BOOT吗?或者多核image生成?

user4780440:

回复 Thomas Yang1:

工程师,您好。是多核BOOT。我在仿真器debug模式下工程都是正常运行的,然后按照非bios多核boot流程进行操作,却无法正常boot,不知道是什么原因造成的。

user4780440:

回复 Thomas Yang1:

您好,我在主核的BIOS_start()语句之前加了一个multicore_boot函数,这个主要就是用来初始化外设和触发除主核外其他核去boot。

我的思想如下:

核0所有字段都放在L2SRAM和MSMCSRAM中。保证核0boot时不出出现问题,从而可以执行multicore_boot函数,当初始化完外设后,再去触发其他核去boot。但是现在的情况为,切换成spi boot模式后,所有核都起不来。

multicore_boot函数详细情况如下:

void MulticoreBoot(){
    int *pBootMagicAddCore0;    int *IpcGr0;    platform_init_flags  sFlags;    platform_init_config sConfig;    int pform_status;

     /*      * You can choose what to initialize on the platform by setting the following      * flags. We will initialize everything.      */     memset( (void *) &sFlags,  0, sizeof(platform_init_flags));     memset( (void *) &sConfig, 0, sizeof(platform_init_config));
    //初始化外设     sFlags.pll  = 1;    /* PLLs for clocking      */     sFlags.ddr  = 1;    /* External memory         */     sFlags.tcsl = 1;    /* Time stamp counter     */     sFlags.phy  = 0;    /* Ethernet             */     sFlags.ecc  = 1;    /* Memory ECC             */
     sConfig.pllm = 0;    /* Use libraries default clock divisor */     pform_status =  platform_init(&sFlags, &sConfig);
     //初始化外设成功后触发其他核去boot     if (pform_status == Platform_EOK)     {
        /*write Boot Magic add of other cores and send IPC interrupt*/        pBootMagicAddCore0 = (int*)0x1087FFFC;
        *(pBootMagicAddCore0+ (0x01000000*1)/4 ) =0x0c0b4ae0 ;
        *(pBootMagicAddCore0+ (0x01000000*2)/4 ) =0x0c0e0c80 ;
        *(pBootMagicAddCore0+ (0x01000000*3)/4 ) =0x0c13fa40;
        *(pBootMagicAddCore0+ (0x01000000*4)/4 ) =0x0c1a0520 ;
        *(pBootMagicAddCore0+ (0x01000000*5)/4 ) =0x0c2004e0 ;
        *(pBootMagicAddCore0+ (0x01000000*6)/4 ) =0x0c2cce40 ;
        *(pBootMagicAddCore0+ (0x01000000*7)/4 ) =0x1785b2a0 ;
        IpcGr0  = (int*)0x02620240;        /*warning:when running on no-boot mode,core0~core7 must all be connected to the target*/        *(IpcGr0+1) = (*(IpcGr0+1)) | 0x00000001;        *(IpcGr0+2) = (*(IpcGr0+2)) | 0x00000001;        *(IpcGr0+3) = (*(IpcGr0+3)) | 0x00000001;        *(IpcGr0+4) = (*(IpcGr0+4)) | 0x00000001;        *(IpcGr0+5) = (*(IpcGr0+5)) | 0x00000001;        *(IpcGr0+6) = (*(IpcGr0+6)) | 0x00000001;        *(IpcGr0+7) = (*(IpcGr0+7)) | 0x00000001;     }
}

Thomas Yang1:

回复 user4780440:

CORE0也没有正常启动?那要检查下BOOT PARAMETER配置了,看SPI接口是否正常

赞(0)
未经允许不得转载:TI中文支持网 » sys/bios下的多核工程固化
分享到: 更多 (0)