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
File diff suppressed because it is too large Load Diff
+93
View File
@@ -0,0 +1,93 @@
/**************************************************************************
* File Name : tls_netconn.h
* Author :
* Version :
* Date :
* Description :
*
* Copyright (c) 2014 Winner Microelectronics Co., Ltd.
* All rights reserved.
*
***************************************************************************/
#ifndef TLS_NETCONN_H
#define TLS_NETCONN_H
#include "tls_common.h"
#include "lwip/ip_addr.h"
#include "list.h"
#include "lwip/err.h"
#include "wm_socket.h"
#include "arch/sys_arch.h"
#include "lwip/pbuf.h"
#include "wm_netif.h"
#define TLS_NETCONN_TCP 0
#define TLS_NETCONN_UDP 1
#define RAW_SOCKET_USE_CUSTOM_PBUF LWIP_SUPPORT_CUSTOM_PBUF
#define CONN_SEM_NOT_FREE 1
/** A netconn descriptor */
struct tls_netconn {
struct dl_list list;
struct tls_socket_desc *skd;
u8 skt_num;
bool used;
/* client or server mode */
bool client;
ip_addr_t addr;
u16 port;
u16 localport;
u16 proto;
/* the lwIP internal protocol control block */
union {
struct ip_pcb *ip;
struct tcp_pcb *tcp;
struct udp_pcb *udp;
struct raw_pcb *raw;
} pcb;
bool write_state;
u16 write_offset;
struct tls_net_msg *current_msg;
u8 tcp_connect_cnt;
u8 state;
err_t last_err;
#if !CONN_SEM_NOT_FREE
sys_sem_t op_completed;
#endif
u32 idle_time;
};
struct tls_net_msg {
struct dl_list list;
//struct tls_netconn *conn;
void *dataptr;
struct pbuf *p;
ip_addr_t addr;
u16 port;
u32 len;
u32 write_offset;
err_t err;
int skt_no;
};
#if (RAW_SOCKET_USE_CUSTOM_PBUF)
struct raw_sk_pbuf_custom{
/** 'base class' */
struct pbuf_custom pc;
/** pointer to the original pbuf that is referenced */
struct pbuf *original;
/*custom pbuf free function used*/
void *conn;
void *pcb;
};
#endif
int tls_net_init(void);
struct tls_netconn * tls_net_get_socket(u8 socket);
#endif /* end of TLS_NETCONN_H */
+122
View File
@@ -0,0 +1,122 @@
#include "lwip/opt.h"
#if LWIP_SOCKET /* don't build if not configured for use in lwipopts.h */
#include "lwip/sockets.h"
extern struct hostent* lwip_gethostbyname(const char *name);
int
accept(int s, struct sockaddr *addr, socklen_t *addrlen)
{
return lwip_accept(s, addr, addrlen);
}
int
bind(int s, const struct sockaddr *name, socklen_t namelen)
{
return lwip_bind(s, name, namelen);
}
int
shutdown(int s, int how)
{
return lwip_shutdown(s, how);
}
int
closesocket(int s)
{
return lwip_close(s);
}
int
connect(int s, const struct sockaddr *name, socklen_t namelen)
{
return lwip_connect(s, name, namelen);
}
int
getsockname(int s, struct sockaddr *name, socklen_t *namelen)
{
return lwip_getsockname(s, name, namelen);
}
int
getpeername(int s, struct sockaddr *name, socklen_t *namelen)
{
return lwip_getpeername(s, name, namelen);
}
int
setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen)
{
return lwip_setsockopt(s, level, optname, optval, optlen);
}
int
getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen)
{
return lwip_getsockopt(s, level, optname, optval, optlen);
}
int
listen(int s, int backlog)
{
return lwip_listen(s, backlog);
}
int
recv(int s, void *mem, size_t len, int flags)
{
return lwip_recv(s, mem, len, flags);
}
int
recvfrom(int s, void *mem, size_t len, int flags,
struct sockaddr *from, socklen_t *fromlen)
{
return lwip_recvfrom(s, mem, len, flags, from, fromlen);
}
int
send(int s, const void *data, size_t size, int flags)
{
return lwip_send(s, data, size, flags);
}
int
sendto(int s, const void *data, size_t size, int flags,
const struct sockaddr *to, socklen_t tolen)
{
return lwip_sendto(s, data, size, flags, to, tolen);
}
int
socket(int domain, int type, int protocol)
{
return lwip_socket(domain, type, protocol);
}
int
select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,
struct timeval *timeout)
{
return lwip_select(maxfdp1, readset, writeset, exceptset, timeout);
}
int
ioctlsocket(int s, long cmd, void *argp)
{
return lwip_ioctl(s, cmd, argp);
}
int
fcntl(int s, int cmd, int val)
{
return lwip_fcntl(s, cmd, val);
}
struct hostent* gethostbyname(const char *name){
return lwip_gethostbyname(name);
}
#endif /* LWIP_SOCKET */