Pacetech
09-09-05, 09:00 PM
I have a SPI EEPROM working with the PODs, its an Atmel AT25HP512. Its 512K and I'm moving my lookup tables in there. I went from having a lookup table for 6 of my things to 60. This will free up my precious POD Program Memory. And I haven't used up half the memory of the SPI chip yet.
I have it configured for 32K x 16. I can move blocks of memory to/from RAM or Program Memory to the SPI EEPROM. I'm writing words to allow me to re-program the whole memory via the CANBUS. That's working pretty well.
Then I had an idea, what if I were to use up some of the memory to hold my Forth code, I could easily update my Forth code via CAN. So I wanted to get some input/confirmation on what I would need to accomplish that.
1. My initial forth code will be the SPI EEPROM to Program Memory mover (with a Program Flash memory eraser).
2. Any code after that (my application) will need to reside on the next program memory flash block as to allow it to be erased without erasing any of the code in item 1.
3. I have to be able to move over the autostart vector (where is that again?)
4. To executate a flash update, I would set a byte in the Data Flash to indicate a flash update is needed. It would be cleared
5. Is there anything else I would need to copy & move??
Now for the details, I need to find out what the Program Flash locations are, but it appears PHERE is acting unusual.
COLD
IsoMax V0.76
SCRUB
IsoMax V0.76
HEX OK
." PFAVAIL = " PFAVAIL . PFAVAIL = 28FE OK
." PHERE = " PHERE . PHERE = 7E00 OK
If I download a medium sized program(1300 (hex) bytes), I get the following:
." PFAVAIL = " PFAVAIL . PFAVAIL = 15FE OK
." PHERE = " PHERE . PHERE = 7E86 OK
I would expect PHERE to be 9100, not 7E86.
Any ideas?
I have it configured for 32K x 16. I can move blocks of memory to/from RAM or Program Memory to the SPI EEPROM. I'm writing words to allow me to re-program the whole memory via the CANBUS. That's working pretty well.
Then I had an idea, what if I were to use up some of the memory to hold my Forth code, I could easily update my Forth code via CAN. So I wanted to get some input/confirmation on what I would need to accomplish that.
1. My initial forth code will be the SPI EEPROM to Program Memory mover (with a Program Flash memory eraser).
2. Any code after that (my application) will need to reside on the next program memory flash block as to allow it to be erased without erasing any of the code in item 1.
3. I have to be able to move over the autostart vector (where is that again?)
4. To executate a flash update, I would set a byte in the Data Flash to indicate a flash update is needed. It would be cleared
5. Is there anything else I would need to copy & move??
Now for the details, I need to find out what the Program Flash locations are, but it appears PHERE is acting unusual.
COLD
IsoMax V0.76
SCRUB
IsoMax V0.76
HEX OK
." PFAVAIL = " PFAVAIL . PFAVAIL = 28FE OK
." PHERE = " PHERE . PHERE = 7E00 OK
If I download a medium sized program(1300 (hex) bytes), I get the following:
." PFAVAIL = " PFAVAIL . PFAVAIL = 15FE OK
." PHERE = " PHERE . PHERE = 7E86 OK
I would expect PHERE to be 9100, not 7E86.
Any ideas?