This post is to be a helpful notification about a recent update to the Segger J-Link Programming Drivers to better support QSPI Flash devices connected to FlexSPI A on the i.MX RT685.
I had posted a project in the community that demonstrated a simple minimal configuration example of the i.MX RT685 using a low cost QSPI flash device connect to FlexSPI Port A
https://github.com/ehughes/rt_super
One issue that I noted in the article was that it appeared when programming with a Segger J-Link, you must first tell it to do a full erase of the target flash
This was a workaround for a bug in default behavior where the J-Link programming algorithm will only erase “dirty” sectors. With the default programming behavior, I noticed that I could get the CPU to hard fault when I would make trivial changes to a simple “LED Blink” sample project. It looked like that the dirty sector erase behavior was not functioning correctly and the image programmed to flash would not be correct. Performing a full erase before programming would fix this issue. Performing a full erase can be time consuming when a developer is in a debug/programing/test loop. Having this fixed would greatly improve productivity.
My project to test the issue is here (The IO_Toggle project) :
https://github.com/ehughes/rt_super_sw
The Fix:
Make sure to upgrade to J-Link V7.65A or newer. From the release botes:
The SuperMonkey used a smaller capacity flash device (W25Q128JVSIM) as compared to what was populated on the EVK. This W25Q128JVSIM uses a 3-byte read sequence.
I was able to verify the fix with my IO_Toggle test project @ https://github.com/ehughes/rt_super_sw