This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Define a XDATA byte that won't clear on reset

Guys - I am new to this micro and this tool set, and I need some help. I need to set a flag and then perform a CPU software reset (due to another problem). But I need to have a byte that survives the software reset and does not get cleared. If I define an XDATA byte, the STARTUP code will (I think) zap it before I can see it.

How can I write an XDATA byte (or any other byte for that matter) that will survive a software reset (not a power down, just a reset)?

Can anyone help?

Thanks in advance!

Chris

Parents
  • Sorry, you are correct. I am using the 8051F320 device, and uVision4.

    I went into STARTUP and changed the code to not clear the XRAM and I think that did it. I was wondering if there is any way to refer to an XRAM location without the compiler knowing about it and clearing it, but I guess not. I will have to make an exclusion for that byte in STARTUP so the rest gets cleared.

    I am fighting a USB problem where the 'F320 gets stuck and stops communicating. I figured out how to detect that condition and reset the device. However, after the reset the device goes away and never enumerates again. (I think it is the old USB problem of devices that go away while in use.) Anyway, I found that if I reset the device again then it magically enumerates again, so I was trying to make the code reset it and then reset it again.

    Thanks for your help, Neil!

    Chris

Reply
  • Sorry, you are correct. I am using the 8051F320 device, and uVision4.

    I went into STARTUP and changed the code to not clear the XRAM and I think that did it. I was wondering if there is any way to refer to an XRAM location without the compiler knowing about it and clearing it, but I guess not. I will have to make an exclusion for that byte in STARTUP so the rest gets cleared.

    I am fighting a USB problem where the 'F320 gets stuck and stops communicating. I figured out how to detect that condition and reset the device. However, after the reset the device goes away and never enumerates again. (I think it is the old USB problem of devices that go away while in use.) Anyway, I found that if I reset the device again then it magically enumerates again, so I was trying to make the code reset it and then reset it again.

    Thanks for your help, Neil!

    Chris

Children