fix: 统一R8工程目标并修复MDK编译前置问题
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
*/
|
||||
|
||||
#include "lwip/opt.h"
|
||||
#include "lwip/mem.h"
|
||||
#include "lwip/sys.h"
|
||||
#include "lwip/stats.h"
|
||||
#include "arch/sys_arch.h"
|
||||
@@ -15,6 +16,8 @@
|
||||
|
||||
#include <string.h>
|
||||
|
||||
int errno;
|
||||
|
||||
/* Timeout for infinite wait */
|
||||
#define LWIP_ARCH_TICK_PER_MS (1000 / configTICK_RATE_HZ)
|
||||
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include "lwip/errno.h"
|
||||
|
||||
/* Use standard integer types from stdint.h */
|
||||
#define LWIP_NO_STDINT_H 0
|
||||
|
||||
@@ -31,6 +31,9 @@
|
||||
#define MEM_LIBC_MALLOC 0
|
||||
#define MEMP_MEM_MALLOC 0
|
||||
|
||||
/* Let lwIP provide the errno values used by sockets/netconn. */
|
||||
#define LWIP_PROVIDE_ERRNO 1
|
||||
|
||||
/*-----------------------------------------------------------------------------
|
||||
* Memory Configuration (optimized for STM32F103 with ~20KB RAM)
|
||||
*---------------------------------------------------------------------------*/
|
||||
@@ -63,7 +66,7 @@
|
||||
#define MEMP_NUM_TCP_PCB_LISTEN 2
|
||||
|
||||
/* Number of simultaneously queued TCP segments */
|
||||
#define MEMP_NUM_TCP_SEG 12
|
||||
#define MEMP_NUM_TCP_SEG 17
|
||||
|
||||
/* Number of simultaneously active timeouts */
|
||||
#define MEMP_NUM_SYS_TIMEOUT 8
|
||||
|
||||
@@ -37,6 +37,36 @@ typedef u32_t sys_prot_t;
|
||||
#define SYS_MBOX_NULL ((sys_mbox_t)NULL)
|
||||
#define SYS_MUTEX_NULL ((sys_mutex_t)NULL)
|
||||
|
||||
/* Use one per-thread semaphore for lwIP netconn/socket API calls. */
|
||||
#define LWIP_NETCONN_THREAD_SEM_TLS_INDEX 0
|
||||
#define LWIP_NETCONN_THREAD_SEM_GET() \
|
||||
((sys_sem_t *)pvTaskGetThreadLocalStoragePointer(NULL, LWIP_NETCONN_THREAD_SEM_TLS_INDEX))
|
||||
#define LWIP_NETCONN_THREAD_SEM_ALLOC() \
|
||||
do { \
|
||||
sys_sem_t *sem = (sys_sem_t *)mem_malloc(sizeof(sys_sem_t)); \
|
||||
if (sem != NULL) { \
|
||||
*sem = SYS_SEM_NULL; \
|
||||
if (sys_sem_new(sem, 0) == ERR_OK) { \
|
||||
vTaskSetThreadLocalStoragePointer(NULL, \
|
||||
LWIP_NETCONN_THREAD_SEM_TLS_INDEX,\
|
||||
sem); \
|
||||
} else { \
|
||||
mem_free(sem); \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
#define LWIP_NETCONN_THREAD_SEM_FREE() \
|
||||
do { \
|
||||
sys_sem_t *sem = LWIP_NETCONN_THREAD_SEM_GET(); \
|
||||
if (sem != NULL) { \
|
||||
sys_sem_free(sem); \
|
||||
mem_free(sem); \
|
||||
vTaskSetThreadLocalStoragePointer(NULL, \
|
||||
LWIP_NETCONN_THREAD_SEM_TLS_INDEX, \
|
||||
NULL); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/* Check if semaphore/mbox is valid */
|
||||
#define sys_sem_valid(sem) ((sem) != NULL && (*(sem)) != SYS_SEM_NULL)
|
||||
#define sys_sem_set_invalid(sem) do { if ((sem) != NULL) { *(sem) = SYS_SEM_NULL; } } while(0)
|
||||
|
||||
Reference in New Issue
Block a user