Changes

15 bytes added ,  22:36, 29 September 2017
Line 553: Line 553:  
=MCU firmware versions=
 
=MCU firmware versions=
   −
These reside in mcu-module .rodata, are uploaded to MCU register 0x05 and are usually size 0x4003 bytes. (0x4000 bytes with 3 byte magic "jhl"?)
+
These reside in mcu-module .rodata, are uploaded to MCU register 0x05 and are usually size 0x4003 bytes. (0x4000 bytes with 3 byte flash unlock sequence "jhl")
    
There exists an alternate code path where uploading is done using register 0x3B (if register 0x0F is zero meaning all peripherals are turned off, and 0x10 must be 1 (power button pressed/held)). This may be a "hack" around early versions of MCU? Register 0x3B is part of the RTC alarm registers on recent versions of MCU. Before the upload could commence, WiFi is turned off via GPIO (could be done via <code>mcu::NWM</code> command 0x00050040), then after the upload completed, the sysmodule waits exactly one second, then turns WiFi back on via <code>gpio:MCU</code> command 0x00020080(0x40000, 0x40000).
 
There exists an alternate code path where uploading is done using register 0x3B (if register 0x0F is zero meaning all peripherals are turned off, and 0x10 must be 1 (power button pressed/held)). This may be a "hack" around early versions of MCU? Register 0x3B is part of the RTC alarm registers on recent versions of MCU. Before the upload could commence, WiFi is turned off via GPIO (could be done via <code>mcu::NWM</code> command 0x00050040), then after the upload completed, the sysmodule waits exactly one second, then turns WiFi back on via <code>gpio:MCU</code> command 0x00020080(0x40000, 0x40000).
215

edits