1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-25 14:33:52 +01:00

Merge pull request #11967 from gschorcht/cpu/esp32/make/fix-undefined-symbols

cpu/esp32: cleanup to fix undefined symbols
This commit is contained in:
MichelRottleuthner 2019-08-06 15:36:58 +02:00 committed by GitHub
commit 8589382899
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 12 deletions

View File

@ -100,7 +100,7 @@ CFLAGS += -DSDK_NOT_USED -DCONFIG_FREERTOS_UNICORE=1 -DESP_PLATFORM
CFLAGS += -DLOG_TAG_IN_BRACKETS
CFLAGS += -Wno-unused-parameter -Wformat=0
CFLAGS += -mlongcalls -mtext-section-literals -fstrict-volatile-bitfields
CFLAGS += -fdata-sections -fzero-initialized-in-bss
CFLAGS += -fdata-sections -ffunction-sections -fzero-initialized-in-bss
ASFLAGS += --longcalls --text-section-literals
ifneq ($(CONFIGS),)
@ -132,15 +132,27 @@ ifneq (,$(filter esp_wifi_any,$(USEMODULE)))
BASELIBS += -lwps -lwpa -lwpa2 -lespnow -lmesh -lphy -lstdc++
endif
LINKFLAGS += -lhal -lg -lc
BASELIBS += -lhal -lg -lc
LINKFLAGS += -L$(RIOTCPU)/$(CPU)/ld/
LINKFLAGS += -T$(RIOTCPU)/$(CPU)/ld/esp32.ld
LINKFLAGS += -T$(RIOTCPU)/$(CPU)/ld/esp32.common.ld
LINKFLAGS += -T$(RIOTCPU)/$(CPU)/ld/esp32.peripherals.ld
LINKFLAGS += -T$(RIOTCPU)/$(CPU)/ld/esp32.rom.ld
LINKFLAGS += -T$(RIOTCPU)/$(CPU)/ld/esp32.rom.nanofmt.ld
LINKFLAGS += -nostdlib -lgcc -u putchar -Wl,-gc-sections
LINKFLAGS += -Wl,--warn-unresolved-symbols
LINKFLAGS += -nostdlib -lgcc -Wl,-gc-sections
ifneq (,$(filter stdio_uart,$(USEMODULE)))
LINKFLAGS += -Wl,-wrap,putchar
LINKFLAGS += -Wl,-wrap,getchar
endif
ifneq (,$(filter esp_idf_heap,$(USEMODULE)))
LINKFLAGS += -Wl,-wrap,_malloc_r
LINKFLAGS += -Wl,-wrap,_calloc_r
LINKFLAGS += -Wl,-wrap,_realloc_r
LINKFLAGS += -Wl,-wrap,_free_r
endif
# The ELFFILE is the base one used for flashing
FLASHFILE ?= $(ELFFILE)

View File

@ -67,7 +67,7 @@
#ifdef MODULE_STDIO_UART
#include "stdio_uart.h"
int IRAM putchar(int c)
int IRAM __wrap_putchar(int c)
{
char tmp = c;
if (stdio_write(&tmp, 1) > 0) {
@ -76,7 +76,7 @@ int IRAM putchar(int c)
return -EOF;
}
int IRAM getchar(void)
int IRAM __wrap_getchar(void)
{
char tmp;
if (stdio_read(&tmp, 1) > 0) {
@ -243,22 +243,22 @@ void IRAM _lock_release_recursive(_lock_t *lock)
extern void *heap_caps_malloc_default( size_t size );
extern void *heap_caps_realloc_default( void *ptr, size_t size );
void* IRAM_ATTR _malloc_r(struct _reent *r, size_t size)
void* IRAM_ATTR __wrap__malloc_r(struct _reent *r, size_t size)
{
return heap_caps_malloc_default( size );
}
void IRAM_ATTR _free_r(struct _reent *r, void* ptr)
void IRAM_ATTR __wrap__free_r(struct _reent *r, void* ptr)
{
heap_caps_free( ptr );
}
void* IRAM_ATTR _realloc_r(struct _reent *r, void* ptr, size_t size)
void* IRAM_ATTR __wrap__realloc_r(struct _reent *r, void* ptr, size_t size)
{
return heap_caps_realloc_default( ptr, size );
}
void* IRAM_ATTR _calloc_r(struct _reent *r, size_t count, size_t size)
void* IRAM_ATTR __wrap__calloc_r(struct _reent *r, size_t count, size_t size)
{
void* result = heap_caps_malloc_default(count * size);
if (result) {

View File

@ -2,13 +2,16 @@ MODULE=esp_idf
DIRS += driver
DIRS += esp32
DIRS += heap
DIRS += soc
DIRS += spi_flash
DIRS += wpa_supplicant
ifneq (,$(filter esp_idf_heap,$(USEMODULE)))
DIRS += heap
endif
ifneq (,$(filter esp_wifi_any,$(USEMODULE)))
DIRS += nvs_flash
DIRS += wpa_supplicant
INCLUDES += -I$(ESP32_SDK_DIR)/components/smartconfig_ack/include
endif