Skip to content

Commit 7263986

Browse files
authored
Merge pull request #62 from donghengqaz/master
feat(esp8266): add ESP8266 platform
2 parents e3c9f0e + d3400de commit 7263986

172 files changed

Lines changed: 41029 additions & 1 deletion

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

board/esp8266/arch/cc.h

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
/*
2+
* Copyright (c) 2001, Swedish Institute of Computer Science.
3+
* All rights reserved.
4+
*
5+
* Redistribution and use in source and binary forms, with or without
6+
* modification, are permitted provided that the following conditions
7+
* are met:
8+
* 1. Redistributions of source code must retain the above copyright
9+
* notice, this list of conditions and the following disclaimer.
10+
* 2. Redistributions in binary form must reproduce the above copyright
11+
* notice, this list of conditions and the following disclaimer in the
12+
* documentation and/or other materials provided with the distribution.
13+
* 3. Neither the name of the Institute nor the names of its contributors
14+
* may be used to endorse or promote products derived from this software
15+
* without specific prior written permission.
16+
*
17+
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
18+
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19+
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
20+
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
21+
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22+
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
23+
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
24+
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25+
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
26+
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
27+
* SUCH DAMAGE.
28+
*
29+
* This file is part of the lwIP TCP/IP stack.
30+
*
31+
* Author: Adam Dunkels <adam@sics.se>
32+
*
33+
*/
34+
#ifndef __ARCH_CC_H__
35+
#define __ARCH_CC_H__
36+
37+
#include <stdint.h>
38+
#include <errno.h>
39+
#include <assert.h>
40+
#include <stdio.h>
41+
#include <sys/time.h>
42+
43+
int eventfd(unsigned int initval, int flags);
44+
//#include "arch/sys_arch.h"
45+
46+
47+
#define BYTE_ORDER LITTLE_ENDIAN
48+
49+
typedef uint8_t u8_t;
50+
typedef int8_t s8_t;
51+
typedef uint16_t u16_t;
52+
typedef int16_t s16_t;
53+
typedef uint32_t u32_t;
54+
typedef int32_t s32_t;
55+
56+
//typedef unsigned long mem_ptr_t;
57+
//typedef int sys_prot_t;
58+
59+
#define LWIP_MAILBOX_QUEUE 1
60+
61+
#define S16_F "d"
62+
#define U16_F "d"
63+
#define X16_F "x"
64+
65+
#define S32_F "d"
66+
#define U32_F "d"
67+
#define X32_F "x"
68+
69+
#define PACK_STRUCT_FIELD(x) x
70+
#define PACK_STRUCT_STRUCT __attribute__((packed))
71+
#define PACK_STRUCT_BEGIN
72+
#define PACK_STRUCT_END
73+
74+
#include <stdio.h>
75+
#include <stdlib.h>
76+
77+
#define LWIP_PLATFORM_DIAG(x) do {printf x;} while(0)
78+
// __assert_func is the assertion failure handler from newlib, defined in assert.h
79+
#define LWIP_PLATFORM_ASSERT(message) __assert_func(__FILE__, __LINE__, __ASSERT_FUNC, message)
80+
81+
#ifdef NDEBUG
82+
#define LWIP_NOASSERT
83+
#else // Assertions enabled
84+
85+
// If assertions are on, the default LWIP_ERROR handler behaviour is to
86+
// abort w/ an assertion failure. Don't do this, instead just print the error (if LWIP_DEBUG is set)
87+
// and run the handler (same as the LWIP_ERROR behaviour if LWIP_NOASSERT is set).
88+
#ifdef LWIP_DEBUG
89+
#define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \
90+
puts(message); handler;}} while(0)
91+
#else
92+
// If LWIP_DEBUG is not set, return the error silently (default LWIP behaviour, also.)
93+
#define LWIP_ERROR(message, expression, handler) do { if (!(expression)) { \
94+
handler;}} while(0)
95+
#endif // LWIP_DEBUG
96+
97+
#endif /* NDEBUG */
98+
99+
#define LWIP_RAND() ((u32_t)rand())
100+
101+
102+
#endif /* __ARCH_CC_H__ */

board/esp8266/board.c

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
/*
2+
* Copyright (C) 2015-2017 Alibaba Group Holding Limited
3+
*/
4+
5+
#include "hal/soc/soc.h"
6+
#include <aos/kernel.h>
7+
#include <aos/aos.h>
8+
9+
/* Logic partition on flash devices */
10+
const hal_logic_partition_t hal_partitions[] =
11+
{
12+
[HAL_PARTITION_BOOTLOADER] =
13+
{
14+
.partition_owner = HAL_FLASH_EMBEDDED,
15+
.partition_description = "Bootloader",
16+
.partition_start_addr = 0x1000,
17+
.partition_length = 0x7000, //28k bytes
18+
.partition_options = PAR_OPT_READ_EN | PAR_OPT_WRITE_DIS,
19+
},
20+
[HAL_PARTITION_PARAMETER_1] =
21+
{
22+
.partition_owner = HAL_FLASH_EMBEDDED,
23+
.partition_description = "PARAMETER1",
24+
.partition_start_addr = 0x310000,
25+
.partition_length = 0x1000, // 4k bytes
26+
.partition_options = PAR_OPT_READ_EN | PAR_OPT_WRITE_EN,
27+
},
28+
[HAL_PARTITION_PARAMETER_2] =
29+
{
30+
.partition_owner = HAL_FLASH_EMBEDDED,
31+
.partition_description = "PARAMETER2",
32+
.partition_start_addr = 0x311000,
33+
.partition_length = 0x2000, //8k bytes
34+
.partition_options = PAR_OPT_READ_EN | PAR_OPT_WRITE_EN,
35+
},
36+
[HAL_PARTITION_APPLICATION] =
37+
{
38+
.partition_owner = HAL_FLASH_EMBEDDED,
39+
.partition_description = "Application",
40+
.partition_start_addr = 0x10000,
41+
.partition_length = 0x100000, //1MB bytes
42+
.partition_options = PAR_OPT_READ_EN | PAR_OPT_WRITE_EN,
43+
},
44+
[HAL_PARTITION_OTA_TEMP] =
45+
{
46+
.partition_owner = HAL_FLASH_EMBEDDED,
47+
.partition_description = "OTA Storage",
48+
.partition_start_addr = 0x110000,
49+
.partition_length = 0x100000, //1MB bytes
50+
.partition_options = PAR_OPT_READ_EN | PAR_OPT_WRITE_EN,
51+
},
52+
[HAL_PARTITION_PARAMETER_3] =
53+
{
54+
.partition_owner = HAL_FLASH_EMBEDDED,
55+
.partition_description = "PARAMETER3",
56+
.partition_start_addr = 0x313000,
57+
.partition_length = 0x1000, //4k bytes
58+
.partition_options = PAR_OPT_READ_EN | PAR_OPT_WRITE_EN,
59+
},
60+
[HAL_PARTITION_PARAMETER_4] =
61+
{
62+
.partition_owner = HAL_FLASH_EMBEDDED,
63+
.partition_description = "PARAMETER4",
64+
.partition_start_addr = 0x314000,
65+
.partition_length = 0x1000, //4k bytes
66+
.partition_options = PAR_OPT_READ_EN | PAR_OPT_WRITE_EN,
67+
},
68+
};
69+

board/esp8266/esp8266.mk

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
NAME := board_esp8266
2+
3+
MODULE := 1062
4+
HOST_ARCH := xtensa
5+
HOST_MCU_FAMILY := esp8266
6+
SUPPORT_BINS := no
7+
8+
# todo: remove these after rhino/lwip ready
9+
vcall ?= rhino
10+
11+
CURRENT_TIME = $(shell /bin/date +%Y%m%d.%H%M)
12+
define get-os-version
13+
"AOS-R"-$(CURRENT_TIME)
14+
endef
15+
16+
CONFIG_SYSINFO_OS_VERSION := $(call get-os-version)
17+
CONFIG_SYSINFO_PRODUCT_MODEL := ALI_AOS_ESP8266
18+
CONFIG_SYSINFO_DEVICE_NAME := ESP8266
19+
20+
GLOBAL_CFLAGS += -DSYSINFO_PRODUCT_MODEL=\"$(CONFIG_SYSINFO_PRODUCT_MODEL)\"
21+
GLOBAL_CFLAGS += -DSYSINFO_DEVICE_NAME=\"$(CONFIG_SYSINFO_DEVICE_NAME)\"
22+
23+
GLOBAL_INCLUDES += .
24+
$(NAME)_SOURCES := board.c
25+
26+
EXTRA_TARGET_MAKEFILES += $(SOURCE_ROOT)/platform/mcu/$(HOST_MCU_FAMILY)/gen_crc_bin.mk

0 commit comments

Comments
 (0)