This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

No Algorithm found for: 20000000H - 200000C7H - uVision

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



My Programming Algorithms (Flash -> Configure Flash Tools -> Utilities Tab -> Settings -> Flash Download Tab) the settings are as follows:

Download Function: Erase All Sectors (toggled), Program (checked), Verify (checked), Reset and Run (checked)
RAM for Algorithm:  Start: 0x20000000, Size: 0x1000

                                                    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). 

Parents
  • 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.

Reply
  • 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.

Children