I am developing an application, where I store the settings in EEPROM. Fir these tests, I have a circuit of just an Arduino Mega in it.
The config blocks are 64 bytes in size. The first two blocks are special; the other blocks all represent the same object (as in C++ Object).
When I write the first two special blocks and the first standard block, al goes well.
For debugging purposes, I output the blocks as Key/Value pairs to the Serial Monitor.
I increase the number of standard blocks to write, and up to block 9 goes OK.
Halfway block 10 my output stops.
I stop the simulation and I write the EEPROM data to a file. When I examine the EEPROM data, I see all the expected info. Block 10 has been completely written to EEPROM. It is p[ossible I made a programming error, or I ran out of memory, or something. I haven't investigated that because of the following:
* When I stop the simulation and start it again, just 1 character is printed to the serial monitor
* When I load the eeprom with empty data, and start the simulation, It only outputs 1 char.
* When I reload the firmware, just 1 char is printed
* When I reload the firmware AND empty the EEPROM, only one char is printed
* When I delete the Mega, and place a new one, load firmware, then the program runs once, and freezes halfway the 10th block. Then I am stuck again to 1 char outputs
This behavior is consistent. Apparently the Arduino gets into a state which bricks it. Fortunately it is a virtual one
I can provide you with the HEX file causing this behavior. Because of this freeze debugging is very difficult: I yet have to think of a way of doing it....
Marcel
The config blocks are 64 bytes in size. The first two blocks are special; the other blocks all represent the same object (as in C++ Object).
When I write the first two special blocks and the first standard block, al goes well.
For debugging purposes, I output the blocks as Key/Value pairs to the Serial Monitor.
I increase the number of standard blocks to write, and up to block 9 goes OK.
Halfway block 10 my output stops.
I stop the simulation and I write the EEPROM data to a file. When I examine the EEPROM data, I see all the expected info. Block 10 has been completely written to EEPROM. It is p[ossible I made a programming error, or I ran out of memory, or something. I haven't investigated that because of the following:
* When I stop the simulation and start it again, just 1 character is printed to the serial monitor
* When I load the eeprom with empty data, and start the simulation, It only outputs 1 char.
* When I reload the firmware, just 1 char is printed
* When I reload the firmware AND empty the EEPROM, only one char is printed
* When I delete the Mega, and place a new one, load firmware, then the program runs once, and freezes halfway the 10th block. Then I am stuck again to 1 char outputs
This behavior is consistent. Apparently the Arduino gets into a state which bricks it. Fortunately it is a virtual one
I can provide you with the HEX file causing this behavior. Because of this freeze debugging is very difficult: I yet have to think of a way of doing it....
Marcel
Last edited by arcachofo on Fri Dec 24, 2021 3:21 am; edited 1 time in total (Reason for editing : Marked as solved (green color))