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

Monitor for XC164CS without external memory

I'm working on a monitor for XC164CS-32F without external memory.

The monitor should reside in the built in flash (0x0c00000) and use the internal RAM (0x0CE00-0x0CFFF) for its data.

The user application will use the built in PRAM (0x0E00000-0x0E017FF) as program memory and the built in DRAM( 0xC000-0xCDFF) as data memory.

I use following settings in ConfigV2.inc:

%DEFINE (DATA_START) (000CE00H)
%DEFINE (CODE_START) (0C00000H)
%DEFINE (VECTAB) (0E00000H)

I made the following change to inst_v2.a66 to make sure the monitor starts the user application at its actual address (0x0E00000)

IF (1)   ; always use VECTAB
RESET_ADR       EQU     %VECTAB      ; RESET IP value
ELSE
RESET_ADR       EQU     0
ENDIF

After flashing the monitor to the internal flash I use a project with the Keil Monitor-166 Driver (Monitor166 in ROM).

The communication between debugger and monitor works pretty well. I can download the program to the designated address and I can manipulate the registers and the memory of the controller. I can't however start the application as the debugger is unable to set a breakpoint:

*** MONITOR ERROR 9: CANNOT WRITE BREAKPOINT VECTOR

I looked all over the documentation and the forum but can't find a hint what i did wrong.

Is the monitor trying to set the trap and interupt vector at the wrong location?