change osal_queue_send(osal_queue_handle_t const queue_hdl, uint32_t data) signature to osal_queue_send(osal_queue_handle_t const queue_hdl, const void * data)

- support any size queue message (instead of fixed uint32_t)
This commit is contained in:
hathach
2013-04-10 01:13:31 +07:00
parent e6a44b3fe9
commit e14aa4197d
8 changed files with 62 additions and 27 deletions
+2 -1
View File
@@ -76,7 +76,8 @@ void test_(void)
osal_semaphore_post(sem_hdl);
osal_semaphore_wait(sem_hdl, OSAL_TIMEOUT_WAIT_FOREVER, &error);
osal_queue_send(queue_hdl, 0x1234);
uint32_t item = 0x1234;
osal_queue_send(queue_hdl, &item);
osal_queue_receive(queue_hdl, &data, OSAL_TIMEOUT_NORMAL, &error);
}
+10 -6
View File
@@ -50,7 +50,7 @@ uint32_t statements[10];
OSAL_SEM_DEF(sem);
osal_semaphore_handle_t sem_hdl;
OSAL_QUEUE_DEF(queue, QUEUE_DEPTH, uin32_t);
OSAL_QUEUE_DEF(queue, QUEUE_DEPTH, uint32_t);
osal_queue_handle_t queue_hdl;
void setUp(void)
@@ -97,9 +97,9 @@ void test_queue_create(void)
void test_queue_send(void)
{
uint32_t const item = 0x1234;
osal_queue_send(queue_hdl, item);
osal_queue_send(queue_hdl, &item);
TEST_ASSERT_EQUAL(1, queue_hdl->count);
TEST_ASSERT_EQUAL(item, queue_hdl->buffer[queue_hdl->rd_idx]);
TEST_ASSERT_EQUAL_MEMORY(&item, queue_hdl->buffer + (queue_hdl->rd_idx * queue_hdl->item_size), 4);
}
// blocking service such as semaphore wait need to be invoked within a task's loop
@@ -196,6 +196,7 @@ tusb_error_t sample_task_with_queue(void)
void test_task_with_queue(void)
{
uint32_t i = 0;
uint32_t item;
sample_task_with_queue();
// several invoke before queue is available
@@ -204,14 +205,17 @@ void test_task_with_queue(void)
TEST_ASSERT_EQUAL(1, statements[0]);
// invoke after posting semaphore
osal_queue_send(queue_hdl, 0x1111);
item = 0x1111;
osal_queue_send(queue_hdl, &item);
sample_task_with_queue();
TEST_ASSERT_EQUAL(1, statements[1]);
sample_task_with_queue();
TEST_ASSERT_EQUAL(1, statements[1]);
osal_queue_send(queue_hdl, 0x2222);
osal_queue_send(queue_hdl, 0x3333);
item = 0x2222;
osal_queue_send(queue_hdl, &item);
item = 0x3333;
osal_queue_send(queue_hdl, &item);
sample_task_with_queue();
TEST_ASSERT_EQUAL(1, statements[2]);
TEST_ASSERT_EQUAL(1, statements[3]);