Séquence de boot

Lorsque Micropython démarre, 2 fichiers sont lus successivement par défaut :

  • le fichier boot.py
  • le fichier main.py

Boot.py est prévu pour contenir des fichiers qui sont censés être utilisés systématiquement.

Main.py contient le code principal qui doit être exécuté au lancement.

Pour s'en assurer, créer 2 fichiers boot.py et main.py contenant respectivement :

boot.py

print(boot.py)

main.py

print(main.py)

Ensuite, ouvrir le terminal et saisir :

import machine
machine.reset()

ce qui doit donner :

ets Jun  8 2016 00:22:57

rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:2
load:0x3fff0030,len:4
load:0x3fff0034,len:5636
load:0x40078000,len:12696
load:0x40080400,len:4292
entry 0x400806b0
boot.py
main.py
MicroPython v1.14 on 2021-04-16; ESP32 module with ESP32
Type "help()" for more information.

On voit bien que les 2 fichiers ont été appelé avant l'affichage de l'invite de Micropython.

Rester conscient que l'invite a lieu après l'exécution successive de boot.py et main.py

Info

Il semble qu'il y ait une subtilité entre les 2 : boot.py est exécuté y compris lors des réveils après mise en veille alors que main.py dans ce cas n'est pas rebooté mais reprend à l'endroit où il était. A vérifier.

Liens +/- utiles

Voir : https://learn.adafruit.com/micropython-basics-load-files-and-run-code/boot-scripts