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:
File diff suppressed because it is too large
Load Diff
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
Reference in New Issue
Block a user