Hi Jonathan,
1. What are the advantages and disadvantages of using external Flash for program memory?
advantage: Compare with FMC/FSMC, QSPI support low cost and small package NOR flash. It use less IO pad, decrease PCB size effectively, and decrease the design complexity of PCB. Compare to internal Flash, QSPI well extend the memory size with very low cost.
disadvantage: Run on QSPI is slow than internal flash when MCU use high clock speed. Debug on QSPI is also a bit complex.
2. Are there any benchmark on performance of external vs internal Flash?
Modified CoreMark benchmark application (added code for cache manipulation and execution time capture)
Force 1%, 2%, 3%....10% cache misses by doing X number of iterations and executing n% with cache disabled and (100-n)% with code cache enabled. X = 4000 for these results.
Cache miss vs. Cache off performance is not equal. Cache miss adds delay cycle for search and replace.
QuadSPI Configuration
- System at 1.8V Core VDD and IO VDD
- IRC48 and 32kHz clock
- Alias code region
- Parallel (8-bit) and Individual (4-bit)
- SDR, 100, 96, and 48 MHz
- Sys Cache on/off
- Data mapped to internal > 0x2000_0000 memory space
- 512-byte Flexible AHB buffer





3. How can we make it easy to program external Flash program in high volume production.
NXP has tools for that. Blhost is used in command line and KinetisFlashTools The Kinetis Flash Tool is a GUI application on Windows® OS, aiming to offer the user an ease-of-use friendly user interface to communicate with the Kinetis device, running the Kinetis bootloader application.
4. How do we secure the firmware code within these external Flash memory?
When generate .SB file, you can use a key file to encrypt content. So the content in SPI flash is ciphertext.