X-Git-Url: https://git.gag.com/?p=fw%2Fsdcc;a=blobdiff_plain;f=debugger%2Fmcs51%2Fsimi.c;h=4a771a339fcc4782fa304011bb4b6aa4afb2733b;hp=d75e420d73a73f3b47d20e8c39e382a7047ef1c6;hb=HEAD;hpb=31264d72ca126a7ad645192145c94daf4d72e2a7 diff --git a/debugger/mcs51/simi.c b/debugger/mcs51/simi.c index d75e420d..4a771a33 100644 --- a/debugger/mcs51/simi.c +++ b/debugger/mcs51/simi.c @@ -82,7 +82,14 @@ static char *getMemCache(unsigned int addr,int cachenum, int size) { sendSim("ds 0x80 0xff\n"); } - else + else if ( cachenum == CMEM_CACHE ) + { +#define CMEM_CACHE_MASK ((MAX_CACHE_SIZE >> 2) - 1) + laddr = addr & ~CMEM_CACHE_MASK; + sprintf(cache->buffer,"dump rom 0x%x 0x%x\n",laddr,laddr+CMEM_CACHE_MASK ); + sendSim(cache->buffer); + } + else { laddr = addr & 0xffffffc0; sprintf(cache->buffer,"dx 0x%x 0x%x\n",laddr,laddr+0xff ); @@ -283,6 +290,7 @@ void openSimulator (char **args, int nargs) invalidateCache(XMEM_CACHE); invalidateCache(IMEM_CACHE); invalidateCache(SREG_CACHE); + invalidateCache(CMEM_CACHE); if (INVALID_SOCKET == (sock = WSASocket(PF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, 0))) { fprintf(stderr, "cannot create socket: %d\n", WSAGetLastError()); @@ -386,6 +394,7 @@ void openSimulator (char **args, int nargs) invalidateCache(XMEM_CACHE); invalidateCache(IMEM_CACHE); invalidateCache(SREG_CACHE); + invalidateCache(CMEM_CACHE); if ((sock = socket(AF_INET,SOCK_STREAM,0)) < 0) { @@ -474,12 +483,14 @@ static int getMemString(char *buffer, char wrflag, { case 'A': /* External stack */ case 'F': /* External ram */ + case 'P': /* Pdata space */ prefix = "xram"; cachenr = XMEM_CACHE; break; case 'C': /* Code */ case 'D': /* Code / static segment */ prefix = "rom"; + cachenr = CMEM_CACHE; break; case 'B': /* Internal stack */ case 'E': /* Internal ram (lower 128) bytes */ @@ -754,6 +765,7 @@ void simReset (void) invalidateCache(XMEM_CACHE); invalidateCache(IMEM_CACHE); invalidateCache(SREG_CACHE); + invalidateCache(CMEM_CACHE); sendSim("res\n"); waitForSim(100,NULL); }