Other Parts Discussed in Thread: CONTROLSUITE, C2000WARE, UNIFLASH
Hello,
I am facing with a strange problem. I have developed the bootloaders, which can program/verify CPU1 or CPU2 flash memory(or OTP DCSM locations) using FlashAPI functions. The bootloaders are loaded(using parallel boot mode access) and running from shared GSRAMx. One bootloader is for accessing the CPU1 and second for the CPU2 core. I have programmed the CPU1 flash, CPU2 flash and then the DCSM OTP locations of CPU2(everything pass without errors). After this, I power-down the device, power-up the device, load the bootloader for CPU1 to GSRAM(seems that load is working OK) and try to program the DCSM OTP CPU1 memory locations. But my bootloader stop working! It seems like after the power-down and power-up the device, the DCSM OTP CPU2 security settings(programmed only the Zone1 Z1-LINKPOINTER1/2/3, Z1-PSWDLOCK, Zx-GRABRAM, Zx-GRABSECT and Zx-CSMPSWD0/1/2/3 locations) disable running my code for programming CPU1 DCSM OTP locations... Is it normal? Why is this happening? I have expected, that only CPU1(as master core), can disable the parallel boot mode, or not?
If I create an one bootloader, which can in one code access the flash in CPU1 or CPU2 without the powering-down and up the device, will am I able to successfully program the DCSM OTP locations of both CPUs? Exist some example code in controlsuite/C2000ware where is switching between accessing CPU2 from CPU1 and back?
Thank you for your answers!
Best regards,
Tomas Lehotsky