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

STR912. Executing from bank1

We use Keil uVision V3.50 (MDK 3.04) and ULINK device; development board MCBSTR9 vers.2 with STR912 MCU.

As the new version of MDK has a new feature for ULINK to program additional flash areas (UP, OTP, CFG), we try to select flash bank 1 (32k) as bootable and to start program from it.

There are no issues with programming CFG area, but there are with starting a program from it.

Now we are trying to figure out of whether it is a hardware bug, software issue or we just misunderstand something and supply wrong configuration options.

We do the following procedure when we try to start program from bank1:
1. Create a project, in startup file select BBADR = 0x400000 (also tried 0x0), BBSIZE=32k, NBBADR = 0x0, NBBSIZE = 512k.
2. In project options select:
- on "Target" page: <checked> IROM1 0x0 0x80000 <selected>
<not checked> IROM1 0x400000 0x8000 <not selected>
- on "Linker" page: checked "Use Memory layout from Target dialog" or
not checked (then using scatter file, where specify the same options as in "Target" page)
- on "Debug" page select ULINK emulator
- on Utilities->Settings select algorithm for programming bank1 (tried "STR91xFxxx Flash bank 1" and "STR91xFxxx Flash bank 1 ICP")
3. Compile project. Load it to flash (in some cases there are errors programming)
4. Use another project that contains only STR91xCFG.s file. Select flash by setting the corresponding bit in CFG area and load it to chip.
5. The program doesn't work.

Could you answer the following questions:

• What programming algorithm for flash bank 1 to use: ordinary JTAG programming or the new ICP?
• What project options and startup options to set?
• There are troubles accessing the processor when flash is switched to bank1,32k: when trying to go to debug mode or to load program to flash we get error message: "Could not stop ARM device! Please check the JTAG cable." Holding "Reset" button on MCBSTR9 board helped earlier, but:
• after loading one version of our program (that we were trying to start) into flash bank1,32k, the processor does not respond to ULINK emulator (isn't it supposed that emulator should be able to get access to processor in any case?). So, now we have "dead" device. Can we reanimate it?