36808d4e6a
So that the user can explicitly deactivate UART(0) if needed. See issue #4314. This introduces some risk to "brick" the device, if the user disables the REPL without providing an alternative REPL (eg WebREPL), or any way to reenable it. In such a case the device needs to be erased and reprogrammed. This seems unavoidable, given the desire to have the option to use the UART for something other than the REPL.
55 lines
1.4 KiB
Python
55 lines
1.4 KiB
Python
import uos
|
|
import network
|
|
from flashbdev import bdev
|
|
|
|
def wifi():
|
|
import ubinascii
|
|
ap_if = network.WLAN(network.AP_IF)
|
|
essid = b"MicroPython-%s" % ubinascii.hexlify(ap_if.config("mac")[-3:])
|
|
ap_if.config(essid=essid, authmode=network.AUTH_WPA_WPA2_PSK, password=b"micropythoN")
|
|
|
|
def check_bootsec():
|
|
buf = bytearray(bdev.SEC_SIZE)
|
|
bdev.readblocks(0, buf)
|
|
empty = True
|
|
for b in buf:
|
|
if b != 0xff:
|
|
empty = False
|
|
break
|
|
if empty:
|
|
return True
|
|
fs_corrupted()
|
|
|
|
def fs_corrupted():
|
|
import time
|
|
while 1:
|
|
print("""\
|
|
The FAT filesystem starting at sector %d with size %d sectors appears to
|
|
be corrupted. If you had important data there, you may want to make a flash
|
|
snapshot to try to recover it. Otherwise, perform factory reprogramming
|
|
of MicroPython firmware (completely erase flash, followed by firmware
|
|
programming).
|
|
""" % (bdev.START_SEC, bdev.blocks))
|
|
time.sleep(3)
|
|
|
|
def setup():
|
|
check_bootsec()
|
|
print("Performing initial setup")
|
|
wifi()
|
|
uos.VfsFat.mkfs(bdev)
|
|
vfs = uos.VfsFat(bdev)
|
|
uos.mount(vfs, '/')
|
|
with open("boot.py", "w") as f:
|
|
f.write("""\
|
|
# This file is executed on every boot (including wake-boot from deepsleep)
|
|
#import esp
|
|
#esp.osdebug(None)
|
|
import uos, machine
|
|
#uos.dupterm(None, 1) # disable REPL on UART(0)
|
|
import gc
|
|
#import webrepl
|
|
#webrepl.start()
|
|
gc.collect()
|
|
""")
|
|
return vfs
|