We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Hi, I have a loop for (address = 1; address <= 5; address ++) ram_ptr[address] = 0xFA: where unsigned char xdata *ram_ptr = 0x0000; and unsigned int address; Somehow when i watch the simulation the address never increments and it always write FA in the same address 0x0000. I have also tried using XBYTE[address] to no use. Any solution to my problem would be greatly appreciated
So I take it that we're talking about two different simulators here -- uVision's simulator works fine, but DW8051's (some 8051 core design tool???) simulator does not. You can convince yourself that there is nothing wrong with the Keil side of the toolchain by looking at the resulting assembly code and verifying that it's "doing the right thing". Then you'll have to figure out why DW8051 (or whatever) is broken. I can't help you out with that one, however.
Maybe address is located by the linker at 0x0000? If it is, you set address to 0xAA with your first pointer assignment and the loop stops. The same could have happened with your ram_ptr.