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.
Hello, I'm simulating a little piece of code with Target Philips P89C669:
#include "REG669.H" temp XDATA 10d ORG 0000h JMP INICIO INICIO: MOV AUXR,#00h ;use on-chip XRAM MOV A,#33h MOV R0,#temp ponotro33h: MOVX @R0,A DJNZ R0,ponotro33h JMP INICIO END
When the Debugger simulate MOVX @R0,A , in the Output Window i see "*** error 65: access violation at 0x00FF0A : no 'write' permission" this is due to the simulator use the PORT2 to access external XRAM, but this is not correct because whit MOV AUXR,#00h the uC should access on-chip XRAM.
If I choose 89C668 this code work fine and the simulator write in on-chip XDATA What is the problem?, Is this a bug in the 89C669 simulation? Can I solve this problem?
Many Thanks
here we go again
If the Keil simulator were to simulate each of the 4711 derivatives of the '51 perfectly, nobody could afford it.
a solution would be (I guess you code in C):
insert the following where applicable #ifdef SIMULATE P2 = 0 #endif
if your P2 is 'permanently' 0xff then let the simulator 'believe' that it works in that area, just tell it you have external RAM there
If you are using the full version of Keil (you must be, otherwise why the 669) contact Keil directly, it seems a small enough fix (since it works on the 668) that they might consider it.
Erik