jeremyjh / esp32_tft_library Goto Github PK
View Code? Open in Web Editor NEWThis project forked from loboris/esp32_tft_library
Full featured TFT library for ESP32 with demo application
This project forked from loboris/esp32_tft_library
Full featured TFT library for ESP32 with demo application
Hello,
I love what you've done with the library! The graphics are working great on my ESP32 Dev Kit V1 connected to an Ebay ILI9341 320x240 LCD with XPT2046 touch controller. However, the touch demo doesn't seem to be working at all. I know the hardware functions because it works perfectly with littlevgl/lv_port_esp32
I've wired as follows:
Breakout --> ESP32
VCC - 3v
GND - GND
CS - 5
RESET - 4
DC - 26
SDI(MOSI) - 23
SCK - 18
LED - VIN
SD0(MISO) - 19
T_CLK - 18
T_CS - 25
T_DIN - 23
T_DO - 19
T_IRQ - NOT CONNECTED
Note that MISO, MOSI and CLK lines are shared between the display and the touchscreen, however the CS lines are different.
When the touch screen was functioning with LittleVGL the touch interupt pin was in use, however there don't seem to be any instructions to use this pin with the ESP32_TFT_Library.
Any advice on getting the touchscreen to function would be much appreciated!
Thanks in advance,
Philip
ESP-IDF v: 4.0.1
IDE: Platformio
Board: AZDelivery ESP32
Hi, I'm tryng to find a way to use the demo example. I alway get thi error:
SPI: Max rd speed = 8000000
SPI: Changed speed to 26666666
Graphics demo started
�[0;32mI (2313) [SPIFFS]: Registering SPIFFS file system�[0m
�[0;32mI (2313) [SPIFFS]: Mounting SPIFFS files system�[0m
�[0;32mI (2313) [SPIFFS]: Start address: 0x100000; Size 1024 KB�[0m
�[0;32mI (2319) [SPIFFS]: Work buffer: 2048 B�[0m
�[0;32mI (2323) [SPIFFS]: FDS buffer: 384 B�[0m
�[0;32mI (2328) [SPIFFS]: Cache size: 2048 B�[0m
�[0;33mW (2333) [SPIFFS]: No file system detected, formating...
�[0mD (2339) partition: Loading the partition table�[0m
abort() was called at PC 0x400e0382 on core 0
ELF file SHA256: a5f58e11326a9b5d
Backtrace: 0x40086475:0x3ffb8fd0 0x400867fd:0x3ffb8ff0 0x400e0382:0x3ffb9010 0x40084c6f:0x3ffb9030 >0x4008167e:0x3ffb9050 0x400d5599:0x3ffb9070 0x400d4051:0x3ffb90a0 0x400d3954:0x3ffb90c0 0x400d3b0b:0x3ffb9110 >0x400d34ee:0x3ffb91d0 0x400de54e:0x3ffb9230 0x40087539:0x3ffb9250
CPU halted.
Deconding the backtrace:
Decoding stack results
0x40086475: invoke_abort at C:.platformio\packages\framework-espidf\components\esp32\panic.c line 155
0x400867fd: abort at C:.platformio\packages\framework-espidf\components\esp32\panic.c line 172
0x400e0382: is_safe_write_address at C:.platformio\packages\framework-espidf\components\spi_flash\flash_ops.c line 120
0x40084c6f: spi_flash_erase_sector at C:.platformio\packages\framework-espidf\components\spi_flash\flash_ops.c line 205
0x4008167e: esp32_spi_flash_erase at components\spiffs\esp_spiffs.c line 133
0x400d5599: spiffs_erase_block at components\spiffs\spiffs_nucleus.c line 236
0x400d4051: SPIFFS_format at components\spiffs\spiffs_hydrogen.c line 55
0x400d3954: spiffs_mount at components\spiffs\spiffs_vfs.c line 778
0x400d3b0b: vfs_spiffs_register at components\spiffs\spiffs_vfs.c line 862
0x400d34ee: app_main at src\tft_demo.c line 1428
0x400de54e: main_task at C:.platformio\packages\framework-espidf\components\esp32\cpu_start.c line 553
0x40087539: vPortTaskWrapper at C:.platformio\packages\framework-espidf\components\freertos\port.c line 143
Can someone help me?
In tft.c, some functions take non-const char* as argument, when they should take const char*.
This makes it fairly annoying to call from C++, where without a const_cast, it will produce compiler warnings.
Some of the functions do take const char*, so they just all need to do so appropriately (which I'm guessing is all of them, as they shouldn't really be altering the input string).
Hi,
I'm unable to successfully build the stand-alone demo with the ESP-IDF 4.0 build system. I'm getting the following errors:
../components/spidriver/spi_master_lobo.c:104:11: error: unknown type name 'periph_module_t' const periph_module_t module; //peripheral module, for enabling clock etc
../components/spidriver/spi_master_lobo.c:131:17: error: 'PERIPH_SPI_MODULE' undeclared here (not in a function) .module=PERIPH_SPI_MODULE,
../components/spidriver/spi_master_lobo.c:152:17: error: 'PERIPH_HSPI_MODULE' undeclared here (not in a function); did you mean 'SPI_CS_I_MODE'? .module=PERIPH_HSPI_MODULE,
../components/spidriver/spi_master_lobo.c:173:17: error: 'PERIPH_VSPI_MODULE' undeclared here (not in a function); did you mean 'SPI_CS_I_MODE'? .module=PERIPH_VSPI_MODULE,
../components/spidriver/spi_master_lobo.c: In function 'spi_lobo_periph_claim': ../components/spidriver/spi_master_lobo.c:287:14: error: implicit declaration of function 'periph_module_enable'; did you mean 'esp_intr_enable'? [-Werror=implicit-function-declaration] if (ret) periph_module_enable(io_signal[host].module);
../components/spidriver/spi_master_lobo.c: In function 'spi_lobo_periph_free': ../components/spidriver/spi_master_lobo.c:296:14: error: implicit declaration of function 'periph_module_disable'; did you mean 'esp_intr_disable'? [-Werror=implicit-function-declaration] if (ret) periph_module_disable(io_signal[host].module);
../components/spidriver/spi_master_lobo.c: In function 'spi_lobo_dma_chan_claim': ../components/spidriver/spi_master_lobo.c:312:27: error: 'PERIPH_SPI_DMA_MODULE' undeclared (first use in this function); did you mean 'PERIPHS_IO_MUX_MTDO_U'? periph_module_enable( PERIPH_SPI_DMA_MODULE );
../components/spidriver/spi_master_lobo.c:312:27: note: each undeclared identifier is reported only once for each function it appears in ../components/spidriver/spi_master_lobo.c: In function 'spi_lobo_dma_chan_free': ../components/spidriver/spi_master_lobo.c:328:32: error: 'PERIPH_SPI_DMA_MODULE' undeclared (first use in this function); did you mean 'PERIPHS_IO_MUX_MTDO_U'? periph_module_disable( PERIPH_SPI_DMA_MODULE );
cc1: some warnings being treated as errors [685/914] Building C object esp-idf/tft/CMakeFiles/__idf_tft.dir/tft.c.obj ninja: build stopped: subcommand failed. ninja failed with exit code 1
Pretty much all in the title:
While tft.h has extern c macros to allow calling from c++ main components, tftspi.h needs these tags so that TFT_PinsInit() and TFT_display_init() can be called from a project compiled as c++.
If tft.h is included in C++ twice by mistake compilation fails.
In order to make the lib on IDF 4.0.1, I cloned this branch, but got errors:
CMake Error at C:/Users/F70/000-KL/FarmControlRoom/ESP_IDF_401/tools/cmake/component.cmake:280 (foreach):
Syntax error in cmake code at
C:/Users/F70/000-KL/FarmControlRoom/ESP_IDF_401/tools/cmake/component.cmake:280
when parsing string
C:/Users/F70/000-KL/FarmControlRoom/ESP32_TFT_library/main;C:\Users\F70\000-KL\FarmControlRoom\ESP_IDF_401/components
Invalid character escape '\U'.
Call Stack (most recent call first):
C:/Users/F70/000-KL/FarmControlRoom/ESP_IDF_401/tools/cmake/component.cmake:447 (__component_add_include_dirs)
main/CMakeLists.txt:2 (idf_component_register)
-- Configuring incomplete, errors occurred!
See also "C:/Users/F70/000-KL/FarmControlRoom/ESP32_TFT_library/build/CMakeFiles/CMakeOutput.log".
cmake failed with exit code 1
not sure where to go from here.
Log for reference.
I've recently moved from IDF 3.3 to 4.0.1. On 3.3 I've built the master branch sucessfully with the demo app. I am not too deep into the build mechanics and git yet, accepting recommendations. system: win7
Regards, F99
CMakeOutput.log
There seems to be a missing reservation of the SPI bus in function TFT_invertDisplay and TFT_setGammaCurve. Propose something like this:
void TFT_invertDisplay(const uint8_t mode) {
if (disp_select() == ESP_OK) {
if ( mode == INVERT_ON ) disp_spi_transfer_cmd(TFT_INVONN);
else disp_spi_transfer_cmd(TFT_INVOFF);
disp_deselect();
}
}
void TFT_setGammaCurve(uint8_t gm) {
uint8_t gamma_curve = 1 << (gm & 0x03);
if (disp_select() == ESP_OK) {
disp_spi_transfer_cmd_data(TFT_CMD_GAMMASET, &gamma_curve, 1);
disp_deselect();
}
}
This is verified on Lilygo T-Display (ST7789V based)
I get this when trying to compile the example. Can you help me Jeremy? Thanks in advance. :)
/home/fcosta/esp/esp-idf/components/heap/heap_caps_init.c: In function 'heap_caps_add_region_with_caps':
/home/fcosta/esp/esp-idf/components/heap/heap_caps_init.c:230:44: error: the comparison will always evaluate as 'true' for the address of 'registered_heaps_write_lock' will never be NULL [-Werror=address]
MULTI_HEAP_LOCK(®istered_heaps_write_lock);
^~
/home/fcosta/esp/esp-idf/components/heap/heap_caps_init.c:232:45: error: the comparison will always evaluate as 'true' for the address of 'registered_heaps_write_lock' will never be NULL [-Werror=address]
MULTI_HEAP_UNLOCK(®istered_heaps_write_lock);
^~
cc1: some warnings being treated as errors
Could you provide, please, some alternatives to create and flash spiffs image used in this project
ESPPORT= make copyfs
make makefs
ESPPORT= make flashfs
as 'make' is no more available in current toolchain that is based on 'cmake'?
Thanks
Hi @jeremyjh ,
great work you have done. This helps me a lot!
Just in case it might get relevant: Could you add a license to your repo, please?
Through the idf.py menuconfig, I cannot find the following options, is there anything wrong?
//expected options for TFT Display Configurations
"ESP-WROVER-KIT v3 Display (ST7789V)"
"ESP-WROVER-KIT v4.1 Display (ILI9341)"
"Adafruit TFT Feather Display"
"M5Stack TFT Display"
Module or chip used: ESP32-WROOM-32D
IDF version : v3.3-172-ge7e0ead31
Build System: CMake
Compiler version : xtensa-esp32-elf-gcc (crosstool-NG crosstool-ng-1.22.0-80-g6c4433a) 5.2.0
Operating System: macOS
Using an IDE?: Vs Studio Code
Power Supply: USB
Hello, I'm using ESP32 on Amazon FreeRtos with the loboris library library to use a tft lcd screen.
In this library, there is a specific spiffs component so in my project I'm using this spiffs functions. I must use this because with the spiffs esp idf component, it's impossible to display images on tft screen.
The problem is that when my application is running, randomly a write on a file contained on the spiffs is not working and then every write/read is failed until I reset the board.
On this example, I'm writing a structure into a file as binary. It's the same for other functions...
Thank you very much for your help.
fwrite/fread/fclose successed
Randomly Failed with error -10012
/* Function to write Parameters_bob into a file to save it */
int writeParametersFile(char *fname, char *mode, Parameters_bob *parameters)
{
FILE *fd =NULL;
#if PRINT_DEBUG
printf("=======================\n");
printf("==== Write the parameters settings to file ====\n");
printf("=======================\n");
printf(" file: \"%s\"\n", fname);
#endif
if (fileExists(fname)==0){
fd = fopen(fname, "wb+");
}
else {
fd = fopen(fname, "wb+");
}
if (fd == NULL) {
ESP_LOGE("[write]", "fopen failed");
ESP_LOGE("[write]","errno : %d ",errno );
return -1;
}
int size = sizeof(Parameters_bob);
int res = fwrite(parameters, size, 1, fd);
if (res != 1) {
ESP_LOGE("[write]", "fwrite failed: %d ", res);
ESP_LOGE("[write]","errno : %d ",errno );
res = fclose(fd);
if (res) {
ESP_LOGE("[write]", "fclose failed: %d", res);
ESP_LOGE("[write]","errno : %d ",errno );
return -2;
}
return -3;
}
res = fclose(fd);
if (res) {
ESP_LOGE("[write]", "fclose failed: %d", res);
ESP_LOGE("[write]","errno : %d ",errno );
return -4;
}
return 0;
}
file: "/spiffs/config_data.txt"
E (60734) [write]: fclose failed: -1
E (60734) [write]: errno : -10012
## Other items if possible
[sdkconfig](https://gist.github.com/elieDaan/f5e1a5d1c01836e14d7dc928e77e57fd)
I had a rather frustrating time getting the library working with my program, I for a while could not figure out what I was doing wrong, until I looked at the exact format of the pictures. While I don't actually think this is something that is worth fixing in the library, as producing compatible files is very easy, it is something that could save alot It would seem that the BMP and the JPG library only support some versions of these files.
BMP does not support "Color space information", including it will result in the file not working, the command "file" can so the difference bmps with color space information are newer Windows95/NT4 format.
bad.bmp: PC bitmap, Windows 95/NT4 and newer format, 240 x 135 x 24
good.bmp: PC bitmap, Windows 3.x format, 240 x 135 x 24
With jpg files the key thing is to not use "progressive" mode.
bad.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, progressive, precision 8, 240x135, frames 3
good.jpg: JPEG image data, JFIF standard 1.01, resolution (DPI), density 72x72, segment length 16, baseline, precision 8, 240x135, frames 3
Sadly GIMP saves files by default in an unsupported format.
It would see that the functions list_remove and list_next clash causing linkage problems when using the IDF with bluetooth. I have in my test version just changes the functions to spiff_list_remove and spiff_list_next, in the normal lame C way to try to produce a non clashing namespace. I was thinking of changing the whole of list.c in that way, is that something useful for the library or just something to keep local?
tftspi.h includes itself? There seems no reason for this.
idf.py build
...
[1011/1050] Building C object esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/mutex.c.obj
FAILED: esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/mutex.c.obj
ccache C:\Espressif\tools\xtensa-esp32-elf\esp-2021r2-patch3-8.4.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-gcc.exe -Iconfig -I../components/spiffs -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/newlib/platform_include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/freertos/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/freertos/include/esp_additions/freertos -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/freertos/port/xtensa/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/freertos/include/esp_additions -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_hw_support/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_hw_support/include/soc -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_hw_support/include/soc/esp32 -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_hw_support/port/esp32/. -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_hw_support/port/esp32/private_include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/heap/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/log/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/lwip/include/apps -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/lwip/include/apps/sntp -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/lwip/lwip/src/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/lwip/port/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/lwip/port/esp32/include/arch -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/soc/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/soc/esp32/. -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/soc/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/hal/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/hal/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/hal/platform_port/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/include/esp32 -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/esp32 -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_common/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_system/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_system/port/soc -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_system/port/public_compat -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/xtensa/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/xtensa/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/driver/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/driver/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_pm/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_ringbuf/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/efuse/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/efuse/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/vfs/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_wifi/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_event/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_netif/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_eth/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/tcpip_adapter/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_phy/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_phy/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_ipc/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/app_trace/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_timer/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/spi_flash/include -mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -ggdb -Og -fmacro-prefix-map=C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library=. -fmacro-prefix-map=C:/Espressif/frameworks/esp-idf-v4.4.1=IDF -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu99 -Wno-old-style-declaration -D_GNU_SOURCE -DIDF_VER="v4.4.1" -DESP_PLATFORM -D_POSIX_READER_WRITER_LOCKS -MD -MT esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/mutex.c.obj -MF esp-idf\spiffs\CMakeFiles__idf_spiffs.dir\mutex.c.obj.d -o esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/mutex.c.obj -c ../components/spiffs/mutex.c
../components/spiffs/mutex.c: In function 'mtx_init':
../components/spiffs/mutex.c:40:2: error: implicit declaration of function '_frxt_setup_switch' [-Werror=implicit-function-declaration]
_frxt_setup_switch();
^~~~~~~~~~~~~~~~~~
../components/spiffs/mutex.c:55:13: note: in expansion of macro 'portEND_SWITCHING_ISR'
portEND_SWITCHING_ISR( xHigherPriorityTaskWoken );
^~~~~~~~~~~~~~~~~~~~~
cc1.exe: some warnings being treated as errors
[1020/1050] Building C object esp-idf/wifi_provisioning/CMakeFiles/__idf_wifi_provisioning.dir/src/wifi_scan.c.obj
ninja: build stopped: subcommand failed.
ninja failed with exit code 1
C:\Users\kshsu\Documents\ESP32\IOT_Practice\tft_lib\ESP32_TFT_library>idf.py build
Executing action: all (aliases: build)
Running ninja in directory c:\users\kshsu\documents\esp32\iot_practice\tft_lib\esp32_tft_library\build
Executing "ninja all"...
[0/1] Re-running CMake...
-- ccache will be used for faster recompilation
-- Building ESP-IDF components for target esp32
-- Project sdkconfig file C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/sdkconfig
warning: the int symbol SPIFFS_BASE_ADDR (defined at C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/components/spiffs/Kconfig:3) has a non-int default 0x180000 (undefined)
Loading defaults file C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/sdkconfig.defaults...
C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/sdkconfig.defaults:6 CONFIG_ESP32_PANIC_PRINT_HALT was replaced with CONFIG_ESP_SYSTEM_PANIC_PRINT_HALT
C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/sdkconfig.defaults:9 CONFIG_MAIN_TASK_STACK_SIZE was replaced with CONFIG_ESP_MAIN_TASK_STACK_SIZE
C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/sdkconfig.defaults:10 CONFIG_TASK_WDT_TIMEOUT_S was replaced with CONFIG_ESP_TASK_WDT_TIMEOUT_S
-- App "tft_demo" version: 9283df8-dirty
-- Adding linker script C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/build/esp-idf/esp_system/ld/memory.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_system/ld/esp32/sections.ld.in
-- Adding linker script C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/esp32/ld/esp32.rom.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/esp32/ld/esp32.rom.api.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/esp32/ld/esp32.rom.libgcc.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/esp32/ld/esp32.rom.newlib-data.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/esp32/ld/esp32.rom.syscalls.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/esp32/ld/esp32.rom.newlib-funcs.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/esp32/ld/esp32.rom.newlib-time.ld
-- Adding linker script C:/Espressif/frameworks/esp-idf-v4.4.1/components/soc/esp32/ld/esp32.peripherals.ld
-- Components: app_trace app_update asio bootloader bootloader_support bt cbor cmock coap console cxx driver efuse esp-tls esp32 esp_adc_cal esp_common esp_eth esp_event esp_gdbstub esp_hid esp_http_client esp_http_server esp_https_ota esp_https_server esp_hw_support esp_ipc esp_lcd esp_local_ctrl esp_netif esp_phy esp_pm esp_ringbuf esp_rom esp_serial_slave_link esp_system esp_timer esp_websocket_client esp_wifi espcoredump esptool_py expat fatfs freemodbus freertos hal heap idf_test ieee802154 jsmn json libsodium log lwip main mbedtls mdns mkspiffs mqtt newlib nghttp nvs_flash openssl openthread partition_table perfmon protobuf-c protocomm pthread sdmmc soc spi_flash spidriver spiffs spiffs_image tcp_transport tcpip_adapter tft tinyusb ulp unity usb vfs wear_levelling wifi_provisioning wpa_supplicant xtensa
-- Component paths: C:/Espressif/frameworks/esp-idf-v4.4.1/components/app_trace C:/Espressif/frameworks/esp-idf-v4.4.1/components/app_update C:/Espressif/frameworks/esp-idf-v4.4.1/components/asio C:/Espressif/frameworks/esp-idf-v4.4.1/components/bootloader C:/Espressif/frameworks/esp-idf-v4.4.1/components/bootloader_support C:/Espressif/frameworks/esp-idf-v4.4.1/components/bt C:/Espressif/frameworks/esp-idf-v4.4.1/components/cbor C:/Espressif/frameworks/esp-idf-v4.4.1/components/cmock C:/Espressif/frameworks/esp-idf-v4.4.1/components/coap C:/Espressif/frameworks/esp-idf-v4.4.1/components/console C:/Espressif/frameworks/esp-idf-v4.4.1/components/cxx C:/Espressif/frameworks/esp-idf-v4.4.1/components/driver C:/Espressif/frameworks/esp-idf-v4.4.1/components/efuse C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp-tls C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp32 C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_adc_cal C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_common C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_eth C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_event C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_gdbstub C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_hid C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_http_client C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_http_server C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_https_ota C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_https_server C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_hw_support C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_ipc C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_lcd C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_local_ctrl C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_netif C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_phy C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_pm C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_ringbuf C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_serial_slave_link C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_system C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_timer C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_websocket_client C:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_wifi C:/Espressif/frameworks/esp-idf-v4.4.1/components/espcoredump C:/Espressif/frameworks/esp-idf-v4.4.1/components/esptool_py C:/Espressif/frameworks/esp-idf-v4.4.1/components/expat C:/Espressif/frameworks/esp-idf-v4.4.1/components/fatfs C:/Espressif/frameworks/esp-idf-v4.4.1/components/freemodbus C:/Espressif/frameworks/esp-idf-v4.4.1/components/freertos C:/Espressif/frameworks/esp-idf-v4.4.1/components/hal C:/Espressif/frameworks/esp-idf-v4.4.1/components/heap C:/Espressif/frameworks/esp-idf-v4.4.1/components/idf_test C:/Espressif/frameworks/esp-idf-v4.4.1/components/ieee802154 C:/Espressif/frameworks/esp-idf-v4.4.1/components/jsmn C:/Espressif/frameworks/esp-idf-v4.4.1/components/json C:/Espressif/frameworks/esp-idf-v4.4.1/components/libsodium C:/Espressif/frameworks/esp-idf-v4.4.1/components/log C:/Espressif/frameworks/esp-idf-v4.4.1/components/lwip C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/main C:/Espressif/frameworks/esp-idf-v4.4.1/components/mbedtls C:/Espressif/frameworks/esp-idf-v4.4.1/components/mdns C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/components/mkspiffs C:/Espressif/frameworks/esp-idf-v4.4.1/components/mqtt C:/Espressif/frameworks/esp-idf-v4.4.1/components/newlib C:/Espressif/frameworks/esp-idf-v4.4.1/components/nghttp C:/Espressif/frameworks/esp-idf-v4.4.1/components/nvs_flash C:/Espressif/frameworks/esp-idf-v4.4.1/components/openssl C:/Espressif/frameworks/esp-idf-v4.4.1/components/openthread C:/Espressif/frameworks/esp-idf-v4.4.1/components/partition_table C:/Espressif/frameworks/esp-idf-v4.4.1/components/perfmon C:/Espressif/frameworks/esp-idf-v4.4.1/components/protobuf-c C:/Espressif/frameworks/esp-idf-v4.4.1/components/protocomm C:/Espressif/frameworks/esp-idf-v4.4.1/components/pthread C:/Espressif/frameworks/esp-idf-v4.4.1/components/sdmmc C:/Espressif/frameworks/esp-idf-v4.4.1/components/soc C:/Espressif/frameworks/esp-idf-v4.4.1/components/spi_flash C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/components/spidriver C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/components/spiffs C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/components/spiffs_image C:/Espressif/frameworks/esp-idf-v4.4.1/components/tcp_transport C:/Espressif/frameworks/esp-idf-v4.4.1/components/tcpip_adapter C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/components/tft C:/Espressif/frameworks/esp-idf-v4.4.1/components/tinyusb C:/Espressif/frameworks/esp-idf-v4.4.1/components/ulp C:/Espressif/frameworks/esp-idf-v4.4.1/components/unity C:/Espressif/frameworks/esp-idf-v4.4.1/components/usb C:/Espressif/frameworks/esp-idf-v4.4.1/components/vfs C:/Espressif/frameworks/esp-idf-v4.4.1/components/wear_levelling C:/Espressif/frameworks/esp-idf-v4.4.1/components/wifi_provisioning C:/Espressif/frameworks/esp-idf-v4.4.1/components/wpa_supplicant C:/Espressif/frameworks/esp-idf-v4.4.1/components/xtensa
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/build
[1/36] Performing build step for 'bootloader'
[1/1] cmd.exe /C "cd /D C:\Users\kshsu\Documents\ESP32\IOT_Practice\tft_lib\ESP32_TFT_library\build\bootloader\esp-idf\esptool_py && C:\Espressif\python_env\idf4.4_py3.8_env\Scripts\python.exe C:/Espressif/frameworks/esp-idf-v4.4.1/components/partition_table/check_sizes.py --offset 0x8000 bootloader 0x1000 C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library/build/bootloader/bootloader.bin"
Bootloader binary size 0x62c0 bytes. 0xd40 bytes (12%) free.
[5/34] Building C object esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/mutex.c.obj
FAILED: esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/mutex.c.obj
ccache C:\Espressif\tools\xtensa-esp32-elf\esp-2021r2-patch3-8.4.0\xtensa-esp32-elf\bin\xtensa-esp32-elf-gcc.exe -Iconfig -I../components/spiffs -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/newlib/platform_include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/freertos/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/freertos/include/esp_additions/freertos -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/freertos/port/xtensa/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/freertos/include/esp_additions -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_hw_support/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_hw_support/include/soc -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_hw_support/include/soc/esp32 -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_hw_support/port/esp32/. -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_hw_support/port/esp32/private_include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/heap/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/log/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/lwip/include/apps -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/lwip/include/apps/sntp -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/lwip/lwip/src/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/lwip/port/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/lwip/port/esp32/include/arch -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/soc/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/soc/esp32/. -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/soc/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/hal/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/hal/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/hal/platform_port/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/include/esp32 -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_rom/esp32 -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_common/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_system/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_system/port/soc -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_system/port/public_compat -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/xtensa/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/xtensa/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/driver/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/driver/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_pm/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_ringbuf/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/efuse/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/efuse/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/vfs/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_wifi/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_event/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_netif/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_eth/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/tcpip_adapter/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_phy/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_phy/esp32/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_ipc/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/app_trace/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/esp_timer/include -IC:/Espressif/frameworks/esp-idf-v4.4.1/components/spi_flash/include -mlongcalls -Wno-frame-address -ffunction-sections -fdata-sections -Wall -Werror=all -Wno-error=unused-function -Wno-error=unused-variable -Wno-error=deprecated-declarations -Wextra -Wno-unused-parameter -Wno-sign-compare -ggdb -Og -fmacro-prefix-map=C:/Users/kshsu/Documents/ESP32/IOT_Practice/tft_lib/ESP32_TFT_library=. -fmacro-prefix-map=C:/Espressif/frameworks/esp-idf-v4.4.1=IDF -fstrict-volatile-bitfields -Wno-error=unused-but-set-variable -fno-jump-tables -fno-tree-switch-conversion -std=gnu99 -Wno-old-style-declaration -D_GNU_SOURCE -DIDF_VER="v4.4.1" -DESP_PLATFORM -D_POSIX_READER_WRITER_LOCKS -MD -MT esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/mutex.c.obj -MF esp-idf\spiffs\CMakeFiles__idf_spiffs.dir\mutex.c.obj.d -o esp-idf/spiffs/CMakeFiles/__idf_spiffs.dir/mutex.c.obj -c ../components/spiffs/mutex.c
../components/spiffs/mutex.c: In function 'mtx_init':
../components/spiffs/mutex.c:40:2: error: implicit declaration of function '_frxt_setup_switch' [-Werror=implicit-function-declaration]
_frxt_setup_switch();
^~~~~~~~~~~~~~~~~~
../components/spiffs/mutex.c:55:13: note: in expansion of macro 'portEND_SWITCHING_ISR'
portEND_SWITCHING_ISR( xHigherPriorityTaskWoken );
^~~~~~~~~~~~~~~~~~~~~
cc1.exe: some warnings being treated as errors
[14/34] Building C object esp-idf/wifi_provisioning/CMakeFiles/__idf_wifi_provisioning.dir/src/manager.c.obj
ninja: build stopped: subcommand failed.
ninja failed with exit code 1
Not sure if _frxt_setup_switch() is deprecated...
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.