Assembler toolchain for the ESP32 ULP co-processor, written in MicroPython
Project description
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.
It can also be useful in cases where binutils-esp32ulp is not available.
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 examples/counter.py example shows how to assemble code, load and run the resulting binary and exchange data between the ULP and the main CPU.
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for micropython-py-esp32-ulp-1.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 708f2b36195ae2c17de0483396939681999e004e072297d3bd9ad4b86787fd09 |
|
MD5 | 5c3ce30e326c75e9ddf795bda800808c |
|
BLAKE2b-256 | b65990b952a291882ad595c3d06bd0bdd0de582017e02b18293136430ebf3dd7 |