Skip to content

Commit a2f0645

Browse files
committed
RTX2: Fix RTX wrapper in LWIP to use RTX objects directly
1 parent b312efc commit a2f0645

File tree

4 files changed

+23
-22
lines changed

4 files changed

+23
-22
lines changed

features/FEATURE_LWIP/lwip-interface/lwip-eth/arch/TARGET_Freescale/k64f_emac.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -686,8 +686,8 @@ err_t eth_arch_enetif_init(struct netif *netif)
686686
netif->linkoutput = k64f_low_level_output;
687687

688688
/* CMSIS-RTOS, start tasks */
689-
memset(k64f_enetdata.xTXDCountSem.data, 0, sizeof(k64f_enetdata.xTXDCountSem.data));
690-
k64f_enetdata.xTXDCountSem.attr.cb_mem = k64f_enetdata.xTXDCountSem.data;
689+
memset(&k64f_enetdata.xTXDCountSem.data, 0, sizeof(k64f_enetdata.xTXDCountSem.data));
690+
k64f_enetdata.xTXDCountSem.attr.cb_mem = &k64f_enetdata.xTXDCountSem.data;
691691
k64f_enetdata.xTXDCountSem.attr.cb_size = sizeof(k64f_enetdata.xTXDCountSem.data);
692692
k64f_enetdata.xTXDCountSem.id = osSemaphoreNew(ENET_TX_RING_LEN, ENET_TX_RING_LEN, &k64f_enetdata.xTXDCountSem.attr);
693693

features/FEATURE_LWIP/lwip-interface/lwip-eth/arch/TARGET_NXP/lpc17_emac.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,8 +1022,8 @@ err_t eth_arch_enetif_init(struct netif *netif)
10221022

10231023
/* CMSIS-RTOS, start tasks */
10241024
#if NO_SYS == 0
1025-
memset(lpc_enetdata.xTXDCountSem.data, 0, sizeof(lpc_enetdata.xTXDCountSem.data));
1026-
lpc_enetdata.xTXDCountSem.attr.cb_mem = lpc_enetdata.xTXDCountSem.data;
1025+
memset(&lpc_enetdata.xTXDCountSem.data, 0, sizeof(lpc_enetdata.xTXDCountSem.data));
1026+
lpc_enetdata.xTXDCountSem.attr.cb_mem = &lpc_enetdata.xTXDCountSem.data;
10271027
lpc_enetdata.xTXDCountSem.attr.cb_size = sizeof(lpc_enetdata.xTXDCountSem.data);
10281028
lpc_enetdata.xTXDCountSem.id = osSemaphoreNew(LPC_NUM_BUFF_TXDESCS, LPC_NUM_BUFF_TXDESCS, &lpc_enetdata.xTXDCountSem.attr);
10291029
LWIP_ASSERT("xTXDCountSem creation error", (lpc_enetdata.xTXDCountSem.id != NULL));

features/FEATURE_LWIP/lwip-interface/lwip-sys/arch/lwip_sys_arch.c

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -126,10 +126,11 @@ err_t sys_mbox_new(sys_mbox_t *mbox, int queue_sz) {
126126
error("sys_mbox_new size error\n");
127127

128128
memset(mbox->queue, 0, sizeof(mbox->queue));
129+
memset(&mbox->data, 0, sizeof(mbox->data));
129130
mbox->attr.mq_mem = mbox->queue;
130131
mbox->attr.mq_size = sizeof(mbox->queue);
131-
mbox->attr.cb_mem = mbox->obj;
132-
mbox->attr.cb_size = sizeof(mbox->obj);
132+
mbox->attr.cb_mem = &mbox->data;
133+
mbox->attr.cb_size = sizeof(mbox->data);
133134
mbox->id = osMessageQueueNew(queue_sz, sizeof(void *), &mbox->attr);
134135
return (mbox->id == NULL) ? (ERR_MEM) : (ERR_OK);
135136
}
@@ -252,8 +253,8 @@ u32_t sys_arch_mbox_tryfetch(sys_mbox_t *mbox, void **msg) {
252253
* err_t -- ERR_OK if semaphore created
253254
*---------------------------------------------------------------------------*/
254255
err_t sys_sem_new(sys_sem_t *sem, u8_t count) {
255-
memset(sem->data, 0, sizeof(sem->data));
256-
sem->attr.cb_mem = sem->data;
256+
memset(&sem->data, 0, sizeof(sem->data));
257+
sem->attr.cb_mem = &sem->data;
257258
sem->attr.cb_size = sizeof(sem->data);
258259
sem->id = osSemaphoreNew(UINT16_MAX, count, &sem->attr);
259260
if (sem->id == NULL)
@@ -321,8 +322,8 @@ void sys_sem_free(sys_sem_t *sem) {}
321322
* @param mutex pointer to the mutex to create
322323
* @return a new mutex */
323324
err_t sys_mutex_new(sys_mutex_t *mutex) {
324-
memset(mutex->data, 0, sizeof(mutex->data));
325-
mutex->attr.cb_mem = mutex->data;
325+
memset(&mutex->data, 0, sizeof(mutex->data));
326+
mutex->attr.cb_mem = &mutex->data;
326327
mutex->attr.cb_size = sizeof(mutex->data);
327328
mutex->id = osMutexNew(&mutex->attr);
328329
if (mutex->id == NULL)
@@ -357,12 +358,12 @@ void sys_mutex_free(sys_mutex_t *mutex) {}
357358
*---------------------------------------------------------------------------*/
358359
osMutexId_t lwip_sys_mutex;
359360
osMutexAttr_t lwip_sys_mutex_attr;
360-
os_mutex_t lwip_sys_mutex_obj;
361+
os_mutex_t lwip_sys_mutex_data;
361362

362363
void sys_init(void) {
363364
us_ticker_read(); // Init sys tick
364-
lwip_sys_mutex_attr.cb_mem = &lwip_sys_mutex_obj;
365-
lwip_sys_mutex_attr.cb_size = sizeof(lwip_sys_mutex_obj);
365+
lwip_sys_mutex_attr.cb_mem = &lwip_sys_mutex_data;
366+
lwip_sys_mutex_attr.cb_size = sizeof(lwip_sys_mutex_data);
366367
lwip_sys_mutex = osMutexNew(&lwip_sys_mutex_attr);
367368
if (lwip_sys_mutex == NULL)
368369
error("sys_init error\n");
@@ -463,8 +464,8 @@ sys_thread_t sys_thread_new(const char *pcName,
463464

464465
t->attr.name = pcName;
465466
t->attr.priority = (osPriority_t)priority;
466-
t->attr.cb_size = sizeof(t->obj);
467-
t->attr.cb_mem = t->obj;
467+
t->attr.cb_size = sizeof(t->data);
468+
t->attr.cb_mem = &t->data;
468469
t->attr.stack_size = stacksize;
469470
t->attr.stack_mem = malloc(stacksize);
470471
if (t->attr.stack_mem == NULL) {

features/FEATURE_LWIP/lwip-interface/lwip-sys/arch/sys_arch.h

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,17 @@ extern u8_t lwip_ram_heap[];
3030
typedef struct {
3131
osSemaphoreId_t id;
3232
osSemaphoreAttr_t attr;
33-
char data[sizeof(os_semaphore_t)];
33+
os_semaphore_t data;
3434
} sys_sem_t;
3535

3636
#define sys_sem_valid(x) (((*x).id == NULL) ? 0 : 1)
3737
#define sys_sem_set_invalid(x) ( (*x).id = NULL)
3838

3939
// === MUTEX ===
4040
typedef struct {
41-
osMutexId_t id;
42-
osMutexAttr_t attr;
43-
char data[sizeof(os_mutex_t)];
41+
osMutexId_t id;
42+
osMutexAttr_t attr;
43+
os_mutex_t data;
4444
} sys_mutex_t;
4545

4646
// === MAIL BOX ===
@@ -49,8 +49,8 @@ typedef struct {
4949
typedef struct {
5050
osMessageQueueId_t id;
5151
osMessageQueueAttr_t attr;
52-
char queue[MB_SIZE * (sizeof(void*) + sizeof(os_message_t))];
53-
char obj[sizeof(os_message_queue_t)];
52+
char queue[MB_SIZE * (sizeof(void*) + sizeof(os_message_t))];
53+
os_message_queue_t data;
5454
} sys_mbox_t;
5555

5656
#define SYS_MBOX_NULL ((uint32_t) NULL)
@@ -69,7 +69,7 @@ typedef struct {
6969
typedef struct {
7070
osThreadId_t id;
7171
osThreadAttr_t attr;
72-
char obj[sizeof(os_thread_t)];
72+
os_thread_t data;
7373
} sys_thread_data_t;
7474
typedef sys_thread_data_t* sys_thread_t;
7575

0 commit comments

Comments
 (0)