Hello, We have a product controlled by a C8051F060, which among other tasks measures the internal temperature of the MCU, and if it exceeds some rate of temperature for more than a specified time the measurement is saved to a 'internal high temperature table'.
The Same task is done in our older product, which is controlled by a C8051F020, and works as expected, with no issues, i.e. can be read and reset by a protocol command.
At The product controlled by the C8051F060 when reading this table includes unreasonable values (negative, 65535 and others), which appear also when there is no high ambient temperature what so ever.
This table is located in the data memory, as appears in the map file(L. 129): www.mediafire.com/.../file
I found it hard to troubleshoot the problem, since the task of saving high temperature functions properly at the F020 product and the task in the F060 is taken from there. It seems that the wrong data source is a result of some memory issue as stack overflowing.
I would be glad for any guidance for solving this issue. Thanks, Amitai
Ha ha - that old chestnut: the "proven-product syndrome"
You would not be the first to come across fundamentally flawed code which appears to "work" (sic) !
About 130 products are functioning with no other issues (measurement, communication, interrupts, ADC, DAC etc.) for over 3 years. The issue of this table appeared right at the beginning of production process. I assume that if other memory was effected we would notice it.
Again, since this table is located in the beginning of the data memory so it seems that it is overloaded from somewhere else. (In the RAM existence it's somewhere in the middle, according to the map).