aboutsummaryrefslogtreecommitdiff
path: root/ports/esp32/Makefile
AgeCommit message (Collapse)Author
2021-04-01esp32: Restore USER_C_MODULE support with new CMake build system.Michael O'Cleirigh
Support for User C and C++ modules was lost due to upgrading the esp32 to the latest CMake based IDF from the GNUMakefile build process. Restore the support for the esp32 port by integrating with the approach recently added for the rp2 port. Signed-off-by: Michael O'Cleirigh <michael.ocleirigh@rivulet.ca>
2021-03-11esp32/Makefile: Specify port and baud on erase_flash command.Mike Causer
2021-02-15esp32: Remove traditional "make" capability.Damien George
It's now replaced by cmake/idf.py. But a convenience Makefile is still provided with traditional targets like "all" and "deploy". Signed-off-by: Damien George <damien@micropython.org>
2020-10-29esp32,unix: Support building C++ code.stijn
Support building .cpp files and linking them into the micropython executable in a way similar to how it is done for .c files. The main incentive here is to enable user C modules to use C++ files (which are put in SRC_MOD_CXX by py.mk) since the core itself does not utilize C++. However, to verify build functionality a unix overage test is added. The esp32 port already has CXXFLAGS so just add the user modules' flags to it. For the unix port use a copy of the CFLAGS but strip the ones which are not usable for C++.
2020-10-29py/mkrules.mk: Add target for compiling C++ files.stijn
Move the target from the ESP32 Makefile since that does what is needed already, but also include files from user C modules as is done for the C files.
2020-10-06esp32: Use path relative to root for netutils/timeutils headers.Damien George
Signed-off-by: Damien George <damien@micropython.org>
2020-09-08extmod/modbluetooth: Refactor stack/hci/driver/port bindings.Jim Mussared
Previously the interaction between the different layers of the Bluetooth stack was different on each port and each stack. This commit defines common interfaces between them and implements them for cyw43, btstack, nimble, stm32, unix.
2020-07-21extmod/modussl_mbedtls: Integrate shorter error strings.Thorsten von Eicken
The stm32 and esp32 ports now use shorter error strings for mbedtls errors. Also, MBEDTLS_ERROR_C is enabled on stm32 by default to get these strings.
2020-06-09esp32: Update IDF v4.0 supported hash to v4.0.1.Jim Mussared
The main fix relevant to MicroPython is https://github.com/espressif/esp-idf/issues/4196 Release notes here https://github.com/espressif/esp-idf/releases/tag/v4.0.1
2020-04-18all: Enable extra conversion warnings where applicable.stijn
Add -Wdouble-promotion and -Wfloat-conversion for most ports to ban out implicit floating point conversions, and add extra Travis builds using MICROPY_FLOAT_IMPL_FLOAT to uncover warnings which weren't found previously. For the unix port -Wsign-comparison is added as well but only there since only clang supports this but gcc doesn't.
2020-04-14esp32: Update to ESP IDF v3.3.2.Damien George
2020-04-05ports: Enable error text compression for various ports, but not all.Jim Mussared
Enabled on: bare-arm, minimal, unix coverage/dev/minimal, stm32, esp32, esp8266, cc3200, teensy, qemu-arm, nrf. Not enabled on others to be able to test the code when the feature is disabled (the default case). Code size change for this commit: bare-arm: -600 -0.906% minimal x86: -308 -0.208% unix x64: +0 +0.000% unix nanbox: +0 +0.000% stm32: -3368 -0.869% PYBV10 cc3200: -1024 -0.558% esp8266: -2512 -0.368% GENERIC esp32: -2876 -0.205% GENERIC[incl -3168(data)] nrf: -1708 -1.173% pca10040 samd: +0 +0.000% ADAFRUIT_ITSYBITSY_M4_EXPRESS
2020-03-06extmod/modbluetooth_nimble: Move nimble specific code, factor nimble.mk.Damien George
Move extmod/modbluetooth_nimble.* to extmod/nimble. And move common Makefile lines to extmod/nimble/nimble.mk (which was previously only used by stm32). This allows (upcoming) btstack to follow a similar structure. Work done in collaboration with Jim Mussared aka @jimmo.
2020-02-20esp32: Move to IDF 4.0 release version.Jim Mussared
2020-02-04esp32/Makefile: Reorder includes to build with latest toolchain.Jim Mussared
Tested on: - IDF3.3.1 (old toolchain) - IDF4.0-beta1 (old toolchain) - IDF4.0-beta1 (new toolchain from install.sh / export.sh)
2020-01-15esp32: Enable NimBLE support on all builds (IDF 3.3 and 4.0).Jim Mussared
This commit updates the IDFv3 version to v3.3.1, and enables the "ubluetooth" module by default on IDFv3 builds.
2020-01-06esp32/Makefile: Assign result of $call to dummy var for older make.Damien George
Make version 4.1 and lower does not allow $call as the main expression on a line, so assign the result of the $call to a dummy variable. Fixes issue #5426.
2019-12-20esp32/esp32_rmt: Add initial support for RMT peripheral.Matt Trentini
This is an ESP32-specific peripheral so lives in the esp32 module.
2019-11-11extmod: Consolidate FAT FS config to MICROPY_VFS_FAT across all ports.Damien George
This commit removes the Makefile-level MICROPY_FATFS config and moves the MICROPY_VFS_FAT config to the Makefile level to replace it. It also moves the include of the oofatfs source files in the build from each port to a central place in extmod/extmod.mk. For a port to enabled VFS FAT support it should now set MICROPY_VFS_FAT=1 at the level of the Makefile. This will include the relevant oofatfs files in the build and set MICROPY_VFS_FAT=1 at the C (preprocessor) level.
2019-11-06esp32/moduos: Enable uos.VfsLfs2 for littlefs filesystems.Damien George
This commit adds support for littlefs (v2) on all esp32 boards. The original FAT filesystem still works and any board with a preexisting FAT filesystem will still work as normal. It's possible to switch to littlefs by reformatting the block device using: import uos, flashbdev uos.VfsLfs2.mkfs(flashbdev.bdev) Then when the board reboots (soft or hard) the new littlefs filesystem will be mounted. It's possible to switch back to a FAT filesystem by formatting with uos.VfsFat.mkfs(flashbdev.bdev).
2019-11-04esp32/Makefile: Add correct arch to MPY_CROSS_FLAGS for native code.Damien George
2019-10-15esp32: Convert to use FROZEN_MANIFEST to specify frozen code.Damien George
All symlinks are removed. boards/manifest.py is used as a default, and can optionally use boards/manifest_release.py for more scripts.
2019-10-15ports: Add new make target "submodules" which inits required modules.Damien George
2019-10-08esp32/boards: Enable BLE by default when building with IDF 4.x.Jim Mussared
2019-10-08esp32: Implement BLE using Nimble from IDF 4.x.Jim Mussared
2019-09-20esp32/Makefile: Fix printing of supported git hash.Jim Mussared
2019-09-17esp32: Add check to Makefile that the toolchain is in PATH.Jim Mussared
2019-09-17esp32: Add check to Makefile for pyparsing version.Jim Mussared
2019-09-17esp32: Support building with ESP IDF 4.0-beta1.Jim Mussared
This commit adds support for a second supported hash (currently set to the 4.0-beta1 tag). When this hash is detected, the relevant changes are applied. This allows to start using v4 features (e.g. BLE with Nimble), and also start doing testing, while still supporting the original, stable, v3.3 IDF. Note: this feature is experimental, not well tested, and network.LAN and network.PPP are currently unsupported.
2019-09-12esp32/Makefile: Add SDKCONFIG_H to QSTR_GLOBAL_REQUIREMENTS.Damien George
Fixes issue #5091.
2019-09-07esp32: Update to use ESP IDF v3.3Braden Mars
Includes patches for CVE-2019-12586 & CVE-2019-12587
2019-09-03esp32/Makefile: Fix subst->patsubst in ESPIDF_BOOTLOADER_SUPPORT_O.Jim Mussared
2019-08-20esp32: Add esp32.Partition class to expose partition and OTA funcs.Damien George
Partitions are exposed as a standard MicroPython block device.
2019-08-16esp32: Add per-board configs, following other ports.Jim Mussared
Replaces the `SDKCONFIG` makefile variable with `BOARD`. Defaults to BOARD=GENERIC. spiram can be enabled with `BOARD=GENERIC_SPIRAM` Add example definition for TINYPICO, currently identical to GENERIC_SPIRAM but with custom board/SoC names for the uPy banner.
2019-08-15esp32: Add support for mDNS queries and responder.Damien George
They are both enabled by default, but can be disabled by defining MICROPY_HW_ENABLE_MDNS_QUERIES and/or MICROPY_HW_ENABLE_MDNS_RESPONDER to 0. The hostname for the responder is currently taken from tcpip_adapter_get_hostname() but should eventually be configurable.
2019-07-30esp32/Makefile: Include CFLAGS_EXTRA in CFLAGS definition.Damien George
Following other ports, so builds can be customised more easily, eg on the command line building with a user C-module.
2019-07-20esp32/Makefile: Simplify include of IDF source by using wildcards.Damien George
2019-07-20esp32/Makefile: Put OBJ and LIB rule additions in gen_espidf_lib_rule.Damien George
2019-07-20esp32/Makefile: Fix path expansion for ESPIDF_DRIVER_O.Jim Mussared
It was using subst to s/.c/.o/ which changed .c anywhere in the path.
2019-07-19esp32: Add support for hardware I2C.Damien George
2019-06-25esp32/Makefile: Include all driver/*.c source files in the build.Josh Lloyd
Fixes #4869.
2019-06-19esp32: Update to use ESP IDF v3.3-beta3.Damien George
This updates ESP IDF to use v3.3-beta3. And also adjusts README.md to point to stable docs which provide a link to download the correct toolchain for this IDF version, namely 1.22.0-80-g6c4433a-5.2.0
2019-06-03esp32: Add machine.SDCard class using built-in HW SD/MMC controller.Nicko van Someren
This adds support for SD cards using the ESP32's built-in hardware SD/MMC host controller, over either the SDIO bus or SPI. The class is available as machine.SDCard and using it can be as simple as: uos.mount(machine.SDCard(), '/sd')
2019-03-11esp32/Makefile: Add some missing IDF source files to bootloader and app.Damien George
Functions in these files may be needed when certain features are enabled (eg dual core mode), even if the linker does not give a warning or error about unresolved symbols.
2019-03-05ports: Update to work with new oofatfs version.Damien George
2019-02-07esp32/modmachine: Add support for changing the CPU frequency.Damien George
2019-01-28esp32/Makefile: Make sure that directory exists for sdkconfig.h.Damien George
2019-01-28esp32: Update to latest ESP IDF using sdkconfig and new ldgen procedure.Damien George
Configuration for the build is now specified using sdkconfig rather than sdkconfig.h, which allows for much easier configuration with defaults from the ESP IDF automatically applied. sdkconfig.h is generated using the new ESP IDF kconfig_new tool written in Python. Custom configuration for a particular ESP32 board can be specified via the make variable SDKCONFIG. The esp32.common.ld file is also now generated using the standard ESP IDF ldgen.py tool.
2019-01-28esp32/Makefile: Put all IDF compenents in .a libs to use IDF ld script.Damien George
When the ESP IDF builds a project it puts all separate components into separate .a library archives. And then the esp32.common.ld linker script references these .a libraries by explicit name to put certain object files in iRAM. This patch does a similar thing for the custom build system used here, putting all IDF .o's into their respective .a. So a custom linker script is no longer needed.
2019-01-17esp32/Makefile: Use system provided math library rather than uPy one.Damien George
The ESP IDF system already provides a math library, and that one is likely to be better tuned to the Xtensa architecture. The IDF components are also tested against its own math library, so best not to override it. Using the system provided library also allows to easily switch to double-precision floating point by changing MICROPY_FLOAT_IMPL to MICROPY_FLOAT_IMPL_DOUBLE.