User forums > Embedded development

cannot make a Configuration of Makefile for Esp8266 extensa-lx106 tools

(1/2) > >>

Hello all,

I'm a user beginner for C::B Arduino IDE,  at early morning i installed C::B for Bionic Ubuntu. i have Arduino IDE v1.8.7 with xtensa-lx106 tools, i tried to make a esp8266 project wizard using this, but after i try build it, i get the error see

i also tried a makefile from this, but it using esp32 and xtensa-esp108-elf tools. i cannot modified it with esp8266 board with xtensa-lx106 tools like mine. to many complicated for me.

Thanks in advance, Hope anyone can helps me.

This is porbably not the rigth place to ask this question. The wizard you are using creates a makefile and uses codeblocks to run this makefile. This works all as expected. But your makefile is not complete or has bugs...
You can try to post the "Makefile" here, and we can try to help... It seems that you are missing libraries, or you are using different compilers then the libraries...

Sorry sir @BlueHazzard i don't understand "code of conduct" this forums, this my Makefiles are using.

--- Code: ---# Makefile for ESP8266 projects
# Thanks to:
# - zarya
# - Jeroen Domburg (Sprite_tm)
# - Christian Klippel (mamalala)
# - Tommie Gannert (tommie)
# Changelog:
# - 2014-10-06: Changed the variables to include the header file directory
# - 2014-10-06: Added global var for the Xtensa tool root
# - 2014-11-23: Updated for SDK 0.9.3
# - 2014-12-25: Replaced esptool by

# Output directors to store intermediate compiled files
# relative to the project directory
BUILD_BASE = build
FW_BASE = firmware

# base directory for the compiler
XTENSA_TOOLS_ROOT ?= /home/praz/.arduino15/packages/esp8266/hardware/esp8266/2.4.2/tools/xtensa-lx106-elf/bin

# base directory of the ESP8266 SDK package, absolute
SDK_BASE ?= /home/praz/.arduino15/packages/esp8266/hardware/esp8266/2.4.2/tools/sdk

# path and port
ESPPORT ?= /dev/ttyUSB0

# name for the target project
TARGET = app

# which modules (subdirectories) of the project to include in compiling
MODULES = driver user
EXTRA_INCDIR    = include

# libraries used in this project, mainly provided by the SDK
LIBS =  c gcc hal main pp phy net80211 wpa wps

# compiler flags using during compilation of source files
CFLAGS = -Os -g -O2 -Wpointer-arith -Wundef -Werror -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals  -D__ets__ -DICACHE_FLASH

# linker flags used to generate the main object file
LDFLAGS = -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static

# linker script used for the above linkier step
LD_SCRIPT = eagle.rom.addr.v6.ld

# various paths from the SDK used in this project
SDK_INCDIR = include include/json

# we create two different files for uploading into the flash
# these are the names and options to generate them
FW_FILE_1_ADDR = 0x00000
FW_FILE_2_ADDR = 0x40000

# select which tools to use as compiler, librarian and linker
CC := $(XTENSA_TOOLS_ROOT)/xtensa-lx106-elf-gcc
AR := $(XTENSA_TOOLS_ROOT)/xtensa-lx106-elf-ar
LD := $(XTENSA_TOOLS_ROOT)/xtensa-lx106-elf-gcc

#### no user configurable options below here
BUILD_DIR := $(addprefix $(BUILD_BASE)/,$(MODULES))

SDK_LIBDIR := $(addprefix $(SDK_BASE)/,$(SDK_LIBDIR))
SDK_INCDIR := $(addprefix -I$(SDK_BASE)/,$(SDK_INCDIR))

SRC := $(foreach sdir,$(SRC_DIR),$(wildcard $(sdir)/*.c))
OBJ := $(patsubst %.c,$(BUILD_BASE)/%.o,$(SRC))
LIBS := $(addprefix -l,$(LIBS))
APP_AR := $(addprefix $(BUILD_BASE)/,$(TARGET)_app.a)
TARGET_OUT := $(addprefix $(BUILD_BASE)/,$(TARGET).out)

LD_SCRIPT := $(addprefix -T$(SDK_BASE)/$(SDK_LDDIR)/,$(LD_SCRIPT))

INCDIR := $(addprefix -I,$(SRC_DIR))
EXTRA_INCDIR := $(addprefix -I,$(EXTRA_INCDIR))
MODULE_INCDIR := $(addsuffix /include,$(INCDIR))

FW_FILE_1 := $(addprefix $(FW_BASE)/,$(FW_FILE_1_ADDR).bin)
FW_FILE_2 := $(addprefix $(FW_BASE)/,$(FW_FILE_2_ADDR).bin)

ifeq ("$(V)","1")
Q :=
vecho := @true
Q := @
vecho := @echo

vpath %.c $(SRC_DIR)

define compile-objects
$1/%.o: %.c
$(vecho) "CC $$<"

.PHONY: all checkdirs flash clean

all: checkdirs $(TARGET_OUT) $(FW_FILE_1) $(FW_FILE_2)

cleanall: clean

$(FW_BASE)/%.bin: $(TARGET_OUT) | $(FW_BASE)
$(vecho) "FW $(FW_BASE)/"
$(Q) $(ESPTOOL) elf2image -o $(FW_BASE)/ $(TARGET_OUT)

$(vecho) "LD $@"
$(Q) $(LD) -L$(SDK_LIBDIR) $(LD_SCRIPT) $(LDFLAGS) -Wl,--start-group $(LIBS) $(APP_AR) -Wl,--end-group -o $@

$(APP_AR): $(OBJ)
$(vecho) "AR $@"
$(Q) $(AR) cru $@ $^

checkdirs: $(BUILD_DIR) $(FW_BASE)

$(Q) mkdir -p $@

$(Q) mkdir -p $@

flash: $(FW_FILE_1) $(FW_FILE_2)
$(ESPTOOL) --port $(ESPPORT) write_flash $(FW_FILE_1_ADDR) $(FW_FILE_1) $(FW_FILE_2_ADDR) $(FW_FILE_2)

$(Q) rm -rf $(FW_BASE) $(BUILD_BASE)

$(foreach bdir,$(BUILD_DIR),$(eval $(call compile-objects,$(bdir))))

--- End code ---

Honestly this can get very nasty very fast. If you are not familiar with compilers and esp toolchain i would suggest you use the arduino framework, where all is set up and should work...

This forum is about
1) errors in codeblocks
2) Errors of the build system in codeblocks
3) or using the build system.

To split this up to your problem
1) Codeblocks in your problem works as expected. It does not crash or has bugs
2) The build system calls the make file as expected by your project and this part works
3) You are not using the codeblocks internal build system but a makefile

This makefile generates errors and so it is out of scope for codeblocks...

Have you tried to run

--- Code: ---make -f Makefile all
--- End code ---
from the project directory? I suspect you are using the wrong compiler or you don't have set up the libraries. Googeling your problem should help:


--- Quote from: BlueHazzard on October 25, 2018, 04:42:49 pm ---Have you tried to run

--- Code: ---make -f Makefile all
--- End code ---

--- End quote ---

i get

--- Quote from: BlueHazzard on October 25, 2018, 04:42:49 pm ---I suspect you are using the wrong compiler or you don't have set up the libraries. Googeling your problem should help:

--- End quote ---

does it affect if I set the compiler from esp8266 compiler i have to C::B IDE with toolchain settings without using esp-open-sdk?
or can I set an internal build system with toolchain xtensa-lx106-elf tools from libraries Arduino IDE?

how do i can work around it sir?


[0] Message Index

[#] Next page

Go to full version