Thread scheduling

I have a timer int callback like this:

void pwm_all_handler(nrf_timer_event_t event_type, void * p_context)
{
    if(event_type == NRF_TIMER_EVENT_COMPARE0) {
        pwm_gpio_trigger(TRIGGER_TYPE_ALL);
        k_event_post(&camera_event, CAMERA_TS_EVENT);
        LOG_INF("111");
       
    }
}
and have a thread with priority 1,like this:
void data_process(void *p1, void *p2, void *p3)
{  

    int ret = 0;
    while (1) {
        LOG_INF("333");
        uint32_t event_mask = k_event_wait(&camera_event, CAMERA_TS_EVENT, true, K_FOREVER);
        camera_upload_data();
        LOG_INF("222");
    }
}
I did not define a thread with a priority higher than 1, and set the priority of the main thread to 15
I found:

k_event_post always runing,but k_event_wait haven't received the event all the time.
the log like this:
[00:39:32.098,796] <inf> data_process: 333
[00:39:32.114,901] <inf> trigger_time: 111
[00:39:32.115,195] <inf> data_process: 222
[00:39:32.115,224] <inf> data_process: 333
[00:39:32.131,767] <inf> trigger_time: 111
[00:39:32.133,070] <inf> data_process: 222
[00:39:32.133,098] <inf> data_process: 333
[00:39:32.148,631] <inf> trigger_time: 111
[00:39:32.165,468] <inf> trigger_time: 111
[00:39:32.182,331] <inf> trigger_time: 111
[00:39:32.199,197] <inf> trigger_time: 111
[00:39:32.216,063] <inf> trigger_time: 111
[00:39:32.232,929] <inf> trigger_time: 111
[00:39:32.249,795] <inf> trigger_time: 111
[00:39:32.266,661] <inf> trigger_time: 111
[00:39:32.283,527] <inf> trigger_time: 111
[00:39:32.300,393] <inf> trigger_time: 111
[00:39:32.317,261] <inf> trigger_time: 111
[00:39:32.334,125] <inf> trigger_time: 111
[00:39:32.350,991] <inf> trigger_time: 111
[00:39:32.367,857] <inf> trigger_time: 111
[00:39:32.384,723] <inf> trigger_time: 111
[00:39:32.401,589] <inf> trigger_time: 111
[00:39:32.418,455] <inf> trigger_time: 111
[00:39:32.435,321] <inf> trigger_time: 111
[00:39:32.452,187] <inf> trigger_time: 111
[00:39:32.469,053] <inf> trigger_time: 111
[00:39:32.485,919] <inf> trigger_time: 111
[00:39:32.502,785] <inf> trigger_time: 111
[00:39:32.519,651] <inf> trigger_time: 111
[00:39:32.536,517] <inf> trigger_time: 111
[00:39:32.553,383] <inf> trigger_time: 111
[00:39:32.570,249] <inf> trigger_time: 111
[00:39:32.587,115] <inf> trigger_time: 111
[00:39:32.603,981] <inf> trigger_time: 111
[00:39:32.620,847] <inf> trigger_time: 111
[00:39:32.637,713] <inf> trigger_time: 111
[00:39:32.654,579] <inf> trigger_time: 111
[00:39:32.671,445] <inf> trigger_time: 111
[00:39:32.688,311] <inf> trigger_time: 111
[00:39:32.705,177] <inf> trigger_time: 111
[00:39:32.722,043] <inf> trigger_time: 111
[00:39:32.738,909] <inf> trigger_time: 111
[00:39:32.755,775] <inf> trigger_time: 111
[00:39:32.772,641] <inf> trigger_time: 111
[00:39:32.789,507] <inf> trigger_time: 111
[00:39:32.806,373] <inf> trigger_time: 111
[00:39:32.823,239] <inf> trigger_time: 111
[00:39:32.840,105] <inf> trigger_time: 111
[00:39:32.856,971] <inf> trigger_time: 111
[00:39:32.873,837] <inf> trigger_time: 111
[00:39:32.890,703] <inf> trigger_time: 111
[00:39:32.907,569] <inf> trigger_time: 111
[00:39:32.924,435] <inf> trigger_time: 111
[00:39:32.941,301] <inf> trigger_time: 111
[00:39:32.958,167] <inf> trigger_time: 111
[00:39:32.975,033] <inf> trigger_time: 111
[00:39:32.991,899] <inf> trigger_time: 111
[00:39:33.008,765] <inf> trigger_time: 111
[00:39:33.025,631] <inf> trigger_time: 111
[00:39:33.042,497] <inf> trigger_time: 111
[00:39:33.059,363] <inf> trigger_time: 111
[00:39:33.076,229] <inf> trigger_time: 111
[00:39:33.093,095] <inf> trigger_time: 111
[00:39:33.109,961] <inf> trigger_time: 111
[00:39:33.126,827] <inf> trigger_time: 111
[00:39:33.143,693] <inf> trigger_time: 111


What causes this high priority task to be consistently blocked and unable to run?
Parents Reply Children
Related