Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
ruanhaishen
Nodemcu Firmware
Commits
4911d2db
Commit
4911d2db
authored
Jun 03, 2016
by
Arnim Läuger
Browse files
Merge pull request #1336 from nodemcu/dev
1.5.1 master drop
parents
c8037568
2e109686
Changes
396
Hide whitespace changes
Inline
Side-by-side
sdk/esp_iot_sdk_v1.4.0/include/espnow.h
deleted
100644 → 0
View file @
c8037568
/*
* Copyright (C) 2015 -2018 Espressif System
*
*/
#ifndef __ESPNOW_H__
#define __ESPNOW_H__
enum
esp_now_role
{
ESP_NOW_ROLE_IDLE
=
0
,
ESP_NOW_ROLE_CONTROLLER
,
ESP_NOW_ROLE_SLAVE
,
ESP_NOW_ROLE_MAX
,
};
typedef
void
(
*
esp_now_recv_cb_t
)(
u8
*
mac_addr
,
u8
*
data
,
u8
len
);
typedef
void
(
*
esp_now_send_cb_t
)(
u8
*
mac_addr
,
u8
status
);
int
esp_now_init
(
void
);
int
esp_now_deinit
(
void
);
int
esp_now_register_send_cb
(
esp_now_send_cb_t
cb
);
int
esp_now_unregister_send_cb
(
void
);
int
esp_now_register_recv_cb
(
esp_now_recv_cb_t
cb
);
int
esp_now_unregister_recv_cb
(
void
);
int
esp_now_send
(
u8
*
da
,
u8
*
data
,
int
len
);
int
esp_now_add_peer
(
u8
*
mac_addr
,
u8
role
,
u8
channel
,
u8
*
key
,
u8
key_len
);
int
esp_now_del_peer
(
u8
*
mac_addr
);
int
esp_now_set_self_role
(
u8
role
);
int
esp_now_get_self_role
(
void
);
int
esp_now_set_peer_role
(
u8
*
mac_addr
,
u8
role
);
int
esp_now_get_peer_role
(
u8
*
mac_addr
);
int
esp_now_set_peer_channel
(
u8
*
mac_addr
,
u8
channel
);
int
esp_now_get_peer_channel
(
u8
*
mac_addr
);
int
esp_now_set_peer_key
(
u8
*
mac_addr
,
u8
*
key
,
u8
key_len
);
int
esp_now_get_peer_key
(
u8
*
mac_addr
,
u8
*
key
,
u8
*
key_len
);
u8
*
esp_now_fetch_peer
(
bool
restart
);
int
esp_now_is_peer_exist
(
u8
*
mac_addr
);
int
esp_now_get_cnt_info
(
u8
*
all_cnt
,
u8
*
encrypt_cnt
);
int
esp_now_set_kok
(
u8
*
key
,
u8
len
);
#endif
sdk/esp_iot_sdk_v1.4.0/include/ets_sys.h
deleted
100644 → 0
View file @
c8037568
/*
* copyright (c) 2008 - 2011 Espressif System
*
* Define user specified Event signals and Task priorities here
*
*/
#ifndef _ETS_SYS_H
#define _ETS_SYS_H
#include "c_types.h"
#include "eagle_soc.h"
typedef
uint32_t
ETSSignal
;
typedef
uint32_t
ETSParam
;
typedef
struct
ETSEventTag
ETSEvent
;
struct
ETSEventTag
{
ETSSignal
sig
;
ETSParam
par
;
};
typedef
void
(
*
ETSTask
)(
ETSEvent
*
e
);
/* timer related */
typedef
uint32_t
ETSHandle
;
typedef
void
ETSTimerFunc
(
void
*
timer_arg
);
typedef
struct
_ETSTIMER_
{
struct
_ETSTIMER_
*
timer_next
;
uint32_t
timer_expire
;
uint32_t
timer_period
;
ETSTimerFunc
*
timer_func
;
void
*
timer_arg
;
}
ETSTimer
;
/* interrupt related */
#define ETS_SPI_INUM 2
#define ETS_GPIO_INUM 4
#define ETS_UART_INUM 5
#define ETS_UART1_INUM 5
#define ETS_FRC_TIMER1_INUM 9
/* use edge*/
#define ETS_INTR_LOCK() \
ets_intr_lock()
#define ETS_INTR_UNLOCK() \
ets_intr_unlock()
#define ETS_FRC_TIMER1_INTR_ATTACH(func, arg) \
ets_isr_attach(ETS_FRC_TIMER1_INUM, (func), (void *)(arg))
#define ETS_FRC_TIMER1_NMI_INTR_ATTACH(func) \
NmiTimSetFunc(func)
#define ETS_GPIO_INTR_ATTACH(func, arg) \
ets_isr_attach(ETS_GPIO_INUM, (func), (void *)(arg))
#define ETS_UART_INTR_ATTACH(func, arg) \
ets_isr_attach(ETS_UART_INUM, (func), (void *)(arg))
#define ETS_SPI_INTR_ATTACH(func, arg) \
ets_isr_attach(ETS_SPI_INUM, (func), (void *)(arg))
#define ETS_INTR_ENABLE(inum) \
ets_isr_unmask((1<<inum))
#define ETS_INTR_DISABLE(inum) \
ets_isr_mask((1<<inum))
#define ETS_SPI_INTR_ENABLE() \
ETS_INTR_ENABLE(ETS_SPI_INUM)
#define ETS_UART_INTR_ENABLE() \
ETS_INTR_ENABLE(ETS_UART_INUM)
#define ETS_UART_INTR_DISABLE() \
ETS_INTR_DISABLE(ETS_UART_INUM)
#define ETS_FRC1_INTR_ENABLE() \
ETS_INTR_ENABLE(ETS_FRC_TIMER1_INUM)
#define ETS_FRC1_INTR_DISABLE() \
ETS_INTR_DISABLE(ETS_FRC_TIMER1_INUM)
#define ETS_GPIO_INTR_ENABLE() \
ETS_INTR_ENABLE(ETS_GPIO_INUM)
#define ETS_GPIO_INTR_DISABLE() \
ETS_INTR_DISABLE(ETS_GPIO_INUM)
#endif
/* _ETS_SYS_H */
sdk/esp_iot_sdk_v1.4.0/include/gpio.h
deleted
100644 → 0
View file @
c8037568
/*
* copyright (c) Espressif System 2010
*
*/
#ifndef _GPIO_H_
#define _GPIO_H_
#define GPIO_PIN_ADDR(i) (GPIO_PIN0_ADDRESS + i*4)
#define GPIO_ID_IS_PIN_REGISTER(reg_id) \
((reg_id >= GPIO_ID_PIN0) && (reg_id <= GPIO_ID_PIN(GPIO_PIN_COUNT-1)))
#define GPIO_REGID_TO_PINIDX(reg_id) ((reg_id) - GPIO_ID_PIN0)
typedef
enum
{
GPIO_PIN_INTR_DISABLE
=
0
,
GPIO_PIN_INTR_POSEDGE
=
1
,
GPIO_PIN_INTR_NEGEDGE
=
2
,
GPIO_PIN_INTR_ANYEDGE
=
3
,
GPIO_PIN_INTR_LOLEVEL
=
4
,
GPIO_PIN_INTR_HILEVEL
=
5
}
GPIO_INT_TYPE
;
#define GPIO_OUTPUT_SET(gpio_no, bit_value) \
gpio_output_set((bit_value)<<gpio_no, ((~(bit_value))&0x01)<<gpio_no, 1<<gpio_no,0)
#define GPIO_DIS_OUTPUT(gpio_no) gpio_output_set(0,0,0, 1<<gpio_no)
#define GPIO_INPUT_GET(gpio_no) ((gpio_input_get()>>gpio_no)&BIT0)
/* GPIO interrupt handler, registered through gpio_intr_handler_register */
typedef
void
(
*
gpio_intr_handler_fn_t
)(
uint32
intr_mask
,
void
*
arg
);
/*
* Initialize GPIO. This includes reading the GPIO Configuration DataSet
* to initialize "output enables" and pin configurations for each gpio pin.
* Must be called once during startup.
*/
void
gpio_init
(
void
);
/*
* Change GPIO pin output by setting, clearing, or disabling pins.
* In general, it is expected that a bit will be set in at most one
* of these masks. If a bit is clear in all masks, the output state
* remains unchanged.
*
* There is no particular ordering guaranteed; so if the order of
* writes is significant, calling code should divide a single call
* into multiple calls.
*/
void
gpio_output_set
(
uint32
set_mask
,
uint32
clear_mask
,
uint32
enable_mask
,
uint32
disable_mask
);
/*
* Sample the value of GPIO input pins and returns a bitmask.
*/
uint32
gpio_input_get
(
void
);
/*
* Set the specified GPIO register to the specified value.
* This is a very general and powerful interface that is not
* expected to be used during normal operation. It is intended
* mainly for debug, or for unusual requirements.
*/
void
gpio_register_set
(
uint32
reg_id
,
uint32
value
);
/* Get the current value of the specified GPIO register. */
uint32
gpio_register_get
(
uint32
reg_id
);
/*
* Register an application-specific interrupt handler for GPIO pin
* interrupts. Once the interrupt handler is called, it will not
* be called again until after a call to gpio_intr_ack. Any GPIO
* interrupts that occur during the interim are masked.
*
* The application-specific handler is called with a mask of
* pending GPIO interrupts. After processing pin interrupts, the
* application-specific handler may wish to use gpio_intr_pending
* to check for any additional pending interrupts before it returns.
*/
void
gpio_intr_handler_register
(
gpio_intr_handler_fn_t
fn
,
void
*
arg
);
/* Determine which GPIO interrupts are pending. */
uint32
gpio_intr_pending
(
void
);
/*
* Acknowledge GPIO interrupts.
* Intended to be called from the gpio_intr_handler_fn.
*/
void
gpio_intr_ack
(
uint32
ack_mask
);
void
gpio_pin_wakeup_enable
(
uint32
i
,
GPIO_INT_TYPE
intr_state
);
void
gpio_pin_wakeup_disable
();
void
gpio_pin_intr_state_set
(
uint32
i
,
GPIO_INT_TYPE
intr_state
);
#endif // _GPIO_H_
sdk/esp_iot_sdk_v1.4.0/include/ip_addr.h
deleted
100644 → 0
View file @
c8037568
#ifndef __IP_ADDR_H__
#define __IP_ADDR_H__
#include "c_types.h"
struct
ip_addr
{
uint32
addr
;
};
typedef
struct
ip_addr
ip_addr_t
;
struct
ip_info
{
struct
ip_addr
ip
;
struct
ip_addr
netmask
;
struct
ip_addr
gw
;
};
/**
* Determine if two address are on the same network.
*
* @arg addr1 IP address 1
* @arg addr2 IP address 2
* @arg mask network identifier mask
* @return !0 if the network identifiers of both address match
*/
#define ip_addr_netcmp(addr1, addr2, mask) (((addr1)->addr & \
(mask)->addr) == \
((addr2)->addr & \
(mask)->addr))
/** Set an IP address given by the four byte-parts.
Little-endian version that prevents the use of htonl. */
#define IP4_ADDR(ipaddr, a,b,c,d) \
(ipaddr)->addr = ((uint32)((d) & 0xff) << 24) | \
((uint32)((c) & 0xff) << 16) | \
((uint32)((b) & 0xff) << 8) | \
(uint32)((a) & 0xff)
#define ip4_addr1(ipaddr) (((uint8*)(ipaddr))[0])
#define ip4_addr2(ipaddr) (((uint8*)(ipaddr))[1])
#define ip4_addr3(ipaddr) (((uint8*)(ipaddr))[2])
#define ip4_addr4(ipaddr) (((uint8*)(ipaddr))[3])
#define ip4_addr1_16(ipaddr) ((uint16)ip4_addr1(ipaddr))
#define ip4_addr2_16(ipaddr) ((uint16)ip4_addr2(ipaddr))
#define ip4_addr3_16(ipaddr) ((uint16)ip4_addr3(ipaddr))
#define ip4_addr4_16(ipaddr) ((uint16)ip4_addr4(ipaddr))
/** 255.255.255.255 */
#define IPADDR_NONE ((uint32)0xffffffffUL)
/** 0.0.0.0 */
#define IPADDR_ANY ((uint32)0x00000000UL)
uint32
ipaddr_addr
(
const
char
*
cp
);
#define IP2STR(ipaddr) ip4_addr1_16(ipaddr), \
ip4_addr2_16(ipaddr), \
ip4_addr3_16(ipaddr), \
ip4_addr4_16(ipaddr)
#define IPSTR "%d.%d.%d.%d"
#endif
/* __IP_ADDR_H__ */
sdk/esp_iot_sdk_v1.4.0/include/json/json.h
deleted
100644 → 0
View file @
c8037568
/*
* Copyright (c) 2011-2012, Swedish Institute of Computer Science.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* This file is part of the Contiki operating system.
*/
/**
* \file
* A few JSON defines used for parsing and generating JSON.
* \author
* Niclas Finne <nfi@sics.se>
* Joakim Eriksson <joakime@sics.se>
*/
#ifndef __JSON_H__
#define __JSON_H__
#define JSON_TYPE_ARRAY '['
#define JSON_TYPE_OBJECT '{'
#define JSON_TYPE_PAIR ':'
#define JSON_TYPE_PAIR_NAME 'N'
/* for N:V pairs */
#define JSON_TYPE_STRING '"'
#define JSON_TYPE_INT 'I'
#define JSON_TYPE_NUMBER '0'
#define JSON_TYPE_ERROR 0
/* how should we handle null vs false - both can be 0? */
#define JSON_TYPE_NULL 'n'
#define JSON_TYPE_TRUE 't'
#define JSON_TYPE_FALSE 'f'
#define JSON_TYPE_CALLBACK 'C'
enum
{
JSON_ERROR_OK
,
JSON_ERROR_SYNTAX
,
JSON_ERROR_UNEXPECTED_ARRAY
,
JSON_ERROR_UNEXPECTED_END_OF_ARRAY
,
JSON_ERROR_UNEXPECTED_OBJECT
,
JSON_ERROR_UNEXPECTED_STRING
};
#define JSON_CONTENT_TYPE "application/json"
#endif
/* __JSON_H__ */
sdk/esp_iot_sdk_v1.4.0/include/json/jsonparse.h
deleted
100644 → 0
View file @
c8037568
/*
* Copyright (c) 2011-2012, Swedish Institute of Computer Science.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* This file is part of the Contiki operating system.
*/
#ifndef __JSONPARSE_H__
#define __JSONPARSE_H__
#include "c_types.h"
#include "json/json.h"
#ifdef JSONPARSE_CONF_MAX_DEPTH
#define JSONPARSE_MAX_DEPTH JSONPARSE_CONF_MAX_DEPTH
#else
#define JSONPARSE_MAX_DEPTH 10
#endif
struct
jsonparse_state
{
const
char
*
json
;
int
pos
;
int
len
;
int
depth
;
/* for handling atomic values */
int
vstart
;
int
vlen
;
char
vtype
;
char
error
;
char
stack
[
JSONPARSE_MAX_DEPTH
];
};
/**
* \brief Initialize a JSON parser state.
* \param state A pointer to a JSON parser state
* \param json The string to parse as JSON
* \param len The length of the string to parse
*
* This function initializes a JSON parser state for
* parsing a string as JSON.
*/
void
jsonparse_setup
(
struct
jsonparse_state
*
state
,
const
char
*
json
,
int
len
);
/* move to next JSON element */
int
jsonparse_next
(
struct
jsonparse_state
*
state
);
/* copy the current JSON value into the specified buffer */
int
jsonparse_copy_value
(
struct
jsonparse_state
*
state
,
char
*
buf
,
int
buf_size
);
/* get the current JSON value parsed as an int */
int
jsonparse_get_value_as_int
(
struct
jsonparse_state
*
state
);
/* get the current JSON value parsed as a long */
long
jsonparse_get_value_as_long
(
struct
jsonparse_state
*
state
);
/* get the current JSON value parsed as a unsigned long */
unsigned
long
jsonparse_get_value_as_ulong
(
struct
jsonparse_state
*
state
);
/* get the length of the current JSON value */
int
jsonparse_get_len
(
struct
jsonparse_state
*
state
);
/* get the type of the current JSON value */
int
jsonparse_get_type
(
struct
jsonparse_state
*
state
);
/* compare the JSON value with the specified string */
int
jsonparse_strcmp_value
(
struct
jsonparse_state
*
state
,
const
char
*
str
);
#endif
/* __JSONPARSE_H__ */
sdk/esp_iot_sdk_v1.4.0/include/json/jsontree.h
deleted
100644 → 0
View file @
c8037568
/*
* Copyright (c) 2011-2012, Swedish Institute of Computer Science.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. Neither the name of the Institute nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* This file is part of the Contiki operating system.
*/
/**
* \file
* JSON output generation
* \author
* Niclas Finne <nfi@sics.se>
* Joakim Eriksson <joakime@sics.se>
*/
#ifndef __JSONTREE_H__
#define __JSONTREE_H__
#include "c_types.h"
#include "json/json.h"
#ifdef JSONTREE_CONF_MAX_DEPTH
#define JSONTREE_MAX_DEPTH JSONTREE_CONF_MAX_DEPTH
#else
#define JSONTREE_MAX_DEPTH 10
#endif
/* JSONTREE_CONF_MAX_DEPTH */
struct
jsontree_context
{
struct
jsontree_value
*
values
[
JSONTREE_MAX_DEPTH
];
uint16_t
index
[
JSONTREE_MAX_DEPTH
];
int
(
*
putchar
)(
int
);
uint8_t
depth
;
uint8_t
path
;
int
callback_state
;
};
struct
jsontree_value
{
uint8_t
type
;
/* followed by a value */
};
struct
jsontree_string
{
uint8_t
type
;
const
char
*
value
;
};
struct
jsontree_int
{
uint8_t
type
;
int
value
;
};
/* NOTE: the jsontree_callback set will receive a jsonparse state */
struct
jsonparse_state
;
struct
jsontree_callback
{
uint8_t
type
;
int
(
*
output
)(
struct
jsontree_context
*
js_ctx
);
int
(
*
set
)(
struct
jsontree_context
*
js_ctx
,
struct
jsonparse_state
*
parser
);
};
struct
jsontree_pair
{
const
char
*
name
;
struct
jsontree_value
*
value
;
};
struct
jsontree_object
{
uint8_t
type
;
uint8_t
count
;
struct
jsontree_pair
*
pairs
;
};
struct
jsontree_array
{
uint8_t
type
;
uint8_t
count
;
struct
jsontree_value
**
values
;
};
#define JSONTREE_STRING(text) {JSON_TYPE_STRING, (text)}
#define JSONTREE_PAIR(name, value) {(name), (struct jsontree_value *)(value)}
#define JSONTREE_CALLBACK(output, set) {JSON_TYPE_CALLBACK, (output), (set)}
#define JSONTREE_OBJECT(name, ...) \
static
struct
jsontree_pair
jsontree_pair_
##
name
[]
=
{
__VA_ARGS__
};
\
static
struct
jsontree_object
name
=
{
\
JSON_TYPE_OBJECT
,
\
sizeof
(
jsontree_pair_
##
name
)
/
sizeof
(
struct
jsontree_pair
),
\
jsontree_pair_
##
name
}
#define JSONTREE_PAIR_ARRAY(value) (struct jsontree_value *)(value)
#define JSONTREE_ARRAY(name, ...) \
static
struct
jsontree_value
*
jsontree_value_
##
name
[]
=
{
__VA_ARGS__
};
\
static
struct
jsontree_array
name
=
{
\
JSON_TYPE_ARRAY
,
\
sizeof
(
jsontree_value_
##
name
)
/
sizeof
(
struct
jsontree_value
*
),
\
jsontree_value_
##
name
}
#define JSONTREE_OBJECT_EXT(name, ...) \
static
struct
jsontree_pair
jsontree_pair_
##
name
[]
=
{
__VA_ARGS__
};
\
struct
jsontree_object
name
=
{
\
JSON_TYPE_OBJECT
,
\
sizeof
(
jsontree_pair_
##
name
)
/
sizeof
(
struct
jsontree_pair
),
\
jsontree_pair_
##
name
}
void
jsontree_setup
(
struct
jsontree_context
*
js_ctx
,
struct
jsontree_value
*
root
,
int
(
*
putchar
)(
int
));
void
jsontree_reset
(
struct
jsontree_context
*
js_ctx
);
const
char
*
jsontree_path_name
(
const
struct
jsontree_context
*
js_ctx
,
int
depth
);
void
jsontree_write_int
(
const
struct
jsontree_context
*
js_ctx
,
int
value
);
void
jsontree_write_int_array
(
const
struct
jsontree_context
*
js_ctx
,
const
int
*
text
,
uint32
length
);
void
jsontree_write_atom
(
const
struct
jsontree_context
*
js_ctx
,
const
char
*
text
);
void
jsontree_write_string
(
const
struct
jsontree_context
*
js_ctx
,
const
char
*
text
);
int
jsontree_print_next
(
struct
jsontree_context
*
js_ctx
);
struct
jsontree_value
*
jsontree_find_next
(
struct
jsontree_context
*
js_ctx
,
int
type
);
#endif
/* __JSONTREE_H__ */
sdk/esp_iot_sdk_v1.4.0/include/mem.h
deleted
100644 → 0
View file @
c8037568
#ifndef __MEM_H__
#define __MEM_H__
#ifndef MEMLEAK_DEBUG
#define os_free(s) vPortFree(s, "", 0)
#define os_malloc(s) pvPortMalloc(s, "", 0)
#define os_calloc(s) pvPortCalloc(s, "", 0);
#define os_realloc(p, s) pvPortRealloc(p, s, "", 0)
#define os_zalloc(s) pvPortZalloc(s, "", 0)
#else
#define os_free(s) \
do
{
\
const
char
*
file
=
mem_debug_file
;
\
vPortFree
(
s
,
file
,
__LINE__
);
\
}
while
(
0
)
#define os_malloc(s) ({const char *file = mem_debug_file; pvPortMalloc(s, file, __LINE__);})
#define os_calloc(s) ({const char *file = mem_debug_file; pvPortCalloc(s, file, __LINE__);})
#define os_realloc(p, s) ({const char *file = mem_debug_file; pvPortRealloc(p, s, file, __LINE__);})
#define os_zalloc(s) ({const char *file = mem_debug_file; pvPortZalloc(s, file, __LINE__);})
#endif
#endif
sdk/esp_iot_sdk_v1.4.0/include/mesh.h
deleted
100644 → 0
View file @
c8037568
#ifndef __LWIP_API_MESH_H__
#define __LWIP_API_MESH_H__
#include "ip_addr.h"
#include "user_interface.h"
#include "espconn.h"
typedef
void
(
*
espconn_mesh_callback
)();
enum
mesh_type
{
MESH_CLOSE
=
0
,
MESH_LOCAL
,
MESH_ONLINE
,
MESH_NONE
=
0xFF
};
enum
mesh_status
{
MESH_DISABLE
=
0
,
MESH_WIFI_CONN
,
MESH_NET_CONN
,
MESH_LOCAL_AVAIL
,
MESH_ONLINE_AVAIL
};
enum
mesh_node_type
{
MESH_NODE_PARENT
=
0
,
MESH_NODE_CHILD
,
MESH_NODE_ALL
};
bool
espconn_mesh_local_addr
(
struct
ip_addr
*
ip
);
bool
espconn_mesh_get_node_info
(
enum
mesh_node_type
type
,
uint8_t
**
info
,
uint8_t
*
count
);
bool
espconn_mesh_get_router
(
struct
station_config
*
router
);
bool
espconn_mesh_set_router
(
struct
station_config
*
router
);
bool
espconn_mesh_encrypt_init
(
AUTH_MODE
mode
,
uint8_t
*
passwd
,
uint8_t
passwd_len
);
bool
espconn_mesh_set_ssid_prefix
(
uint8_t
*
prefix
,
uint8_t
prefix_len
);
bool
espconn_mesh_set_max_hops
(
uint8_t
max_hops
);
char
*
espconn_json_find_section
(
const
char
*
pbuf
,
u16
len
,
const
char
*
section
);
sint8
espconn_mesh_connect
(
struct
espconn
*
usr_esp
);
sint8
espconn_mesh_disconnect
(
struct
espconn
*
usr_esp
);
sint8
espconn_mesh_get_status
();
sint8
espconn_mesh_sent
(
struct
espconn
*
usr_esp
,
uint8
*
pdata
,
uint16
len
);
uint8
espconn_mesh_get_max_hops
();
uint8
espconn_mesh_layer
(
struct
ip_addr
*
ip
);
uint32_t
user_json_get_value
(
const
char
*
pbuffer
,
uint16_t
buf_len
,
const
uint8_t
*
json_key
);
void
espconn_mesh_enable
(
espconn_mesh_callback
enable_cb
,
enum
mesh_type
type
);
void
espconn_mesh_disable
(
espconn_mesh_callback
disable_cb
);
void
espconn_mesh_init
();
void
espconn_mesh_init_group_list
(
uint8_t
*
dev_mac
,
uint16_t
dev_count
);
void
espconn_mesh_set_dev_type
(
uint8_t
dev_type
);
void
espconn_mesh_setup_timer
(
os_timer_t
*
timer
,
uint32_t
time
,
os_timer_func_t
cb
,
void
*
arg
,
bool
repeat
);
#endif
sdk/esp_iot_sdk_v1.4.0/include/os_type.h
deleted
100644 → 0
View file @
c8037568
/*
* copyright (c) Espressif System 2010
*
* mapping to ETS structures
*
*/
#ifndef _OS_TYPES_H_
#define _OS_TYPES_H_
#include "ets_sys.h"
#define os_signal_t ETSSignal
#define os_param_t ETSParam
#define os_event_t ETSEvent
#define os_task_t ETSTask
#define os_timer_t ETSTimer
#define os_timer_func_t ETSTimerFunc
#endif
sdk/esp_iot_sdk_v1.4.0/include/osapi.h
deleted
100644 → 0
View file @
c8037568
/*
* Copyright (c) 2010 Espressif System
*/
#ifndef _OSAPI_H_
#define _OSAPI_H_
#include <string.h>
#include "user_config.h"
#define os_bzero ets_bzero
#define os_delay_us ets_delay_us
#define os_install_putc1 ets_install_putc1
#define os_memcmp ets_memcmp
#define os_memcpy ets_memcpy
#define os_memmove ets_memmove
#define os_memset ets_memset
#define os_strcat strcat
#define os_strchr strchr
#define os_strcmp ets_strcmp
#define os_strcpy ets_strcpy
#define os_strlen ets_strlen
#define os_strncmp ets_strncmp
#define os_strncpy ets_strncpy
#define os_strstr ets_strstr
#ifdef USE_US_TIMER
#define os_timer_arm_us(a, b, c) ets_timer_arm_new(a, b, c, 0)
#endif
#define os_timer_arm(a, b, c) ets_timer_arm_new(a, b, c, 1)
#define os_timer_disarm ets_timer_disarm
#define os_timer_setfn ets_timer_setfn
#define os_sprintf ets_sprintf
#ifdef USE_OPTIMIZE_PRINTF
#define os_printf(fmt, ...) do { \
static
const
char
flash_str
[]
ICACHE_RODATA_ATTR
__attribute__
((
aligned
(
4
)))
=
fmt
;
\
os_printf_plus
(
flash_str
,
##
__VA_ARGS__
);
\
}
while
(
0
)
#else
#define os_printf os_printf_plus
#endif
unsigned
long
os_random
(
void
);
int
os_get_random
(
unsigned
char
*
buf
,
size_t
len
);
#endif
sdk/esp_iot_sdk_v1.4.0/include/ping.h
deleted
100644 → 0
View file @
c8037568
#ifndef __PING_H__
#define __PING_H__
typedef
void
(
*
ping_recv_function
)(
void
*
arg
,
void
*
pdata
);
typedef
void
(
*
ping_sent_function
)(
void
*
arg
,
void
*
pdata
);
struct
ping_option
{
uint32
count
;
uint32
ip
;
uint32
coarse_time
;
ping_recv_function
recv_function
;
ping_sent_function
sent_function
;
void
*
reverse
;
};
struct
ping_resp
{
uint32
total_count
;
uint32
resp_time
;
uint32
seqno
;
uint32
timeout_count
;
uint32
bytes
;
uint32
total_bytes
;
uint32
total_time
;
sint8
ping_err
;
};
bool
ping_start
(
struct
ping_option
*
ping_opt
);
bool
ping_regist_recv
(
struct
ping_option
*
ping_opt
,
ping_recv_function
ping_recv
);
bool
ping_regist_sent
(
struct
ping_option
*
ping_opt
,
ping_sent_function
ping_sent
);
#endif
/* __PING_H__ */
sdk/esp_iot_sdk_v1.4.0/include/pwm.h
deleted
100644 → 0
View file @
c8037568
#ifndef __PWM_H__
#define __PWM_H__
/*pwm.h: function and macro definition of PWM API , driver level */
/*user_light.h: user interface for light API, user level*/
/*user_light_adj: API for color changing and lighting effects, user level*/
/*NOTE!! : DO NOT CHANGE THIS FILE*/
/*SUPPORT UP TO 8 PWM CHANNEL*/
#define PWM_CHANNEL_NUM_MAX 8
struct
pwm_param
{
uint32
period
;
uint32
freq
;
uint32
duty
[
PWM_CHANNEL_NUM_MAX
];
//PWM_CHANNEL<=8
};
/* pwm_init should be called only once, for now */
void
pwm_init
(
uint32
period
,
uint32
*
duty
,
uint32
pwm_channel_num
,
uint32
(
*
pin_info_list
)[
3
]);
void
pwm_start
(
void
);
void
pwm_set_duty
(
uint32
duty
,
uint8
channel
);
uint32
pwm_get_duty
(
uint8
channel
);
void
pwm_set_period
(
uint32
period
);
uint32
pwm_get_period
(
void
);
uint32
get_pwm_version
(
void
);
void
set_pwm_debug_en
(
uint8
print_en
);
#endif
sdk/esp_iot_sdk_v1.4.0/include/queue.h
deleted
100644 → 0
View file @
c8037568
#ifndef _SYS_QUEUE_H_
#define _SYS_QUEUE_H_
#define QMD_SAVELINK(name, link)
#define TRASHIT(x)
/*
* Singly-linked List declarations.
*/
#define SLIST_HEAD(name, type) \
struct name { \
struct type *slh_first;
/* first element */
\
}
#define SLIST_HEAD_INITIALIZER(head) \
{ NULL }
#define SLIST_ENTRY(type) \
struct { \
struct type *sle_next;
/* next element */
\
}
/*
* Singly-linked List functions.
*/
#define SLIST_EMPTY(head) ((head)->slh_first == NULL)
#define SLIST_FIRST(head) ((head)->slh_first)
#define SLIST_FOREACH(var, head, field) \
for ((var) = SLIST_FIRST((head)); \
(var); \
(var) = SLIST_NEXT((var), field))
#define SLIST_FOREACH_SAFE(var, head, field, tvar) \
for ((var) = SLIST_FIRST((head)); \
(var) && ((tvar) = SLIST_NEXT((var), field), 1); \
(var) = (tvar))
#define SLIST_FOREACH_PREVPTR(var, varp, head, field) \
for ((varp) = &SLIST_FIRST((head)); \
((var) = *(varp)) != NULL; \
(varp) = &SLIST_NEXT((var), field))
#define SLIST_INIT(head) do { \
SLIST_FIRST((head)) = NULL; \
} while (0)
#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \
SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field); \
SLIST_NEXT((slistelm), field) = (elm); \
} while (0)
#define SLIST_INSERT_HEAD(head, elm, field) do { \
SLIST_NEXT((elm), field) = SLIST_FIRST((head)); \
SLIST_FIRST((head)) = (elm); \
} while (0)
#define SLIST_NEXT(elm, field) ((elm)->field.sle_next)
#define SLIST_REMOVE(head, elm, type, field) do { \
QMD_SAVELINK(oldnext, (elm)->field.sle_next); \
if (SLIST_FIRST((head)) == (elm)) { \
SLIST_REMOVE_HEAD((head), field); \
} \
else { \
struct type *curelm = SLIST_FIRST((head)); \
while (SLIST_NEXT(curelm, field) != (elm)) \
curelm = SLIST_NEXT(curelm, field); \
SLIST_REMOVE_AFTER(curelm, field); \
} \
TRASHIT(*oldnext); \
} while (0)
#define SLIST_REMOVE_AFTER(elm, field) do { \
SLIST_NEXT(elm, field) = \
SLIST_NEXT(SLIST_NEXT(elm, field), field); \
} while (0)
#define SLIST_REMOVE_HEAD(head, field) do { \
SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field); \
} while (0)
/*
* Singly-linked Tail queue declarations.
*/
#define STAILQ_HEAD(name, type) \
struct name { \
struct type *stqh_first;
/* first element */
\
struct type **stqh_last;
/* addr of last next element */
\
}
#define STAILQ_HEAD_INITIALIZER(head) \
{ NULL, &(head).stqh_first }
#define STAILQ_ENTRY(type) \
struct { \
struct type *stqe_next;
/* next element */
\
}
/*
* Singly-linked Tail queue functions.
*/
#define STAILQ_CONCAT(head1, head2) do { \
if (!STAILQ_EMPTY((head2))) { \
*(head1)->stqh_last = (head2)->stqh_first; \
(head1)->stqh_last = (head2)->stqh_last; \
STAILQ_INIT((head2)); \
} \
} while (0)
#define STAILQ_EMPTY(head) ((head)->stqh_first == NULL)
#define STAILQ_FIRST(head) ((head)->stqh_first)
#define STAILQ_FOREACH(var, head, field) \
for((var) = STAILQ_FIRST((head)); \
(var); \
(var) = STAILQ_NEXT((var), field))
#define STAILQ_FOREACH_SAFE(var, head, field, tvar) \
for ((var) = STAILQ_FIRST((head)); \
(var) && ((tvar) = STAILQ_NEXT((var), field), 1); \
(var) = (tvar))
#define STAILQ_INIT(head) do { \
STAILQ_FIRST((head)) = NULL; \
(head)->stqh_last = &STAILQ_FIRST((head)); \
} while (0)
#define STAILQ_INSERT_AFTER(head, tqelm, elm, field) do { \
if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\
(head)->stqh_last = &STAILQ_NEXT((elm), field); \
STAILQ_NEXT((tqelm), field) = (elm); \
} while (0)
#define STAILQ_INSERT_HEAD(head, elm, field) do { \
if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL) \
(head)->stqh_last = &STAILQ_NEXT((elm), field); \
STAILQ_FIRST((head)) = (elm); \
} while (0)
#define STAILQ_INSERT_TAIL(head, elm, field) do { \
STAILQ_NEXT((elm), field) = NULL; \
*(head)->stqh_last = (elm); \
(head)->stqh_last = &STAILQ_NEXT((elm), field); \
} while (0)
#define STAILQ_LAST(head, type, field) \
(STAILQ_EMPTY((head)) ? \
NULL : \
((struct type *)(void *) \
((char *)((head)->stqh_last) - __offsetof(struct type, field))))
#define STAILQ_NEXT(elm, field) ((elm)->field.stqe_next)
#define STAILQ_REMOVE(head, elm, type, field) do { \
QMD_SAVELINK(oldnext, (elm)->field.stqe_next); \
if (STAILQ_FIRST((head)) == (elm)) { \
STAILQ_REMOVE_HEAD((head), field); \
} \
else { \
struct type *curelm = STAILQ_FIRST((head)); \
while (STAILQ_NEXT(curelm, field) != (elm)) \
curelm = STAILQ_NEXT(curelm, field); \
STAILQ_REMOVE_AFTER(head, curelm, field); \
} \
TRASHIT(*oldnext); \
} while (0)
#define STAILQ_REMOVE_HEAD(head, field) do { \
if ((STAILQ_FIRST((head)) = \
STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL) \
(head)->stqh_last = &STAILQ_FIRST((head)); \
} while (0)
#define STAILQ_REMOVE_AFTER(head, elm, field) do { \
if ((STAILQ_NEXT(elm, field) = \
STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL) \
(head)->stqh_last = &STAILQ_NEXT((elm), field); \
} while (0)
#define STAILQ_SWAP(head1, head2, type) do { \
struct type *swap_first = STAILQ_FIRST(head1); \
struct type **swap_last = (head1)->stqh_last; \
STAILQ_FIRST(head1) = STAILQ_FIRST(head2); \
(head1)->stqh_last = (head2)->stqh_last; \
STAILQ_FIRST(head2) = swap_first; \
(head2)->stqh_last = swap_last; \
if (STAILQ_EMPTY(head1)) \
(head1)->stqh_last = &STAILQ_FIRST(head1); \
if (STAILQ_EMPTY(head2)) \
(head2)->stqh_last = &STAILQ_FIRST(head2); \
} while (0)
#define STAILQ_INSERT_CHAIN_HEAD(head, elm_chead, elm_ctail, field) do { \
if ((STAILQ_NEXT(elm_ctail, field) = STAILQ_FIRST(head)) == NULL ) { \
(head)->stqh_last = &STAILQ_NEXT(elm_ctail, field); \
} \
STAILQ_FIRST(head) = (elm_chead); \
} while (0)
#endif
/* !_SYS_QUEUE_H_ */
sdk/esp_iot_sdk_v1.4.0/include/smartconfig.h
deleted
100644 → 0
View file @
c8037568
/*
* Copyright (C) 2015 -2018 Espressif System
*
*/
#ifndef __SMARTCONFIG_H__
#define __SMARTCONFIG_H__
typedef
enum
{
SC_STATUS_WAIT
=
0
,
SC_STATUS_FIND_CHANNEL
,
SC_STATUS_GETTING_SSID_PSWD
,
SC_STATUS_LINK
,
SC_STATUS_LINK_OVER
,
}
sc_status
;
typedef
enum
{
SC_TYPE_ESPTOUCH
=
0
,
SC_TYPE_AIRKISS
,
SC_TYPE_ESPTOUCH_AIRKISS
,
}
sc_type
;
typedef
void
(
*
sc_callback_t
)(
sc_status
status
,
void
*
pdata
);
const
char
*
smartconfig_get_version
(
void
);
bool
smartconfig_start
(
sc_callback_t
cb
,
...);
bool
smartconfig_stop
(
void
);
bool
esptouch_set_timeout
(
uint8
time_s
);
//15s~255s, offset:45s
bool
smartconfig_set_type
(
sc_type
type
);
#endif
sdk/esp_iot_sdk_v1.4.0/include/sntp.h
deleted
100644 → 0
View file @
c8037568
#ifndef __SNTP_H__
#define __SNTP_H__
#include "os_type.h"
#ifdef LWIP_OPEN_SRC
#include "lwip/ip_addr.h"
#else
#include "ip_addr.h"
#endif
/**
* get the seconds since Jan 01, 1970, 00:00 (GMT + 8)
*/
uint32
sntp_get_current_timestamp
();
/**
* get real time (GTM + 8 time zone)
*/
char
*
sntp_get_real_time
(
long
t
);
/**
* SNTP get time_zone default GMT + 8
*/
sint8
sntp_get_timezone
(
void
);
/**
* SNTP set time_zone (default GMT + 8)
*/
bool
sntp_set_timezone
(
sint8
timezone
);
/**
* Initialize this module.
* Send out request instantly or after SNTP_STARTUP_DELAY(_FUNC).
*/
void
sntp_init
(
void
);
/**
* Stop this module.
*/
void
sntp_stop
(
void
);
/**
* Initialize one of the NTP servers by IP address
*
* @param numdns the index of the NTP server to set must be < SNTP_MAX_SERVERS
* @param dnsserver IP address of the NTP server to set
*/
void
sntp_setserver
(
unsigned
char
idx
,
ip_addr_t
*
addr
);
/**
* Obtain one of the currently configured by IP address (or DHCP) NTP servers
*
* @param numdns the index of the NTP server
* @return IP address of the indexed NTP server or "ip_addr_any" if the NTP
* server has not been configured by address (or at all).
*/
ip_addr_t
sntp_getserver
(
unsigned
char
idx
);
/**
* Initialize one of the NTP servers by name
*
* @param numdns the index of the NTP server to set must be < SNTP_MAX_SERVERS,now sdk support SNTP_MAX_SERVERS = 3
* @param dnsserver DNS name of the NTP server to set, to be resolved at contact time
*/
void
sntp_setservername
(
unsigned
char
idx
,
char
*
server
);
/**
* Obtain one of the currently configured by name NTP servers.
*
* @param numdns the index of the NTP server
* @return IP address of the indexed NTP server or NULL if the NTP
* server has not been configured by name (or at all)
*/
char
*
sntp_getservername
(
unsigned
char
idx
);
#define sntp_servermode_dhcp(x)
#endif
sdk/esp_iot_sdk_v1.4.0/include/spi_flash.h
deleted
100644 → 0
View file @
c8037568
/*
* copyright (c) Espressif System 2010
*
*/
#ifndef SPI_FLASH_H
#define SPI_FLASH_H
typedef
enum
{
SPI_FLASH_RESULT_OK
,
SPI_FLASH_RESULT_ERR
,
SPI_FLASH_RESULT_TIMEOUT
}
SpiFlashOpResult
;
typedef
struct
{
uint32
deviceId
;
uint32
chip_size
;
// chip size in byte
uint32
block_size
;
uint32
sector_size
;
uint32
page_size
;
uint32
status_mask
;
}
SpiFlashChip
;
#define SPI_FLASH_SEC_SIZE 4096
uint32
spi_flash_get_id
(
void
);
SpiFlashOpResult
spi_flash_erase_sector
(
uint16
sec
);
SpiFlashOpResult
spi_flash_write
(
uint32
des_addr
,
uint32
*
src_addr
,
uint32
size
);
SpiFlashOpResult
spi_flash_read
(
uint32
src_addr
,
uint32
*
des_addr
,
uint32
size
);
typedef
SpiFlashOpResult
(
*
user_spi_flash_read
)(
SpiFlashChip
*
spi
,
uint32
src_addr
,
uint32
*
des_addr
,
uint32
size
);
void
spi_flash_set_read_func
(
user_spi_flash_read
read
);
#endif
sdk/esp_iot_sdk_v1.4.0/include/upgrade.h
deleted
100644 → 0
View file @
c8037568
#ifndef __UPGRADE_H__
#define __UPGRADE_H__
#define SPI_FLASH_SEC_SIZE 4096
#define LIMIT_ERASE_SIZE 0x10000
#define USER_BIN1 0x00
#define USER_BIN2 0x01
#define UPGRADE_FLAG_IDLE 0x00
#define UPGRADE_FLAG_START 0x01
#define UPGRADE_FLAG_FINISH 0x02
#define UPGRADE_FW_BIN1 0x00
#define UPGRADE_FW_BIN2 0x01
typedef
void
(
*
upgrade_states_check_callback
)(
void
*
arg
);
//#define UPGRADE_SSL_ENABLE
struct
upgrade_server_info
{
uint8
ip
[
4
];
uint16
port
;
uint8
upgrade_flag
;
uint8
pre_version
[
16
];
uint8
upgrade_version
[
16
];
uint32
check_times
;
uint8
*
url
;
upgrade_states_check_callback
check_cb
;
struct
espconn
*
pespconn
;
};
#define UPGRADE_FLAG_IDLE 0x00
#define UPGRADE_FLAG_START 0x01
#define UPGRADE_FLAG_FINISH 0x02
void
system_upgrade_init
();
void
system_upgrade_deinit
();
bool
system_upgrade
(
uint8
*
data
,
uint16
len
);
#ifdef UPGRADE_SSL_ENABLE
bool
system_upgrade_start_ssl
(
struct
upgrade_server_info
*
server
);
// not supported now
#else
bool
system_upgrade_start
(
struct
upgrade_server_info
*
server
);
#endif
#endif
sdk/esp_iot_sdk_v1.4.0/include/user_interface.h
deleted
100644 → 0
View file @
c8037568
/*
* Copyright (C) 2013 -2014 Espressif System
*
*/
#ifndef __USER_INTERFACE_H__
#define __USER_INTERFACE_H__
#include "os_type.h"
#ifdef LWIP_OPEN_SRC
#include "lwip/ip_addr.h"
#else
#include "ip_addr.h"
#endif
#include "queue.h"
#include "user_config.h"
#include "spi_flash.h"
#ifndef MAC2STR
#define MAC2STR(a) (a)[0], (a)[1], (a)[2], (a)[3], (a)[4], (a)[5]
#define MACSTR "%02x:%02x:%02x:%02x:%02x:%02x"
#endif
enum
rst_reason
{
REASON_DEFAULT_RST
=
0
,
REASON_WDT_RST
=
1
,
REASON_EXCEPTION_RST
=
2
,
REASON_SOFT_WDT_RST
=
3
,
REASON_SOFT_RESTART
=
4
,
REASON_DEEP_SLEEP_AWAKE
=
5
,
REASON_EXT_SYS_RST
=
6
};
struct
rst_info
{
uint32
reason
;
uint32
exccause
;
uint32
epc1
;
uint32
epc2
;
uint32
epc3
;
uint32
excvaddr
;
uint32
depc
;
};
struct
rst_info
*
system_get_rst_info
(
void
);
#define UPGRADE_FW_BIN1 0x00
#define UPGRADE_FW_BIN2 0x01
void
system_restore
(
void
);
void
system_restart
(
void
);
bool
system_deep_sleep_set_option
(
uint8
option
);
void
system_deep_sleep
(
uint32
time_in_us
);
uint8
system_upgrade_userbin_check
(
void
);
void
system_upgrade_reboot
(
void
);
uint8
system_upgrade_flag_check
();
void
system_upgrade_flag_set
(
uint8
flag
);
void
system_timer_reinit
(
void
);
uint32
system_get_time
(
void
);
/* user task's prio must be 0/1/2 !!!*/
enum
{
USER_TASK_PRIO_0
=
0
,
USER_TASK_PRIO_1
,
USER_TASK_PRIO_2
,
USER_TASK_PRIO_MAX
};
bool
system_os_task
(
os_task_t
task
,
uint8
prio
,
os_event_t
*
queue
,
uint8
qlen
);
bool
system_os_post
(
uint8
prio
,
os_signal_t
sig
,
os_param_t
par
);
void
system_print_meminfo
(
void
);
uint32
system_get_free_heap_size
(
void
);
void
system_set_os_print
(
uint8
onoff
);
uint8
system_get_os_print
();
uint64
system_mktime
(
uint32
year
,
uint32
mon
,
uint32
day
,
uint32
hour
,
uint32
min
,
uint32
sec
);
uint32
system_get_chip_id
(
void
);
typedef
void
(
*
init_done_cb_t
)(
void
);
void
system_init_done_cb
(
init_done_cb_t
cb
);
uint32
system_rtc_clock_cali_proc
(
void
);
uint32
system_get_rtc_time
(
void
);
bool
system_rtc_mem_read
(
uint8
src_addr
,
void
*
des_addr
,
uint16
load_size
);
bool
system_rtc_mem_write
(
uint8
des_addr
,
const
void
*
src_addr
,
uint16
save_size
);
void
system_uart_swap
(
void
);
void
system_uart_de_swap
(
void
);
uint16
system_adc_read
(
void
);
uint16
system_get_vdd33
(
void
);
const
char
*
system_get_sdk_version
(
void
);
#define SYS_BOOT_ENHANCE_MODE 0
#define SYS_BOOT_NORMAL_MODE 1
#define SYS_BOOT_NORMAL_BIN 0
#define SYS_BOOT_TEST_BIN 1
uint8
system_get_boot_version
(
void
);
uint32
system_get_userbin_addr
(
void
);
uint8
system_get_boot_mode
(
void
);
bool
system_restart_enhance
(
uint8
bin_type
,
uint32
bin_addr
);
#define SYS_CPU_80MHZ 80
#define SYS_CPU_160MHZ 160
bool
system_update_cpu_freq
(
uint8
freq
);
uint8
system_get_cpu_freq
(
void
);
enum
flash_size_map
{
FLASH_SIZE_4M_MAP_256_256
=
0
,
FLASH_SIZE_2M
,
FLASH_SIZE_8M_MAP_512_512
,
FLASH_SIZE_16M_MAP_512_512
,
FLASH_SIZE_32M_MAP_512_512
,
FLASH_SIZE_16M_MAP_1024_1024
,
FLASH_SIZE_32M_MAP_1024_1024
};
enum
flash_size_map
system_get_flash_size_map
(
void
);
void
system_phy_set_max_tpw
(
uint8
max_tpw
);
void
system_phy_set_tpw_via_vdd33
(
uint16
vdd33
);
void
system_phy_set_rfoption
(
uint8
option
);
void
system_phy_set_powerup_option
(
uint8
option
);
bool
system_param_save_with_protect
(
uint16
start_sec
,
void
*
param
,
uint16
len
);
bool
system_param_load
(
uint16
start_sec
,
uint16
offset
,
void
*
param
,
uint16
len
);
void
system_soft_wdt_stop
(
void
);
void
system_soft_wdt_restart
(
void
);
void
system_soft_wdt_feed
(
void
);
void
system_show_malloc
(
void
);
#define NULL_MODE 0x00
#define STATION_MODE 0x01
#define SOFTAP_MODE 0x02
#define STATIONAP_MODE 0x03
typedef
enum
_auth_mode
{
AUTH_OPEN
=
0
,
AUTH_WEP
,
AUTH_WPA_PSK
,
AUTH_WPA2_PSK
,
AUTH_WPA_WPA2_PSK
,
AUTH_MAX
}
AUTH_MODE
;
uint8
wifi_get_opmode
(
void
);
uint8
wifi_get_opmode_default
(
void
);
bool
wifi_set_opmode
(
uint8
opmode
);
bool
wifi_set_opmode_current
(
uint8
opmode
);
uint8
wifi_get_broadcast_if
(
void
);
bool
wifi_set_broadcast_if
(
uint8
interface
);
struct
bss_info
{
STAILQ_ENTRY
(
bss_info
)
next
;
uint8
bssid
[
6
];
uint8
ssid
[
32
];
uint8
ssid_len
;
uint8
channel
;
sint8
rssi
;
AUTH_MODE
authmode
;
uint8
is_hidden
;
sint16
freq_offset
;
sint16
freqcal_val
;
uint8
*
esp_mesh_ie
;
};
typedef
struct
_scaninfo
{
STAILQ_HEAD
(,
bss_info
)
*
pbss
;
struct
espconn
*
pespconn
;
uint8
totalpage
;
uint8
pagenum
;
uint8
page_sn
;
uint8
data_cnt
;
}
scaninfo
;
typedef
void
(
*
scan_done_cb_t
)(
void
*
arg
,
STATUS
status
);
struct
station_config
{
uint8
ssid
[
32
];
uint8
password
[
64
];
uint8
bssid_set
;
// Note: If bssid_set is 1, station will just connect to the router
// with both ssid[] and bssid[] matched. Please check about this.
uint8
bssid
[
6
];
};
bool
wifi_station_get_config
(
struct
station_config
*
config
);
bool
wifi_station_get_config_default
(
struct
station_config
*
config
);
bool
wifi_station_set_config
(
struct
station_config
*
config
);
bool
wifi_station_set_config_current
(
struct
station_config
*
config
);
bool
wifi_station_connect
(
void
);
bool
wifi_station_disconnect
(
void
);
sint8
wifi_station_get_rssi
(
void
);
struct
scan_config
{
uint8
*
ssid
;
// Note: ssid == NULL, don't filter ssid.
uint8
*
bssid
;
// Note: bssid == NULL, don't filter bssid.
uint8
channel
;
// Note: channel == 0, scan all channels, otherwise scan set channel.
uint8
show_hidden
;
// Note: show_hidden == 1, can get hidden ssid routers' info.
};
bool
wifi_station_scan
(
struct
scan_config
*
config
,
scan_done_cb_t
cb
);
uint8
wifi_station_get_auto_connect
(
void
);
bool
wifi_station_set_auto_connect
(
uint8
set
);
bool
wifi_station_set_reconnect_policy
(
bool
set
);
enum
{
STATION_IDLE
=
0
,
STATION_CONNECTING
,
STATION_WRONG_PASSWORD
,
STATION_NO_AP_FOUND
,
STATION_CONNECT_FAIL
,
STATION_GOT_IP
};
enum
dhcp_status
{
DHCP_STOPPED
,
DHCP_STARTED
};
uint8
wifi_station_get_connect_status
(
void
);
uint8
wifi_station_get_current_ap_id
(
void
);
bool
wifi_station_ap_change
(
uint8
current_ap_id
);
bool
wifi_station_ap_number_set
(
uint8
ap_number
);
uint8
wifi_station_get_ap_info
(
struct
station_config
config
[]);
bool
wifi_station_dhcpc_start
(
void
);
bool
wifi_station_dhcpc_stop
(
void
);
enum
dhcp_status
wifi_station_dhcpc_status
(
void
);
bool
wifi_station_dhcpc_set_maxtry
(
uint8
num
);
char
*
wifi_station_get_hostname
(
void
);
bool
wifi_station_set_hostname
(
char
*
name
);
struct
softap_config
{
uint8
ssid
[
32
];
uint8
password
[
64
];
uint8
ssid_len
;
// Note: Recommend to set it according to your ssid
uint8
channel
;
// Note: support 1 ~ 13
AUTH_MODE
authmode
;
// Note: Don't support AUTH_WEP in softAP mode.
uint8
ssid_hidden
;
// Note: default 0
uint8
max_connection
;
// Note: default 4, max 4
uint16
beacon_interval
;
// Note: support 100 ~ 60000 ms, default 100
};
bool
wifi_softap_get_config
(
struct
softap_config
*
config
);
bool
wifi_softap_get_config_default
(
struct
softap_config
*
config
);
bool
wifi_softap_set_config
(
struct
softap_config
*
config
);
bool
wifi_softap_set_config_current
(
struct
softap_config
*
config
);
struct
station_info
{
STAILQ_ENTRY
(
station_info
)
next
;
uint8
bssid
[
6
];
struct
ip_addr
ip
;
};
struct
dhcps_lease
{
bool
enable
;
struct
ip_addr
start_ip
;
struct
ip_addr
end_ip
;
};
enum
dhcps_offer_option
{
OFFER_START
=
0x00
,
OFFER_ROUTER
=
0x01
,
OFFER_END
};
uint8
wifi_softap_get_station_num
(
void
);
struct
station_info
*
wifi_softap_get_station_info
(
void
);
void
wifi_softap_free_station_info
(
void
);
bool
wifi_softap_dhcps_start
(
void
);
bool
wifi_softap_dhcps_stop
(
void
);
bool
wifi_softap_set_dhcps_lease
(
struct
dhcps_lease
*
please
);
bool
wifi_softap_get_dhcps_lease
(
struct
dhcps_lease
*
please
);
uint32
wifi_softap_get_dhcps_lease_time
(
void
);
bool
wifi_softap_set_dhcps_lease_time
(
uint32
minute
);
bool
wifi_softap_reset_dhcps_lease_time
(
void
);
enum
dhcp_status
wifi_softap_dhcps_status
(
void
);
bool
wifi_softap_set_dhcps_offer_option
(
uint8
level
,
void
*
optarg
);
#define STATION_IF 0x00
#define SOFTAP_IF 0x01
bool
wifi_get_ip_info
(
uint8
if_index
,
struct
ip_info
*
info
);
bool
wifi_set_ip_info
(
uint8
if_index
,
struct
ip_info
*
info
);
bool
wifi_get_macaddr
(
uint8
if_index
,
uint8
*
macaddr
);
bool
wifi_set_macaddr
(
uint8
if_index
,
uint8
*
macaddr
);
uint8
wifi_get_channel
(
void
);
bool
wifi_set_channel
(
uint8
channel
);
void
wifi_status_led_install
(
uint8
gpio_id
,
uint32
gpio_name
,
uint8
gpio_func
);
void
wifi_status_led_uninstall
();
/** Get the absolute difference between 2 u32_t values (correcting overflows)
* 'a' is expected to be 'higher' (without overflow) than 'b'. */
#define ESP_U32_DIFF(a, b) (((a) >= (b)) ? ((a) - (b)) : (((a) + ((b) ^ 0xFFFFFFFF) + 1)))
void
wifi_promiscuous_enable
(
uint8
promiscuous
);
typedef
void
(
*
wifi_promiscuous_cb_t
)(
uint8
*
buf
,
uint16
len
);
void
wifi_set_promiscuous_rx_cb
(
wifi_promiscuous_cb_t
cb
);
void
wifi_promiscuous_set_mac
(
const
uint8_t
*
address
);
enum
phy_mode
{
PHY_MODE_11B
=
1
,
PHY_MODE_11G
=
2
,
PHY_MODE_11N
=
3
};
enum
phy_mode
wifi_get_phy_mode
(
void
);
bool
wifi_set_phy_mode
(
enum
phy_mode
mode
);
enum
sleep_type
{
NONE_SLEEP_T
=
0
,
LIGHT_SLEEP_T
,
MODEM_SLEEP_T
};
bool
wifi_set_sleep_type
(
enum
sleep_type
type
);
enum
sleep_type
wifi_get_sleep_type
(
void
);
void
wifi_fpm_open
(
void
);
void
wifi_fpm_close
(
void
);
void
wifi_fpm_do_wakeup
(
void
);
sint8
wifi_fpm_do_sleep
(
uint32
sleep_time_in_us
);
void
wifi_fpm_set_sleep_type
(
enum
sleep_type
type
);
enum
sleep_type
wifi_fpm_get_sleep_type
(
void
);
enum
{
EVENT_STAMODE_CONNECTED
=
0
,
EVENT_STAMODE_DISCONNECTED
,
EVENT_STAMODE_AUTHMODE_CHANGE
,
EVENT_STAMODE_GOT_IP
,
EVENT_STAMODE_DHCP_TIMEOUT
,
EVENT_SOFTAPMODE_STACONNECTED
,
EVENT_SOFTAPMODE_STADISCONNECTED
,
EVENT_SOFTAPMODE_PROBEREQRECVED
,
EVENT_MAX
};
enum
{
REASON_UNSPECIFIED
=
1
,
REASON_AUTH_EXPIRE
=
2
,
REASON_AUTH_LEAVE
=
3
,
REASON_ASSOC_EXPIRE
=
4
,
REASON_ASSOC_TOOMANY
=
5
,
REASON_NOT_AUTHED
=
6
,
REASON_NOT_ASSOCED
=
7
,
REASON_ASSOC_LEAVE
=
8
,
REASON_ASSOC_NOT_AUTHED
=
9
,
REASON_DISASSOC_PWRCAP_BAD
=
10
,
/* 11h */
REASON_DISASSOC_SUPCHAN_BAD
=
11
,
/* 11h */
REASON_IE_INVALID
=
13
,
/* 11i */
REASON_MIC_FAILURE
=
14
,
/* 11i */
REASON_4WAY_HANDSHAKE_TIMEOUT
=
15
,
/* 11i */
REASON_GROUP_KEY_UPDATE_TIMEOUT
=
16
,
/* 11i */
REASON_IE_IN_4WAY_DIFFERS
=
17
,
/* 11i */
REASON_GROUP_CIPHER_INVALID
=
18
,
/* 11i */
REASON_PAIRWISE_CIPHER_INVALID
=
19
,
/* 11i */
REASON_AKMP_INVALID
=
20
,
/* 11i */
REASON_UNSUPP_RSN_IE_VERSION
=
21
,
/* 11i */
REASON_INVALID_RSN_IE_CAP
=
22
,
/* 11i */
REASON_802_1X_AUTH_FAILED
=
23
,
/* 11i */
REASON_CIPHER_SUITE_REJECTED
=
24
,
/* 11i */
REASON_BEACON_TIMEOUT
=
200
,
REASON_NO_AP_FOUND
=
201
,
REASON_AUTH_FAIL
=
202
,
REASON_ASSOC_FAIL
=
203
,
REASON_HANDSHAKE_TIMEOUT
=
204
,
};
typedef
struct
{
uint8
ssid
[
32
];
uint8
ssid_len
;
uint8
bssid
[
6
];
uint8
channel
;
}
Event_StaMode_Connected_t
;
typedef
struct
{
uint8
ssid
[
32
];
uint8
ssid_len
;
uint8
bssid
[
6
];
uint8
reason
;
}
Event_StaMode_Disconnected_t
;
typedef
struct
{
uint8
old_mode
;
uint8
new_mode
;
}
Event_StaMode_AuthMode_Change_t
;
typedef
struct
{
struct
ip_addr
ip
;
struct
ip_addr
mask
;
struct
ip_addr
gw
;
}
Event_StaMode_Got_IP_t
;
typedef
struct
{
uint8
mac
[
6
];
uint8
aid
;
}
Event_SoftAPMode_StaConnected_t
;
typedef
struct
{
uint8
mac
[
6
];
uint8
aid
;
}
Event_SoftAPMode_StaDisconnected_t
;
typedef
struct
{
int
rssi
;
uint8
mac
[
6
];
}
Event_SoftAPMode_ProbeReqRecved_t
;
typedef
union
{
Event_StaMode_Connected_t
connected
;
Event_StaMode_Disconnected_t
disconnected
;
Event_StaMode_AuthMode_Change_t
auth_change
;
Event_StaMode_Got_IP_t
got_ip
;
Event_SoftAPMode_StaConnected_t
sta_connected
;
Event_SoftAPMode_StaDisconnected_t
sta_disconnected
;
Event_SoftAPMode_ProbeReqRecved_t
ap_probereqrecved
;
}
Event_Info_u
;
typedef
struct
_esp_event
{
uint32
event
;
Event_Info_u
event_info
;
}
System_Event_t
;
typedef
void
(
*
wifi_event_handler_cb_t
)(
System_Event_t
*
event
);
void
wifi_set_event_handler_cb
(
wifi_event_handler_cb_t
cb
);
typedef
enum
wps_type
{
WPS_TYPE_DISABLE
=
0
,
WPS_TYPE_PBC
,
WPS_TYPE_PIN
,
WPS_TYPE_DISPLAY
,
WPS_TYPE_MAX
,
}
WPS_TYPE_t
;
enum
wps_cb_status
{
WPS_CB_ST_SUCCESS
=
0
,
WPS_CB_ST_FAILED
,
WPS_CB_ST_TIMEOUT
,
WPS_CB_ST_WEP
,
};
bool
wifi_wps_enable
(
WPS_TYPE_t
wps_type
);
bool
wifi_wps_disable
(
void
);
bool
wifi_wps_start
(
void
);
typedef
void
(
*
wps_st_cb_t
)(
int
status
);
bool
wifi_set_wps_cb
(
wps_st_cb_t
cb
);
typedef
void
(
*
freedom_outside_cb_t
)(
uint8
status
);
int
wifi_register_send_pkt_freedom_cb
(
freedom_outside_cb_t
cb
);
void
wifi_unregister_send_pkt_freedom_cb
(
void
);
int
wifi_send_pkt_freedom
(
uint8
*
buf
,
int
len
,
bool
sys_seq
);
int
wifi_rfid_locp_recv_open
(
void
);
void
wifi_rfid_locp_recv_close
(
void
);
typedef
void
(
*
rfid_locp_cb_t
)(
uint8
*
frm
,
int
len
,
int
rssi
);
int
wifi_register_rfid_locp_recv_cb
(
rfid_locp_cb_t
cb
);
void
wifi_unregister_rfid_locp_recv_cb
(
void
);
enum
FIXED_RATE
{
PHY_RATE_48
=
0x8
,
PHY_RATE_24
=
0x9
,
PHY_RATE_12
=
0xA
,
PHY_RATE_6
=
0xB
,
PHY_RATE_54
=
0xC
,
PHY_RATE_36
=
0xD
,
PHY_RATE_18
=
0xE
,
PHY_RATE_9
=
0xF
,
};
#define FIXED_RATE_MASK_NONE 0x00
#define FIXED_RATE_MASK_STA 0x01
#define FIXED_RATE_MASK_AP 0x02
#define FIXED_RATE_MASK_ALL 0x03
int
wifi_set_user_fixed_rate
(
uint8
enable_mask
,
uint8
rate
);
int
wifi_get_user_fixed_rate
(
uint8
*
enable_mask
,
uint8
*
rate
);
enum
support_rate
{
RATE_11B5M
=
0
,
RATE_11B11M
=
1
,
RATE_11B1M
=
2
,
RATE_11B2M
=
3
,
RATE_11G6M
=
4
,
RATE_11G12M
=
5
,
RATE_11G24M
=
6
,
RATE_11G48M
=
7
,
RATE_11G54M
=
8
,
RATE_11G9M
=
9
,
RATE_11G18M
=
10
,
RATE_11G36M
=
11
,
};
int
wifi_set_user_sup_rate
(
uint8
min
,
uint8
max
);
enum
RATE_11B_ID
{
RATE_11B_B11M
=
0
,
RATE_11B_B5M
=
1
,
RATE_11B_B2M
=
2
,
RATE_11B_B1M
=
3
,
};
enum
RATE_11G_ID
{
RATE_11G_G54M
=
0
,
RATE_11G_G48M
=
1
,
RATE_11G_G36M
=
2
,
RATE_11G_G24M
=
3
,
RATE_11G_G18M
=
4
,
RATE_11G_G12M
=
5
,
RATE_11G_G9M
=
6
,
RATE_11G_G6M
=
7
,
RATE_11G_B5M
=
8
,
RATE_11G_B2M
=
9
,
RATE_11G_B1M
=
10
};
enum
RATE_11N_ID
{
RATE_11N_MCS7S
=
0
,
RATE_11N_MCS7
=
1
,
RATE_11N_MCS6
=
2
,
RATE_11N_MCS5
=
3
,
RATE_11N_MCS4
=
4
,
RATE_11N_MCS3
=
5
,
RATE_11N_MCS2
=
6
,
RATE_11N_MCS1
=
7
,
RATE_11N_MCS0
=
8
,
RATE_11N_B5M
=
9
,
RATE_11N_B2M
=
10
,
RATE_11N_B1M
=
11
};
#define RC_LIMIT_11B 0
#define RC_LIMIT_11G 1
#define RC_LIMIT_11N 2
#define RC_LIMIT_P2P_11G 3
#define RC_LIMIT_P2P_11N 4
#define RC_LIMIT_NUM 5
#define LIMIT_RATE_MASK_NONE 0x00
#define LIMIT_RATE_MASK_STA 0x01
#define LIMIT_RATE_MASK_AP 0x02
#define LIMIT_RATE_MASK_ALL 0x03
bool
wifi_set_user_rate_limit
(
uint8
mode
,
uint8
ifidx
,
uint8
max
,
uint8
min
);
uint8
wifi_get_user_limit_rate_mask
(
void
);
bool
wifi_set_user_limit_rate_mask
(
uint8
enable_mask
);
enum
{
USER_IE_BEACON
=
0
,
USER_IE_PROBE_REQ
,
USER_IE_PROBE_RESP
,
USER_IE_ASSOC_REQ
,
USER_IE_ASSOC_RESP
,
USER_IE_MAX
};
typedef
void
(
*
user_ie_manufacturer_recv_cb_t
)(
uint8
type
,
const
uint8
sa
[
6
],
const
uint8
m_oui
[
3
],
uint8
*
ie
,
uint8
ie_len
,
int
rssi
);
bool
wifi_set_user_ie
(
bool
enable
,
uint8
*
m_oui
,
uint8
type
,
uint8
*
user_ie
,
uint8
len
);
int
wifi_register_user_ie_manufacturer_recv_cb
(
user_ie_manufacturer_recv_cb_t
cb
);
void
wifi_unregister_user_ie_manufacturer_recv_cb
(
void
);
#endif
sdk/esp_iot_sdk_v1.4.0/ld/eagle.app.v6.ld
deleted
100644 → 0
View file @
c8037568
/* This linker script generated from xt-genldscripts.tpp for LSP . */
/* Linker Script for ld -N */
MEMORY
{
dport0_0_seg : org = 0x3FF00000, len = 0x10
dram0_0_seg : org = 0x3FFE8000, len = 0x14000
iram1_0_seg : org = 0x40100000, len = 0x8000
irom0_0_seg : org = 0x40240000, len = 0x3C000
}
PHDRS
{
dport0_0_phdr PT_LOAD;
dram0_0_phdr PT_LOAD;
dram0_0_bss_phdr PT_LOAD;
iram1_0_phdr PT_LOAD;
irom0_0_phdr PT_LOAD;
}
/* Default entry point: */
ENTRY(call_user_start)
EXTERN(_DebugExceptionVector)
EXTERN(_DoubleExceptionVector)
EXTERN(_KernelExceptionVector)
EXTERN(_NMIExceptionVector)
EXTERN(_UserExceptionVector)
PROVIDE(_memmap_vecbase_reset = 0x40000000);
/* Various memory-map dependent cache attribute settings: */
_memmap_cacheattr_wb_base = 0x00000110;
_memmap_cacheattr_wt_base = 0x00000110;
_memmap_cacheattr_bp_base = 0x00000220;
_memmap_cacheattr_unused_mask = 0xFFFFF00F;
_memmap_cacheattr_wb_trapnull = 0x2222211F;
_memmap_cacheattr_wba_trapnull = 0x2222211F;
_memmap_cacheattr_wbna_trapnull = 0x2222211F;
_memmap_cacheattr_wt_trapnull = 0x2222211F;
_memmap_cacheattr_bp_trapnull = 0x2222222F;
_memmap_cacheattr_wb_strict = 0xFFFFF11F;
_memmap_cacheattr_wt_strict = 0xFFFFF11F;
_memmap_cacheattr_bp_strict = 0xFFFFF22F;
_memmap_cacheattr_wb_allvalid = 0x22222112;
_memmap_cacheattr_wt_allvalid = 0x22222112;
_memmap_cacheattr_bp_allvalid = 0x22222222;
PROVIDE(_memmap_cacheattr_reset = _memmap_cacheattr_wb_trapnull);
SECTIONS
{
.dport0.rodata : ALIGN(4)
{
_dport0_rodata_start = ABSOLUTE(.);
*(.dport0.rodata)
*(.dport.rodata)
_dport0_rodata_end = ABSOLUTE(.);
} >dport0_0_seg :dport0_0_phdr
.dport0.literal : ALIGN(4)
{
_dport0_literal_start = ABSOLUTE(.);
*(.dport0.literal)
*(.dport.literal)
_dport0_literal_end = ABSOLUTE(.);
} >dport0_0_seg :dport0_0_phdr
.dport0.data : ALIGN(4)
{
_dport0_data_start = ABSOLUTE(.);
*(.dport0.data)
*(.dport.data)
_dport0_data_end = ABSOLUTE(.);
} >dport0_0_seg :dport0_0_phdr
.data : ALIGN(4)
{
_data_start = ABSOLUTE(.);
*(.data)
*(.data.*)
*(.gnu.linkonce.d.*)
*(.data1)
*(.sdata)
*(.sdata.*)
*(.gnu.linkonce.s.*)
*(.sdata2)
*(.sdata2.*)
*(.gnu.linkonce.s2.*)
*(.jcr)
_data_end = ABSOLUTE(.);
} >dram0_0_seg :dram0_0_phdr
.rodata : ALIGN(4)
{
_rodata_start = ABSOLUTE(.);
*(.sdk.version)
*(.rodata)
*(.rodata.*)
*(.gnu.linkonce.r.*)
*(.rodata1)
__XT_EXCEPTION_TABLE__ = ABSOLUTE(.);
*(.xt_except_table)
*(.gcc_except_table)
*(.gnu.linkonce.e.*)
*(.gnu.version_r)
*(.eh_frame)
/* C++ constructor and destructor tables, properly ordered: */
KEEP (*crtbegin.o(.ctors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .ctors))
KEEP (*(SORT(.ctors.*)))
KEEP (*(.ctors))
KEEP (*crtbegin.o(.dtors))
KEEP (*(EXCLUDE_FILE (*crtend.o) .dtors))
KEEP (*(SORT(.dtors.*)))
KEEP (*(.dtors))
/* C++ exception handlers table: */
__XT_EXCEPTION_DESCS__ = ABSOLUTE(.);
*(.xt_except_desc)
*(.gnu.linkonce.h.*)
__XT_EXCEPTION_DESCS_END__ = ABSOLUTE(.);
*(.xt_except_desc_end)
*(.dynamic)
*(.gnu.version_d)
. = ALIGN(4); /* this table MUST be 4-byte aligned */
_bss_table_start = ABSOLUTE(.);
LONG(_bss_start)
LONG(_bss_end)
_bss_table_end = ABSOLUTE(.);
_rodata_end = ABSOLUTE(.);
} >dram0_0_seg :dram0_0_phdr
.bss ALIGN(8) (NOLOAD) : ALIGN(4)
{
. = ALIGN (8);
_bss_start = ABSOLUTE(.);
*(.dynsbss)
*(.sbss)
*(.sbss.*)
*(.gnu.linkonce.sb.*)
*(.scommon)
*(.sbss2)
*(.sbss2.*)
*(.gnu.linkonce.sb2.*)
*(.dynbss)
*(.bss)
*(.bss.*)
*(.gnu.linkonce.b.*)
*(COMMON)
. = ALIGN (8);
_bss_end = ABSOLUTE(.);
_heap_start = ABSOLUTE(.);
/* _stack_sentry = ALIGN(0x8); */
} >dram0_0_seg :dram0_0_bss_phdr
/* __stack = 0x3ffc8000; */
.text : ALIGN(4)
{
_stext = .;
_text_start = ABSOLUTE(.);
*(.UserEnter.text)
. = ALIGN(16);
*(.DebugExceptionVector.text)
. = ALIGN(16);
*(.NMIExceptionVector.text)
. = ALIGN(16);
*(.KernelExceptionVector.text)
LONG(0)
LONG(0)
LONG(0)
LONG(0)
. = ALIGN(16);
*(.UserExceptionVector.text)
LONG(0)
LONG(0)
LONG(0)
LONG(0)
. = ALIGN(16);
*(.DoubleExceptionVector.text)
LONG(0)
LONG(0)
LONG(0)
LONG(0)
. = ALIGN (16);
*(.entry.text)
*(.init.literal)
*(.init)
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.fini.literal)
*(.fini)
*(.gnu.version)
_text_end = ABSOLUTE(.);
_etext = .;
} >iram1_0_seg :iram1_0_phdr
.lit4 : ALIGN(4)
{
_lit4_start = ABSOLUTE(.);
*(*.lit4)
*(.lit4.*)
*(.gnu.linkonce.lit4.*)
_lit4_end = ABSOLUTE(.);
} >iram1_0_seg :iram1_0_phdr
.irom0.text : ALIGN(4)
{
_irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
_irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr
}
/* get ROM code address */
INCLUDE "../ld/eagle.rom.addr.v6.ld"
Prev
1
…
14
15
16
17
18
19
20
Next
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment