Hello,I am trying to interface a STM32F072RB with an MX25R1645FM1IL0 external SPI Flash Chip (16Mbit). When I download the program via a JLink Plus to the STM32 the build output shows the following error:
Target info: ------------ Device: STM32F072RB VTarget = 3.330V State of Pins: TCK: 0, TDI: 0, TDO: 0, TMS: 1, TRES: 1, TRST: 0 Hardware-Breakpoints: 4 Software-Breakpoints: 8192 Watchpoints: 2 JTAG speed: 4000 kHz No Algorithm found for: 20000000H - 200000C7H Partial Erase Done (areas with no algorithms skipped!) No Algorithm found for: 20000000H - 200000C7H Partial Programming Done (areas with no algorithms skipped!) Partial Verify OK (areas with no algorithms skipped!) Application running ... Flash Load finished at 10:40:40
Description Device Size Device Type Address Range Programming Algorithm: STM32F0xx 128kB Flash 128k On-Chip-Flash 08000000H - 0801FFFH (all default)
Lastly, below, the start and Size fields for the 'STM32F0xx 128kB Flash' are as follows: Start: 0x08000000 Size: 0x00020000 (default)
What is the error "No Algorithm found for: 20000000H - 200000C7H" referring to? My SPI Flash is managed entirely by the STM32... So do I need to include a programming Algorithm for this chip? (I would think not).
It's RAM, you can't program it this way. You'd use a Debug Script (.INI) and LOAD the code.
But, the issue really is that you have data in RAM, you really shouldn't. I'm guessing this is for a relocated vector table, but code in main() should copy there. Review the code and what information might be present in the .MAP file as to what variable name you have situated there.
RAM data is usually initialized by the __main function which copies fresh data out of ROM/FLASH upon startup, normally your statics, either zeroed or with initial values.
For the MX25R1645FM1IL0 you'd need to write a Flash Loader/Algorithm (.FLM) if you want Keil to download content to it.