2009-02-05 04:48 AM
2011-05-17 12:57 AM
This is most annoying.
All I want to do is boot from bank 1 (32K bank), located at 0x000. Then IAP the main app to bank 0 (512K) located 0x80000 (or anywhere really). For the life of me I cannot get the STR912 to erase/program the larger flash bank. This concept of boot bank and non book bank is also confusing - where do they physically live in the memory map? Does changing the start address actually move the flash address? There is also an issue, should I get it working where exceptions would go to the bootloader (located in 0x000) - ok so this may not be such an issue - I could handle them there and jump back to main app. But would be nice if the main app handles the exceptions. Why have ST decided to have a large default boot bank relative to the other one, surely the boot bank is going to run a much smaller exe that the main app. I have tried all the examples and been playing with the code for the last week or so without any success, well I can write to the smaller 32K flash ok - but this is not what I want.2011-05-17 12:57 AM
You can change the boot bank. On default, bank 0 is the boot bank. But you can set bank 1 as boot bank by changing the CSX (Chip Select Mapping). See for example
. If you register there you can get a nice example project. You can only change the bit if you use a jtag flasher/Debugger which supports the ICP programming mode (e.g. ulink2 from Keil). I am using bank 1 as boot bank (here I have located the bootloader) and than I jump to bank 0 for the normal application. Alex