Part Number:SIMPLELINK-MSP432-SDK
Tool/software:TI-RTOS
I am trying to post a semaphore from my UART HWI and I"m getting an exception:
My setup is as follow:
- CCS Version: 7.3.0.00019
- XDC Tools 3.50.5.12_core
- SimpleLink MSP432P4 SDK 2.10.0.14
- Ubuntu Virtual Box VM Development platform
- Older "Black" MSP432Pr401R Launchpad Eval Kit
ti.sysbios.knl.Task: line 424: E_spOutOfBounds: Task 0x200099f0 stack error, SP = 0x20008ac4. xdc.runtime.Error.raise: terminating execution
I believe this is because the the HWI's are running as zero-latency interrupts.
It seems like these interrupts also prevent me from passing a param into the HWI.
Is there any way I can disable the zero-latency interrupt for these, so I can make the OS Calls?
Cfg File Example:
/* ================ Hwi configuration ================ */ var halHwi = xdc.useModule('ti.sysbios.hal.Hwi'); var m3Hwi = xdc.useModule('ti.sysbios.family.arm.m3.Hwi'); /* * Checks for Hwi (system) stack overruns while in the Idle loop. * * Pick one: * - true (default) * Checks the top word for system stack overflows during the idle loop and * raises an Error if one is detected. * - false * Disabling the runtime check improves runtime performance and yields a * reduced flash footprint. */ halHwi.checkStackFlag = true; //halHwi.checkStackFlag = false; /* * The following options alter the system's behavior when a hardware exception * is detected. * * Pick one: * - Hwi.enableException = true * This option causes the default m3Hwi.excHandlerFunc function to fully * decode an exception and dump the registers to the system console. * This option raises errors in the Error module and displays the * exception in ROV. * - Hwi.enableException = false * This option reduces code footprint by not decoding or printing the * exception to the system console. * It however still raises errors in the Error module and displays the * exception in ROV. * - Hwi.excHandlerFunc = null * This is the most aggressive option for code footprint savings; but it * can difficult to debug exceptions. It reduces flash footprint by * plugging in a default while(1) trap when exception occur. This option * does not raise an error with the Error module. */ m3Hwi.enableException = true; //m3Hwi.enableException = false; //m3Hwi.excHandlerFunc = null; /* * Enable hardware exception generation when dividing by zero. * * Pick one: * - 0 (default) * Disables hardware exceptions when dividing by zero * - 1 * Enables hardware exceptions when dividing by zero */ m3Hwi.nvicCCR.DIV_0_TRP = 0; //m3Hwi.nvicCCR.DIV_0_TRP = 1; /* * Enable hardware exception generation for invalid data alignment. * * Pick one: * - 0 (default) * Disables hardware exceptions for data alignment * - 1 * Enables hardware exceptions for data alignment */ m3Hwi.nvicCCR.UNALIGN_TRP = 0; //m3Hwi.nvicCCR.UNALIGN_TRP = 1; /***** Some Other Stuff ****/ halHwi.dispatcherAutoNestingSupport = false; var halHwi0Params = new halHwi.Params(); halHwi0Params.instance.name = "hHwiEusciA2"; halHwi0Params.arg = 2; halHwi0Params.enableInt = false; halHwi0Params.priority = 3; Program.global.hHwiEusciA2 = halHwi.create(34, "&Msp432UartIsrA2", halHwi0Params); var halHwi1Params = new halHwi.Params(); halHwi1Params.instance.name = "hHwiEusciA0"; halHwi1Params.priority = 3; halHwi1Params.enableInt = false; Program.global.hHwiEusciA0 = halHwi.create(32, "&Msp432UartIsrA0", halHwi1Params);