Psoc4 BootLoader Application Validation

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Dave_Long
Level 3
Level 3
10 replies posted 10 questions asked 10 sign-ins

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
Moderator
250 solutions authored 100 solutions authored 50 solutions authored

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
Moderator
250 solutions authored 100 solutions authored 50 solutions authored

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.

0 Likes