Hello
I have 2 ULINK2 USB-JTAG Adapters and two MCBSTR9 Keil Boards. The former has a STR12FW44 MCU (Vers.3) and the latter a STR912FAW44 (Vers.4). I cannot program Flash memory in any board using any adapter. Messages I obtain are:
Error: Flash Download failed - ARM966E-S or Could not stop ARM device. Please check the JTAG cable.
First I though my project was badly configured, but I have spend some days checking it and I can't find where my error is. I've worked with ULINK and I never had problems to download my code.
Currently I'm using a licensed copy of uVision3 with MDK-ARM Version 3.22a. My configuration settings are:
Device: STR12FW44 or STR12FAW44 (I think it makes no difference). Read/Only memory areas IROM1 checked (startup) address range: 0x0 - 0x88000
Debug settings: ULINK ARM Debugger. Use reset at startup, Verify Code Download, Download to Flash. ULINK 2 Firmware version is 1.36 and JTAG clock is 1MHz. By the way, ULIN2 is correctly listed as HID in PC hardware settings.
Driver for Flash programming: Update Target before debugging checked. Algorithm: STR91xFxx4 Flash Bank 0 (512K, starting at 0x000000): Erase sectors, Program, Verify and Reset and Run.
Perhaps I gave too much information, but I'm stalled and I don't know what to do. ¿Maybe is Flash corrupted?.
Any help would be appreciated. Thank you.
Set the boot enable pins to boot from something other than FLASH (0,0 is boot from flash, 0,1 will always boot to something valid). If you do this you should be able to program these 2 boards with any working JTAG.
Hello Robert, and thanks for your help. But I think I need a little more knowledge.
What do you refer as boot enable pins?. I cannot find anything on this topic in Keil support knowledgebase. Is this some kind of hardware configuration or software instead?
As far I know, the CPU can boot only from Flash memory address 0x000000 (from Bank0 or Bank1). This is stated in STR91xF Datasheet and I can't find alternative configurations in STR9 reference manual.
So, even if it is a beginner question: where are those boot enable pins?.
Once again, thank you for your consideration.
PS: One odd thing: when I click uVision button "Options for target" I can see Utilities Tab correct displayed, but when I access by Flash -> Configure Flash tools there's nothing displayed on that tab. Maybe it is not related to my problem but who knows...
Sorry, I may have jump the gun. I have a Keil STR7 and STM32 board and they both have boot enable lines that always allow you to boot the board to a stable state and be able to load via JTAG. I have on both of these boards loaded code into the base of flash that causes the problem that you describe and the way I have gotten them out is to boot to the System code by setting the boot enable lines to something other than the base of flash bank 0.
I have already steered you down the wrong path so feel free to ignore me at any time.
If you have at any time been able to load these boards, you "may" want to try using the JTAG to cause it to boot to bank1 and then try and load you code. If you have never been able to program them then they "may" be defective.
View all questions in Keil forum