Skip to content

Commit d3400de

Browse files
author
Dong Heng
committed
feat(esp8266): add ESP8266 platform
1. add board esp8266 module 2. add platform esp8266 mcu module 3. add platform xtensa lx106 arch module 4. mv origin platform xtensa arch module to platform xtensa lx6 module 5. download "helloworld@esp8266-0x1000.bin" to flash's "0x1000"
1 parent e3c9f0e commit d3400de

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)