10000 GitHub - lmarkrol/micropython-esp32-ulp at df882c8a3e8510582d8b681b78e9306c654a724f
[go: up one dir, main page]

Skip to content

lmarkrol/micropython-esp32-ulp

Repository files navigation

py-esp32-ulp

Build Status

py-esp32-ulp is an assembler toolchain for the ESP32 ULP (Ultra Low-Power) Co-Processor, written in MicroPython.

It can translate small assembly language programs to a loadable/executable ULP machine code binary, directly on the ESP32 microcontroller.

This is intended as an alternative approach to assembling such programs using the binutils-esp32ulp toolchain from Espressif on a development machine.

Features

The following features are supported:

  • the entire ESP32 ULP instruction set
  • constants defined with .set
  • constants defined with #define
  • expressions in assembly code and constant definitions
  • RTC convenience macros (e.g. WRITE_RTC_REG)
  • many ESP32 ULP code examples found on the web will work unmodified

Quick start

To get going run the following directly on the ESP32:

# Step 1: Install py-esp32-ulp
# IMPORTANT: Ensure the ESP32 is connected to a network with internet connectivity.
import upip
upip.install('micropython-py-esp32-ulp')

# Step 2: Run an example
# First, upload examples/counter.py to the ESP32.
import counter

The counter.py example shows how to assemble code, load and run the resulting binary and exchange data between the ULP and the main CPU.

You can also try the blink.py example, which shows how to let the ULP blink an LED.

Documentation

See docs/index.rst.

Requirements

The minimum supported version of MicroPython is v1.12.

An ESP32 is required to run the ULP machine code binary produced by py-esp32-ulp (the ESP32-S2 will not work as it is not binary compatible with the ESP32).

License

This project is released under the MIT License.

About

ESP32 ULP Co-Processor toolchain implemented in MicroPython

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 86.2%
  • Assembly 7.6%
  • Shell 6.2%
0