cancel
Showing results for 
Search instead for 
Did you mean: 

PSoC 4 MCU

Dave_Long
New Contributor II

Hi:

    About the Psoc4 bootloader  application in the memory  of the flash,I have some question :

    1:where the checksum for the bootloader portion of the flash and the booloader size are placed in the flash?How should I know?

    2:Why the "start" parameter is 0x0C when call the "Bootloader_Calc8BitSum " function to calculate the checksum of the bootloader application  but not from the 0x00?

       pastedImage_0.png

0 Likes
1 Solution
GeonaP_26
Moderator
Moderator

Flash locations from 0x00000000–0x000000BF contains exception vector table. The exception vector table can be either in flash (0x00000000–0x000000BF) or in SRAM (0x20000000–0x200000BF). The PSoC Creator startup code stores it in SRAM by default so that it can be changed. For more details, please refer to Procedure to Fetch Contents from Every Flash Location in PSoC®4 – KBA91483

Whenever you try to access these locations, the CPU subsystem translates it to SRAM address 0x20000000–0x200000BF. Therefore, accessing the first C0 flash locations will provide incorrect values. Hence, bootloader checksum validation ignores these locations.

cyelftool.exe -P command during build updates the bootloader checksum and bootloader size in variables Bootloader_Checksum and Bootloader_SizeBytes placed in .bootloader memory section.

View solution in original post

0 Likes
1 Reply
GeonaP_26
Moderator
Moderator

Flash locations from 0x00000000–0x000000BF contains exception vector table. The exception vector table can be either in flash (0x00000000–0x000000BF) or in SRAM (0x20000000–0x200000BF). The PSoC Creator startup code stores it in SRAM by default so that it can be changed. For more details, please refer to Procedure to Fetch Contents from Every Flash Location in PSoC®4 – KBA91483

Whenever you try to access these locations, the CPU subsystem translates it to SRAM address 0x20000000–0x200000BF. Therefore, accessing the first C0 flash locations will provide incorrect values. Hence, bootloader checksum validation ignores these locations.

cyelftool.exe -P command during build updates the bootloader checksum and bootloader size in variables Bootloader_Checksum and Bootloader_SizeBytes placed in .bootloader memory section.

View solution in original post

0 Likes