This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP432-RTOS: Interrupt Service Routine never called when merging RTC_C_Calendar_Alarm_Interrupt example into TI-RTOS project

Part Number: MSP432-RTOS

Hello, 

I am trying to run the sample code from the project rtc_c_calendar_alarm_interrupt_MSP_EXP432P401R_nortos_ccs (https://dev.ti.com/tirex/explore/node?node=AJqwjKihbubkqdiKJIzyVQ__z-lQYNj__LATEST) from an RTOS environment (I am working on a project where I would like to set an alarm interrupt with the MSP432 Real Time Clock (RTC), and it must use RTOS). I was able to run the rtc_c_calendar code (NO RTOS) on its own. I imported the outofbox_msp432p401r_MSP_EXP432P401R_tirtos_ccs (https://dev.ti.com/tirex/explore/node?node=AIWSDjXgRAKa7ZK3ebrj5w__z-lQYNj__LATEST) into Code Composer Studio and merged the necessary code from the rtc_c_calender project. However, when I run the code now, the ISR never gets called, and I am unable to enable a debug breakpoint in the ISR (I get the message "No code is associated with...[interrupt handler]"). 

Is there some way I need to configure the RTOS environment to let it know about the ISR?

I can attach my code if that would be useful, but all I did was merge the two projects. 

Thanks for your help. 

  • Have you register your thread to the RTOS schedule?The reason why you can't set  a breakpoint is that after complier, this part of code is not changed into assembly code. That means when the code runs, it will not include this thread.

  • What worked for me is using a hardware interrupt for the RTC and putting it inside a thread for the RTOS. I included a code snippet below to show essentially what I did.

    Thanks for your help, I think we can close this thread now. 



    #include <ti/sysbios/hal/Hwi.h> static void RTC_C_IRQHandler(uintptr_t arg); ... RTC_init(); //standard initialization for RTC, i.e. rtc_c_calendar_alarm_interrupt.c Hwi_Handle myHwi; Hwi_Params hwiParams; Hwi_Params_init(&hwiParams); myHwi = Hwi_create(INT_RTC_C, RTC_C_IRQHandler, &hwiParams, NULL); MAP_RTC_C_startClock(); ... void RTC_C_IRQHandler(uintptr_t arg) { uint32_t status; status = MAP_RTC_C_getEnabledInterruptStatus(); MAP_RTC_C_clearInterruptFlag(status); ... }

**Attention** This is a public forum