Zephyr API Documentation
3.0.0
A Scalable Open Source RTOS
|
|
3.0.0 |
Data Structures | |
struct | timeout_info |
Macros | |
#define | SEM_INIT_VAL (0U) |
#define | SEM_MAX_VAL (10U) |
#define | THREAD_TEST_PRIORITY 0 |
#define | sem_give_from_isr(sema) irq_offload(isr_sem_give, (const void *)sema) |
#define | sem_take_from_isr(sema) irq_offload(isr_sem_take, (const void *)sema) |
#define | SEM_TIMEOUT (K_MSEC(100)) |
#define | STACK_SIZE (512 + CONFIG_TEST_EXTRA_STACKSIZE) |
#define | TOTAL_THREADS_WAITING (5) |
#define | SEC2MS(s) ((s) * 1000) |
#define | QSEC2MS(s) ((s) * 250) |
#define | expect_k_sem_take(sem, timeout, exp, str) |
#define | expect_k_sem_init(sem, init, max, exp, str) |
#define | expect_k_sem_count_get(sem, exp, str) |
#define | expect_k_sem_take_nomsg(sem, timeout, exp) expect_k_sem_take((sem), (timeout), (exp), "k_sem_take incorrect return value: %d != %d") |
#define | expect_k_sem_init_nomsg(sem, init, max, exp) |
#define | expect_k_sem_count_get_nomsg(sem, exp) expect_k_sem_count_get((sem), (exp), "k_sem_count_get incorrect return value: %u != %u") |
Functions | |
void | test_sem_give_null (void) |
Test k_sem_give() API. More... | |
void | test_sem_init_null (void) |
Test k_sem_init() API. More... | |
void | test_sem_take_null (void) |
Test k_sem_take() API. More... | |
void | test_sem_reset_null (void) |
Test k_sem_reset() API. More... | |
void | test_sem_count_get_null (void) |
Test k_sem_count_get() API. More... | |
K_SEM_DEFINE (simple_sem,(0U),(10U)) | |
K_SEM_DEFINE (low_prio_sem,(0U),(10U)) | |
K_SEM_DEFINE (mid_prio_sem,(0U),(10U)) | |
K_SEM_DEFINE (high_prio_long_sem,(0U),(10U)) | |
K_SEM_DEFINE (high_prio_sem,(0U),(10U)) | |
K_SEM_DEFINE (multiple_thread_sem,(0U),(10U)) | |
K_THREAD_STACK_DEFINE (stack_1,(512+CONFIG_TEST_EXTRA_STACKSIZE)) | |
K_THREAD_STACK_DEFINE (stack_2,(512+CONFIG_TEST_EXTRA_STACKSIZE)) | |
K_THREAD_STACK_DEFINE (stack_3,(512+CONFIG_TEST_EXTRA_STACKSIZE)) | |
K_THREAD_STACK_DEFINE (stack_4,(512+CONFIG_TEST_EXTRA_STACKSIZE)) | |
K_THREAD_STACK_ARRAY_DEFINE (multiple_stack,(5),(512+CONFIG_TEST_EXTRA_STACKSIZE)) | |
K_PIPE_DEFINE (timeout_info_pipe, sizeof(struct timeout_info) *(5), 4) | |
K_SEM_DEFINE (ksema,(0U),(10U)) | |
static | K_THREAD_STACK_DEFINE (tstack,(512+CONFIG_TEST_EXTRA_STACKSIZE)) |
void | sem_give_task (void *p1, void *p2, void *p3) |
void | sem_reset_take_task (void *p1, void *p2, void *p3) |
void | isr_sem_give (const void *semaphore) |
static void | tsema_thread_thread (struct k_sem *psem) |
static void | tsema_thread_isr (struct k_sem *psem) |
void | isr_sem_take (const void *semaphore) |
void | sem_take_timeout_forever_helper (void *p1, void *p2, void *p3) |
void | sem_take_timeout_isr_helper (void *p1, void *p2, void *p3) |
void | sem_take_multiple_low_prio_helper (void *p1, void *p2, void *p3) |
void | sem_take_multiple_mid_prio_helper (void *p1, void *p2, void *p3) |
void | sem_take_multiple_high_prio_helper (void *p1, void *p2, void *p3) |
void | sem_queue_mutual_exclusion1 (void *p1, void *p2, void *p3) |
void | sem_queue_mutual_exclusion2 (void *p1, void *p2, void *p3) |
void | sem_take_multiple_high_prio_long_helper (void *p1, void *p2, void *p3) |
void | sem_multiple_threads_wait_helper (void *p1, void *p2, void *p3) |
void | test_sem_multiple_threads_wait (void) |
Test multiple semaphore take and give with wait. More... | |
void | test_sem_measure_timeouts (void) |
Test semaphore timeout period. More... | |
void | sem_measure_timeout_from_thread_helper (void *p1, void *p2, void *p3) |
void | test_sem_measure_timeout_from_thread (void) |
Test timeout of semaphore from thread. More... | |
void | sem_multiple_take_and_timeouts_helper (void *p1, void *p2, void *p3) |
void | test_sem_multiple_take_and_timeouts (void) |
Test multiple semaphore take with timeouts. More... | |
void | sem_multi_take_timeout_diff_sem_helper (void *p1, void *p2, void *p3) |
void | test_sem_multi_take_timeout_diff_sem (void) |
Test sequence of multiple semaphore timeouts. More... | |
void | test_sem_queue_mutual_exclusion (void) |
Test thread mutual exclusion by semaphore. More... | |
static void | thread_sem_give_null (void *p1, void *p2, void *p3) |
static void | thread_sem_init_null (void *p1, void *p2, void *p3) |
static void | thread_sem_take_null (void *p1, void *p2, void *p3) |
static void | thread_sem_reset_null (void *p1, void *p2, void *p3) |
static void | thread_sem_count_get_null (void *p1, void *p2, void *p3) |
void | test_main (void) |
void | test_k_sem_define (void) |
Test semaphore defined at compile time. More... | |
void | test_sem_thread2thread (void) |
Test synchronization of threads with semaphore. More... | |
void | test_sem_thread2isr (void) |
Test synchronization between thread and irq. More... | |
void | test_k_sem_init (void) |
Test semaphore initialization at running time. More... | |
void | test_sem_reset (void) |
Test k_sem_reset() API. More... | |
void | test_sem_reset_waiting (void) |
void | test_sem_count_get (void) |
Test k_sem_count_get() API. More... | |
void | test_sem_give_from_isr (void) |
Test whether a semaphore can be given by an ISR. More... | |
void | test_sem_give_from_thread (void) |
Test semaphore count when given by thread. More... | |
void | test_sem_take_no_wait (void) |
Test if k_sem_take() decreases semaphore count. More... | |
void | test_sem_take_no_wait_fails (void) |
Test k_sem_take() when there is no semaphore to take. More... | |
void | test_sem_take_timeout_fails (void) |
Test a semaphore take operation with an unavailable semaphore. More... | |
void | test_sem_take_timeout (void) |
Test the semaphore take operation with specified timeout. More... | |
void | test_sem_take_timeout_forever (void) |
Test the semaphore take operation with forever wait. More... | |
void | test_sem_take_timeout_isr (void) |
Test k_sem_take() with timeout in ISR context. More... | |
void | test_sem_take_multiple (void) |
Test semaphore take operation by multiple threads. More... | |
void | test_k_sem_correct_count_limit (void) |
Test the max value a semaphore can be given and taken. More... | |
void | test_sem_give_take_from_isr (void) |
Test semaphore give and take and its count from ISR. More... | |
Variables | |
uint32_t | critical_var |
struct k_thread sem_tid_1 sem_tid_2 sem_tid_3 | sem_tid_4 |
struct k_thread | multiple_tid [(5)] |
struct k_sem sema | mut_sem |
struct k_thread | tdata |
#define expect_k_sem_count_get | ( | sem, | |
exp, | |||
str | |||
) |
#define expect_k_sem_count_get_nomsg | ( | sem, | |
exp | |||
) | expect_k_sem_count_get((sem), (exp), "k_sem_count_get incorrect return value: %u != %u") |
#define expect_k_sem_init | ( | sem, | |
init, | |||
max, | |||
exp, | |||
str | |||
) |
#define expect_k_sem_init_nomsg | ( | sem, | |
init, | |||
max, | |||
exp | |||
) |
#define expect_k_sem_take_nomsg | ( | sem, | |
timeout, | |||
exp | |||
) | expect_k_sem_take((sem), (timeout), (exp), "k_sem_take incorrect return value: %d != %d") |
#define sem_give_from_isr | ( | sema | ) | irq_offload(isr_sem_give, (const void *)sema) |
#define SEM_INIT_VAL (0U) |
#define SEM_MAX_VAL (10U) |
#define sem_take_from_isr | ( | sema | ) | irq_offload(isr_sem_take, (const void *)sema) |
#define SEM_TIMEOUT (K_MSEC(100)) |
#define STACK_SIZE (512 + CONFIG_TEST_EXTRA_STACKSIZE) |
#define THREAD_TEST_PRIORITY 0 |
#define TOTAL_THREADS_WAITING (5) |
void isr_sem_give | ( | const void * | semaphore | ) |
void isr_sem_take | ( | const void * | semaphore | ) |
K_PIPE_DEFINE | ( | timeout_info_pipe | , |
sizeof(struct timeout_info) *(5) | , | ||
4 | |||
) |
K_SEM_DEFINE | ( | high_prio_long_sem | , |
(0U) | , | ||
(10U) | |||
) |
K_SEM_DEFINE | ( | high_prio_sem | , |
(0U) | , | ||
(10U) | |||
) |
K_SEM_DEFINE | ( | ksema | , |
(0U) | , | ||
(10U) | |||
) |
K_SEM_DEFINE | ( | low_prio_sem | , |
(0U) | , | ||
(10U) | |||
) |
K_SEM_DEFINE | ( | mid_prio_sem | , |
(0U) | , | ||
(10U) | |||
) |
K_SEM_DEFINE | ( | multiple_thread_sem | , |
(0U) | , | ||
(10U) | |||
) |
K_SEM_DEFINE | ( | simple_sem | , |
(0U) | , | ||
(10U) | |||
) |
K_THREAD_STACK_ARRAY_DEFINE | ( | multiple_stack | , |
(5) | , | ||
(512+CONFIG_TEST_EXTRA_STACKSIZE) | |||
) |
K_THREAD_STACK_DEFINE | ( | stack_1 | , |
(512+CONFIG_TEST_EXTRA_STACKSIZE) | |||
) |
K_THREAD_STACK_DEFINE | ( | stack_2 | , |
(512+CONFIG_TEST_EXTRA_STACKSIZE) | |||
) |
K_THREAD_STACK_DEFINE | ( | stack_3 | , |
(512+CONFIG_TEST_EXTRA_STACKSIZE) | |||
) |
K_THREAD_STACK_DEFINE | ( | stack_4 | , |
(512+CONFIG_TEST_EXTRA_STACKSIZE) | |||
) |
|
static |
void sem_give_task | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_measure_timeout_from_thread_helper | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_multi_take_timeout_diff_sem_helper | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_multiple_take_and_timeouts_helper | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_multiple_threads_wait_helper | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_queue_mutual_exclusion1 | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_queue_mutual_exclusion2 | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_reset_take_task | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_take_multiple_high_prio_helper | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_take_multiple_high_prio_long_helper | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_take_multiple_low_prio_helper | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_take_multiple_mid_prio_helper | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_take_timeout_forever_helper | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void sem_take_timeout_isr_helper | ( | void * | p1, |
void * | p2, | ||
void * | p3 | ||
) |
void test_k_sem_correct_count_limit | ( | void | ) |
Test the max value a semaphore can be given and taken.
void test_k_sem_define | ( | void | ) |
Test semaphore defined at compile time.
void test_k_sem_init | ( | void | ) |
Test semaphore initialization at running time.
void test_main | ( | void | ) |
test case main entry
void test_sem_count_get | ( | void | ) |
Test k_sem_count_get() API.
TESTPOINT: semaphore count get upon init
TESTPOINT: sem count get after give
TESTPOINT: sem count get after take
TESTPOINT: semaphore give above limit
void test_sem_count_get_null | ( | void | ) |
Test k_sem_count_get() API.
Create a thread and set k_sem_count_get() input to NULL
void test_sem_give_from_isr | ( | void | ) |
Test whether a semaphore can be given by an ISR.
void test_sem_give_from_thread | ( | void | ) |
Test semaphore count when given by thread.
void test_sem_give_null | ( | void | ) |
void test_sem_give_take_from_isr | ( | void | ) |
Test semaphore give and take and its count from ISR.
void test_sem_init_null | ( | void | ) |
void test_sem_measure_timeout_from_thread | ( | void | ) |
Test timeout of semaphore from thread.
void test_sem_measure_timeouts | ( | void | ) |
Test semaphore timeout period.
void test_sem_multi_take_timeout_diff_sem | ( | void | ) |
Test sequence of multiple semaphore timeouts.
void test_sem_multiple_take_and_timeouts | ( | void | ) |
Test multiple semaphore take with timeouts.
void test_sem_multiple_threads_wait | ( | void | ) |
Test multiple semaphore take and give with wait.
void test_sem_queue_mutual_exclusion | ( | void | ) |
Test thread mutual exclusion by semaphore.
Test is using to see how mutual exclusion is made by semaphore Made two threads, with two functions which use common variable. That variable is a critical section and can't be changed by two threads at the same time.
void test_sem_reset | ( | void | ) |
Test k_sem_reset() API.
TESTPOINT: semaphore take return -EBUSY
TESTPOINT: semaphore take return -EAGAIN
void test_sem_reset_null | ( | void | ) |
void test_sem_reset_waiting | ( | void | ) |
void test_sem_take_multiple | ( | void | ) |
Test semaphore take operation by multiple threads.
void test_sem_take_no_wait | ( | void | ) |
Test if k_sem_take() decreases semaphore count.
void test_sem_take_no_wait_fails | ( | void | ) |
Test k_sem_take() when there is no semaphore to take.
void test_sem_take_null | ( | void | ) |
void test_sem_take_timeout | ( | void | ) |
Test the semaphore take operation with specified timeout.
void test_sem_take_timeout_fails | ( | void | ) |
Test a semaphore take operation with an unavailable semaphore.
void test_sem_take_timeout_forever | ( | void | ) |
Test the semaphore take operation with forever wait.
void test_sem_take_timeout_isr | ( | void | ) |
Test k_sem_take() with timeout in ISR context.
void test_sem_thread2isr | ( | void | ) |
Test synchronization between thread and irq.
TESTPOINT: test k_sem_init sema
TESTPOINT: test K_SEM_DEFINE sema
void test_sem_thread2thread | ( | void | ) |
Test synchronization of threads with semaphore.
TESTPOINT: test k_sem_init sema
TESTPOINT: test K_SEM_DEFINE sema
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
TESTPOINT: thread-isr sync via sema
|
static |
TESTPOINT: thread-thread sync via sema
uint32_t critical_var |
struct k_thread multiple_tid[(5)] |
struct k_sem sema mut_sem |
struct k_thread tdata |