build: W600-SDK importiert, Firmware-Build und Hello am EVK

Docker-Build mit gcc-arm-none-eabi 4.9-2014q4 (statt Homebrew-Cask) verwendet,
Dockerfile/tools/docker.sh dafür aus Task 13 vorgezogen. cmake/sdk.cmake schont
gcc 4.9 (kennt -fcommon/-Wno-error=... nicht). Zwei zusätzliche SDK-Stubs
(EarlyInit, pre_gpio_config) in src/sys/sdk_stubs.c ergänzt, siehe sdk/PATCHES.md.
This commit is contained in:
Michael Sauer
2026-09-11 12:52:26 +02:00
parent 4e7ff78fc6
commit 1b0501179d
610 changed files with 224089 additions and 0 deletions
+42
View File
@@ -0,0 +1,42 @@
# THE VERSION NUMBER
SET(CMAKE_SYSTEM_NAME Generic)
CMAKE_MINIMUM_REQUIRED (VERSION 3.10)
PROJECT(WMDHCPSERVER)
SET(CMAKE_C_USE_RESPONSE_FILE_FOR_OBJECTS 1)
SET(CMAKE_NINJA_FORCE_RESPONSE_FILE 1 CACHE INTERNAL "")
set(CMAKE_VERBOSE_MAKEFILE OFF)
# ENABLE ASM
ENABLE_LANGUAGE(ASM)
SET(CMAKE_STATIC_LIBRARY_PREFIX)
SET(CMAKE_STATIC_LIBRARY_SUFFIX)
SET(CMAKE_EXECUTABLE_LIBRARY_PREFIX)
SET(CMAKE_EXECUTABLE_LIBRARY_SUFFIX)
# C FLAGS
SET(CMAKE_C_FLAGS " -mthumb --function-sections --data-sections -mcpu=cortex-m3 -std=gnu99 -mabi=aapcs -march=armv7-m -fno-builtin ")
STRING(APPEND CMAKE_C_FLAGS " -DGCC_COMPILE=1 -DWOLFSSL_USER_SETTINGS -D_IN_ADDR_T_DECLARED -D__MACHINE_ENDIAN_H__ -D_TIMEVAL_DEFINED -D__INSIDE_CYGWIN_NET__ ")
SET(CMAKE_C_FLAGS_DEBUG "-O0 -g3 -gdwarf-2 -Wall -DDEBUG ")
SET(CMAKE_C_FLAGS_RELEASE "-Os -Wall")
# DEBUG ASM FLAGS
SET(CMAKE_ASM_FLAGS_DEBUG "${CMAKE_ASM_FLAGS_DEBUG} -O0 -g3 -gdwarf-2 -Wall -mthumb-interwork -mthumb -std=gnu99 -mcpu=cortex-m3 -march=armv7-m -mabi=aapcs -fno-builtin -DDEBUG ")
SET(CMAKE_ASM_FLAGS_RELEASE "${CMAKE_ASM_FLAGS_RELEASE} -Os -Wall -mthumb-interwork -mthumb -std=gnu99 -mcpu=cortex-m3 -march=armv7-m -mabi=aapcs -fno-builtin ")
# Library sources
SET(LIBRARY_SOURCES
"${CMAKE_CURRENT_SOURCE_DIR}/dhcp_server.c"
)
function(ADD_LIB_TARGET LIBTARGET)
add_library(${LIBTARGET} OBJECT ${LIBRARY_SOURCES})
# ADD_CUSTOM_COMMAND(TARGET ${LIBTARGET} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different ${EXECUTABLE_OUTPUT_PATH}/${LIBTARGET} ${CMAKE_CURRENT_SOURCE_DIR}/../../../Lib/GNU/${LIBTARGET})
endfunction()
ADD_LIB_TARGET(wmdhcpserver.a)
File diff suppressed because it is too large Load Diff
+163
View File
@@ -0,0 +1,163 @@
/**************************************************************************
* File Name : dhcp_server.h
* Author :
* Version :
* Date :
* Description :
*
* Copyright (c) 2014 Winner Microelectronics Co., Ltd.
* All rights reserved.
*
***************************************************************************/
#ifndef __DHCP_SERVER_H_175137__
#define __DHCP_SERVER_H_175137__
#include "wm_config.h"
#if TLS_CONFIG_AP
#include "wm_sockets.h"
#define DHCPS_ERR_SUCCESS 0
#define DHCPS_ERR_LINKDOWN -1
#define DHCPS_ERR_PARAM -2
#define DHCPS_ERR_MEM -3
#define DHCPS_ERR_NOT_BIND -4
#define DHCPS_ERR_NOT_FOUND -5
#define DHCPS_ERR_INACTIVE -6
#define DHCPS_HISTORY_CLIENT_NUM 8
#define DHCP_DEFAULT_LEASE_TIME 7200 /* 2 Hours. */
#define DHCP_DEFAULT_LEASE_TIME_MS 7200000 /* 7200000ms */
#define DHCP_TICK_TIME 1000 /* 1s. */
#define DHCP_DEFFAULT_TIMEOUT 10 /* 500ms */
#define DHCP_HWTYPE_ETHERNET 1
/* udp port number of dhcp. */
#define DHCP_CLIENT_UDP_PORT 68
#define DHCP_SERVER_UDP_PORT 67
/* Magic number in DHCP packet. */
#define DHCP_MAGIC 0x63825363
#define DHCP_OP_REQUEST 1
#define DHCP_OP_REPLY 2
#define DHCP_OPTION_ID_PAD 0
#define DHCP_OPTION_ID_SUBNET_MASK 1
#define DHCP_OPTION_ID_DEF_GW 3
#define DHCP_OPTION_ID_DNS_SERVER 6
#define DHCP_OPTION_ID_LEASE_TIME 51
#define DHCP_OPTION_ID_MSG_TYPE 53
#define DHCP_OPTION_ID_SERVER_ID 54
#define DHCP_OPTION_ID_REQ_IP_ADDR 50
#define DHCP_OPTION_ID_END 255
#define DHCP_MSG_DISCOVER 1
#define DHCP_MSG_OFFER 2
#define DHCP_MSG_REQUEST 3
#define DHCP_MSG_DECLINE 4
#define DHCP_MSG_ACK 5
#define DHCP_MSG_NAK 6
#define DHCP_MSG_RELEASE 7
#define DHCP_MSG_INFORM 8
#ifdef INT8U
#undef INT8U
#endif
typedef unsigned char INT8U;
#ifdef INT8S
#undef INT8S
#endif
typedef signed char INT8S;
#ifdef INT16U
#undef INT16U
#endif
typedef unsigned short INT16U;
#ifdef INT32U
#undef INT32U
#endif
typedef unsigned int INT32U;
typedef enum __DHCP_CLIENT_STATE
{
DHCP_CLIENT_STATE_IDLE=0,
DHCP_CLIENT_STATE_SELECT,
DHCP_CLIENT_STATE_REQUEST,
DHCP_CLIENT_STATE_BIND
}DHCP_CLIENT_STATE;
typedef struct __DHCP_CLIENT
{
DHCP_CLIENT_STATE State;
INT32U Timeout;
/* Attention!!! MUST BE __align(4) */
ip_addr_t IpAddr;
INT8U MacAddr[6];
INT32U Lease;
}DHCP_CLIENT, *PDHCP_CLIENT;
typedef struct __DHCP_SERVER
{
INT8U Enable;
struct udp_pcb * Socket;
/* Attention!!! MUST BE __align(4) */
ip_addr_t ServerIpAddr;
ip_addr_t StartIpAddr;
ip_addr_t SubnetMask;
ip_addr_t GateWay;
ip_addr_t Dns1;
ip_addr_t Dns2;
INT32U LeaseTime;
DHCP_CLIENT Clients[DHCPS_HISTORY_CLIENT_NUM];
}DHCP_SERVER, *PDHCP_SERVER;
#define DHCPS_HADDR_SIZE 16
#define DHCPS_SNAME_SIZE 64
#define DHCPS_FILENAME_SIZE 128
#define DHCPS_OPTIONS_LEN 312
typedef struct __DHCP_MSG
{
INT8U Op;
INT8U HType;
INT8U HLen;
INT8U HOps;
INT32U Xid;
INT16U Secs;
INT16U Flags;
INT32U Ciaddr;
INT32U Yiaddr;
INT32U Siaddr;
INT32U Giaddr;
INT8U Chaddr[DHCPS_HADDR_SIZE];
INT8U Sname[DHCPS_SNAME_SIZE];
INT8U File[DHCPS_FILENAME_SIZE];
INT32U Magic;
INT8U Options[DHCPS_OPTIONS_LEN - 4];
}DHCP_MSG, *PDHCP_MSG;
INT8S DHCPS_Start(struct netif *Netif);
void DHCPS_Stop(void);
INT8S DHCPS_ClientDelete(INT8U * MacAddr);
void DHCPS_RecvCb(void *Arg, struct udp_pcb *Pcb, struct pbuf *P, ip_addr_t *Addr, INT16U Port);
void DHCPS_SetDns(INT8U numdns, INT32U dns);
ip_addr_t *DHCPS_GetIpByMac(const INT8U *mac_addr);
INT8U *DHCPS_GetMacByIp(const ip_addr_t *ipaddr);
#endif
#endif /* __DHCP_SERVER_H_175137__ */