“Flash_Program_Temperature_deg_C” Parameter of the (non-CY8C20XX6A) BootLdrI2C User Module Versions 2.00-2.20 is Broken - KBA82148

Version: *B

 

Question:

“Flash_Program_Temperature_deg_C” user module parameter value is ignored in the (non-CY8C20XX6A) BootLdrI2C UM versions 2.00-2.20, and is never used if the application does not call the BL_SetTemp API function. The actual temperature value that is used in the programming algorithms is always zero degrees, Celsius. What is the problem and how do I make this working?

 

Answer:

This problem can have a negative impact on the flash's endurance and/or data retention after a bootload is executed.

There is no negative impact on:

  • the flash's performance (endurance and/or retention), if the bootloader has not yet been used to do a bootload operation.
  • the flash used by the bootloader code. Only flash that the bootloader erases and writes to is affected by this problem.
  • the flash if the checksum verification fails during boot-up and the bootloader then enters bootloader mode. In this case, the proper value from the "Flash_Program_Temperature_Deg_C" user module parameter is used during the bootload, that must subsequently occur.

Workaround:

  • Call the "BL_SetTemp()" API function in application code to set the proper temperature value to be used before making any call to the "ENTER_BOOTLOADER()" API function in the application code.
  • Or, call the "BL_SetTemp()" API function in application code to set the proper temperature value to be used, before executing a bootload, while communicating with the device using the bootloader I2C address.

 

The problem has been fixed in the BootLdrI2C user module version 2.30 (in PSoC Designer 5.2).