NEW VERSION: 1.0.4

1. memory optimize;
2. add irom version libm.a: libmirom.a;
3. more apis are supported in libcirom.a, such as sscanf, sprintf, etc;
4. add c++ support in Makefile;
5. put functions to iRAM default, don't need ICACHE_FLASH_ATTR anymore;
6. remove -O2 in Makefile;
7. fix some fatal exception bugs;
8. update smartconfig to version 2.4.7;
9. update some open source files and header files;
10.use os_printf can save memory;
11.add new apis: os_random and os_get_random;
12.bug fix in lwip/net80211/wpa modules;
13.other minor changes;
This commit is contained in:
Espressif Systems
2015-07-31 21:07:07 +08:00
parent 76a22b42c6
commit a6d4f57172
38 changed files with 99 additions and 46 deletions

View File

@ -8,7 +8,7 @@ ifeq ($(COMPILE), gcc)
AR = xtensa-lx106-elf-ar AR = xtensa-lx106-elf-ar
CC = xtensa-lx106-elf-gcc CC = xtensa-lx106-elf-gcc
NM = xtensa-lx106-elf-nm NM = xtensa-lx106-elf-nm
CPP = xtensa-lx106-elf-cpp CPP = xtensa-lx106-elf-g++
OBJCOPY = xtensa-lx106-elf-objcopy OBJCOPY = xtensa-lx106-elf-objcopy
OBJDUMP = xtensa-lx106-elf-objdump OBJDUMP = xtensa-lx106-elf-objdump
else else
@ -162,6 +162,7 @@ else
endif endif
CSRCS ?= $(wildcard *.c) CSRCS ?= $(wildcard *.c)
CPPSRCS ?= $(wildcard *.cpp)
ASRCs ?= $(wildcard *.s) ASRCs ?= $(wildcard *.s)
ASRCS ?= $(wildcard *.S) ASRCS ?= $(wildcard *.S)
SUBDIRS ?= $(patsubst %/,%,$(dir $(wildcard */Makefile))) SUBDIRS ?= $(patsubst %/,%,$(dir $(wildcard */Makefile)))
@ -170,10 +171,12 @@ ODIR := .output
OBJODIR := $(ODIR)/$(TARGET)/$(FLAVOR)/obj OBJODIR := $(ODIR)/$(TARGET)/$(FLAVOR)/obj
OBJS := $(CSRCS:%.c=$(OBJODIR)/%.o) \ OBJS := $(CSRCS:%.c=$(OBJODIR)/%.o) \
$(CPPSRCS:%.cpp=$(OBJODIR)/%.o) \
$(ASRCs:%.s=$(OBJODIR)/%.o) \ $(ASRCs:%.s=$(OBJODIR)/%.o) \
$(ASRCS:%.S=$(OBJODIR)/%.o) $(ASRCS:%.S=$(OBJODIR)/%.o)
DEPS := $(CSRCS:%.c=$(OBJODIR)/%.d) \ DEPS := $(CSRCS:%.c=$(OBJODIR)/%.d) \
$(CPPSRCS:%.cpp=$(OBJODIR)/%.d) \
$(ASRCs:%.s=$(OBJODIR)/%.d) \ $(ASRCs:%.s=$(OBJODIR)/%.d) \
$(ASRCS:%.S=$(OBJODIR)/%.d) $(ASRCS:%.S=$(OBJODIR)/%.d)
@ -188,7 +191,6 @@ OBINS := $(GEN_BINS:%=$(BINODIR)/%)
CCFLAGS += \ CCFLAGS += \
-g \ -g \
-O2 \
-Wpointer-arith \ -Wpointer-arith \
-Wundef \ -Wundef \
-Werror \ -Werror \
@ -196,7 +198,9 @@ CCFLAGS += \
-fno-inline-functions \ -fno-inline-functions \
-nostdlib \ -nostdlib \
-mlongcalls \ -mlongcalls \
-mtext-section-literals -mtext-section-literals \
-ffunction-sections \
-fdata-sections
# -Wall # -Wall
CFLAGS = $(CCFLAGS) $(DEFINES) $(EXTRA_CCFLAGS) $(INCLUDES) CFLAGS = $(CCFLAGS) $(DEFINES) $(EXTRA_CCFLAGS) $(INCLUDES)
@ -328,6 +332,18 @@ $(OBJODIR)/%.d: %.c
sed 's,\($*\.o\)[ :]*,$(OBJODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \ sed 's,\($*\.o\)[ :]*,$(OBJODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$ rm -f $@.$$$$
$(OBJODIR)/%.o: %.cpp
@mkdir -p $(OBJODIR);
$(CPP) $(if $(findstring $<,$(DSRCS)),$(DFLAGS),$(CFLAGS)) $(COPTS_$(*F)) -o $@ -c $<
$(OBJODIR)/%.d: %.cpp
@mkdir -p $(OBJODIR);
@echo DEPEND: $(CPP) -M $(CFLAGS) $<
@set -e; rm -f $@; \
$(CPP) -M $(CFLAGS) $< > $@.$$$$; \
sed 's,\($*\.o\)[ :]*,$(OBJODIR)/\1 $@ : ,g' < $@.$$$$ > $@; \
rm -f $@.$$$$
$(OBJODIR)/%.o: %.s $(OBJODIR)/%.o: %.s
@mkdir -p $(OBJODIR); @mkdir -p $(OBJODIR);
$(CC) $(CFLAGS) -o $@ -c $< $(CC) $(CFLAGS) -o $@ -c $<

View File

@ -50,6 +50,7 @@ COMPONENTS_eagle.app.v6 = \
LINKFLAGS_eagle.app.v6 = \ LINKFLAGS_eagle.app.v6 = \
-L../lib \ -L../lib \
-Wl,--gc-sections \
-nostdlib \ -nostdlib \
-T$(LD_FILE) \ -T$(LD_FILE) \
-Wl,--no-check-sections \ -Wl,--no-check-sections \

View File

@ -148,8 +148,7 @@ void task3(void *pvParameters)
* Parameters : none * Parameters : none
* Returns : none * Returns : none
*******************************************************************************/ *******************************************************************************/
void ICACHE_FLASH_ATTR void user_init(void)
user_init(void)
{ {
printf("SDK version:%s\n", system_get_sdk_version()); printf("SDK version:%s\n", system_get_sdk_version());

View File

@ -20,8 +20,6 @@
#define server_ip "192.168.101.142" #define server_ip "192.168.101.142"
#define server_port 9669 #define server_port 9669
sc_type SC_Type = 0;
void ICACHE_FLASH_ATTR void ICACHE_FLASH_ATTR
smartconfig_done(sc_status status, void *pdata) smartconfig_done(sc_status status, void *pdata)
{ {
@ -34,6 +32,12 @@ smartconfig_done(sc_status status, void *pdata)
break; break;
case SC_STATUS_GETTING_SSID_PSWD: case SC_STATUS_GETTING_SSID_PSWD:
printf("SC_STATUS_GETTING_SSID_PSWD\n"); printf("SC_STATUS_GETTING_SSID_PSWD\n");
sc_type *type = pdata;
if (*type == SC_TYPE_ESPTOUCH) {
printf("SC_TYPE:SC_TYPE_ESPTOUCH\n");
} else {
printf("SC_TYPE:SC_TYPE_AIRKISS\n");
}
break; break;
case SC_STATUS_LINK: case SC_STATUS_LINK:
printf("SC_STATUS_LINK\n"); printf("SC_STATUS_LINK\n");
@ -45,7 +49,7 @@ smartconfig_done(sc_status status, void *pdata)
break; break;
case SC_STATUS_LINK_OVER: case SC_STATUS_LINK_OVER:
printf("SC_STATUS_LINK_OVER\n"); printf("SC_STATUS_LINK_OVER\n");
if (SC_Type == SC_TYPE_ESPTOUCH) { if (pdata != NULL) {
uint8 phone_ip[4] = {0}; uint8 phone_ip[4] = {0};
memcpy(phone_ip, (uint8*)pdata, 4); memcpy(phone_ip, (uint8*)pdata, 4);
@ -60,9 +64,7 @@ smartconfig_done(sc_status status, void *pdata)
void ICACHE_FLASH_ATTR void ICACHE_FLASH_ATTR
smartconfig_task(void *pvParameters) smartconfig_task(void *pvParameters)
{ {
SC_Type = SC_TYPE_ESPTOUCH; smartconfig_start(smartconfig_done);
smartconfig_start(SC_Type, smartconfig_done);//SC_TYPE_AIRKISS
vTaskDelete(NULL); vTaskDelete(NULL);
} }

View File

@ -72,12 +72,12 @@ typedef enum {
#define DMEM_ATTR __attribute__((section(".bss"))) #define DMEM_ATTR __attribute__((section(".bss")))
#define SHMEM_ATTR #define SHMEM_ATTR
#ifdef ICACHE_FLASH #define IRAM_ATTR __attribute__((section(".text")))
#define ICACHE_FLASH_ATTR __attribute__((section(".irom0.text")))
#define ICACHE_RODATA_ATTR __attribute__((section(".irom.text")))
#else
#define ICACHE_FLASH_ATTR #define ICACHE_FLASH_ATTR
#endif /* ICACHE_FLASH */ #define ICACHE_RODATA_ATTR __attribute__((section(".irom.text")))
#define STORE_ATTR __attribute__((aligned(4)))
#ifndef __cplusplus #ifndef __cplusplus
typedef unsigned char bool; typedef unsigned char bool;

View File

@ -36,7 +36,6 @@ int printf(const char *format, ...);
int sprintf(char *out, const char *format, ...); int sprintf(char *out, const char *format, ...);
int snprintf(char *buf, unsigned int count, const char *format, ...); int snprintf(char *buf, unsigned int count, const char *format, ...);
int puts(const char *str); int puts(const char *str);
int putchar(int c);
void *malloc(size_t n); void *malloc(size_t n);
void free(void *p); void free(void *p);
@ -47,16 +46,13 @@ void *realloc(void *p, size_t n);
int atoi(const char *s); int atoi(const char *s);
long atol(const char *s); long atol(const char *s);
unsigned long os_random(void);
int os_get_random(unsigned char *buf, size_t len);
/* NOTE: don't use printf_opt in irq handler, for test */ /* NOTE: don't use printf_opt in irq handler, for test */
#define printf_opt(fmt, ...) do { \ #define os_printf(fmt, ...) do { \
static const char flash_str[] ICACHE_RODATA_ATTR = fmt; \ static const char flash_str[] ICACHE_RODATA_ATTR STORE_ATTR = fmt; \
printf(flash_str, ##__VA_ARGS__); \ printf(flash_str, ##__VA_ARGS__); \
} while(0) } while(0)
/* NOTE: don't use printf_opt in irq handler, for test */
#define sprintf_opt(out, fmt, ...) do { \
static const char flash_str[] ICACHE_RODATA_ATTR = fmt; \
sprintf(out, flash_str, ##__VA_ARGS__); \
} while(0)
#endif /* __LIBC_H__ */ #endif /* __LIBC_H__ */

View File

@ -22,7 +22,7 @@ typedef enum {
typedef void (*sc_callback_t)(sc_status status, void *pdata); typedef void (*sc_callback_t)(sc_status status, void *pdata);
const char *smartconfig_get_version(void); const char *smartconfig_get_version(void);
bool smartconfig_start(sc_type type, sc_callback_t cb, ...); bool smartconfig_start(sc_callback_t cb, ...);
bool smartconfig_stop(void); bool smartconfig_stop(void);
bool esptouch_set_timeout(uint8 time_s);//15s~255s, offset:45s bool esptouch_set_timeout(uint8 time_s);//15s~255s, offset:45s

View File

@ -83,7 +83,7 @@
#define configCPU_CLOCK_HZ ( ( unsigned long ) 80000000 ) #define configCPU_CLOCK_HZ ( ( unsigned long ) 80000000 )
#define configTICK_RATE_HZ ( ( portTickType ) 100 ) #define configTICK_RATE_HZ ( ( portTickType ) 100 )
#define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 15 ) #define configMAX_PRIORITIES ( ( unsigned portBASE_TYPE ) 15 )
#define configMINIMAL_STACK_SIZE ( ( unsigned short )156 ) #define configMINIMAL_STACK_SIZE ( ( unsigned short )176 )
//#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 17 * 1024 ) ) //#define configTOTAL_HEAP_SIZE ( ( size_t ) ( 17 * 1024 ) )
#define configMAX_TASK_NAME_LEN ( 16 ) #define configMAX_TASK_NAME_LEN ( 16 )
#define configUSE_TRACE_FACILITY 0 #define configUSE_TRACE_FACILITY 0

View File

@ -73,6 +73,13 @@ typedef int sys_prot_t;
//#define LWIP_DEBUG //#define LWIP_DEBUG
#ifdef LWIP_DEBUG #ifdef LWIP_DEBUG
#include <stdio.h>
#define os_printf(fmt, ...) do { \
static const char flash_str[] ICACHE_RODATA_ATTR STORE_ATTR = fmt; \
printf(flash_str, ##__VA_ARGS__); \
} while(0)
#define LWIP_PLATFORM_DIAG(x) do {os_printf x;} while(0) #define LWIP_PLATFORM_DIAG(x) do {os_printf x;} while(0)
#define LWIP_PLATFORM_ASSERT(x) do {os_printf(x); sys_arch_assert(__FILE__, __LINE__);} while(0) #define LWIP_PLATFORM_ASSERT(x) do {os_printf(x); sys_arch_assert(__FILE__, __LINE__);} while(0)
#else #else

View File

@ -206,6 +206,18 @@ void dhcp_fine_tmr(void);
#define DHCP_OPTION_TCP_TTL 37 #define DHCP_OPTION_TCP_TTL 37
#define DHCP_OPTION_END 255 #define DHCP_OPTION_END 255
/**add options for support more router by liuHan**/
#ifdef LWIP_ESP8266
#define DHCP_OPTION_DOMAIN_NAME 15
#define DHCP_OPTION_PRD 31
#define DHCP_OPTION_STATIC_ROUTER 33
#define DHCP_OPTION_VSN 43
#define DHCP_OPTION_NB_TINS 44
#define DHCP_OPTION_NB_TINT 46
#define DHCP_OPTION_NB_TIS 47
#define DHCP_OPTION_CLASSLESS_STATIC_ROUTER 121
#endif
/** DHCP options */ /** DHCP options */
#define DHCP_OPTION_REQUESTED_IP 50 /* RFC 2132 9.1, requested IP address */ #define DHCP_OPTION_REQUESTED_IP 50 /* RFC 2132 9.1, requested IP address */
#define DHCP_OPTION_LEASE_TIME 51 /* RFC 2132 9.2, time in seconds, in 4 bytes */ #define DHCP_OPTION_LEASE_TIME 51 /* RFC 2132 9.2, time in seconds, in 4 bytes */

View File

@ -76,7 +76,7 @@ typedef enum {
#endif /* MEM_USE_POOLS */ #endif /* MEM_USE_POOLS */
#if MEMP_MEM_MALLOC || MEM_USE_POOLS #if MEMP_MEM_MALLOC || MEM_USE_POOLS
extern const u16_t memp_sizes[MEMP_MAX]; extern const u32_t memp_sizes[MEMP_MAX];
#endif /* MEMP_MEM_MALLOC || MEM_USE_POOLS */ #endif /* MEMP_MEM_MALLOC || MEM_USE_POOLS */
#if MEMP_MEM_MALLOC #if MEMP_MEM_MALLOC

View File

@ -250,6 +250,13 @@
---------- Network Interfaces options ---------- ---------- Network Interfaces options ----------
------------------------------------------------ ------------------------------------------------
*/ */
/**
* LWIP_NETIF_HOSTNAME==1: use DHCP_OPTION_HOSTNAME with netif's hostname
* field.
*/
#define LWIP_NETIF_HOSTNAME 1
/** /**
* LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP tries to put all data
* to be sent into one single pbuf. This is for compatibility with DMA-enabled * to be sent into one single pbuf. This is for compatibility with DMA-enabled
@ -336,7 +343,7 @@
* LWIP_TCPIP_CORE_LOCKING: (EXPERIMENTAL!) * LWIP_TCPIP_CORE_LOCKING: (EXPERIMENTAL!)
* Don't use it if you're not an active lwIP project member * Don't use it if you're not an active lwIP project member
*/ */
#define LWIP_TCPIP_CORE_LOCKING 1 #define LWIP_TCPIP_CORE_LOCKING 0
/* /*
------------------------------------ ------------------------------------

View File

@ -188,7 +188,7 @@ SECTIONS
*(.entry.text) *(.entry.text)
*(.init.literal) *(.init.literal)
*(.init) *(.init)
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.literal .text .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.fini.literal) *(.fini.literal)
*(.fini) *(.fini)
*(.gnu.version) *(.gnu.version)
@ -209,6 +209,7 @@ SECTIONS
{ {
_irom0_text_start = ABSOLUTE(.); _irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text) *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
*(.literal.* .text.*)
_irom0_text_end = ABSOLUTE(.); _irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr } >irom0_0_seg :irom0_0_phdr
} }

View File

@ -188,7 +188,7 @@ SECTIONS
*(.entry.text) *(.entry.text)
*(.init.literal) *(.init.literal)
*(.init) *(.init)
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.literal .text .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.fini.literal) *(.fini.literal)
*(.fini) *(.fini)
*(.gnu.version) *(.gnu.version)
@ -209,6 +209,7 @@ SECTIONS
{ {
_irom0_text_start = ABSOLUTE(.); _irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text) *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
*(.literal.* .text.*)
_irom0_text_end = ABSOLUTE(.); _irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr } >irom0_0_seg :irom0_0_phdr
} }

View File

@ -188,7 +188,7 @@ SECTIONS
*(.entry.text) *(.entry.text)
*(.init.literal) *(.init.literal)
*(.init) *(.init)
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.literal .text .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.fini.literal) *(.fini.literal)
*(.fini) *(.fini)
*(.gnu.version) *(.gnu.version)
@ -209,6 +209,7 @@ SECTIONS
{ {
_irom0_text_start = ABSOLUTE(.); _irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text) *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
*(.literal.* .text.*)
_irom0_text_end = ABSOLUTE(.); _irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr } >irom0_0_seg :irom0_0_phdr
} }

View File

@ -188,7 +188,7 @@ SECTIONS
*(.entry.text) *(.entry.text)
*(.init.literal) *(.init.literal)
*(.init) *(.init)
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.literal .text .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.fini.literal) *(.fini.literal)
*(.fini) *(.fini)
*(.gnu.version) *(.gnu.version)
@ -209,6 +209,7 @@ SECTIONS
{ {
_irom0_text_start = ABSOLUTE(.); _irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text) *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
*(.literal.* .text.*)
_irom0_text_end = ABSOLUTE(.); _irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr } >irom0_0_seg :irom0_0_phdr
} }

View File

@ -188,7 +188,7 @@ SECTIONS
*(.entry.text) *(.entry.text)
*(.init.literal) *(.init.literal)
*(.init) *(.init)
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.literal .text .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.fini.literal) *(.fini.literal)
*(.fini) *(.fini)
*(.gnu.version) *(.gnu.version)
@ -209,6 +209,7 @@ SECTIONS
{ {
_irom0_text_start = ABSOLUTE(.); _irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text) *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
*(.literal.* .text.*)
_irom0_text_end = ABSOLUTE(.); _irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr } >irom0_0_seg :irom0_0_phdr
} }

View File

@ -188,7 +188,7 @@ SECTIONS
*(.entry.text) *(.entry.text)
*(.init.literal) *(.init.literal)
*(.init) *(.init)
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.literal .text .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.fini.literal) *(.fini.literal)
*(.fini) *(.fini)
*(.gnu.version) *(.gnu.version)
@ -209,6 +209,7 @@ SECTIONS
{ {
_irom0_text_start = ABSOLUTE(.); _irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text) *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
*(.literal.* .text.*)
_irom0_text_end = ABSOLUTE(.); _irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr } >irom0_0_seg :irom0_0_phdr
} }

View File

@ -188,7 +188,7 @@ SECTIONS
*(.entry.text) *(.entry.text)
*(.init.literal) *(.init.literal)
*(.init) *(.init)
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.literal .text .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.fini.literal) *(.fini.literal)
*(.fini) *(.fini)
*(.gnu.version) *(.gnu.version)
@ -209,6 +209,7 @@ SECTIONS
{ {
_irom0_text_start = ABSOLUTE(.); _irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text) *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
*(.literal.* .text.*)
_irom0_text_end = ABSOLUTE(.); _irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr } >irom0_0_seg :irom0_0_phdr
} }

View File

@ -188,7 +188,7 @@ SECTIONS
*(.entry.text) *(.entry.text)
*(.init.literal) *(.init.literal)
*(.init) *(.init)
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.literal .text .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.fini.literal) *(.fini.literal)
*(.fini) *(.fini)
*(.gnu.version) *(.gnu.version)
@ -209,6 +209,7 @@ SECTIONS
{ {
_irom0_text_start = ABSOLUTE(.); _irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text) *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
*(.literal.* .text.*)
_irom0_text_end = ABSOLUTE(.); _irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr } >irom0_0_seg :irom0_0_phdr
} }

View File

@ -188,7 +188,7 @@ SECTIONS
*(.entry.text) *(.entry.text)
*(.init.literal) *(.init.literal)
*(.init) *(.init)
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.literal .text .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.fini.literal) *(.fini.literal)
*(.fini) *(.fini)
*(.gnu.version) *(.gnu.version)
@ -209,6 +209,7 @@ SECTIONS
{ {
_irom0_text_start = ABSOLUTE(.); _irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text) *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
*(.literal.* .text.*)
_irom0_text_end = ABSOLUTE(.); _irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr } >irom0_0_seg :irom0_0_phdr
} }

View File

@ -188,7 +188,7 @@ SECTIONS
*(.entry.text) *(.entry.text)
*(.init.literal) *(.init.literal)
*(.init) *(.init)
*(.literal .text .literal.* .text.* .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*) *(.literal .text .stub .gnu.warning .gnu.linkonce.literal.* .gnu.linkonce.t.*.literal .gnu.linkonce.t.*)
*(.fini.literal) *(.fini.literal)
*(.fini) *(.fini)
*(.gnu.version) *(.gnu.version)
@ -209,6 +209,7 @@ SECTIONS
{ {
_irom0_text_start = ABSOLUTE(.); _irom0_text_start = ABSOLUTE(.);
*(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text) *(.irom0.literal .irom.literal .irom.text.literal .irom0.text .irom.text)
*(.literal.* .text.*)
_irom0_text_end = ABSOLUTE(.); _irom0_text_end = ABSOLUTE(.);
} >irom0_0_seg :irom0_0_phdr } >irom0_0_seg :irom0_0_phdr
} }

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
lib/libmirom.a Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -320,7 +320,7 @@ PortDisableInt_NoNest( void )
void void
PortEnableInt_NoNest( void ) PortEnableInt_NoNest( void )
{ {
printf("ERRRRR\n"); // printf("ERRRRR\n");
if(NMIIrqIsOn == 0) if(NMIIrqIsOn == 0)
{ {
@ -335,6 +335,7 @@ PortEnableInt_NoNest( void )
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
_xt_isr_entry isr[16]; _xt_isr_entry isr[16];
char _xt_isr_status = 0;
void ICACHE_FLASH_ATTR void ICACHE_FLASH_ATTR
_xt_isr_attach(uint8 i, _xt_isr func, void *arg) _xt_isr_attach(uint8 i, _xt_isr func, void *arg)
@ -364,7 +365,9 @@ uint16 _xt_isr_handler(uint16 i)
_xt_clear_ints(1<<index); _xt_clear_ints(1<<index);
_xt_isr_status = 1;
isr[index].handler(isr[index].arg); isr[index].handler(isr[index].arg);
_xt_isr_status = 0;
return i & ~(1 << index); return i & ~(1 << index);
} }

View File

@ -1350,7 +1350,7 @@ unsigned portBASE_TYPE uxReturn;
} /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */ } /*lint !e818 Pointer cannot be declared const as xQueue is a typedef not pointer. */
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
unsigned portBASE_TYPE ICACHE_FLASH_ATTR unsigned portBASE_TYPE
uxQueueMessagesWaitingFromISR( const xQueueHandle xQueue ) uxQueueMessagesWaitingFromISR( const xQueueHandle xQueue )
{ {
unsigned portBASE_TYPE uxReturn; unsigned portBASE_TYPE uxReturn;
@ -1822,7 +1822,7 @@ PortEnableInt_NoNest();
#if ( configUSE_CO_ROUTINES == 1 ) #if ( configUSE_CO_ROUTINES == 1 )
signed portBASE_TYPE signed portBASE_TYPE ICACHE_FLASH_ATTR
xQueueCRSendFromISR( xQueueHandle xQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken ) xQueueCRSendFromISR( xQueueHandle xQueue, const void *pvItemToQueue, signed portBASE_TYPE xCoRoutinePreviouslyWoken )
{ {
xQUEUE * const pxQueue = ( xQUEUE * ) xQueue; xQUEUE * const pxQueue = ( xQUEUE * ) xQueue;
@ -1855,7 +1855,7 @@ PortEnableInt_NoNest();
#if ( configUSE_CO_ROUTINES == 1 ) #if ( configUSE_CO_ROUTINES == 1 )
signed portBASE_TYPE signed portBASE_TYPE ICACHE_FLASH_ATTR
xQueueCRReceiveFromISR( xQueueHandle xQueue, void *pvBuffer, signed portBASE_TYPE *pxCoRoutineWoken ) xQueueCRReceiveFromISR( xQueueHandle xQueue, void *pvBuffer, signed portBASE_TYPE *pxCoRoutineWoken )
{ {
signed portBASE_TYPE xReturn; signed portBASE_TYPE xReturn;
@ -2081,7 +2081,7 @@ PortEnableInt_NoNest();
#if ( configUSE_QUEUE_SETS == 1 ) #if ( configUSE_QUEUE_SETS == 1 )
xQueueSetMemberHandle xQueueSetMemberHandle ICACHE_FLASH_ATTR
xQueueSelectFromSetFromISR( xQueueSetHandle xQueueSet ) xQueueSelectFromSetFromISR( xQueueSetHandle xQueueSet )
{ {
xQueueSetMemberHandle xReturn = NULL; xQueueSetMemberHandle xReturn = NULL;

View File

@ -217,7 +217,7 @@ void ICACHE_FLASH_ATTR get_random_NZ(int num_rand_bytes, uint8_t *rand_data)
for (i = 0; i < num_rand_bytes; i++) for (i = 0; i < num_rand_bytes; i++)
{ {
while (rand_data[i] == 0) /* can't be 0 */ while (rand_data[i] == 0) /* can't be 0 */
rand_data[i] = (uint8_t)(rand()); rand_data[i] = (uint8_t)(os_random());
} }
} }