Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
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