FAQs for FLASH Programming


The embedded tools company

Search FAQs



PDF document ( 24KB / 10-Jan-2020 )


After erasing the internal FLASH, some cells do not show the default erase value.
Ref: 0522

This is generally due to an address dependent ECC for the internal FLASH. So, if the FLASH and the FLASH ECC are cleared then the ECC values 0xFF do not match the cleared FLASH 0xFF and result in bit error corrections.

How can I improve the FLASH programming time?
Ref: 0474

  • Use FLASH.ReProgram command group instead of FLASH.Program / FLASH.AUTO .
  • Use the /DualPort option if possible.
  • Close all TRACE32 memory dump windows during FLASH programming.
  • Increase the JTAG clock if possible.
  • Use target controlled FLASH programming method when available instead of tool based method.

    Refer to the TRACE32 FLASH programming documentation for more information.

  • I got "bus errors" when dumping FLASH memory during programming or erase process.
    Ref: 0523

    Usually it is not allowed to make speculative read accesses to FLASH memory which is currently programmed or erased. A read access can lead to undefined effects. So you should simply avoid dumping these sections during erase.

    When using target controlled flash programming algorithms, flash is not completely erased or programmed.
    Ref: 0190

    Target controlled FLASH programming algorithms are running on the CPU itself. If the execution of the FLASH algorithm is interrupted, the error message "FLASH algorithm did not execute completely" is displayed in TRACE32. This can be due to several reasons:
    • The FLASH algorithm could be interrupted by the watchdog's reset in case a watchdog is enabled. The TRACE32 demo scripts often include command sequences to disable the watchdog. Please refer otherwise to the documentation of your target processor/board.
    • An enabled data cache could be also the reason of this wrong behavior. Please switch the data cache off in your FLASH programming script, in case it is enabled.
    • The loaded object file includes data sections mapped to the same memory range where the FLASH algorithm is loaded. As a consequence, the FLASH algorithm is overwritten when the object file is downloaded to the memory. You can check the memory load map of your object file using the commands Data.LOAD.auto <object-file> /NoCODE> then sYmbol.List.MAP . If this is the case, then you can exclude the RAM when downloading the object file by specifying the memory range of the FLASH in the Data.LOAD command e.g. Data.LOAD.auto <object-file> <FLASH-memory-range>
    • Wrong flash clock/bus configuration.
    • Wrong FLASH binary.
    Please refer for more information to the following document:

    Which FLASH devices are currently supported?
    Ref: 0270

    You can find a list of supported FLASH devices here:




    Copyright © 2020 Lauterbach GmbH, Altlaufstr.40, 85635 Höhenkirchen-Siegertsbrunn, Germany   Impressum     Privacy Policy
    The information presented is intended to give overview information only.
    Changes and technical enhancements or modifications can be made without notice. Report Errors
    Last generated/modified: 10-Jan-2020