How to reach maximum Flash programming performance?

11-Sep-2024

Programming applications to a microcontroller can take a lot of time, especially if the application is large, the storage device is external memory and the data rate is slow.


Possible solutions

Minimize download time - general settings
  • Check the frequency of the debug interface and set up the maximum debug frequency. See the topic How to find the maximum debug frequency.
  • Make sure Use buffer compression and Use hash verification is enabled via Hardware | <device> | Configure.
  • Enable Mass erase before program via Hardware | <device> | Configure when programming large files. If programming small files, make sure to disable this option to get better flash performance.
  • Check the Device specific chapter
  • Disable
    • Verify on the fly
    • Verify after download (internal flash devices only)
    • Verify after program (external flash devices only)


Note that disabling the verify operations is not recommended and may lead to a state where it is not noticed that the data is not correctly programmed. Use it at your own risk. However, disabling the verify operations may significantly improve overall programming speed.


Minimize download time - tips and tricks
  • Use short debug cables. Use only cables supplied in the BlueBox package. Do not use custom extension cables, because the maximum debug frequency will be slower.
  • Only download code that has changed. Exclude bootloaders, OS kernel, static data, etc. If your application has multiple download files, the first time you download the application, you have to download everything. When compiling source code, not all files change, so you can exclude files that don't change.
  • Do not perform Download every time you just want to reset the microcontroller. Use Reset.


Device specific


More resources

Was this answer helpful?