2005-07-05 05:17 PM
2005-07-05 11:25 AM
I have an uninitialized RAM variable at 0x87F on a ST72F321 that is checked after RESET to determine if BootBlcok should be executed, or if the MainApp should be executed. This variable is set equal to 0xBB by the MainApp before a RESET cmd is executed to force code execution to remain in BootBlock. During design an test, I stayed clear of RAM values such as 0x00 and 0xFF thinking that they would be the likely values after reset.
But as 'luck' would have it, several units are powering up with a value of 0xBB, causing code execution to remain in BootBlock. Did I pick a popular reset value, or is any values as likely as any other? Thanks2005-07-05 05:17 PM
During Power-up the RAM value can be anything it cannot be assumed to be 00 or FF. When testing on emulator the ram values in emulator are generally 00. I have seen RAM reset values problems earlier. It is wise to clear all the RAM using start-up routine as provided by the compiler.
For decision making, You can probably check 4 different locations for RAM values to decide if to start from Boot block. an example is 0x55 0xAA 0XBB 0x33. But it is still dangerous to use at power ON. RAM values remain intact untill minimum Vdd is available for the product. Did you look at SICSR register which can in addition help you for decision making ?