User Tools

Site Tools


manual:ports:armcm4_s32k14

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
manual:ports:armcm4_s32k14 [2020/03/20 11:43]
voorburg created
manual:ports:armcm4_s32k14 [2022/11/07 11:32]
voorburg [Checksum location]
Line 3: Line 3:
 ===== Bootloader size ===== ===== Bootloader size =====
  
-Due to the presence of the bootloader in the on-chip flash memory, the start address of the user program needs to be adjusted ​so make sure both programs do not overlap. Additionally,​ the bootloader'​s flash driver needs to be properly configured to prevent accidental erasure of the bootloader during firmware updates.+Due to the presence of the bootloader in the on-chip flash memory, the start address of the user program needs to be adjusted ​to make sure both programs do not overlap. Additionally,​ the bootloader'​s flash driver needs to be properly configured to prevent accidental erasure of the bootloader during firmware updates.
  
 To reserve flash memory for the bootloader and protect it from being erased and/or reprogrammed during firmware updates, comment out lines in table flashLayout[] in source-file **flash.c**. Refer to the demo bootloader program for an example. To reserve flash memory for the bootloader and protect it from being erased and/or reprogrammed during firmware updates, comment out lines in table flashLayout[] in source-file **flash.c**. Refer to the demo bootloader program for an example.
Line 18: Line 18:
 A 32-bit checksum value is programmed by the bootloader at the end of a programming session. Upon startup, the bootloader verifies the correctness of this checksum to determine if a valid user program is present and can be started. A 32-bit checksum value is programmed by the bootloader at the end of a programming session. Upon startup, the bootloader verifies the correctness of this checksum to determine if a valid user program is present and can be started.
  
-The bootloader programs this value at the end of the user program'​s vector table. Its exact location is configured by macro FLASH_VECTOR_TABLE_CS_OFFSET ​in flash.c. The vector table size can vary based on the microcontroller derivative you are using. Please verify that the default value of FLASH_VECTOR_TABLE_CS_OFFSET ​is correct. If not, you can simply override the value by adding the macro with the correct value to the blt_conf.h configuration header file.+The bootloader programs this value at the end of the user program'​s vector table. Its exact location is configured by macro BOOT_FLASH_VECTOR_TABLE_CS_OFFSET ​in flash.c. The vector table size can vary based on the microcontroller derivative you are using. Please verify that the default value of BOOT_FLASH_VECTOR_TABLE_CS_OFFSET ​is correct. If not, you can simply override the value by adding the macro with the correct value to the blt_conf.h configuration header file.
  
 The user program must reserve space for this 32-bit checksum value. With the default configuration of FLASH_VECTOR_TABLE_CS_OFFSET,​ the 32-bit checksum is located at vector number 254 in the vector table, since this one is unused anyways. All that needs to be done is writing a dummy placeholder value at this location. This reserves space for the checksum at memory address: flash base address + flash reserved for bootloader + FLASH_VECTOR_TABLE_CS_OFFSET. Refer to the demo program for an example. The user program must reserve space for this 32-bit checksum value. With the default configuration of FLASH_VECTOR_TABLE_CS_OFFSET,​ the 32-bit checksum is located at vector number 254 in the vector table, since this one is unused anyways. All that needs to be done is writing a dummy placeholder value at this location. This reserves space for the checksum at memory address: flash base address + flash reserved for bootloader + FLASH_VECTOR_TABLE_CS_OFFSET. Refer to the demo program for an example.
manual/ports/armcm4_s32k14.txt ยท Last modified: 2022/11/07 11:32 by voorburg