User Tools

Site Tools


manual:ports:armcm4_xmc4

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
manual:ports:armcm4_xmc4 [2017/11/06 10:15]
voorburg
manual:ports:armcm4_xmc4 [2022/11/07 11:31] (current)
voorburg [Checksum location]
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. To reserve this space, simply enter one extra dummy entry into the interrupt vector table. 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. To reserve this space, simply enter one extra dummy entry into the interrupt vector table. 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.
Line 33: Line 33:
 {{:​manual:​ports:​infineon_xmc4_stackpointer_init.png?​|}} {{:​manual:​ports:​infineon_xmc4_stackpointer_init.png?​|}}
  
- 
-===== XCP Erase Timeout T4 ===== 
-A flash erase operation on Infineon XMC4 targets takes a relatively long time. The XCP communication protocol used during a firmware update, allows a timeout to be set for such erase operations. The default value in both MicroBoot and BootCommander is 10 seconds (10000 ms). It is recommended to increase this, especially for Infineon XMC4 targets with more than 512kb of flash. Empirical testing shows that a value of 40 seconds works good for an Infineon XMC4 target with 2Mb of flash. ​ 
- 
-In BootCommander this timeout can be configured with the **-t4=[timeout]** option. Example: -t4=40000 for setting the T4 erase timeout to 40 seconds. In MicroBoot this can be configured via the user interface: 
-{{:​manual:​ports:​infineon_xmc4_xcp_erase_timeout.png?​nolink&​|}} 
  
manual/ports/armcm4_xmc4.1509959742.txt.gz ยท Last modified: 2019/09/24 22:14 (external edit)