L'exemple Boot

Je pr\xE9f\xE8re ne pas installer ce programme dans le flash.

MicroPython installe d\xE9j\xE0 une version de boot.py (seulement des commentaires, mais qui montrent comment on peut mettre en route WEB REPL) et je ne veux pas d\xE9truire cette version.

On peut part contre l\x92essayer avec thonny.

Avant de le faire nous allons cr\xE9er un classeur /lib dans le syst\xE8me de fichier du ESP32. Dans ce classeur on peut mettre des scripts \xE0 importer ou \xE0 ex\xE9cuter.

Avec le HelloWorld.py transf\xE9r\xE9 dans /lib de l'ESP32 on peut l\x92ex\xE9cuter avec un \xAB import \xBB :

esp32_fs.png

Le syst\xE8me de fichier sur l'ESP32 avec le classeur "/lib" et HelloWorld.py copi\xE9 dedans.

helloImport.png

Si maintenant j\x92ex\xE9cute le programme boot.py dans 00.1_Boot de Freenove, voila le r\xE9sultat :

booterr.png

J\x92ai r\xE9\xE9crit le programme boot.py. Dans ma version, je regarde si les fichiers sont des classeurs ou des fichiers standard et j\x92imprime le contenu seulement pour les fichiers standard.

Voil\xE0 ce qu\x92on obtient si on tourne le nouveau programme boot.py r\xE9-nomm\xE9 myboot.py :

MicroPython v1.14-121-g4fc2866f4-dirty on 2021-03-21; ESP32 module with ESP32
Type "help()" for more information.
>>> %Run -c $EDITOR_CONTENT

MicroPython v1.14-121-g4fc2866f4-dirty on 2021-03-21; ESP32 module with ESP32
Type "help()" for more information.
>>> %Run -c $EDITOR_CONTENT
===============================
HelloWorld.py
===============================
Contents:

print('Hello World!\n')
===============================
lib, File is a directory
===============================
===============================
myboot.py
===============================
Contents:
#!/opt/bin/lv_micropython
import uos as os
import uerrno as errno
iter = os.ilistdir()
IS_DIR = 0x4000
IS_REGULAR = 0x8000

while True:
    try:
        entry = next(iter)
        filename = entry[0]
        file_type = entry[1]
        if filename == 'boot.py':
            continue
        else:
            print("===============================")
            print(filename,end="")
            if file_type == IS_DIR:
                print(", File is a directory")
                print("===============================")
            else:
                print("\n===============================")
                print("Contents:")
                with open(filename) as f:
                    for line in enumerate(f):
                        print("{}".format(line[1]),end="")
                print("")
                # exec(open(filename).read(),globals())
    except StopIteration:
        break

>>> 

On trouve le programme myboot.py sur https://github.com/uraich/mpy_ucad/tree/main/Alternate_Python_Codes/00.1_Boot

-- %USERSIG{UliRaich - 2021-07-03}%

Comments

 

I Attachment Action Size Date Who Comment
booterr.pngpng booterr.png manage 23 K 03 Jul 2021 - 10:25 UnknownUser  
esp32_fs.pngpng esp32_fs.png manage 7 K 03 Jul 2021 - 12:06 UnknownUser  
helloImport.pngpng helloImport.png manage 12 K 03 Jul 2021 - 12:06 UnknownUser  
lib.pngpng lib.png manage 31 K 03 Jul 2021 - 10:25 UnknownUser  
This topic: IoT_Course_French > WebHome > Boot
Topic revision: 03 Jul 2021, UliRaich