Keil Debugging Issue – STR736FV2T6 + ULINK2 “No Algorithm Found” During Debug Start

Hi everyone,

I’m running into a problem while trying to debug my hardware using ULINK2 in Keil MDK v5.42. I'm working with the STMicroelectronics STR736FV2T6 (ARM7TDMI core), and every time I start the debugger, I get the following error:

No Algorithm found for: 00000000H - 0000D663H
No Algorithm found for: 00010000H - 0001FFFFH
No Algorithm found for: 00020000H - 0002B433H
No Algorithm found for: A0000000H - A00021DFH

My current memory setup:

  • IROM1: 0x80000000, size: 0x20000 (128 KB)

  • IRAM1: 0xA0000000, size: 0x4000 (16 KB)

Flash Algorithm:

  • I selected STR73x Flash 256K (range: 0x80000000 – 0x803FFFF) in the Flash Download settings.

What I’m trying to do:

I am not flashing the device — I’m trying to start a debug session to step through the firmware. However, Keil still throws the above “No Algorithm found” errors related to 0x00000000, even though my code is mapped to 0x80000000.


System Info:

  • Keil MDK Version: 5.42

  • License Type: Activation Code

  • Compiler: ARM Compiler 5.06 update 6 (build 750)

  • Target MCU: STR736FV2T6 (ARM7TDMI)

  • Debug Adapter: ULINK2

  • OS: Windows 11

How do I fix this error and get debugging to work properly?

Any help would be much appreciated! Thanks in advance.

  • every time I start the debugger, I get the following error

    This is most likely because µVision automatically starts a Flash download before you start a debug session (default). You can turn this off by un-selecting the checkbox 'Update Target before Debugging' in the dialog 'Options for Target - Utilities'.

    No Algorithm found for: 00000000H - 0000D663H
    No Algorithm found for: 00010000H - 0001FFFFH
    No Algorithm found for: 00020000H - 0002B433H
    No Algorithm found for: A0000000H - A00021DFH

    So it seems that you located the code of your application at address 0x00000000 and 0xA0000000. Otherwise, µVision would not try to download the application to this address. Please check your address settings in the project or in the scatter file if you have one.

    My current memory setup:

    • IROM1: 0x80000000, size: 0x20000 (128 KB)

    • IRAM1: 0xA0000000, size: 0x4000 (16 KB)

    As mentioned above, this does not match the error messages while Flash programming. Do you use a linker scatter file that defines different address ranges for ROM and RAM.

    I am not flashing the device — I’m trying to start a debug session to step through the firmware.

    How do you want to debug when you want to locate the code of your application into the IROM area without flashing the code? The code must be programmed into this area before you start a debug session.

    As an alternative, you would have to locate the code of your application into the on-chip RAM of the microcontroller. Before starting the application in a debug session, you would have to set the PC and SP registers. Please check our example projects in the legacy pack. Some of them have RAM targets as well.