[Diao Ye aprende programación] Manual de MicroPython Biblioteca de puertos específicos ESP32 esp32.Partition.BOOT

Insertar descripción de la imagen aquí

MicroPython es una versión ligera del intérprete diseñada para ejecutar el lenguaje de programación Python 3 en sistemas integrados. En comparación con Python normal, el intérprete de MicroPython es pequeño (solo alrededor de 100 KB) y se compila en un archivo ejecutable binario para su ejecución, lo que resulta en una mayor eficiencia de ejecución. Utiliza un mecanismo de recolección de basura liviano y elimina la mayor parte de la biblioteca estándar de Python para adaptarse a microcontroladores con recursos limitados.

Las características principales de MicroPython incluyen:
1. La sintaxis y las funciones son compatibles con Python estándar, lo que facilita su aprendizaje y uso. Admite la mayor parte de la sintaxis principal de Python.
2. Acceda y controle directamente el hardware, controle GPIO, I2C, SPI, etc. como Arduino.
3. Potente sistema de módulos, que proporciona sistema de archivos, red, interfaz gráfica y otras funciones.
4. Admite compilación cruzada para generar código nativo eficiente, que es entre 10 y 100 veces más rápido que el intérprete.
5. La cantidad de código es pequeña y el uso de memoria es pequeño, adecuado para ejecutarse en MCU y placas de desarrollo con poca memoria.
6. Licencia de código abierto, de uso gratuito. El entorno interactivo de Shell proporciona comodidad para el desarrollo y las pruebas.
7. El controlador de E/S incorporado admite una gran cantidad de plataformas de microcontroladores, como ESP8266, ESP32, STM32, micro:bit, placa de control y PyBoard, etc. Hay una comunidad activa.

Los escenarios de aplicación de MicroPython incluyen:
1. Crear rápidamente prototipos e interacciones de usuario para productos integrados.
2. Realice algunos pequeños proyectos de hardware programables.
3. Como herramienta educativa, ayuda a los principiantes a aprender programación en Python e IoT.
4. Cree firmware para dispositivos inteligentes para lograr control avanzado y conectividad en la nube.
5. Diversas aplicaciones de microcontroladores como Internet de las cosas, inteligencia integrada, robots, etc.

Cosas a tener en cuenta al utilizar MicroPython:
1. La memoria y el espacio Flash son limitados.
2. La eficiencia de explicación y ejecución no es tan buena como la del lenguaje C.
3. Algunas funciones de la biblioteca son diferentes a las de la versión estándar.
4. Optimice la sintaxis de la plataforma y corrija las diferencias con Python estándar.
5. Utilice los recursos de memoria de forma racional y evite asignar grandes bloques de memoria con frecuencia.
6. Utilice código nativo para mejorar el rendimiento de las piezas críticas para la velocidad.
7. Utilice la abstracción de forma adecuada para encapsular las operaciones de hardware subyacentes.

En términos generales, MicroPython lleva Python al campo de los microcontroladores, lo cual es una innovación importante que no solo reduce el umbral de programación sino que también proporciona buenas capacidades de control de hardware. Es muy adecuado para el desarrollo de varios tipos de Internet de las cosas y hardware inteligente.
Insertar descripción de la imagen aquí

El esp de MicroPython se refiere al firmware de MicroPython y las bibliotecas de software relacionadas para los chips ESP8266 y ESP32. ESP8266 y ESP32 son una clase de módulos Wi-Fi y Bluetooth de bajo costo y bajo consumo ampliamente utilizados en IoT y sistemas integrados. El esp de MicroPython proporciona un entorno de secuencias de comandos avanzado para ambos chips, lo que permite a los desarrolladores utilizar el lenguaje Python para la creación y el desarrollo rápidos de prototipos.

ESP8266: Es un módulo/chip Wi-Fi de bajo costo y bajo consumo desarrollado por Espressif Systems. Tiene una pila de protocolos TCP/IP incorporada, se puede utilizar para conectarse a Internet y tiene sólidas capacidades de procesamiento. El esp de MicroPython proporciona firmware y bibliotecas de software relacionadas para ESP8266, lo que permite a los desarrolladores utilizar el lenguaje MicroPython para desarrollar aplicaciones ESP8266.

ESP32: Es un módulo/chip Wi-Fi y Bluetooth altamente integrado lanzado por Espressif Systems, en comparación con ESP8266, tiene una potencia de procesamiento más potente, más interfaces periféricas y más memoria. El esp de MicroPython también proporciona firmware y bibliotecas de software relacionadas para ESP32, lo que permite a los desarrolladores utilizar el lenguaje MicroPython para desarrollar aplicaciones ESP32.

Firmware esp de MicroPython: es una versión de firmware de MicroPython específica para chips ESP8266 y ESP32. Estos firmwares se han optimizado específicamente para ejecutarse en ESP8266 y ESP32 y proporcionan API para interacción de hardware, comunicación de red y control de periféricos.

Bibliotecas de software: el esp de MicroPython también proporciona una serie de bibliotecas de software relacionadas con el hardware ESP8266 y ESP32 para simplificar y acelerar el proceso de desarrollo. Estas bibliotecas de software proporcionan un amplio conjunto de interfaces funcionales, que cubren hardware y protocolos de comunicación de uso común, como Wi-Fi, Bluetooth, GPIO (entrada y salida de uso general), I2C, SPI y PWM, lo que permite a los desarrolladores acceder y controlar fácilmente el hardware. recursos.
Insertar descripción de la imagen aquí
esp32.Partition.BOOT es una constante en MicroPython que se utiliza para representar la partición de arranque ESP32. Proporciona acceso e identificación de la partición de inicio para operaciones apropiadas durante el desarrollo. La siguiente es una explicación detallada de sus características principales, escenarios de aplicación y asuntos que requieren atención, y se brindan varios casos de aplicación práctica:

caracteristica principal:

esp32.Partition.BOOT es una constante utilizada para representar la partición de arranque de ESP32.
Proporciona acceso e identificación a la partición de inicio, lo que permite a los desarrolladores comprender y operar la partición de inicio actual.

Escenarios de aplicación:

La constante esp32.Partition.BOOT es adecuada para escenarios en los que necesita comprender y operar la partición de arranque ESP32.
Puede utilizar esta constante para obtener la partición de inicio actual para las operaciones y depuración correspondientes.
Durante una actualización de firmware, esta constante se puede utilizar para determinar qué versión de firmware cargar y ejecutar.

Cosas a tener en cuenta:

Antes de usar la constante esp32.Partition.BOOT, primero debe importar el módulo esp32.
Asegúrese de comprender el diseño de la partición ESP32 y los conceptos de partición de arranque antes de usar esta constante.
Tenga en cuenta que diferentes particiones de inicio pueden tener diferentes funciones y usos. Elija la partición de inicio correcta según la situación real.

A continuación se muestran algunos ejemplos de aplicaciones prácticas:

Caso 1: Obtenga la partición de inicio actual:

import esp32

# 获取当前的启动分区
boot_partition = esp32.Partition.BOOT

print("当前的启动分区:", boot_partition)

Caso 2: Cargue el firmware según la partición de inicio:

import esp32

# 根据启动分区加载相应的固件
if esp32.Partition.BOOT == esp32.Partition(1, 0):
    # 加载固件 A
    # ...
elif esp32.Partition.BOOT == esp32.Partition(2, 0):
    # 加载固件 B
    # ...
else:
    # 其他处理逻辑
    # ...

Caso 3: Información de la partición de arranque de salida:

import esp32

# 输出当前的启动分区信息
boot_partition = esp32.Partition.BOOT

print("启动分区 ID:", boot_partition.id())
print("启动分区子类型:", boot_partition.subtype())
print("启动分区标签:", boot_partition.label())
print("启动分区大小:", boot_partition.size())

Tenga en cuenta que en la aplicación real, puede adoptar diferentes operaciones y lógica según la partición de inicio actual según las necesidades y situaciones específicas. Asegúrese de que cuando utilice la constante esp32.Partition.BOOT, comprenda la partición de inicio que representa y manejela en consecuencia según las necesidades reales.

Caso 4: compruebe si la partición actual es una partición de arranque:

import machine

# 获取当前分区
partition = machine.Partition()

# 检查当前分区是否为启动分区
is_boot_partition = partition == machine.Partition.BOOT

# 输出检查结果
if is_boot_partition:
    print("当前分区为启动分区")
else:
    print("当前分区不是启动分区")

En este ejemplo, usamos la constante esp32.Partition.BOOT para verificar si la partición actual es una partición de arranque. Primero usamos el método machine.Partition() para obtener la partición actual. Luego comparamos la partición actual con esp32.Partition.BOOT para comprobar si son iguales. Si son iguales, configuramos la variable is_boot_partition en True, lo que indica que la partición actual es la partición de inicio. Finalmente, usamos la función print() para generar los resultados correspondientes según el valor de la variable is_boot_partition.

Caso 5: Marcar aplicaciones de partición de arranque como no válidas::

import machine

# 打开启动分区
boot_partition = machine.Partition(machine.Partition.BOOT)

# 将启动分区的应用标记为无效
boot_partition.mark_app_invalid()

# 重启设备
machine.reset()

En este ejemplo, usamos la constante esp32.Partition.BOOT para abrir la partición de inicio y marcar su aplicación como no válida. Primero usamos el método machine.Partition() y pasamos machine.Partition.BOOT para abrir la partición de arranque. Luego, usamos el método mark_app_invalid() para marcar la aplicación de la partición de inicio como no válida. Finalmente reiniciamos el dispositivo usando el método machine.reset() para que los cambios surtan efecto.

Caso 6: Obtener el tamaño de la partición de arranque::

import machine

# 获取启动分区的大小
boot_partition_size = machine.Partition.BOOT.size()

# 输出启动分区的大小
print("启动分区的大小:", boot_partition_size, "字节")

En este ejemplo, usamos la constante esp32.Partition.BOOT para obtener el tamaño de la partición de inicio. Usamos el método size() para obtener el tamaño de la partición de inicio y almacenarlo en la variable boot_partition_size. Finalmente, usamos la función print() para generar el tamaño de la partición de arranque.

Caso 7: Imprimir información de la partición de arranque:

from esp32 import Partition
boot = Partition.BOOT
print("Boot size: %d" % boot.size)

Caso 8: Lectura de datos de la partición de arranque:

from esp32 import Partition
boot = Partition.BOOT
data = boot.read(0, 100)

Caso 9: Limpiar la partición de inicio:

from esp32 import Partition
boot = Partition.BOOT
boot.erase_region(0, boot.size)

El primer ejemplo imprime la información del tamaño de la partición de inicio (BOOT). El segundo ejemplo lee datos parciales de la partición de inicio. El tercer ejemplo borra toda la partición de arranque. esp32.Partition.BOOT se utiliza para obtener el objeto de partición de inicio de ESP32. En base a él, puede obtener información de la partición y realizar operaciones de lectura y escritura en la partición de inicio. Estos ejemplos demuestran usos comunes para acceder a la partición de inicio en escenarios como actualizaciones de firmware y resolución de problemas.

Insertar descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_41659040/article/details/132923570
Recomendado
Clasificación