I am developing software for microchip microcontroller PIC24 (PIC24EP) and we choose FreeRTOS as OS. I find that after few hours running of our program, a task which is blocked forever. After tracking the problem, I find that it is waiting a message in a queue but the another task which should send message to the queue disappear. The situation is exactly as same as following post. https://sourceforge.net/projects/freertos/forums/forum/382005/topic/6754242 Originally, I am using same FreeRTOSConfig.h from Demo. After reading above post, I tried to adjust configKERNEL_INTERRUPT_PRIORITY to higher priority level. However, it does not help. I wonder if anyone can help on it.
Leave configKERNEL_INTERRUPT_PRIORITY at 1. Do you have any other interrupts in your system? If so, do they use any FreeRTOS API functions? If so, what priority are they running at, and can you post their code here? Regards.
Yes. There are a number of interrupts in this system. For uart’s interrupt, they use FreeRTOS API (ISR type) for sending message to wake up waiting tasks. I am on the road and I may post them once backed home. BTW, what priority I should set for interrupt with using FreeRTOS APIs and without using APIs?
According to the documentation on a PIC24 any task using the FreeRTOS API must run with the same priority as the kernel.
Small correction to DaveDoors any INTERRUPT using the FreeRTOS API must run with the same priority as the kernel
Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.