Does anyone have experience in flash programming?
I have been handled some code for a microprocessor and am having the following situation:
So far, I have come to find that the code I have been handled(*) has three "modes":
1) Mode 1: The program writes ALL the data from an Area 0 (which is where the startup code is situated I am guessing and is Flash) to an Area 5(which I think it is RAM). Then goes into an infinite loop to signal its end.
2) Mode 2: The program writes the data that receives through a LAN cable to certain sectors of the memory (the addresses are also given through the LAN cable from a host computer). Once finished it goes to an infinite loop to signal its end
3) Mode 3. Normal operation. The program performs just its normal workings.
Since Mode 1 and Mode 2 finish in infinite loops I am guessing to change the modes I have to change some dip switches and jumpers and reset.
The original programmer put very few comments so this is what I have come to know by reading the code.
Now, my guess is Mode 1 is used to copy a "bootloader" into RAM, mode 2 is to activate this bootloader so as to copy the whole program (update the firmware) and mode 3 is normal operation and this is the sequence I should use to update the firmware
- But isnt the RAM contents going to be erased if I reset the chip to change modes???
- And in the second mode, if I have the bootloader in RAM, is it going to be called from that area 5 and not normally from area 0?
Any thoughts or guesses that can illuminate my understanding will be greatly appreciated