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
57d5e207
Commit
57d5e207
authored
Oct 01, 2015
by
Johny Mattsson
Browse files
Imported latest SDK 1.4.0 on the side in prep for upgrade.
parent
093a8959
Changes
145
Show whitespace changes
Inline
Side-by-side
sdk/esp_iot_sdk_v1.4.0/include/mem.h
0 → 100644
View file @
57d5e207
#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
0 → 100644
View file @
57d5e207
#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
0 → 100644
View file @
57d5e207
/*
* 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
0 → 100644
View file @
57d5e207
/*
* 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
0 → 100644
View file @
57d5e207
#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
0 → 100644
View file @
57d5e207
#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
0 → 100644
View file @
57d5e207
#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
0 → 100644
View file @
57d5e207
/*
* 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
0 → 100644
View file @
57d5e207
#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
0 → 100644
View file @
57d5e207
/*
* 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
0 → 100644
View file @
57d5e207
#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
0 → 100644
View file @
57d5e207
/*
* 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
{
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
0 → 100644
View file @
57d5e207
/* 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"
sdk/esp_iot_sdk_v1.4.0/ld/eagle.app.v6.new.1024.app1.ld
0 → 100644
View file @
57d5e207
/* 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 = 0x40201010, len = 0x6B000
}
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"
sdk/esp_iot_sdk_v1.4.0/ld/eagle.app.v6.new.1024.app2.ld
0 → 100644
View file @
57d5e207
/* 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 = 0x40281010, len = 0x6B000
}
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"
sdk/esp_iot_sdk_v1.4.0/ld/eagle.app.v6.new.2048.ld
0 → 100644
View file @
57d5e207
/* 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 = 0x40201010, len = 0xE0000
}
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"
sdk/esp_iot_sdk_v1.4.0/ld/eagle.app.v6.new.512.app1.ld
0 → 100644
View file @
57d5e207
/* 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 = 0x40201010, len = 0x2B000
}
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"
sdk/esp_iot_sdk_v1.4.0/ld/eagle.app.v6.new.512.app2.ld
0 → 100644
View file @
57d5e207
/* 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 = 0x40241010, len = 0x2B000
}
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"
sdk/esp_iot_sdk_v1.4.0/ld/eagle.app.v6.old.1024.app1.ld
0 → 100644
View file @
57d5e207
/* 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 = 0x40211000, len = 0x6B000
}
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"
sdk/esp_iot_sdk_v1.4.0/ld/eagle.app.v6.old.1024.app2.ld
0 → 100644
View file @
57d5e207
/* 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 = 0x40291000, len = 0x6B000
}
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
2
3
4
5
6
7
8
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