1

我正在尝试在 MPC5748G 中实现 LZMA 算法(压缩/解压缩算法),但是我需要一个关于如何使用多个内核的示例,因为有 2 个 160Mhz 内核

我正在使用 LZMA 来减少刷机时间,文件首先被压缩然后发送到 MPC ......然后它应该解压缩文件并执行刷机操作。

该算法需要在单独的核心上运行,因为另一个核心在做其他事情,包含很多任务。结果不是很好,解压时间太长。

正如@marcus 评论的那样:问题不在于编写 lzma 解码器,而是在不同的内核上运行它

使用其他核心的任何帮助都将非常有帮助。

4

1 回答 1

0

Core_Boot(void) 怎么样?

/*******************************************************************************
Function Name : Core_Boot
Engineer      : Lukas Zadrapa
Date          : Apr-20-2016
Parameters    : NONE
Modifies      : NONE
Returns       : NONE
Notes         : Start e200z4b and e200z2 cores
Issues        : NONE
*******************************************************************************/
void Core_Boot(void)
{
    /* Enable e200z4b and e200z2 cores in RUN0-RUN3, DRUN and SAFE modes */
    MC_ME.CCTL[2].R = 0x00FC;   /* e200z4b is active */
    MC_ME.CCTL[3].R = 0x00FC;   /* e200z2 is active */

    /* Set start address for e200z4b and e200z2 cores */    
    MC_ME.CADDR[2].R = E200Z4B_BOOT_ADDRESS | 1; /* e200z4b boot address + RMC bit */
    MC_ME.CADDR[3].R = E200Z2_BOOT_ADDRESS | 1; /* e200z2 boot address + RMC bit */ 

    /* Mode change - re-enter the DRUN mode to start cores */
    MC_ME.MCTL.R = 0x30005AF0;      /* Mode & Key */
    MC_ME.MCTL.R = 0x3000A50F;      /* Mode & Key inverted */

    while(MC_ME.GS.B.S_MTRANS == 1);    /* Wait for mode entry complete */
    while(MC_ME.GS.B.S_CURRENT_MODE != 0x3);    /* Check DRUN mode entered */
}//Core_Boot

您需要在内核之间交换数据吗?问候

于 2017-01-28T23:17:37.840 回答