Commit Graph

51 Commits

Author SHA1 Message Date
Philip Gladstone 83cfea9d08 Builds and sort of runs. Some modules not yet supported 2024-12-09 02:03:07 +00:00
Jade Mattsson 4cdebe7191
Initial support for ESP32-C6 and ESP32-H2, plus assorted fixes & improvements (#3646)
* Proof-of-concept multi-type console support via stdio

* Address crashes on linput's use of printf.

On an empty line input, a C3 with UART console would panic while attempting
to output the new Lua prompt. The backtrace shows a xQueueSemaphoreTake
with uxItemSize==0 as the panic cause, deep inside the uart driver, invoked
via vfs_uart and vfs_console layers, from printf.
Similarly, the printf for outputting a backspace/erase sequence would also
trigger a panic.

This workaround (of not mixing fflush() with printf) is likely merely hiding
a deeper issue, but it appears to be consistent. Plus, printf with no args
and a user-supplied format string is a no-no and should be fixed anyway.

* Work around IDF inconsistency with stdout buffering.

* Increase console task stack size.

Seems on Xtensa it ended up not being enough.

* Switch to single-byte console reads.

* Stop cheating and feed Lua from the right context.

* Work around IDF buffering stdout even when told not to, on ACM consoles.

* Initial build support for esp32c6.

Plus fixup of module selection for a variety of targets.

* Update github actions to node 20 versions.

* Update github build to deal with Lua 5.3 being default.

* Address fatal compiler warning.

Newer IDF toolchain is stricter, and we'd apparently failed to build test
the Lua-5.1 path for some time.

* Initial build support for esp32h2.

* Upgrade IDF to v5.1.3

* Fix left-over incorrect type in uzlib.

* Avoid null pointer crashes when debugging startup.

* Workaround for using wifi module on S2 with USB-CDC console.

---------

Co-authored-by: Jade Mattsson <github@frozenlogic.org>
2024-04-26 17:35:22 -04:00
Johny Mattsson 6798f027f3 Upgrade to IDF v5.1.2 2024-02-02 14:50:57 +11:00
Johny Mattsson f126b6fe91 Initial migration to IDFv5.0
Plenty of dependency adjustments, printf format specificier updates,
FreeRTOS type and macro name modernisation, not to mention API changes.

Still plenty of legacy/deprecated drivers in use which will need updating.

The following features have been removed due to no longer being available
from the IDF:
  - ADC hall effect sensor reading
  - Configuration of SD SPI host via sdmmc module (now must be done first
    via the spimaster module)
  - FAT partition selection on external SD cards; only the first FAT
    partition is supported by the IDF now

On the other hand, the eth module now supports the following new chipsets:
  - KSZ8001
  - KSZ8021
  - KSZ8031
  - KSZ8051
  - KSZ8061
  - KSZ8091
  - Possibly additional models in the LAN87xx series (the IDF docs aren't
    clear on precisely which models are handled)

Further, the sdmmc module is now available on the ESP32-S3 as well.
2024-01-30 11:34:03 +11:00
Philip Gladstone bf84d4aafc
Updated to IDF 4.4.6 (#3621)
* Updated to IDF 4.4.6

* Use the version that doesn't have my monitor fix in it
2024-01-23 09:17:15 -05:00
Johny Mattsson 4379dd9d31 Update to IDF v4.4.3.
Rewrote the embed_lfs.sh section addr/size handling since it was still having
issues between compiler versions.
2023-02-09 15:52:38 +11:00
Johny Mattsson 38ccd7b2ba Upgrade IDF to v4.4.2
Slightly reworked embed_lfs.sh to better cope with attribute size changes
in future compiler versions, without needing to be updated again.

RMT register naming changed once again...
2022-10-12 16:14:40 +11:00
Philip Gladstone 8f9295b09e
Update to the released version of idf4.4 (#3498)
* Update to the released version of idf4.4

* Try to get the CI Build to work in all cases
2022-01-25 20:54:17 -05:00
Johny Mattsson 8e5ce49d19 Update to latest IDF master. 2021-08-24 10:24:49 +10:00
Johny Mattsson 16ef39e255 idf4: overhaul to new build system, part 1 of 3
Yet to come:
  - part 2: dealing with deprecated and removed APIs
  - part 3: making it actually work again
2021-07-15 16:27:03 +10:00
Nate Clark ef5d9ff405 Bump ESP-IDF to 3.3.4 2021-03-24 15:28:59 +01:00
Marcel Stör cd53865c78
Bump ESP-IDF to 3.3.2 LTS (#3196) 2020-07-08 08:46:16 +02:00
Marcel Stör c923588b13
Update ESP-IDF to v3.3.1 (#2898) 2020-01-19 13:15:22 +01:00
Marcel Stör fb3ffe397a Revert "Upgrade ESP-IDF to tag v3.3.1"
This reverts commit f54d110f9a.
2020-01-06 13:52:56 +01:00
Marcel Stör f54d110f9a Upgrade ESP-IDF to tag v3.3.1 2020-01-06 13:48:39 +01:00
Johny Mattsson 51912d5505
Reworked linker magic to work with IDF 3.3 (#2805)
With the IDF asserting full control over the linker scripts and insisting on
the application description being the first entry in the .flash.rodata
section, or previous method of doing link-time arrays stopped working.
Why? Because the build patched in a SHA256 digest straight into our arrays.

With the limited language of the gcc linker scripts I could find no other
way of getting it in cleanly.

The IDF "linker fragments" support can not be made to work for our needs:
  - no support for setting alignment before including objects
  - no support for declaring symbols
  - no support for adding our terminating zeros
  - insists on grouping objects by lib rather than by declared grouping,
    which means we could at most have a single link-time-array using
    the IDF mechanism
  - also does not like underscores in section names, but that's just an
    annoyance

So, the least bad option that I could come up with was to use a project-wide
makefile snippet to add a target in-between the IDF's generation of the
esp32.project.ld file, and the linking of our NodeMCU.elf. In this target
we read in the esp32.project.ld linker script, check whether we have our
arrays in there, and if not rewrites the linker script.

Oh, and the esp32.project.ld file only came into existence on the IDF 3.3
branch, so I had to change up the IDF to the latest release/3.3 as well.
I would've preferred a stable tag, but the v3.3-beta3 had a really nasty
regression for us (can't add partition entry), so that was a no-go.
2019-06-22 12:05:34 +10:00
devsaurus 511bc01dce Upgrade ESP-IDF to latest v3.2 branch 2019-04-28 21:11:09 +02:00
devsaurus 45d1aca7e7 Update ESP-IDF to current head of release/v3.2 branch. 2018-12-16 15:33:43 +01:00
devsaurus b0d6446327 update ESP-IDF to release/v3.2 branch 2018-12-02 16:23:23 +01:00
devsaurus 358379fd90 Updated ESP-IDF to latest. 2018-10-07 12:33:40 +02:00
devsaurus efffa92b77 Updated ESP-IDF to latest. 2018-04-01 00:28:26 +02:00
devsaurus 7448d21afa Updated ESP-IDF to latest. 2017-09-12 22:22:20 +02:00
devsaurus 9f8664b8e6 Updated ESP-IDF to latest and adapt spi master. 2017-09-02 11:38:19 +02:00
devsaurus c13f83cd2e Updated ESP-IDF to latest. 2017-07-03 21:42:39 +02:00
devsaurus 9e7eb48fef Updated ESP-IDF to latest.
can: Use DPORT_(SET|clear)_PERI_REG_MASK for DPORT regs.
2017-05-13 22:30:13 +02:00
devsaurus 0ac7d3d942 Updated ESP-IDF to latest. 2017-05-01 17:57:48 +02:00
Johny Mattsson c69b3b31e8 Updated ESP-IDF to latest. 2017-04-24 15:30:47 +10:00
devsaurus ebee637a53 Update to latest IDF. 2017-04-20 22:44:22 +02:00
devsaurus c8e99d50a5 Updated to latest IDF. 2017-04-14 00:22:33 +02:00
Johny Mattsson 602979bfa8 Updated to latest IDF & toolchain.
Using new BATCH_BUILD flag for CI build.
2017-03-02 21:37:03 +11:00
Johny Mattsson 9f8dc0271b Updated to latest IDF. 2017-01-10 11:37:49 +11:00
Johny Mattsson 7abda5c9e0 Updated to latest IDF.
- Switched hardcoded interrupts to new IDF interrupt allocation
framework.

- gpio module switched to the IDF's per-pin interrupt callback service.

- Improved NodeMCU linker script since it broke with the IDF upgrade.

- Various compatibility updates.
2016-12-30 19:25:48 +11:00
Johny Mattsson b29d436400 Updated to latest IDF. 2016-12-06 17:50:31 +11:00
Johny Mattsson 40426a18b0 Updated to latest IDF. 2016-12-01 16:00:37 +11:00
Johny Mattsson c4911ca391 Updated to latest IDF.
This fixes the panic-on-restart issue and the crash-on-uart-input-before-flash-mapped issue.

Node module updated to reflect new function names for sleep/restart.
2016-11-25 10:51:49 +11:00
Johny Mattsson 2951e8e075 Updated to latest IDF.
Using partitions for nvs and phy_init seems to work fine together with our
automatic fs partition creation.
2016-11-22 11:16:56 +11:00
Johny Mattsson 5a47aca10d Updated to latest IDF. 2016-11-21 10:19:03 +11:00
Johny Mattsson bccf64ef0b Update to latest IDF version. 2016-11-18 10:34:49 +11:00
Johny Mattsson 2266670b46 Updated to latest IDF. 2016-11-16 17:59:06 +11:00
Johny Mattsson 5c1bb4c6d6 Updated to latest IDF.
WiFi STA module updated to reflect IDF name changes.

Platform flash and partition api updated to reflect IDF name changes.
Eventually these (and the SPIFFS module) will likely need to be updated
to exclusively work with the esp_partition_xxx() functions in order to
support working with encrypted flash.
2016-11-12 13:17:17 +11:00
Johny Mattsson 710baa08e1 Updated to latest IDF.
Now with fixed printf.
2016-10-07 13:45:11 +11:00
Johny Mattsson a3f5398bc4 Updated IDF to latest. 2016-10-03 13:28:34 +11:00
Johny Mattsson febc8f7f36 Updated to latest IDF. 2016-09-28 17:57:00 +10:00
Johny Mattsson 33eb1bc790 Updated to new startup & esp event handling.
Modules can now subscribe to ESP system events via the new
NODEMCU_ESP_EVENT() macro. See nodemcu_esp_event.h for details.
2016-09-27 18:42:08 +10:00
Johny Mattsson 48bbe74cbf Updated to latest IDF.
Lost some helpful macros when they changed the uart register header it seems.
2016-09-26 13:36:53 +10:00
Johny Mattsson fe602d2d7e Removed all currently-unused code & docs.
Heading towards having only ESP32-aware/capable code in this branch.
2016-09-21 13:47:44 +10:00
Johny Mattsson a463d764eb WIP ESP32 IDF port.
Currently the UART driver break boot (or at least output).
2016-09-16 18:11:42 +10:00
Johny Mattsson d33945b68b Moved sdk submodules for easier branch switching. 2016-06-21 18:06:04 +10:00
Johny Mattsson a6c0873a28 Upgrade to SDK 1.5.0 + Espressif's Open LWIP 1.5.0.
Removed earlier TCP port randomisation fix - the new SDK has its own fix
even though Espressif told me they wouldn't fix it. Yay?
2015-12-23 11:17:05 +11:00
Johny Mattsson 5d5be35633 Upgraded LWIP to 1.4.0 released from Espressif.
Plus directly provided patch for user_interface.h.
2015-10-12 14:31:04 +11:00