I have a custom board using a nrf5340 and am getting a 1 when trying schedule delayble work and I can't figure out why. I isolated the code to test which gets called from main:
#include <zephyr/kernel.h>
#include <zephyr/logging/log.h>
#include "thread_manager.h"
LOG_MODULE_REGISTER(thread_manager, LOG_LEVEL_DBG);
#define THREAD_MANAGER_TIMEOUT_SECONDS 10
static void thread_manager_reschedule(struct k_work *item);
K_WORK_DELAYABLE_DEFINE(thread_manager_work, thread_manager_reschedule);
int thread_manager_init()
{
LOG_DBG("Initializing thread manager");
int rc;
rc = k_work_schedule(&thread_manager_work, K_SECONDS(THREAD_MANAGER_TIMEOUT_SECONDS));
LOG_DBG("k_work_schedule returned %d", rc);
return rc;
}
static void thread_manager_reschedule(struct k_work *item)
{
LOG_DBG("Handle idle timeout at %d", k_uptime_get_32());
int rc;
rc = k_work_schedule(&thread_manager_work, K_SECONDS(THREAD_MANAGER_TIMEOUT_SECONDS));
LOG_DBG("k_work_schedule returned %d", rc);
}
The log looks like this:
<dbg> thread_manager: thread_manager_init: Initializing thread manager <dbg> thread_manager: thread_manager_init: k_work_schedule returned 1
