VLPS Wakeup ISR + FreeRTOS xTaskNotifyFromISR Issue on S32K144

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

VLPS Wakeup ISR + FreeRTOS xTaskNotifyFromISR Issue on S32K144

ソリューションへジャンプ
1,483件の閲覧回数
Panidiyan_T
Contributor I

Hello NXP Team,

I am working with the S32K144 MCU using FreeRTOS and implementing Very Low Power Stop (VLPS) mode. I have a GPIO switch on PORTB intended to wake the MCU and notify a FreeRTOS task.

Setup:

  • GPIO switch connected to PORTB.

  • ISR triggers on switch press.

  • Using xTaskNotifyFromISR to notify a FreeRTOS task.

  • FreeRTOS configuration:
    configPRIO_BITS = 4
    configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY = 0x01
    configMAX_SYSCALL_INTERRUPT_PRIORITY = (configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY << (8 - configPRIO_BITS))
    configKERNEL_INTERRUPT_PRIORITY = 255

ISR and NVIC configuration:
PORTB->ISFR = (1U << SWITCH_PIN_NUMBER) // Clear interrupt flag for switch pin
INT_SYS_SetPriority(PORTB_IRQn, SWITCH_IRQ_PRIORITY)
INT_SYS_EnableIRQ(PORTB_IRQn)

void PORTB_IRQHandler(void) {
BaseType_t xHigherPriorityTaskWoken = pdFALSE;
if (PORTB->ISFR & (1U << SWITCH_PIN_NUMBER)) {
PORTB->ISFR = (1U << SWITCH_PIN_NUMBER) // Clear interrupt flag
uint32_t switch_state = (((PINS_DRV_ReadPins(PTB) >> SWITCH_PIN_NUMBER) & 0x01) == 0) ? SWITCH_ON : SWITCH_OFF
xTaskNotifyFromISR(hmainTask, switch_state, eSetBits, &xHigherPriorityTaskWoken)
portYIELD_FROM_ISR(xHigherPriorityTaskWoken)
}
}

vPortEnterCritical()
status_t ret = POWER_SYS_SetMode(0, POWER_MANAGER_POLICY_AGREEMENT)
if (ret == STATUS_SUCCESS) wakeupOccurred = true
vPortExitCritical()

Observed behavior:

  1. ISR priority = 0 (highest): MCU wakes from VLPS, but xTaskNotifyFromISR does not work.

  2. ISR priority = 1: xTaskNotifyFromISR works, but MCU does not wake from VLPS.

My understanding:

  • Priority 0 interrupts cannot be masked by BASEPRI, so FreeRTOS APIs cannot be safely called.

  • FreeRTOS APIs must be called from ISRs with priority >= configMAX_SYSCALL_INTERRUPT_PRIORITY.

  • VLPS wakeup may require the highest-priority interrupt.

Questions:

  1. What is the recommended pattern on the S32K144 to reliably wake the MCU from VLPS and safely notify a FreeRTOS task?

  2. Is there a better approach provided by NXP?

Any guidance, reference examples, or best practices would be greatly appreciated.

Thank you!

Best regards,
Pandiyan T

 

0 件の賞賛
返信
1 解決策
1,438件の閲覧回数
danielmartynek
NXP TechSupport
NXP TechSupport

I haven’t found any official example combining FreeRTOS and VLPS.
From what I see, the wake-up issue is likely caused by SysTick still running.
Try disabling SysTick right before calling POWER_SYS_SetMode() to enter VLPS.

Keep in mind:

In VLPS, the SysTick timer is disabled because the core clock is gated.
However, if you have a debugger connected, the MCU does not enter true VLPS; instead, it goes into an emulated STOP mode.

danielmartynek_0-1762786752586.png

Additionally, the FreeRTOS port.c already provides a weak implementation of vPortSuppressTicksAndSleep().

It stops SysTick during idle.
Calculates reload values for the next tick.
Executes __WFI().
Calls two hooks: configPRE_SLEEP_PROCESSING() configPOST_SLEEP_PROCESSING()

This is a weak implementation, it can be overwritten by your own implementation. 

 

Regards,

Daniel

元の投稿で解決策を見る

0 件の賞賛
返信
4 返答(返信)
1,451件の閲覧回数
danielmartynek
NXP TechSupport
NXP TechSupport

Hi @Panidiyan_T,

If you could share the project I could test it on my side.

Anyway, FreeRTOS requires that ISRs calling FromISR APIs have a priority equal or lower than configMAX_SYSCALL_INTERRUPT_PRIORITY.

Don't call vPortEnterCritical() before POWER_SYS_SetMode().

 

0 件の賞賛
返信
1,449件の閲覧回数
Panidiyan_T
Contributor I

Hi @danielmartynek 

Thank you for the quick response.

If I remove the vPortEnterCritical() call before POWER_SYS_SetMode(), the MCU does not actually enter VLPS mode — it transitions momentarily and then immediately wakes up.

Could you please suggest the correct or recommended approach to properly enter VLPS mode while running FreeRTOS?
If possible, could you also share an example or reference implementation demonstrating how to safely enter VLPS from a FreeRTOS task context?

Thank you for your support!

Best regards,
Pandiyan T

0 件の賞賛
返信
1,439件の閲覧回数
danielmartynek
NXP TechSupport
NXP TechSupport

I haven’t found any official example combining FreeRTOS and VLPS.
From what I see, the wake-up issue is likely caused by SysTick still running.
Try disabling SysTick right before calling POWER_SYS_SetMode() to enter VLPS.

Keep in mind:

In VLPS, the SysTick timer is disabled because the core clock is gated.
However, if you have a debugger connected, the MCU does not enter true VLPS; instead, it goes into an emulated STOP mode.

danielmartynek_0-1762786752586.png

Additionally, the FreeRTOS port.c already provides a weak implementation of vPortSuppressTicksAndSleep().

It stops SysTick during idle.
Calculates reload values for the next tick.
Executes __WFI().
Calls two hooks: configPRE_SLEEP_PROCESSING() configPOST_SLEEP_PROCESSING()

This is a weak implementation, it can be overwritten by your own implementation. 

 

Regards,

Daniel

0 件の賞賛
返信
1,415件の閲覧回数
Panidiyan_T
Contributor I
Hi Daniel,

After disabling the SysTick timer before calling POWER_SYS_SetMode(), the system is now entering VLPS successfully without using vPortEnterCritical().
Also, the wake-up and notify-from-ISR mechanisms are both working together as expected.

Thanks a lot for your guidance!

Best regards,
Pandiyan
0 件の賞賛
返信
%3CLINGO-SUB%20id%3D%22lingo-sub-2201694%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3ES32K144%20%E3%81%AB%E3%81%8A%E3%81%91%E3%82%8B%20VLPS%20%E3%82%A6%E3%82%A7%E3%82%A4%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%20ISR%20%2B%20FreeRTOS%20xTaskNotifyFromISR%20%E3%81%AE%E5%95%8F%E9%A1%8C%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2201694%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3ENXP%E3%83%81%E3%83%BC%E3%83%A0%E3%81%AE%E7%9A%86%E6%A7%98%E3%80%81%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%82%3C%2FP%3E%3CP%3E%E7%A7%81%E3%81%AF%20FreeRTOS%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%20S32K144%20MCU%20%E3%82%92%E6%93%8D%E4%BD%9C%E3%81%97%E3%80%81Very%20Low%20Power%20Stop%20(VLPS)%20%E3%83%A2%E3%83%BC%E3%83%89%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82MCU%20%E3%82%92%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%A6%20FreeRTOS%20%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AB%E9%80%9A%E7%9F%A5%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%82%92%E7%9B%AE%E7%9A%84%E3%81%A8%E3%81%97%E3%81%9F%20GPIO%20%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%81%8C%20PORTB%20%E3%81%AB%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E8%A8%AD%E5%AE%9A%EF%BC%9A%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3EGPIO%20%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%81%8C%20PORTB%20%E3%81%AB%E3%82%B3%E3%83%8D%E3%82%AF%E3%83%86%E3%83%83%E3%83%89%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3E%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%81%8C%E6%8A%BC%E3%81%95%E3%82%8C%E3%82%8B%E3%81%A8%20ISR%20%E3%81%8C%E3%83%88%E3%83%AA%E3%82%AC%E3%83%BC%E3%81%95%E3%82%8C%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3ExTaskNotifyFromISR%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%20FreeRTOS%20%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AB%E9%80%9A%E7%9F%A5%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EFreeRTOS%20%E6%A7%8B%E6%88%90%3A%3CBR%20%2F%3E%20configPRIO_BITS%20%3D%204%3CBR%20%2F%3E%20configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY%20%3D%200x01%3CBR%20%2F%3E%20configMAX_SYSCALL_INTERRUPT_PRIORITY%20%3D%20(configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY%20%26lt%3B%26lt%3B%20(8%20-%20configPRIO_BITS))%3CBR%20%2F%3E%20configKERNEL_INTERRUPT_PRIORITY%20%3D%20255%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3EISR%20%E3%81%8A%E3%82%88%E3%81%B3%20NVIC%20%E6%A7%8B%E6%88%90%3A%3CBR%20%2F%3E%20PORTB-%26gt%3BISFR%20%3D%20(1U%20%26lt%3B%26lt%3B%20SWITCH_PIN_NUMBER)%20%2F%2F%20%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%83%94%E3%83%B3%E3%81%AE%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%83%95%E3%83%A9%E3%82%B0%E3%82%92%E3%82%AF%E3%83%AA%E3%82%A2%E3%81%99%E3%82%8B%3CBR%20%2F%3EINT_SYS_SetPriority(PORTB_IRQn%E3%80%81SWITCH_IRQ_PRIORITY)%3CBR%20%2F%3E%20INT_SYS_EnableIRQ(PORTB_IRQn)%3C%2FP%3E%3CP%3Evoid%20PORTB_IRQHandler(void)%20%7B%3CBR%20%2F%3E%20BaseType_t%20xHigherPriorityTaskWoken%20%3D%20pdFALSE%3B%3CBR%20%2F%3E%20if%20(PORTB-%26gt%3BISFR%20%26amp%3B%20(1U%20%26lt%3B%26lt%3B%20%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%83%94%E3%83%B3%E7%95%AA%E5%8F%B7))%20%7B%3CBR%20%2F%3E%20PORTB-%26gt%3BISFR%20%3D%20(1U%20%26lt%3B%26lt%3B%20SWITCH_PIN_NUMBER)%20%2F%2F%20%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%83%95%E3%83%A9%E3%82%B0%E3%82%92%E3%82%AF%E3%83%AA%E3%82%A2%3CBR%20%2F%3Euint32_t%20switch_state%20%3D%20(((PINS_DRV_ReadPins(PTB)%20%26gt%3B%26gt%3B%20SWITCH_PIN_NUMBER)%20%26amp%3B%200x01)%20%3D%3D%200)%20%3F%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%82%AA%E3%83%B3%3A%20%E3%82%B9%E3%82%A4%E3%83%83%E3%83%81%E3%82%AA%E3%83%95%3CBR%20%2F%3ExTaskNotifyFromISR(hmainTask%E3%80%81switch_state%E3%80%81eSetBits%E3%80%81%26amp%3BxHigherPriorityTaskWoken)%3CBR%20%2F%3E%20portYIELD_FROM_ISR(xHigherPriorityTaskWoken)%3CBR%20%2F%3E%20%7D%3CBR%20%2F%3E%20%7D%3C%2FP%3E%3CP%3EvPortEnterCritical()%3CBR%20%2F%3E%20status_t%20ret%20%3D%20POWER_SYS_SetMode(0%2C%20POWER_MANAGER_POLICY_AGREEMENT)%3CBR%20%2F%3E%20if%20(ret%20%3D%3D%20STATUS_SUCCESS)%20wakeupOccurred%20%3D%20true%3CBR%20%2F%3E%20vPortExitCritical()%3C%2FP%3E%3CP%3E%E8%A6%B3%E5%AF%9F%E3%81%95%E3%82%8C%E3%81%9F%E5%8B%95%E4%BD%9C%3A%3C%2FP%3E%3COL%3E%3CLI%3E%3CP%3EISR%20%E5%84%AA%E5%85%88%E5%BA%A6%20%3D%200%20(%E6%9C%80%E9%AB%98)%3A%20MCU%20%E3%81%AF%20VLPS%20%E3%81%8B%E3%82%89%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81xTaskNotifyFromISR%20%E3%81%AF%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EISR%20%E5%84%AA%E5%85%88%E5%BA%A6%20%3D%201%3A%20xTaskNotifyFromISR%20%E3%81%AF%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%99%E3%81%8C%E3%80%81MCU%20%E3%81%AF%20VLPS%20%E3%81%8B%E3%82%89%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%E7%A7%81%E3%81%AE%E7%90%86%E8%A7%A3%E3%81%A7%E3%81%AF%EF%BC%9A%3C%2FP%3E%3CUL%3E%3CLI%3E%3CP%3E%E5%84%AA%E5%85%88%E5%BA%A6%200%20%E3%81%AE%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%AF%20BASEPRI%20%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E3%83%9E%E3%82%B9%E3%82%AF%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%9F%E3%82%81%E3%80%81FreeRTOS%20API%20%E3%82%92%E5%AE%89%E5%85%A8%E3%81%AB%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E3%81%93%E3%81%A8%E3%81%AF%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EFreeRTOS%20API%20%E3%81%AF%E3%80%81%E5%84%AA%E5%85%88%E5%BA%A6%20%26gt%3B%3D%20configMAX_SYSCALL_INTERRUPT_PRIORITY%20%E3%81%AE%20ISR%20%E3%81%8B%E3%82%89%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3EVLPS%20%E3%82%A6%E3%82%A7%E3%82%A4%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%81%AB%E3%81%AF%E3%80%81%E6%9C%80%E9%AB%98%E5%84%AA%E5%85%88%E5%BA%A6%E3%81%AE%E5%89%B2%E3%82%8A%E8%BE%BC%E3%81%BF%E3%81%8C%E5%BF%85%E8%A6%81%E3%81%AB%E3%81%AA%E3%82%8B%E5%A0%B4%E5%90%88%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3C%2FLI%3E%3C%2FUL%3E%3CP%3E%E8%B3%AA%E5%95%8F%3A%3C%2FP%3E%3COL%3E%3CLI%3E%3CP%3EMCU%20%E3%82%92%20VLPS%20%E3%81%8B%E3%82%89%E7%A2%BA%E5%AE%9F%E3%81%AB%E8%B5%B7%E5%8B%95%E3%81%97%E3%80%81FreeRTOS%20%E3%82%BF%E3%82%B9%E3%82%AF%E3%81%AB%E5%AE%89%E5%85%A8%E3%81%AB%E9%80%9A%E7%9F%A5%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AB%E3%80%81S32K144%20%E3%81%A7%E6%8E%A8%E5%A5%A8%E3%81%95%E3%82%8C%E3%82%8B%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3%E3%81%AF%E4%BD%95%E3%81%A7%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3C%2FLI%3E%3CLI%3E%3CP%3ENXP%20%E3%81%8C%E6%8F%90%E4%BE%9B%E3%81%99%E3%82%8B%E3%82%88%E3%82%8A%E8%89%AF%E3%81%84%E3%82%A2%E3%83%97%E3%83%AD%E3%83%BC%E3%83%81%E3%81%AF%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3C%2FLI%3E%3C%2FOL%3E%3CP%3E%E3%81%82%E3%82%89%E3%82%86%E3%82%8B%E3%82%AC%E3%82%A4%E3%83%80%E3%83%B3%E3%82%B9%E3%80%81%E5%8F%82%E8%80%83%E4%BE%8B%E3%80%81%E3%83%99%E3%82%B9%E3%83%88%E3%83%97%E3%83%A9%E3%82%AF%E3%83%86%E3%82%A3%E3%82%B9%E3%82%92%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%82%8C%E3%81%B0%E5%B9%B8%E3%81%84%E3%81%A7%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%81%94%E5%9B%9E%E7%AD%94%E3%82%92%E3%81%8A%E5%BE%85%E3%81%A1%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%81%3CBR%20%2F%3E%E3%83%91%E3%83%B3%E3%83%87%E3%82%A3%E3%83%A4%E3%83%B3T%3C%2FP%3E%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2202548%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20VLPS%20Wakeup%20ISR%20%2B%20FreeRTOS%20xTaskNotifyFromISR%20Issue%20on%20S32K144%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2202548%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%E3%80%81%E3%83%80%E3%83%8B%E3%82%A8%E3%83%AB%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%20POWER_SYS_SetMode()%20%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E5%89%8D%E3%81%AB%20SysTick%20%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%AF%20vPortEnterCritical()%20%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%9B%E3%81%9A%E3%81%AB%20VLPS%20%E3%81%AB%E6%AD%A3%E5%B8%B8%E3%81%AB%E5%85%A5%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%97%E3%81%9F%E3%80%82%3CBR%20%2F%3E%E3%81%BE%E3%81%9F%E3%80%81%E3%82%A6%E3%82%A7%E3%82%A4%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%20%E3%83%A1%E3%82%AB%E3%83%8B%E3%82%BA%E3%83%A0%E3%81%A8%20ISR%20%E3%81%8B%E3%82%89%E3%81%AE%E9%80%9A%E7%9F%A5%E3%83%A1%E3%82%AB%E3%83%8B%E3%82%BA%E3%83%A0%E3%81%AF%E4%B8%A1%E6%96%B9%E3%81%A8%E3%82%82%E6%9C%9F%E5%BE%85%E3%81%A9%E3%81%8A%E3%82%8A%E3%81%AB%E5%8B%95%E4%BD%9C%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%81%94%E6%8C%87%E5%B0%8E%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%97%E3%81%9F%EF%BC%81%3CBR%20%2F%3E%3CBR%20%2F%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%81%3CBR%20%2F%3E%E3%83%91%E3%83%B3%E3%83%87%E3%82%A3%E3%83%A4%E3%83%B3%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2201946%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20VLPS%20Wakeup%20ISR%20%2B%20FreeRTOS%20xTaskNotifyFromISR%20Issue%20on%20S32K144%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2201946%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3EFreeRTOS%20%E3%81%A8%20VLPS%20%E3%82%92%E7%B5%84%E3%81%BF%E5%90%88%E3%82%8F%E3%81%9B%E3%81%9F%E5%85%AC%E5%BC%8F%E3%81%AE%E4%BE%8B%E3%81%AF%E3%81%BE%E3%81%A0%E8%A6%8B%E3%81%A4%E3%81%8B%E3%82%8A%E3%81%BE%E3%81%9B%E3%82%93%E3%81%A7%E3%81%97%E3%81%9F%E3%80%82%3CBR%20%2F%3E%E7%A7%81%E3%81%AE%E8%A6%8B%E3%82%8B%E3%81%A8%E3%81%93%E3%82%8D%E3%80%81%E3%82%A6%E3%82%A7%E3%82%A4%E3%82%AF%E3%82%A2%E3%83%83%E3%83%97%E3%81%AE%E5%95%8F%E9%A1%8C%E3%81%AF%20SysTick%20%E3%81%8C%E3%81%BE%E3%81%A0%E5%AE%9F%E8%A1%8C%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E5%8E%9F%E5%9B%A0%E3%81%A7%E3%81%82%E3%82%8B%E5%8F%AF%E8%83%BD%E6%80%A7%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3EVLPS%20%E3%81%AB%E5%85%A5%E3%82%8B%E3%81%AB%E3%81%AF%E3%80%81POWER_SYS_SetMode()%20%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%E7%9B%B4%E5%89%8D%E3%81%AB%20SysTick%20%E3%82%92%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%97%E3%81%A6%E3%81%BF%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%0A%3CP%3E%E7%95%99%E6%84%8F%E7%82%B9%3A%3C%2FP%3E%0A%3CP%3EVLPS%20%E3%81%A7%E3%81%AF%E3%80%81%E3%82%B3%E3%82%A2%20%E3%82%AF%E3%83%AD%E3%83%83%E3%82%AF%E3%81%8C%E3%82%B2%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%9F%E3%82%81%E3%80%81SysTick%20%E3%82%BF%E3%82%A4%E3%83%9E%E3%83%BC%E3%81%AF%E7%84%A1%E5%8A%B9%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%E3%81%9F%E3%81%A0%E3%81%97%E3%80%81%E3%83%87%E3%83%90%E3%83%83%E3%82%AC%E3%83%BC%E3%81%8C%E3%82%B3%E3%83%8D%E3%82%AF%E3%83%86%E3%83%83%E3%83%89%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E5%A0%B4%E5%90%88%E3%80%81MCU%20%E3%81%AF%E7%9C%9F%E3%81%AE%20VLPS%20%E3%81%AB%E3%81%AF%E3%81%AA%E3%82%89%E3%81%9A%E3%80%81%E3%82%A8%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%83%88%E3%81%95%E3%82%8C%E3%81%9F%20STOP%20%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AB%E3%81%AA%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%3CSPAN%20class%3D%22lia-inline-image-display-wrapper%20lia-image-align-inline%22%20image-alt%3D%22danielmartynek_0-1762786752586.png%22%20style%3D%22width%3A%20509px%3B%22%3E%3Cspan%20class%3D%22lia-inline-image-display-wrapper%22%20image-alt%3D%22danielmartynek_0-1762786752586.png%22%20style%3D%22width%3A%20509px%3B%22%3E%3Cimg%20src%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fimage%2Fserverpage%2Fimage-id%2F364718iEB24FCE522089057%2Fimage-dimensions%2F509x220%3Fv%3Dv2%22%20width%3D%22509%22%20height%3D%22220%22%20role%3D%22button%22%20title%3D%22danielmartynek_0-1762786752586.png%22%20alt%3D%22danielmartynek_0-1762786752586.png%22%20%2F%3E%3C%2Fspan%3E%3C%2FSPAN%3E%3C%2FP%3E%0A%3CP%3E%E3%81%95%E3%82%89%E3%81%AB%E3%80%81FreeRTOS%20port.c%E3%81%99%E3%81%A7%E3%81%AB%20vPortSuppressTicksAndSleep()%20%E3%81%AE%E5%BC%B1%E3%81%84%E5%AE%9F%E8%A3%85%E3%82%92%E6%8F%90%E4%BE%9B%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%82%A2%E3%82%A4%E3%83%89%E3%83%AB%E6%99%82%E3%81%AB%20SysTick%20%E3%82%92%E5%81%9C%E6%AD%A2%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E%E6%AC%A1%E3%81%AE%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF%E3%81%AE%E3%83%AA%E3%83%AD%E3%83%BC%E3%83%89%E5%80%A4%E3%82%92%E8%A8%88%E7%AE%97%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E__WFI()%20%E3%82%92%E5%AE%9F%E8%A1%8C%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3CBR%20%2F%3E2%E3%81%A4%E3%81%AE%E3%83%95%E3%83%83%E3%82%AF%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%81%BE%E3%81%99%3A%20configPRE_SLEEP_PROCESSING()%20configPOST_SLEEP_PROCESSING()%3C%2FP%3E%0A%3CP%3E%E3%81%93%E3%82%8C%E3%81%AF%E5%BC%B1%E3%81%84%E5%AE%9F%E8%A3%85%E3%81%A7%E3%81%82%E3%82%8A%E3%80%81%E7%8B%AC%E8%87%AA%E3%81%AE%E5%AE%9F%E8%A3%85%E3%81%AB%E3%82%88%E3%81%A3%E3%81%A6%E4%B8%8A%E6%9B%B8%E3%81%8D%E3%81%95%E3%82%8C%E3%82%8BCAN%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%0A%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%84%E3%81%9F%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%83%80%E3%83%8B%E3%82%A8%E3%83%AB%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2201900%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20VLPS%20Wakeup%20ISR%20%2B%20FreeRTOS%20xTaskNotifyFromISR%20Issue%20on%20S32K144%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2201900%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F160001%22%20target%3D%22_blank%22%3E%40danielmartynek%3C%2FA%3E%3C%2FP%3E%3CP%3E%E8%BF%85%E9%80%9F%E3%81%AA%E3%81%94%E5%AF%BE%E5%BF%9C%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3EPOWER_SYS_SetMode()%20%E3%81%AE%E5%89%8D%E3%81%AB%20vPortEnterCritical()%20%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%97%E3%82%92%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B%E3%81%A8%E3%80%81MCU%20%E3%81%AF%E5%AE%9F%E9%9A%9B%E3%81%AB%E3%81%AF%20VLPS%20%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AB%E5%85%A5%E3%82%89%E3%81%9A%E3%80%81%E4%B8%80%E6%99%82%E7%9A%84%E3%81%AB%E9%81%B7%E7%A7%BB%E3%81%97%E3%81%A6%E3%81%8B%E3%82%89%E3%81%99%E3%81%90%E3%81%AB%E8%B5%B7%E5%8B%95%E3%81%97%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%3CP%3EFreeRTOS%20%E3%81%AE%E5%AE%9F%E8%A1%8C%E4%B8%AD%E3%81%AB%E9%81%A9%E5%88%87%E3%81%AB%20VLPS%20%E3%83%A2%E3%83%BC%E3%83%89%E3%81%AB%E5%85%A5%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E6%AD%A3%E3%81%97%E3%81%84%E3%81%BE%E3%81%9F%E3%81%AF%E6%8E%A8%E5%A5%A8%E3%81%95%E3%82%8C%E3%82%8B%E6%96%B9%E6%B3%95%E3%82%92%E6%8F%90%E6%A1%88%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%E3%81%8B%3F%3CBR%20%2F%3E%E5%8F%AF%E8%83%BD%E3%81%A7%E3%81%82%E3%82%8C%E3%81%B0%E3%80%81FreeRTOS%20%E3%82%BF%E3%82%B9%E3%82%AF%E3%82%B3%E3%83%B3%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88%E3%81%8B%E3%82%89%20VLPS%20%E3%81%AB%E5%AE%89%E5%85%A8%E3%81%AB%E5%85%A5%E3%82%8B%E6%96%B9%E6%B3%95%E3%82%92%E7%A4%BA%E3%81%99%E4%BE%8B%E3%81%BE%E3%81%9F%E3%81%AF%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9%E5%AE%9F%E8%A3%85%E3%82%82%E5%85%B1%E6%9C%89%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%81%BE%E3%81%99%E3%81%8B%3F%3C%2FP%3E%3CP%3E%E3%82%B5%E3%83%9D%E3%83%BC%E3%83%88%E3%81%82%E3%82%8A%E3%81%8C%E3%81%A8%E3%81%86%E3%81%94%E3%81%96%E3%81%84%E3%81%BE%E3%81%99%EF%BC%81%3C%2FP%3E%3CP%3E%E3%82%88%E3%82%8D%E3%81%97%E3%81%8F%E3%81%8A%E9%A1%98%E3%81%84%E3%81%97%E3%81%BE%E3%81%99%E3%80%81%3CBR%20%2F%3E%E3%83%91%E3%83%B3%E3%83%87%E3%82%A3%E3%83%A4%E3%83%B3T%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-2201891%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%20translate%3D%22no%22%3ERe%3A%20VLPS%20Wakeup%20ISR%20%2B%20FreeRTOS%20xTaskNotifyFromISR%20Issue%20on%20S32K144%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-2201891%22%20slang%3D%22en-US%22%20mode%3D%22CREATE%22%3E%3CP%3E%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF%3CA%20href%3D%22https%3A%2F%2Fcommunity.nxp.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F250965%22%20target%3D%22_blank%22%3E%40Panidiyan_T%E3%81%95%E3%82%93%3C%2FA%3E%E3%80%81%3C%2FP%3E%0A%3CP%3E%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%82%92%E5%85%B1%E6%9C%89%E3%81%97%E3%81%A6%E3%81%84%E3%81%9F%E3%81%A0%E3%81%91%E3%82%8C%E3%81%B0%E3%80%81%E7%A7%81%E3%81%AE%E5%81%B4%E3%81%A7%E3%83%86%E3%82%B9%E3%83%88%E3%81%99%E3%82%8B%E3%81%93%E3%81%A8%E3%81%8C%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3E%E3%81%A8%E3%81%AB%E3%81%8B%E3%81%8F%E3%80%81FreeRTOS%20%E3%81%A7%E3%81%AF%E3%80%81FromISR%20API%20%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%99%20ISR%20%E3%81%AE%E5%84%AA%E5%85%88%E5%BA%A6%E3%81%8C%20configMAX_SYSCALL_INTERRUPT_PRIORITY%20%E4%BB%A5%E4%B8%8B%E3%81%A7%E3%81%82%E3%82%8B%E5%BF%85%E8%A6%81%E3%81%8C%E3%81%82%E3%82%8A%E3%81%BE%E3%81%99%E3%80%82%3C%2FP%3E%0A%3CP%3EPOWER_SYS_SetMode()%20%E3%81%AE%E5%89%8D%E3%81%AB%20vPortEnterCritical()%20%E3%82%92%E5%91%BC%E3%81%B3%E5%87%BA%E3%81%95%E3%81%AA%E3%81%84%E3%81%A7%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%E3%80%82%3C%2FP%3E%0A%3CBR%20%2F%3E%3C%2FLINGO-BODY%3E