diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2017-05-12 17:58:50 +0300 |
---|---|---|
committer | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2017-05-12 17:58:50 +0300 |
commit | ddf0b7dbc3843f2025da5a4cc1b588340c4aad13 (patch) | |
tree | 9574b80b80f75064e1ac561fea10ffa2a29eebc7 /esp8266/modules | |
parent | e9308c189af388525becbcd42b81ea6d37738135 (diff) | |
download | micropython-ddf0b7dbc3843f2025da5a4cc1b588340c4aad13.tar.gz micropython-ddf0b7dbc3843f2025da5a4cc1b588340c4aad13.zip |
esp8266/scripts: Move initsetup & port_diag tools to modules/.
Diffstat (limited to 'esp8266/modules')
-rw-r--r-- | esp8266/modules/inisetup.py | 53 | ||||
-rw-r--r-- | esp8266/modules/port_diag.py | 33 |
2 files changed, 86 insertions, 0 deletions
diff --git a/esp8266/modules/inisetup.py b/esp8266/modules/inisetup.py new file mode 100644 index 0000000000..29421e7923 --- /dev/null +++ b/esp8266/modules/inisetup.py @@ -0,0 +1,53 @@ +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, '/flash') + uos.chdir('/flash') + 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 gc +#import webrepl +#webrepl.start() +gc.collect() +""") + return vfs diff --git a/esp8266/modules/port_diag.py b/esp8266/modules/port_diag.py new file mode 100644 index 0000000000..ef8800355a --- /dev/null +++ b/esp8266/modules/port_diag.py @@ -0,0 +1,33 @@ +import esp +import uctypes +import network +import lwip + + +def main(): + + ROM = uctypes.bytearray_at(0x40200000, 16) + fid = esp.flash_id() + + print("FlashROM:") + print("Flash ID: %x (Vendor: %x Device: %x)" % (fid, fid & 0xff, fid & 0xff00 | fid >> 16)) + + print("Flash bootloader data:") + SZ_MAP = {0: "512KB", 1: "256KB", 2: "1MB", 3: "2MB", 4: "4MB"} + FREQ_MAP = {0: "40MHZ", 1: "26MHZ", 2: "20MHz", 0xf: "80MHz"} + print("Byte @2: %02x" % ROM[2]) + print("Byte @3: %02x (Flash size: %s Flash freq: %s)" % (ROM[3], SZ_MAP.get(ROM[3] >> 4, "?"), FREQ_MAP.get(ROM[3] & 0xf))) + print("Firmware checksum:") + print(esp.check_fw()) + + print("\nNetworking:") + print("STA ifconfig:", network.WLAN(network.STA_IF).ifconfig()) + print("AP ifconfig:", network.WLAN(network.AP_IF).ifconfig()) + print("Free WiFi driver buffers of type:") + for i, comm in enumerate(("1,2 TX", "4 Mngmt TX(len: 0x41-0x100)", "5 Mngmt TX (len: 0-0x40)", "7", "8 RX")): + print("%d: %d (%s)" % (i, esp.esf_free_bufs(i), comm)) + print("lwIP PCBs:") + lwip.print_pcbs() + + +main() |