主题:AM6422中讨论的其他器件
工具/软件:
您好、TI 支持团队。
我将 MCU_PLUS_SDK_am64x_09_01_00_41与 AM6422一起使用。
我将从 SBL OSPI 开始 CR5和 CA53、
但是、我想在 CA53引导之前运行 Flash_reset (CA53由 Bootloader_runCpu 引导)。
这是可能的吗?
原因是当 CA53启动时、闪存被初始化、
因此、我想在启动和结束之前在 SBL 侧执行 Flash_reset。
特定的 SBL OSPI (main.c)代码如下。该过程是否正确?
/* Run CPUs */ /* Do not run M4 when MCU domain is reset isolated */ if (!Bootloader_socIsMCUResetIsoEnabled()) { if(status == SystemP_SUCCESS && (TRUE == Bootloader_isCorePresent(bootHandle, CSL_CORE_ID_M4FSS0_0))) { status = Bootloader_runCpu(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_M4FSS0_0]); } } if(status == SystemP_SUCCESS && (TRUE == Bootloader_isCorePresent(bootHandle, CSL_CORE_ID_R5FSS1_0))) { status = Bootloader_runCpu(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS1_0]); } if(status == SystemP_SUCCESS && (TRUE == Bootloader_isCorePresent(bootHandle, CSL_CORE_ID_R5FSS1_1))) { status = Bootloader_runCpu(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS1_1]); } #if 1 // after /* Load the image on self core now */ if( bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS0_0].rprcOffset != BOOTLOADER_INVALID_ID) { status = Bootloader_rprcImageLoad(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS0_0]); } Flash_reset(gFlashHandle[CONFIG_FLASH0]); DebugP_log("Flash reset done\r\n\r\n"); #endif // after if(status == SystemP_SUCCESS && (TRUE == Bootloader_isCorePresent(bootHandle, CSL_CORE_ID_A53SS0_0))) { status = Bootloader_runCpu(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_A53SS0_0]); } if(status == SystemP_SUCCESS && (TRUE == Bootloader_isCorePresent(bootHandle, CSL_CORE_ID_A53SS0_1))) { status = Bootloader_runCpu(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_A53SS0_1]); } if(status == SystemP_SUCCESS) { #if 0 // before /* Load the image on self core now */ if( bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS0_0].rprcOffset != BOOTLOADER_INVALID_ID) { status = Bootloader_rprcImageLoad(bootHandle, &bootImageInfo.cpuInfo[CSL_CORE_ID_R5FSS0_0]); } Flash_reset(gFlashHandle[CONFIG_FLASH0]); DebugP_log("Flash reset done\r\n\r\n"); #endif // before status = Bootloader_runSelfCpu(bootHandle, &bootImageInfo); } /* it should not return here, if it does, then there was some error */ Bootloader_close(bootHandle); } }
此致、
今泉清正。