Other Parts Discussed in Thread: CC2640
Hello TI Support,
I want to print all exceptions on the UART0 of CC2640R2L.
I use the following config, but it doesn't work.
app_ble.cfg
var SysMin = xdc.useModule('xdc.runtime.SysMin'); //SysMin.bufSize = 128; //System.SupportProxy = SysMin; var SysCallback = xdc.useModule('xdc.runtime.SysCallback'); System.SupportProxy = SysCallback; //SysCallback.abortFxn = "&myUserAbort"; //SysCallback.exitFxn = "&myUserExit"; //SysCallback.flushFxn = "&myUserFlush"; //SysCallback.putchFxn = "&myUserPutch"; SysCallback.exitFxn = "&xdc_runtime_SysMin_exit__E"; /* This is the generated symbol for SysMin_exit */ SysCallback.putchFxn = "&glue_putchar"; SysCallback.abortFxn = "&my_UARTAbort"; //SysCallback.readyFxn = "&myUserReady"; m3Hwi.enableException = false; //m3Hwi.excHandlerFunc = null; m3Hwi.excHookFunc = "&excHookFunc"
The handlers:
#include <ti/sysbios/family/arm/m3/Hwi.h> volatile uintptr_t *excPC = 0; volatile uintptr_t *excCaller = 0; void excHookFunc(Hwi_ExcContext *ctx) { excPC = ctx->pc; excCaller = ctx->lr; char* buf = "Hello\n"; //Print anything just to make sure the handler is working for (int i=0; i<5; ++i) { glue_putchar(buf[i]); } while(2); } void glue_putchar(char ch) { UART_write(uart_handle, &ch, 1); } void my_UARTAbort(CString str) { int len = strlen(str); for (int i=0; i<len;++i) { glue_putchar(str[i]); } }
When an exception happen, i see nothing on UART and the debugger start printing the following in the console.
Cortex_M3_0: Can't Run Target CPU: (Error -2134 @ 0x0) Unable to control device execution state. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.12.0.00150) Cortex_M3_0: Error: (Error -1170 @ 0x0) Unable to access the DAP. Reset the device, and retry the operation. If error persists, confirm configuration, power-cycle the board, and/or try more reliable JTAG settings (e.g. lower TCLK). (Emulation package 9.12.0.00150) Cortex_M3_0: Unable to determine target status after 20 attempts Cortex_M3_0: Failed to remove the debug state from the target before disconnecting. There may still be breakpoint op-codes embedded in program memory. It is recommended that you reset the emulator before you connect and reload your program before you continue debugging
I put a breakpoint inside of excHookFunc and i can hit it, but dunno why UART is not printing.
Here is a screenshot from CCS showing values of UART_handle and UartParams
CCS v12.4
TI BLEStack (SDK v5_30_00_03)
Could you please guide me what is missing ?