├── .gitignore ├── .gitmodules ├── CMakeLists.txt ├── LICENSE ├── README.md ├── arduino ├── CMakeLists.txt ├── cmake │ ├── Modules │ │ ├── EspFlash.cmake │ │ └── FindArduino.cmake │ └── toolchain.ESP8266.cmake ├── extlib │ ├── CMakeLists.txt │ ├── adafruit_gfx │ │ └── CMakeLists.txt │ ├── adafruit_st7735 │ │ └── CMakeLists.txt │ ├── i2cdevlib │ │ └── CMakeLists.txt │ ├── lis3mdl │ │ └── CMakeLists.txt │ ├── lsm6 │ │ └── CMakeLists.txt │ └── pubsubclient │ │ └── CMakeLists.txt └── libraries │ ├── ArduinoOTA │ └── CMakeLists.txt │ ├── CMakeLists.txt │ ├── ESP8266WebServer │ └── CMakeLists.txt │ ├── ESP8266WiFi │ └── CMakeLists.txt │ ├── ESP8266mDNS │ └── CMakeLists.txt │ ├── GDBStub │ └── CMakeLists.txt │ ├── SPI │ └── CMakeLists.txt │ └── Wire │ └── CMakeLists.txt ├── cmake ├── Modules │ └── Platform │ │ └── ESP8266.cmake └── toolchain.ESP8266.cmake ├── main └── CMakeLists.txt └── sdk ├── CMakeLists.txt ├── nonos-1.4.0.cmake └── rtos-1.3.0.cmake /.gitignore: -------------------------------------------------------------------------------- 1 | *.swp 2 | 3 | CMakeCache.txt 4 | CMakeFiles 5 | Makefile 6 | cmake_install.cmake 7 | install_manifest.txt 8 | 9 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "arduino/extlib/lis3mdl/lis3mdl-arduino"] 2 | path = arduino/extlib/lis3mdl/lis3mdl-arduino 3 | url = https://github.com/pololu/lis3mdl-arduino.git 4 | [submodule "arduino/extlib/adafruit_st7735/Adafruit-ST7735-Library"] 5 | path = arduino/extlib/adafruit_st7735/Adafruit-ST7735-Library 6 | url = https://github.com/adafruit/Adafruit-ST7735-Library.git 7 | [submodule "arduino/extlib/adafruit_gfx/Adafruit-GFX-Library"] 8 | path = arduino/extlib/adafruit_gfx/Adafruit-GFX-Library 9 | url = https://github.com/adafruit/Adafruit-GFX-Library.git 10 | [submodule "arduino/extlib/pubsubclient/pubsubclient"] 11 | path = arduino/extlib/pubsubclient/pubsubclient 12 | url = https://github.com/knolleary/pubsubclient.git 13 | [submodule "arduino/extlib/lsm6/lsm6-arduino"] 14 | path = arduino/extlib/lsm6/lsm6-arduino 15 | url = https://github.com/pololu/lsm6-arduino.git 16 | [submodule "arduino/extlib/i2cdevlib/i2cdevlib"] 17 | path = arduino/extlib/i2cdevlib/i2cdevlib 18 | url = https://github.com/jrowberg/i2cdevlib.git 19 | -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.5) 2 | 3 | cmake_policy(SET CMP0048 NEW) 4 | project(ArduinoBuild VERSION 0.9.0 LANGUAGES C CXX ASM) 5 | 6 | add_subdirectory(arduino) 7 | 8 | if (EXISTS "${ARDUINO_ESP8266_DIR}/platform.txt") 9 | file(STRINGS "${ARDUINO_ESP8266_DIR}/platform.txt" VERSION_LINES REGEX "^version=") 10 | if (VERSION_LINES) 11 | string(REGEX MATCH "[0-9]+\.[0-9]+\.[0-9]+" ARDUINO_VERSION ${VERSION_LINES}) 12 | endif () 13 | endif () 14 | 15 | install(DIRECTORY cmake/Modules DESTINATION cmake) 16 | install(DIRECTORY ${ARDUINO_ESP8266_DIR}/tools/sdk/ld/ DESTINATION ld FILES_MATCHING PATTERN "*.ld") 17 | install(FILES ${ARDUINO_ESP8266_DIR}/bootloaders/eboot/eboot.elf DESTINATION bootloaders/eboot) 18 | 19 | set(CPACK_GENERATOR "ZIP") 20 | set(CPACK_PACKAGE_FILE_NAME Arduino-${ARDUINO_VERSION}) 21 | set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY FALSE) 22 | 23 | include(CPack) 24 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015, Rainer Poisel 2 | All rights reserved. 3 | 4 | Redistribution and use in source and binary forms, with or without 5 | modification, are permitted provided that the following conditions are met: 6 | 7 | * Redistributions of source code must retain the above copyright notice, this 8 | list of conditions and the following disclaimer. 9 | 10 | * Redistributions in binary form must reproduce the above copyright notice, 11 | this list of conditions and the following disclaimer in the documentation 12 | and/or other materials provided with the distribution. 13 | 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 15 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 17 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 18 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 20 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 21 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 22 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 23 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 24 | 25 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # esp8266-cmake 2 | ES8266 CMake files 3 | -------------------------------------------------------------------------------- /arduino/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | find_library(ESP8266_SDK_LIB_AT at ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 2 | find_library(ESP8266_SDK_LIB_AXTLS axtls ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 3 | find_library(ESP8266_SDK_LIB_CRYPTO crypto ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 4 | find_library(ESP8266_SDK_LIB_ESPNOW espnow ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 5 | find_library(ESP8266_SDK_LIB_HAL hal ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 6 | find_library(ESP8266_SDK_LIB_JSON json ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 7 | find_library(ESP8266_SDK_LIB_LWIP lwip ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 8 | find_library(ESP8266_SDK_LIB_MAIN main ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 9 | find_library(ESP8266_SDK_LIB_NET80211 net80211 ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 10 | find_library(ESP8266_SDK_LIB_PHY phy ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 11 | find_library(ESP8266_SDK_LIB_PP pp ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 12 | find_library(ESP8266_SDK_LIB_PWM pwm ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 13 | find_library(ESP8266_SDK_LIB_SMARTCONFIG smartconfig ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 14 | find_library(ESP8266_SDK_LIB_SSL ssl ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 15 | find_library(ESP8266_SDK_LIB_UPGRADE upgrade ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 16 | find_library(ESP8266_SDK_LIB_WPA wpa ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 17 | find_library(ESP8266_SDK_LIB_WPS wps ${ARDUINO_ESP8266_DIR}/tools/sdk/lib) 18 | 19 | install(FILES 20 | ${ESP8266_SDK_LIB_AT} 21 | ${ESP8266_SDK_LIB_AXTLS} 22 | ${ESP8266_SDK_LIB_CRYPTO} 23 | ${ESP8266_SDK_LIB_ESPNOW} 24 | ${ESP8266_SDK_LIB_HAL} 25 | ${ESP8266_SDK_LIB_JSON} 26 | ${ESP8266_SDK_LIB_LWIP} 27 | ${ESP8266_SDK_LIB_MAIN} 28 | ${ESP8266_SDK_LIB_NET80211} 29 | ${ESP8266_SDK_LIB_PHY} 30 | ${ESP8266_SDK_LIB_PP} 31 | ${ESP8266_SDK_LIB_PWM} 32 | ${ESP8266_SDK_LIB_SMARTCONFIG} 33 | ${ESP8266_SDK_LIB_SSL} 34 | ${ESP8266_SDK_LIB_UPGRADE} 35 | ${ESP8266_SDK_LIB_WPA} 36 | ${ESP8266_SDK_LIB_WPS} 37 | DESTINATION lib 38 | ) 39 | 40 | file(GLOB_RECURSE ARDUINO_SRC 41 | ${ARDUINO_ESP8266_DIR}/cores/esp8266/*.c 42 | ${ARDUINO_ESP8266_DIR}/cores/esp8266/spiffs/*.c 43 | ${ARDUINO_ESP8266_DIR}/cores/esp8266/*.cpp 44 | ) 45 | 46 | file(GLOB ARDUINO_SRC_ASM 47 | ${ARDUINO_ESP8266_DIR}/cores/esp8266/*.S 48 | ) 49 | 50 | set_source_files_properties(${ARDUINO_SRC_ASM} PROPERTIES 51 | LANGUAGE ASM 52 | COMPILE_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG}" 53 | ) 54 | 55 | add_library(arduino STATIC 56 | ${ARDUINO_SRC} 57 | ${ARDUINO_SRC_ASM} 58 | ) 59 | 60 | target_include_directories(arduino PUBLIC 61 | ${ARDUINO_ESP8266_DIR}/cores/esp8266 62 | ${ARDUINO_ESP8266_DIR}/tools/sdk/include 63 | ${ARDUINO_ESP8266_DIR}/variants/generic 64 | ) 65 | 66 | install(DIRECTORY ${ARDUINO_ESP8266_DIR}/cores/esp8266/ 67 | DESTINATION h 68 | FILES_MATCHING PATTERN "*.h" 69 | ) 70 | 71 | install(DIRECTORY ${ARDUINO_ESP8266_DIR}/tools/sdk/include/ 72 | DESTINATION h/tools/sdk/include 73 | FILES_MATCHING PATTERN "*.h" 74 | ) 75 | 76 | install(DIRECTORY ${ARDUINO_ESP8266_DIR}/variants/generic/ 77 | DESTINATION h/variants/generic 78 | FILES_MATCHING PATTERN "*.h" 79 | ) 80 | 81 | target_compile_definitions(arduino PUBLIC 82 | -DF_CPU=80000000L 83 | -DARDUINO=10606 84 | -DARDUINO_ESP8266_ESP01 85 | -DARDUINO_ARCH_ESP8266 86 | -DESP8266 87 | ) 88 | 89 | target_compile_options(arduino PUBLIC 90 | -U__STRICT_ANSI__ 91 | ) 92 | 93 | install(TARGETS arduino ARCHIVE DESTINATION lib) 94 | 95 | install(DIRECTORY cmake/Modules/ DESTINATION cmake/Modules FILES_MATCHING PATTERN "*.cmake") 96 | install(DIRECTORY cmake/ DESTINATION cmake FILES_MATCHING PATTERN "toolchain.*.cmake") 97 | 98 | add_subdirectory(libraries) 99 | add_subdirectory(extlib) 100 | -------------------------------------------------------------------------------- /arduino/cmake/Modules/EspFlash.cmake: -------------------------------------------------------------------------------- 1 | add_custom_target( 2 | firmware_binary ALL 3 | COMMAND ${ESP8266_ESPTOOL} -eo ${CMAKE_CURRENT_LIST_DIR}/../../bootloaders/eboot/eboot.elf -bo firmware.bin -bf 40 -bz ${ESP8266_FLASH_SIZE} -bs .text -bp 4096 -ec -eo $ -bs .irom0.text -bs .text -bs .data -bs .rodata -bc -ec 4 | ) 5 | 6 | set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES firmware.bin) 7 | 8 | add_dependencies(firmware_binary firmware) 9 | 10 | add_custom_target( 11 | flash COMMAND 12 | ${ESP8266_ESPTOOL} -vv -cd ck -cb 115200 -cp ${ESP8266_ESPTOOL_COM_PORT} -ca 0x00000 -cf firmware.bin 13 | ) 14 | 15 | add_dependencies(flash firmware_binary) 16 | -------------------------------------------------------------------------------- /arduino/cmake/Modules/FindArduino.cmake: -------------------------------------------------------------------------------- 1 | # Compute the installation prefix relative to this file. 2 | get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) 3 | get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) 4 | get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) 5 | 6 | find_library(ESP8266_SDK_LIB_AT at ${_IMPORT_PREFIX}/lib) 7 | find_library(ESP8266_SDK_LIB_AXTLS axtls ${_IMPORT_PREFIX}/lib) 8 | find_library(ESP8266_SDK_LIB_CRYPTO crypto ${_IMPORT_PREFIX}/lib) 9 | find_library(ESP8266_SDK_LIB_ESPNOW espnow ${_IMPORT_PREFIX}/lib) 10 | find_library(ESP8266_SDK_LIB_HAL hal ${_IMPORT_PREFIX}/lib) 11 | find_library(ESP8266_SDK_LIB_JSON json ${_IMPORT_PREFIX}/lib) 12 | find_library(ESP8266_SDK_LIB_LWIP lwip ${_IMPORT_PREFIX}/lib) 13 | find_library(ESP8266_SDK_LIB_MAIN main ${_IMPORT_PREFIX}/lib) 14 | find_library(ESP8266_SDK_LIB_NET80211 net80211 ${_IMPORT_PREFIX}/lib) 15 | find_library(ESP8266_SDK_LIB_PHY phy ${_IMPORT_PREFIX}/lib) 16 | find_library(ESP8266_SDK_LIB_PP pp ${_IMPORT_PREFIX}/lib) 17 | find_library(ESP8266_SDK_LIB_PWM pwm ${_IMPORT_PREFIX}/lib) 18 | find_library(ESP8266_SDK_LIB_SMARTCONFIG smartconfig ${_IMPORT_PREFIX}/lib) 19 | find_library(ESP8266_SDK_LIB_SSL ssl ${_IMPORT_PREFIX}/lib) 20 | find_library(ESP8266_SDK_LIB_UPGRADE upgrade ${_IMPORT_PREFIX}/lib) 21 | find_library(ESP8266_SDK_LIB_WPA wpa ${_IMPORT_PREFIX}/lib) 22 | find_library(ESP8266_SDK_LIB_WPS wps ${_IMPORT_PREFIX}/lib) 23 | 24 | add_library(arduino STATIC IMPORTED) 25 | 26 | set(ARDUINO_INC_DIRS 27 | ${_IMPORT_PREFIX}/h 28 | ${_IMPORT_PREFIX}/h/variants/generic 29 | ${_IMPORT_PREFIX}/h/tools/sdk/include 30 | ${_IMPORT_PREFIX}/h/libraries/SPI 31 | ${_IMPORT_PREFIX}/h/libraries/Wire 32 | ${_IMPORT_PREFIX}/h/tools/sdk/lwip/include 33 | ${_IMPORT_PREFIX}/h/libraries/ESP8266WiFi 34 | ${_IMPORT_PREFIX}/h/libraries/ESP8266WiFi/include 35 | ${_IMPORT_PREFIX}/h/libraries/ESP8266Webserver 36 | ${_IMPORT_PREFIX}/h/extlib/lis3mdl 37 | ${_IMPORT_PREFIX}/h/extlib/lsm6 38 | ${_IMPORT_PREFIX}/h/extlib/pubsubclient 39 | ${_IMPORT_PREFIX}/h/extlib/adafruit_gfx 40 | ${_IMPORT_PREFIX}/h/extlib/adafruit_gfx/Fonts 41 | ${_IMPORT_PREFIX}/h/extlib/adafruit_st7735 42 | ${_IMPORT_PREFIX}/h/extlib/i2cdevlib 43 | ${_IMPORT_PREFIX}/h/extlib/MPU6050 44 | ${_IMPORT_PREFIX}/h/extlib/MPU9150 45 | ) 46 | 47 | set(ARDUINO_DEP_LIBS 48 | ${ESP8266_SDK_LIB_AT} 49 | ${ESP8266_SDK_LIB_AXTLS} 50 | ${ESP8266_SDK_LIB_CRYPTO} 51 | ${ESP8266_SDK_LIB_ESPNOW} 52 | ${ESP8266_SDK_LIB_HAL} 53 | ${ESP8266_SDK_LIB_JSON} 54 | ${ESP8266_SDK_LIB_LWIP} 55 | ${ESP8266_SDK_LIB_MAIN} 56 | ${ESP8266_SDK_LIB_NET80211} 57 | ${ESP8266_SDK_LIB_PHY} 58 | ${ESP8266_SDK_LIB_PP} 59 | ${ESP8266_SDK_LIB_PWM} 60 | ${ESP8266_SDK_LIB_SMARTCONFIG} 61 | ${ESP8266_SDK_LIB_SSL} 62 | ${ESP8266_SDK_LIB_UPGRADE} 63 | ${ESP8266_SDK_LIB_WPA} 64 | ${ESP8266_SDK_LIB_WPS} 65 | m 66 | gcc 67 | stdc++ 68 | ) 69 | 70 | set(ARDUINO_DEFINITIONS 71 | F_CPU=80000000L 72 | ARDUINO=10606 73 | ARDUINO_ESP8266_ESP01 74 | ARDUINO_ARCH_ESP8266 75 | ESP8266 76 | ) 77 | 78 | set(ARDUINO_OPTIONS 79 | -U__STRICT_ANSI__ 80 | ) 81 | 82 | set_target_properties(arduino PROPERTIES 83 | IMPORTED_LOCATION ${_IMPORT_PREFIX}/lib/libarduino.a 84 | INTERFACE_LINK_LIBRARIES "${ARDUINO_DEP_LIBS}" 85 | INTERFACE_INCLUDE_DIRECTORIES "${ARDUINO_INC_DIRS}" 86 | INTERFACE_COMPILE_DEFINITIONS "${ARDUINO_DEFINITIONS}" 87 | INTERFACE_COMPILE_OPTIONS "${ARDUINO_OPTIONS}" 88 | ) 89 | -------------------------------------------------------------------------------- /arduino/cmake/toolchain.ESP8266.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_SYSTEM_NAME ESP8266) 2 | set(CMAKE_SYSTEM_VERSION 1) 3 | 4 | list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/Modules") 5 | 6 | set (ESP8266_FLASH_SIZE "2m" CACHE STRING "Size of flash") 7 | set (ESP8266_ESPTOOL_COM_PORT "/dev/ttyUSB0" CACHE STRING "Size of flash") 8 | 9 | if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") 10 | set(HOST_EXECUTABLE_PREFIX "") 11 | elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") 12 | set(HOST_EXECUTABLE_SUFFIX ".exe") 13 | else() 14 | message(FATAL_ERROR Unsupported build platform.) 15 | endif() 16 | 17 | set(CMAKE_C_COMPILER xtensa-lx106-elf-gcc${HOST_EXECUTABLE_SUFFIX}) 18 | set(CMAKE_CXX_COMPILER xtensa-lx106-elf-g++${HOST_EXECUTABLE_SUFFIX}) 19 | set(CMAKE_ESPTOOL esptool${HOST_EXECUTABLE_SUFFIX}) 20 | 21 | set(CMAKE_C_FLAGS "-w -Os -g -std=gnu99 -Wpointer-arith -Wno-implicit-function-declaration -Wundef -pipe -D__ets__ -DICACHE_FLASH -fno-inline-functions -ffunction-sections -nostdlib -mlongcalls -mtext-section-literals -falign-functions=4 -fdata-sections" CACHE STRING "C compiler flags" FORCE) 22 | set(CMAKE_CXX_FLAGS "-w -Os -g -D__ets__ -DICACHE_FLASH -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -MMD -ffunction-sections -fdata-sections" CACHE STRING "CXX compiler flags" FORCE) 23 | set(CMAKE_EXE_LINKER_FLAGS "-nostdlib -Wl,--no-check-sections -Wl,-static -Wl,--gc-sections -L${CMAKE_CURRENT_LIST_DIR}/../ld -Teagle.flash.${ESP8266_FLASH_SIZE}.ld -u call_user_start -Wl,-wrap,system_restart_local -Wl,-wrap,register_chipv6_phy" CACHE STRING "linker flags" FORCE) 24 | 25 | set(CMAKE_C_LINK_EXECUTABLE " -o -Wl,--start-group -Wl,--end-group" CACHE STRING "C linker invocation") 26 | set(CMAKE_CXX_LINK_EXECUTABLE " -o -Wl,--start-group -Wl,--end-group" CACHE STRING "CXX linker invocation") 27 | 28 | -------------------------------------------------------------------------------- /arduino/extlib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_subdirectory(i2cdevlib) 2 | add_subdirectory(lis3mdl) 3 | add_subdirectory(lsm6) 4 | add_subdirectory(pubsubclient) 5 | add_subdirectory(adafruit_gfx) 6 | add_subdirectory(adafruit_st7735) 7 | -------------------------------------------------------------------------------- /arduino/extlib/adafruit_gfx/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(arduino PRIVATE 2 | ${CMAKE_CURRENT_LIST_DIR}/Adafruit-GFX-Library/Adafruit_GFX.cpp 3 | ) 4 | 5 | target_include_directories(arduino PUBLIC 6 | ${CMAKE_CURRENT_SOURCE_DIR}/Adafruit-GFX-Library 7 | ) 8 | 9 | install(FILES 10 | ${CMAKE_CURRENT_SOURCE_DIR}/Adafruit-GFX-Library/Adafruit_GFX.h 11 | ${CMAKE_CURRENT_SOURCE_DIR}/Adafruit-GFX-Library/gfxfont.h 12 | DESTINATION h/extlib/adafruit_gfx 13 | ) 14 | 15 | file(GLOB ADAFRUIT_GFX_HDR 16 | ${CMAKE_CURRENT_SOURCE_DIR}/Adafruit-GFX-Library/Fonts/*.h 17 | ) 18 | 19 | install(FILES ${ADAFRUIT_GFX_HDR} 20 | DESTINATION h/extlib/adafruit_gfx/Fonts 21 | ) 22 | -------------------------------------------------------------------------------- /arduino/extlib/adafruit_st7735/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(arduino PRIVATE 2 | ${CMAKE_CURRENT_SOURCE_DIR}/Adafruit-ST7735-Library/Adafruit_ST7735.cpp 3 | ) 4 | 5 | target_include_directories(arduino PUBLIC 6 | ${CMAKE_CURRENT_SOURCE_DIR}/Adafruit-ST7735-Library 7 | ) 8 | 9 | install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/Adafruit-ST7735-Library/Adafruit_ST7735.h 10 | DESTINATION h/extlib/adafruit_st7735 11 | ) 12 | -------------------------------------------------------------------------------- /arduino/extlib/i2cdevlib/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | ### i2cdevlib 2 | target_sources(arduino PRIVATE 3 | ${CMAKE_CURRENT_LIST_DIR}/i2cdevlib/Arduino/I2Cdev/I2Cdev.cpp 4 | ) 5 | 6 | target_include_directories(arduino PUBLIC 7 | ${CMAKE_CURRENT_LIST_DIR}/i2cdevlib/Arduino/I2Cdev 8 | ) 9 | 10 | install(FILES ${CMAKE_CURRENT_LIST_DIR}/i2cdevlib/Arduino/I2Cdev/I2Cdev.h 11 | DESTINATION h/extlib/i2cdevlib 12 | ) 13 | 14 | ### MPU6050 15 | target_sources(arduino PRIVATE 16 | ${CMAKE_CURRENT_LIST_DIR}/i2cdevlib/Arduino/MPU6050/MPU6050.cpp 17 | ) 18 | 19 | target_include_directories(arduino PUBLIC 20 | ${CMAKE_CURRENT_LIST_DIR}/i2cdevlib/Arduino/MPU6050 21 | ) 22 | 23 | file(GLOB MPU6050_HDR ${CMAKE_CURRENT_LIST_DIR}/i2cdevlib/Arduino/MPU6050/*.h) 24 | install(FILES ${MPU6050_HDR} 25 | DESTINATION h/extlib/MPU6050 26 | ) 27 | 28 | ### MPU9150 29 | target_sources(arduino PRIVATE 30 | ${CMAKE_CURRENT_LIST_DIR}/i2cdevlib/Arduino/MPU9150/MPU9150.cpp 31 | ) 32 | 33 | target_include_directories(arduino PUBLIC 34 | ${CMAKE_CURRENT_LIST_DIR}/i2cdevlib/Arduino/MPU9150 35 | ) 36 | 37 | file(GLOB MPU9150_HDR ${CMAKE_CURRENT_LIST_DIR}/i2cdevlib/Arduino/MPU9150/*.h) 38 | install(FILES ${MPU9150_HDR} 39 | DESTINATION h/extlib/MPU9150 40 | ) 41 | 42 | -------------------------------------------------------------------------------- /arduino/extlib/lis3mdl/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB LIS3MDL_SRC 2 | ${CMAKE_CURRENT_SOURCE_DIR}/lis3mdl-arduino/*.cpp 3 | ) 4 | 5 | target_sources(arduino PRIVATE 6 | ${LIS3MDL_SRC} 7 | ) 8 | 9 | target_include_directories(arduino PUBLIC 10 | ${CMAKE_CURRENT_SOURCE_DIR}/lis3mdl-arduino 11 | ) 12 | 13 | file(GLOB LIS3MDL_HDR 14 | ${CMAKE_CURRENT_SOURCE_DIR}/lis3mdl-arduino/*.h 15 | ) 16 | 17 | install(FILES ${LIS3MDL_HDR} 18 | DESTINATION h/extlib/lis3mdl 19 | ) 20 | -------------------------------------------------------------------------------- /arduino/extlib/lsm6/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB LSM6_SRC 2 | ${CMAKE_CURRENT_SOURCE_DIR}/lsm6-arduino/*.cpp 3 | ) 4 | 5 | target_sources(arduino PRIVATE 6 | ${LSM6_SRC} 7 | ) 8 | 9 | target_include_directories(arduino PUBLIC 10 | ${CMAKE_CURRENT_SOURCE_DIR}/lsm6-arduino 11 | ) 12 | 13 | file(GLOB LSM6_HDR 14 | ${CMAKE_CURRENT_SOURCE_DIR}/lsm6-arduino/*.h 15 | ) 16 | 17 | install(FILES ${LSM6_HDR} 18 | DESTINATION h/extlib/lsm6 19 | ) 20 | -------------------------------------------------------------------------------- /arduino/extlib/pubsubclient/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | target_sources(arduino PRIVATE 2 | ${CMAKE_CURRENT_LIST_DIR}/pubsubclient/src/PubSubClient.cpp 3 | ) 4 | 5 | target_include_directories(arduino PUBLIC 6 | ${CMAKE_CURRENT_LIST_DIR}/pubsubclient/src 7 | ) 8 | 9 | install(FILES ${CMAKE_CURRENT_LIST_DIR}/pubsubclient/src/PubSubClient.h 10 | DESTINATION h/extlib/pubsubclient 11 | ) 12 | -------------------------------------------------------------------------------- /arduino/libraries/ArduinoOTA/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB ARDUINO_OTA_LIB_SRC 2 | ${ARDUINO_ESP8266_DIR}/libraries/ArduinoOTA/*.cpp 3 | ) 4 | 5 | add_library(esp8266arduino_ota STATIC 6 | ${ARDUINO_OTA_LIB_SRC} 7 | ) 8 | 9 | target_include_directories(esp8266arduino_ota PUBLIC 10 | ${ARDUINO_ESP8266_DIR}/libraries/ArduinoOTA 11 | ) 12 | 13 | target_link_libraries(esp8266arduino_ota PUBLIC 14 | arduino 15 | esp8266wifi 16 | esp8266mdns 17 | ) 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /arduino/libraries/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | #add_subdirectory(ArduinoOTA) 2 | add_subdirectory(ESP8266WiFi) 3 | add_subdirectory(ESP8266WebServer) 4 | #add_subdirectory(ESP8266mDNS) 5 | #add_subdirectory(GDBStub) 6 | add_subdirectory(SPI) 7 | add_subdirectory(Wire) 8 | -------------------------------------------------------------------------------- /arduino/libraries/ESP8266WebServer/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB WEBSERVER_LIB_SRC 2 | ${ARDUINO_ESP8266_DIR}/libraries/ESP8266WebServer/src/*.cpp 3 | ) 4 | 5 | target_sources(arduino PRIVATE 6 | ${WEBSERVER_LIB_SRC} 7 | ) 8 | 9 | target_include_directories(arduino PUBLIC 10 | ${ARDUINO_ESP8266_DIR}/libraries/ESP8266WebServer/src 11 | ) 12 | 13 | install(DIRECTORY ${ARDUINO_ESP8266_DIR}/libraries/ESP8266WebServer/src/ 14 | DESTINATION h/libraries/ESP8266Webserver 15 | FILES_MATCHING PATTERN "*.h" 16 | ) 17 | 18 | -------------------------------------------------------------------------------- /arduino/libraries/ESP8266WiFi/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB WIFI_LIB_SRC 2 | ${ARDUINO_ESP8266_DIR}/libraries/ESP8266WiFi/src/*.cpp 3 | ) 4 | 5 | target_sources(arduino PRIVATE 6 | ${WIFI_LIB_SRC} 7 | ) 8 | 9 | target_include_directories(arduino PUBLIC 10 | ${ARDUINO_ESP8266_DIR}/tools/sdk/lwip/include 11 | ${ARDUINO_ESP8266_DIR}/libraries/ESP8266WiFi/src 12 | ${ARDUINO_ESP8266_DIR}/libraries/ESP8266WiFi/src/include 13 | ) 14 | 15 | install(DIRECTORY ${ARDUINO_ESP8266_DIR}/tools/sdk/lwip/include/ 16 | DESTINATION h/tools/sdk/lwip/include 17 | FILES_MATCHING PATTERN "*.h" 18 | ) 19 | 20 | install(DIRECTORY ${ARDUINO_ESP8266_DIR}/libraries/ESP8266WiFi/src/ 21 | DESTINATION h/libraries/ESP8266WiFi 22 | FILES_MATCHING PATTERN "*.h" 23 | ) 24 | 25 | install(DIRECTORY ${ARDUINO_ESP8266_DIR}/libraries/ESP8266WiFi/src/include/ 26 | DESTINATION h/libraries/ESP8266WiFi/include 27 | FILES_MATCHING PATTERN "*.h" 28 | ) 29 | 30 | -------------------------------------------------------------------------------- /arduino/libraries/ESP8266mDNS/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB MDNS_LIB_SRC 2 | ${ARDUINO_ESP8266_DIR}/libraries/ESP8266mDNS/*.cpp 3 | ) 4 | 5 | add_library(esp8266mdns STATIC 6 | ${MDNS_LIB_SRC} 7 | ) 8 | 9 | target_include_directories(esp8266mdns PUBLIC 10 | ${ARDUINO_ESP8266_DIR}/libraries/ESP8266mDNS 11 | ) 12 | 13 | target_link_libraries(esp8266mdns PUBLIC 14 | arduino 15 | esp8266wifi 16 | ) 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /arduino/libraries/GDBStub/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB GDBSTUB_LIB_SRC 2 | ${ARDUINO_ESP8266_DIR}/libraries/GDBStub/src/internal/*.c 3 | ${ARDUINO_ESP8266_DIR}/libraries/GDBStub/src/internal/*.S 4 | ) 5 | 6 | file(GLOB GDBSTUB_LIB_SRC_ASM 7 | ${ARDUINO_ESP8266_DIR}/libraries/GDBStub/src/internal/*.S 8 | ) 9 | 10 | set_source_files_properties(${GDBSTUB_LIB_SRC_ASM} PROPERTIES 11 | LANGUAGE ASM 12 | COMPILE_FLAGS "${CMAKE_C_FLAGS} ${CMAKE_C_FLAGS_DEBUG}" 13 | ) 14 | 15 | add_library(esp8266gdbstub STATIC 16 | ${GDBSTUB_LIB_SRC} 17 | ${GDBSTUB_LIB_SRC_ASM} 18 | ) 19 | 20 | target_include_directories(esp8266gdbstub PUBLIC 21 | ${ARDUINO_ESP8266_DIR}/libraries/GDBStub/src 22 | ${ARDUINO_ESP8266_DIR}/libraries/GDBStub/src/internal 23 | ${ARDUINO_ESP8266_DIR}/libraries/GDBStub/src/xtensa 24 | ${ARDUINO_ESP8266_DIR}/libraries/GDBStub/src/xtensa/config 25 | ) 26 | 27 | target_compile_definitions(esp8266gdbstub PUBLIC 28 | -DGDBSTUB_REDIRECT_CONSOLE_OUTPUT 29 | -DGDBSTUB_CTRLC_BREAK 30 | -DGDBSTUB_BREAK_ON_INIT 31 | ) 32 | 33 | target_link_libraries(esp8266gdbstub 34 | arduino 35 | -------------------------------------------------------------------------------- /arduino/libraries/SPI/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB SPI_LIB_SRC 2 | ${ARDUINO_ESP8266_DIR}/libraries/SPI/*.cpp 3 | ) 4 | 5 | target_sources(arduino PRIVATE 6 | ${SPI_LIB_SRC} 7 | ) 8 | 9 | target_include_directories(arduino PRIVATE 10 | ${ARDUINO_ESP8266_DIR}/libraries/SPI 11 | ) 12 | 13 | install(DIRECTORY ${ARDUINO_ESP8266_DIR}/libraries/SPI/ 14 | DESTINATION h/libraries/SPI 15 | FILES_MATCHING PATTERN "*.h" 16 | ) 17 | 18 | -------------------------------------------------------------------------------- /arduino/libraries/Wire/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(GLOB WIRE_LIB_SRC 2 | ${ARDUINO_ESP8266_DIR}/libraries/Wire/*.cpp 3 | ) 4 | 5 | target_sources(arduino PRIVATE 6 | ${WIRE_LIB_SRC} 7 | ) 8 | 9 | target_include_directories(arduino PRIVATE 10 | ${ARDUINO_ESP8266_DIR}/libraries/Wire 11 | ) 12 | 13 | install(DIRECTORY ${ARDUINO_ESP8266_DIR}/libraries/Wire/ 14 | DESTINATION h/libraries/Wire 15 | FILES_MATCHING PATTERN "*.h" 16 | ) 17 | 18 | -------------------------------------------------------------------------------- /cmake/Modules/Platform/ESP8266.cmake: -------------------------------------------------------------------------------- 1 | set(UNIX 1) 2 | set(CMAKE_C_OUTPUT_EXTENSION .o) 3 | set(CMAKE_CXX_OUTPUT_EXTENSION .o) 4 | set(CMAKE_ASM_OUTPUT_EXTENSION .o) 5 | set(CMAKE_STATIC_LIBRARY_PREFIX lib) 6 | set(CMAKE_STATIC_LIBRARY_SUFFIX .a) 7 | set(CMAKE_SHARED_LIBRARY_PREFIX lib) 8 | set(CMAKE_SHARED_LIBRARY_SUFFIX .a) 9 | set(CMAKE_EXECUTABLE_SUFFIX .elf) 10 | -------------------------------------------------------------------------------- /cmake/toolchain.ESP8266.cmake: -------------------------------------------------------------------------------- 1 | set(CMAKE_SYSTEM_NAME ESP8266) 2 | set(CMAKE_SYSTEM_VERSION 1) 3 | 4 | list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/Modules") 5 | 6 | set (ESP8266_FLASH_SIZE "2m" CACHE STRING "Size of flash") 7 | set (ESP8266_LINKER_SCRIPT "eagle.flash.${ESP8266_FLASH_SIZE}.ld") 8 | 9 | if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") 10 | set(USER_HOME $ENV{HOME}) 11 | set(HOST_EXECUTABLE_PREFIX "") 12 | set(ESP8266_ESPTOOL_COM_PORT /dev/ttyUSB0 CACHE STRING "COM port to be used by esptool") 13 | elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") 14 | set(USER_HOME $ENV{USERPROFILE}) 15 | set(HOST_EXECUTABLE_SUFFIX ".exe") 16 | set(ESP8266_ESPTOOL_COM_PORT COM1 CACHE STRING "COM port to be used by esptool") 17 | else() 18 | message(FATAL_ERROR Unsupported build platform.) 19 | endif() 20 | 21 | set(ARDUINO_DIR "${USER_HOME}/.arduino15" CACHE PATH "Path to the directory containing the Arduino package files") 22 | if (ARDUINO_DIR STREQUAL "") 23 | message(FATAL_ERROR "ARDUINO_DIR has not been set.") 24 | endif () 25 | 26 | set(ARDUINO_ESP8266_DIR ${ARDUINO_DIR}/packages/esp8266/hardware/esp8266/2.3.0 CACHE PATH "Path to the directory containing ESP8266 specific arduino files") 27 | if (ARDUINO_ESP8266_DIR STREQUAL "") 28 | message(FATAL_ERROR "ARDUINO_ESP8266_DIR has not been set.") 29 | endif () 30 | 31 | file(GLOB_RECURSE ESP8266_XTENSA_C_COMPILERS ${ARDUINO_DIR}/packages/esp8266/tools/xtensa-lx106-elf-gcc FOLLOW_SYMLINKS xtensa-lx106-elf-gcc${HOST_EXECUTABLE_SUFFIX}) 32 | list(GET ESP8266_XTENSA_C_COMPILERS 0 ESP8266_XTENSA_C_COMPILER) 33 | file(GLOB_RECURSE ESP8266_XTENSA_CXX_COMPILERS ${ARDUINO_DIR}/packages/esp8266/tools/xtensa-lx106-elf-gcc FOLLOW_SYMLINKS xtensa-lx106-elf-g++${HOST_EXECUTABLE_SUFFIX}) 34 | list(GET ESP8266_XTENSA_CXX_COMPILERS 0 ESP8266_XTENSA_CXX_COMPILER) 35 | file(GLOB_RECURSE ESP8266_ESPTOOLS ${ARDUINO_DIR}/packages/esp8266/tools/esptool FOLLOW_SYMLINKS esptool${HOST_EXECUTABLE_NAME}) 36 | list(GET ESP8266_ESPTOOLS 0 ESP8266_ESPTOOL) 37 | 38 | message("Using " ${ESP8266_XTENSA_C_COMPILER} " C compiler.") 39 | message("Using " ${ESP8266_XTENSA_CXX_COMPILER} " C++ compiler.") 40 | 41 | set(CMAKE_C_COMPILER ${ESP8266_XTENSA_C_COMPILER}) 42 | set(CMAKE_CXX_COMPILER ${ESP8266_XTENSA_CXX_COMPILER}) 43 | 44 | set(CMAKE_C_FLAGS "-w -Os -g -std=gnu99 -Wpointer-arith -Wno-implicit-function-declaration -Wundef -pipe -D__ets__ -DICACHE_FLASH -fno-inline-functions -ffunction-sections -nostdlib -mlongcalls -mtext-section-literals -falign-functions=4 -fdata-sections" CACHE STRING "C compiler flags" FORCE) 45 | set(CMAKE_CXX_FLAGS "-w -Os -g -D__ets__ -DICACHE_FLASH -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -MMD -ffunction-sections -fdata-sections" CACHE STRING "CXX compiler flags" FORCE) 46 | set(CMAKE_EXE_LINKER_FLAGS "-nostdlib -Wl,--no-check-sections -Wl,-static -Wl,--gc-sections -L${ARDUINO_ESP8266_DIR}/tools/sdk/ld -Teagle.flash.${ESP8266_FLASH_SIZE}.ld -u call_user_start -Wl,-wrap,system_restart_local -Wl,-wrap,register_chipv6_phy" CACHE STRING "linker flags" FORCE) 47 | 48 | set(CMAKE_C_LINK_EXECUTABLE " -o -Wl,--start-group -Wl,--end-group" CACHE STRING "C linker invocation") 49 | set(CMAKE_CXX_LINK_EXECUTABLE " -o -Wl,--start-group -Wl,--end-group" CACHE STRING "CXX linker invocation") 50 | 51 | -------------------------------------------------------------------------------- /main/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/null.c) 2 | 3 | add_executable(firmware 4 | ${CMAKE_CURRENT_BINARY_DIR}/null.c 5 | ) 6 | 7 | target_link_libraries(firmware 8 | user_code 9 | ) 10 | 11 | set_target_properties(firmware PROPERTIES 12 | LINKER_LANGUAGE C 13 | ) 14 | 15 | -------------------------------------------------------------------------------- /sdk/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_library(ESP8266_SDK INTERFACE) 2 | 3 | if (NOT DEFINED ESP8266_SDK_VARIANT OR ESP8266_SDK_VARIANT STREQUAL "") 4 | message(FATAL_ERROR "ESP8266_SDK_VARIANT has not been defined") 5 | endif () 6 | 7 | if (NOT DEFINED ESP8266_SDK_VERSION OR ESP8266_SDK_VERSION STREQUAL "") 8 | message(FATAL_ERROR "ESP8266_SDK_VERSION has not been defined") 9 | endif() 10 | 11 | if (ESP8266_SDK_VARIANT MATCHES "RTOS") 12 | include(rtos-${ESP8266_SDK_VERSION}.cmake) 13 | elseif (ESP8266_SDK_VARIANT MATCHES "NONOS") 14 | include(nonos-${ESP8266_SDK_VERSION}.cmake) 15 | else() 16 | message(FATAL_ERROR "Unknown ESP8266_SDK_VARIANT given.") 17 | endif() 18 | -------------------------------------------------------------------------------- /sdk/nonos-1.4.0.cmake: -------------------------------------------------------------------------------- 1 | if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") 2 | set(ESP8266_SDK_BASE ${USER_HOME}/git/esp-open-sdk/sdk CACHE PATH "Path to the ESP8266 SDK") 3 | elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") 4 | set(ESP8266_SDK_BASE ${USER_HOME}/dev/projects/esp-open-sdk CACHE PATH "Path to the ESP8266 SDK") 5 | else() 6 | message(FATAL_ERROR "Unsupported build platforom.") 7 | endif() 8 | 9 | 10 | if (ESP8266_FLASH_SIZE MATCHES "512K") 11 | set_target_properties(firmware PROPERTIES 12 | LINK_FLAGS "-L${ESP8266_SDK_BASE}/ld -Teagle.app.v6.ld" 13 | ) 14 | set(FW_ADDR_1 0x00000) 15 | set(FW_ADDR_2 0x40000) 16 | elseif (ESP8266_FLASH_SIZE MATCHES "1M") 17 | set_target_properties(firmware PROPERTIES 18 | LINK_FLAGS "-L${ESP8266_SDK_BASE}/ld -Teagle.app.v6.new.1024.app1.ld" 19 | ) 20 | set(FW_ADDR_1 0x00000) 21 | set(FW_ADDR_2 0x01010) 22 | else() 23 | message(FATAL_ERROR "Unsupported flash size") 24 | endif() 25 | 26 | target_include_directories(ESP8266_SDK INTERFACE 27 | ${ESP8266_SDK_BASE}/include 28 | ${ESP8266_SDK_BASE}/include/json 29 | ) 30 | 31 | find_library(ESP8266_SDK_LIB_AT at ${ESP8266_SDK_BASE}/lib) 32 | find_library(ESP8266_SDK_LIB_CRYPTO crypto ${ESP8266_SDK_BASE}/lib) 33 | find_library(ESP8266_SDK_LIB_ESPNOW espnow ${ESP8266_SDK_BASE}/lib) 34 | find_library(ESP8266_SDK_LIB_JSON json ${ESP8266_SDK_BASE}/lib) 35 | find_library(ESP8266_SDK_LIB_LWIP lwip ${ESP8266_SDK_BASE}/lib) 36 | find_library(ESP8266_SDK_LIB_MAIN main ${ESP8266_SDK_BASE}/lib) 37 | find_library(ESP8266_SDK_LIB_MESH mesh ${ESP8266_SDK_BASE}/lib) 38 | find_library(ESP8266_SDK_LIB_NET80211 net80211 ${ESP8266_SDK_BASE}/lib) 39 | find_library(ESP8266_SDK_LIB_PHY phy ${ESP8266_SDK_BASE}/lib) 40 | find_library(ESP8266_SDK_LIB_PP pp ${ESP8266_SDK_BASE}/lib) 41 | find_library(ESP8266_SDK_LIB_PWM pwm ${ESP8266_SDK_BASE}/lib) 42 | find_library(ESP8266_SDK_LIB_SMARTCONFIG smartconfig ${ESP8266_SDK_BASE}/lib) 43 | find_library(ESP8266_SDK_LIB_SSL ssl ${ESP8266_SDK_BASE}/lib) 44 | find_library(ESP8266_SDK_LIB_WPA wpa ${ESP8266_SDK_BASE}/lib) 45 | find_library(ESP8266_SDK_LIB_WPS wps ${ESP8266_SDK_BASE}/lib) 46 | 47 | target_link_libraries(ESP8266_SDK INTERFACE 48 | gcc 49 | ${ESP8266_SDK_LIB_AT} 50 | ${ESP8266_SDK_LIB_CRYPTO} 51 | ${ESP8266_SDK_LIB_ESPNOW} 52 | ${ESP8266_SDK_LIB_JSON} 53 | ${ESP8266_SDK_LIB_LWIP} 54 | ${ESP8266_SDK_LIB_MAIN} 55 | ${ESP8266_SDK_LIB_MESH} 56 | ${ESP8266_SDK_LIB_NET80211} 57 | ${ESP8266_SDK_LIB_PHY} 58 | ${ESP8266_SDK_LIB_PP} 59 | ${ESP8266_SDK_LIB_PWM} 60 | ${ESP8266_SDK_LIB_SMARTCONFIG} 61 | ${ESP8266_SDK_LIB_SSL} 62 | ${ESP8266_SDK_LIB_WPA} 63 | ${ESP8266_SDK_LIB_WPS} 64 | ) 65 | 66 | add_custom_target( 67 | firmware_binary ALL 68 | COMMAND ${ESP8266_ESPTOOL} -bz ${ESP8266_FLASH_SIZE} -eo $ -bo firmware_${FW_ADDR_1}.bin -bs .text -bs .data -bs .rodata -bc -ec -eo $ -es .irom0.text firmware_${FW_ADDR_2}.bin -ec 69 | ) 70 | set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "firmware_${FW_ADDR_1}.bin firmware_${FW_ADDR_2}.bin") 71 | 72 | add_dependencies(firmware_binary firmware) 73 | 74 | add_custom_target(flash COMMAND ${ESP8266_ESPTOOL} -cp ${ESP8266_ESPTOOL_COM_PORT} -cf firmware_${FW_ADDR_1}.bin -ca 0x40000 -cf firmware_${FW_ADDR_2}.bin) 75 | 76 | add_dependencies(flash firmware_binary) 77 | -------------------------------------------------------------------------------- /sdk/rtos-1.3.0.cmake: -------------------------------------------------------------------------------- 1 | if(CMAKE_HOST_SYSTEM_NAME MATCHES "Linux") 2 | set(ESP8266_SDK_BASE ${USER_HOME}/git/ESP8266_RTOS_SDK CACHE PATH "Path to the ESP8266 SDK") 3 | elseif(CMAKE_HOST_SYSTEM_NAME MATCHES "Windows") 4 | set(ESP8266_SDK_BASE ${USER_HOME}/dev/projects/ESP8266_RTOS_SDK CACHE PATH "Path to the ESP8266 SDK") 5 | else() 6 | message(FATAL_ERROR "Unsupported build platforom.") 7 | endif() 8 | 9 | if (ESP8266_FLASH_SIZE MATCHES "512K") 10 | set_target_properties(firmware PROPERTIES 11 | LINK_FLAGS "-L${ESP8266_SDK_BASE}/ld -Teagle.app.v6.ld" 12 | ) 13 | set(FW_ADDR_1 0x00000) 14 | set(FW_ADDR_2 0x40000) 15 | elseif (ESP8266_FLASH_SIZE MATCHES "1M") 16 | set_target_properties(firmware PROPERTIES 17 | LINK_FLAGS "-L${ESP8266_SDK_BASE}/ld -Teagle.app.v6.new.1024.app1.ld" 18 | ) 19 | set(FW_ADDR_1 0x00000) 20 | set(FW_ADDR_2 0x01010) 21 | else() 22 | message(FATAL_ERROR "Unsupported flash size") 23 | endif() 24 | 25 | target_include_directories(ESP8266_SDK INTERFACE 26 | ${ESP8266_SDK_BASE}/include/lwip 27 | ${ESP8266_SDK_BASE}/include/lwip/ipv4 28 | ${ESP8266_SDK_BASE}/include/lwip/ipv6 29 | ${ESP8266_SDK_BASE}/include/espressif 30 | ${ESP8266_SDK_BASE}/extra_include 31 | ${ESP8266_SDK_BASE}/include 32 | ${ESP8266_SDK_BASE}/include/json 33 | ${ESP8266_SDK_BASE}/examples/driver_lib/include 34 | ) 35 | 36 | find_library(ESP8266_ARDUINO_SDK_LIB_HAL hal ${ARDUINO_ESP8266_DIR}/${ARDUINO_ESP8266_VERSION}/tools/sdk/lib) 37 | find_library(ESP8266_SDK_LIB_CRYPTO crypto ${ESP8266_SDK_BASE}/lib) 38 | find_library(ESP8266_SDK_LIB_ESPCONN espconn ${ESP8266_SDK_BASE}/lib) 39 | find_library(ESP8266_SDK_LIB_ESPNOW espnow ${ESP8266_SDK_BASE}/lib) 40 | find_library(ESP8266_SDK_LIB_FREERTOS freertos ${ESP8266_SDK_BASE}/lib) 41 | find_library(ESP8266_SDK_LIB_JSON json ${ESP8266_SDK_BASE}/lib) 42 | find_library(ESP8266_SDK_LIB_LWIP lwip ${ESP8266_SDK_BASE}/lib) 43 | find_library(ESP8266_SDK_LIB_MAIN main ${ESP8266_SDK_BASE}/lib) 44 | find_library(ESP8266_SDK_LIB_MESH mesh ${ESP8266_SDK_BASE}/lib) 45 | find_library(ESP8266_SDK_LIB_MINIC minic ${ESP8266_SDK_BASE}/lib) 46 | find_library(ESP8266_SDK_LIB_NET80211 net80211 ${ESP8266_SDK_BASE}/lib) 47 | find_library(ESP8266_SDK_LIB_NOPOLL nopoll ${ESP8266_SDK_BASE}/lib) 48 | find_library(ESP8266_SDK_LIB_PHY phy ${ESP8266_SDK_BASE}/lib) 49 | find_library(ESP8266_SDK_LIB_PP pp ${ESP8266_SDK_BASE}/lib) 50 | find_library(ESP8266_SDK_LIB_PWM pwm ${ESP8266_SDK_BASE}/lib) 51 | find_library(ESP8266_SDK_LIB_SMARTCONFIG smartconfig ${ESP8266_SDK_BASE}/lib) 52 | find_library(ESP8266_SDK_LIB_SPIFFS spiffs ${ESP8266_SDK_BASE}/lib) 53 | find_library(ESP8266_SDK_LIB_SSC ssc ${ESP8266_SDK_BASE}/lib) 54 | find_library(ESP8266_SDK_LIB_SSL ssl ${ESP8266_SDK_BASE}/lib) 55 | find_library(ESP8266_SDK_LIB_WPA wpa ${ESP8266_SDK_BASE}/lib) 56 | find_library(ESP8266_SDK_LIB_WPS wps ${ESP8266_SDK_BASE}/lib) 57 | 58 | target_link_libraries(ESP8266_SDK INTERFACE 59 | gcc 60 | ${ESP8266_ARDUINO_SDK_LIB_HAL} 61 | ${ESP8266_SDK_LIB_CRYPTO} 62 | ${ESP8266_SDK_LIB_ESPCONN} 63 | ${ESP8266_SDK_LIB_ESPNOW} 64 | ${ESP8266_SDK_LIB_FREERTOS} 65 | ${ESP8266_SDK_LIB_JSON} 66 | ${ESP8266_SDK_LIB_LWIP} 67 | ${ESP8266_SDK_LIB_MAIN} 68 | ${ESP8266_SDK_LIB_MESH} 69 | ${ESP8266_SDK_LIB_MINIC} 70 | ${ESP8266_SDK_LIB_NET80211} 71 | ${ESP8266_SDK_LIB_NOPOLL} 72 | ${ESP8266_SDK_LIB_PHY} 73 | ${ESP8266_SDK_LIB_PP} 74 | ${ESP8266_SDK_LIB_PWM} 75 | ${ESP8266_SDK_LIB_SMARTCONFIG} 76 | ${ESP8266_SDK_LIB_SPIFFS} 77 | ${ESP8266_SDK_LIB_SSC} 78 | ${ESP8266_SDK_LIB_SSL} 79 | ${ESP8266_SDK_LIB_WPA} 80 | ${ESP8266_SDK_LIB_WPS} 81 | ) 82 | 83 | add_custom_target( 84 | firmware_binary ALL 85 | COMMAND ${ESP8266_ESPTOOL} -bz ${ESP8266_FLASH_SIZE} -eo $ -bo firmware_${FW_ADDR_1}.bin -bs .text -bs .data -bs .rodata -bc -ec -eo $ -es .irom0.text firmware_${FW_ADDR_2}.bin -ec 86 | ) 87 | set_directory_properties(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "firmware_${FW_ADDR_1}.bin firmware_${FW_ADDR_2}.bin") 88 | 89 | add_dependencies(firmware_binary firmware) 90 | 91 | add_custom_target(flash COMMAND ${ESP8266_ESPTOOL} -cp ${ESP8266_ESPTOOL_COM_PORT} -cf firmware_${FW_ADDR_1}.bin -ca 0x40000 -cf firmware_${FW_ADDR_2}.bin) 92 | 93 | add_dependencies(flash firmware_binary) 94 | --------------------------------------------------------------------------------