HPM APP
HPMicro Application solution
sys_arch.c File Reference
#include "common_lwip.h"
#include "lwip/debug.h"
#include "lwip/def.h"
#include "lwip/sys.h"
#include "lwip/mem.h"
#include "lwip/stats.h"
#include "lwip/tcpip.h"
#include "FreeRTOS.h"
#include "semphr.h"
#include "sys_arch.h"

Macros

#define LWIP_FREERTOS_THREAD_STACKSIZE_IS_STACKWORDS   0
 
#define LWIP_FREERTOS_SYS_ARCH_PROTECT_USES_MUTEX   0
 
#define LWIP_FREERTOS_SYS_ARCH_PROTECT_SANITY_CHECK   0
 
#define LWIP_FREERTOS_CHECK_QUEUE_EMPTY_ON_FREE   0
 
#define LWIP_FREERTOS_CHECK_CORE_LOCKING   1
 
#define LWIP_FREERTOS_SYS_NOW_FROM_FREERTOS   1
 

Functions

void sys_init (void)
 
u32_t sys_now (void)
 
u32_t sys_jiffies (void)
 
void sys_arch_msleep (u32_t delay_ms)
 
err_t sys_mutex_new (sys_mutex_t *mutex)
 
void sys_mutex_lock (sys_mutex_t *mutex)
 
void sys_mutex_unlock (sys_mutex_t *mutex)
 
void sys_mutex_free (sys_mutex_t *mutex)
 
err_t sys_sem_new (sys_sem_t *sem, u8_t initial_count)
 
void sys_sem_signal (sys_sem_t *sem)
 
u32_t sys_arch_sem_wait (sys_sem_t *sem, u32_t timeout_ms)
 
void sys_sem_free (sys_sem_t *sem)
 
err_t sys_mbox_new (sys_mbox_t *mbox, int size)
 
void sys_mbox_post (sys_mbox_t *mbox, void *msg)
 
err_t sys_mbox_trypost (sys_mbox_t *mbox, void *msg)
 
err_t sys_mbox_trypost_fromisr (sys_mbox_t *mbox, void *msg)
 
u32_t sys_arch_mbox_fetch (sys_mbox_t *mbox, void **msg, u32_t timeout_ms)
 
u32_t sys_arch_mbox_tryfetch (sys_mbox_t *mbox, void **msg)
 
void sys_mbox_free (sys_mbox_t *mbox)
 
sys_thread_t sys_thread_new (const char *name, lwip_thread_fn thread, void *arg, int stacksize, int prio)
 
void sys_mark_tcpip_thread (void)
 
void sys_check_core_locking (void)
 

Variables

int errno
 
static TaskHandle_t lwip_tcpip_thread
 

Macro Definition Documentation

◆ LWIP_FREERTOS_CHECK_CORE_LOCKING

#define LWIP_FREERTOS_CHECK_CORE_LOCKING   1

Set this to 1 to enable core locking check functions in this port. For this to work, you'll have to define LWIP_ASSERT_CORE_LOCKED() and LWIP_MARK_TCPIP_THREAD() correctly in your lwipopts.h!

◆ LWIP_FREERTOS_CHECK_QUEUE_EMPTY_ON_FREE

#define LWIP_FREERTOS_CHECK_QUEUE_EMPTY_ON_FREE   0

Set this to 1 to let sys_mbox_free check that queues are empty when freed

◆ LWIP_FREERTOS_SYS_ARCH_PROTECT_SANITY_CHECK

#define LWIP_FREERTOS_SYS_ARCH_PROTECT_SANITY_CHECK   0

Set this to 1 to include a sanity check that SYS_ARCH_PROTECT() and SYS_ARCH_UNPROTECT() are called matching.

◆ LWIP_FREERTOS_SYS_ARCH_PROTECT_USES_MUTEX

#define LWIP_FREERTOS_SYS_ARCH_PROTECT_USES_MUTEX   0

Set this to 1 to use a mutex for SYS_ARCH_PROTECT() critical regions. Default is 0 and locks interrupts/scheduler for SYS_ARCH_PROTECT().

◆ LWIP_FREERTOS_SYS_NOW_FROM_FREERTOS

#define LWIP_FREERTOS_SYS_NOW_FROM_FREERTOS   1

Set this to 0 to implement sys_now() yourself, e.g. using a hw timer. Default is 1, where FreeRTOS ticks are used to calculate back to ms.

◆ LWIP_FREERTOS_THREAD_STACKSIZE_IS_STACKWORDS

#define LWIP_FREERTOS_THREAD_STACKSIZE_IS_STACKWORDS   0

Set this to 1 if you want the stack size passed to sys_thread_new() to be interpreted as number of stack words (FreeRTOS-like). Default is that they are interpreted as byte count (lwIP-like).

Function Documentation

◆ sys_arch_mbox_fetch()

u32_t sys_arch_mbox_fetch ( sys_mbox_t mbox,
void **  msg,
u32_t  timeout_ms 
)

◆ sys_arch_mbox_tryfetch()

u32_t sys_arch_mbox_tryfetch ( sys_mbox_t mbox,
void **  msg 
)

◆ sys_arch_msleep()

void sys_arch_msleep ( u32_t  delay_ms)

◆ sys_arch_sem_wait()

u32_t sys_arch_sem_wait ( sys_sem_t sem,
u32_t  timeout_ms 
)

◆ sys_check_core_locking()

void sys_check_core_locking ( void  )

◆ sys_init()

void sys_init ( void  )

◆ sys_jiffies()

u32_t sys_jiffies ( void  )

◆ sys_mark_tcpip_thread()

void sys_mark_tcpip_thread ( void  )

◆ sys_mbox_free()

void sys_mbox_free ( sys_mbox_t mbox)

◆ sys_mbox_new()

err_t sys_mbox_new ( sys_mbox_t mbox,
int  size 
)

◆ sys_mbox_post()

void sys_mbox_post ( sys_mbox_t mbox,
void *  msg 
)

◆ sys_mbox_trypost()

err_t sys_mbox_trypost ( sys_mbox_t mbox,
void *  msg 
)

◆ sys_mbox_trypost_fromisr()

err_t sys_mbox_trypost_fromisr ( sys_mbox_t mbox,
void *  msg 
)

◆ sys_mutex_free()

void sys_mutex_free ( sys_mutex_t mutex)

◆ sys_mutex_lock()

void sys_mutex_lock ( sys_mutex_t mutex)

◆ sys_mutex_new()

err_t sys_mutex_new ( sys_mutex_t mutex)

◆ sys_mutex_unlock()

void sys_mutex_unlock ( sys_mutex_t mutex)

◆ sys_now()

u32_t sys_now ( void  )

◆ sys_sem_free()

void sys_sem_free ( sys_sem_t sem)

◆ sys_sem_new()

err_t sys_sem_new ( sys_sem_t sem,
u8_t  initial_count 
)

◆ sys_sem_signal()

void sys_sem_signal ( sys_sem_t sem)

◆ sys_thread_new()

sys_thread_t sys_thread_new ( const char *  name,
lwip_thread_fn  thread,
void *  arg,
int  stacksize,
int  prio 
)

Variable Documentation

◆ errno

int errno

◆ lwip_tcpip_thread

TaskHandle_t lwip_tcpip_thread
static