//! Call a function by address.
int fncall(unsigned int adr){
- //TODO replace this with portable C.
- //Preprocessor definition might help.
- __asm__("call r15"); //r12 on IAR
+ int (*machfn)() = 0;
+ machfn= (int (*)()) adr;
+ return machfn();
}
//! Handles a monitor command.
unsigned char verb,
unsigned long len){
switch(verb){
+ default:
+ debugstr("ERROR: Command unsupported by debug monitor.");
+ break;
case PEEK:
cmddata[0]=memorybyte[cmddataword[0]];
txdata(app,verb,1);
txdata(0x00,0x90,0);
//Reboot
+ #ifdef MSP430
asm("br &0xfffe");
+ #endif
}
//! Return the number of contiguous bytes 0xBEEF, to measure RAM usage.