Dear,
When we use S9S12XHY128F0VLMR, we define an unsigned char global array with a size of 34 bytes, and make it stored in the paging random access memory by preprocessing instructions. (See Figure 1 for the code).
The allocation in the.map file is shown in Figure 2.
Since it is not initialized before use, and is assigned to another array through a for loop (the code is as follows:
for(i=0;i<len3;i++)
{
Data[i]=TEL_DrvingInfo[i];
}
We find that TEL_DrvingInfo[0] & 0x80 is a random value. There are other bit operations on TEL_DrvingInfo[0] via '&' and '|' in the code (as follows Figure 3),.But there is no operation to change the value of the highest bit of TEL_DrvingInfo[0].
Under the above prerequisites, there are two questions I would like to consult:
1. Suppose that TEL_DrvingInfo[0] & 0x80, which is the highest bit of array element 0, is 1 when the chip is reset, will it be 1 every time the chip is reset? (Is it 0 every time you reset it?) Does program running or chip reset change the value of this bit?
2. Whether there are extreme conditions, such as strong magnetic, high temperature, will cause the value of this uninitialized bit to change, is there a way to clear the value of the 0 bit or clear the value of the 0 partition without brushing the program?
Thank you!
Best Regards.