Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

crc error on firmware #45

Open
Mit4el opened this issue Nov 29, 2024 · 12 comments
Open

crc error on firmware #45

Mit4el opened this issue Nov 29, 2024 · 12 comments

Comments

@Mit4el
Copy link

Mit4el commented Nov 29, 2024

hi, can you help with the error in the platformio project. On other generic-bk7231n-qfn32-tuya boards, the firmware works well. there is a problem with reading the crc, openbeken is flashing normally and working, so the board and programmer are working.

"C:\Users\DIeMONd\.platformio\penv\.libretiny\Scripts\python.exe" -m ltchiptool -r -i 1 -L "C:\Users\DIeMONd\.platformio\platforms\libretiny" flash write -d COM7 -b 921600 .pio\build\bk7231t\firmware.uf2
|-- Detected file type: UF2 - iotm_tiny 0.0.1
|-- Connecting to 'Beken 7231T' on COM7 @ 115200
|   |-- Success! Chip info: BK7231S_1.0.5
|-- Writing '.pio\build\bk7231t\firmware.uf2'
|   |-- iotm_tiny 0.0.1 @ 2024-11-29 09:07:10 -> generic-bk7231t-qfn32-tuya
################################################################|-- The current command timeout of 1.0 second(s) is too low for reading 716800 bytes CRC. Increasing to 2 second(s).
|-- ValueError: Chip CRC value 0 does not match calculated CRC value 26A6581F
|   |-- File "C:\Users\DIeMONd\.platformio\penv\.libretiny\Lib\site-packages\bk7231tools\serial\cmd_ll_chip.py", line 73, in check_crc
*** [upload] Error 1

Cut Platformio.ini

[env:bk7231t]
extra_scripts = 
        pre:tools/lt_fsbuild.py
        pre:tools/lt_fsflash.py
lib_compat_mode = off
lib_deps = 
        LT_WebSockets
https://github.com/Mit4el/ESPAsyncUDP#master
        ${common_env_data.lib_deps_external}
        ${env:bk7231t_fromitems.lib_deps}
lib_ignore = EspSoftwareSerial, HTTPUpdate, WebSockets
platform = https://github.com/Mit4el/libretiny#master
framework = arduino
board = generic-bk7231t-qfn32-tuya
custom_fw_name = iotm_tiny
custom_fw_version = 0.0.1
upload_speed = 921600
monitor_speed = 115200
build_flags = 
        -Dbk7231t="bk7231t"
        -DLT_LOGLEVEL=LT_LEVEL_DEBUG
        -DLT_DEBUG_ALL=1
        -DPROJECT_DATA_DIR="data_svelte"
        -DLT_USE_TIME=1
        -DDEBUG_ESP_PORT=Serial1
        -DNODEBUG_WEBSOCKETS=1
        -DLT_UART_DEFAULT_PORT=1
        -DUPLOAD_PORT=auto
build_src_filter = 
        +<*.cpp>
        +<classes/*.cpp>
        +<utils/*.cpp>
        +<modules/*.cpp>
        ${env:bk7231t_fromitems.build_src_filter}
@kuba2k2 kuba2k2 transferred this issue from libretiny-eu/libretiny Nov 29, 2024
@kuba2k2
Copy link
Member

kuba2k2 commented Nov 29, 2024

Hi,
this is the third time we're seeing this issue lately, so something odd must be going on.

Are you able to flash the same UF2 file using the .EXE version of ltchiptool? (the GUI)
That version has old (known good) versions of all libraries, so this would let us determine if the issue is caused by an update of some dependency.

Also, a list of package versions present in your environment could help:

"C:\Users\DIeMONd\.platformio\penv\.libretiny\Scripts\python.exe" -V
"C:\Users\DIeMONd\.platformio\penv\.libretiny\Scripts\python.exe" -m pip list
"C:\Users\DIeMONd\.platformio\penv\.libretiny\Scripts\python.exe" -m ltchiptool -V

@gDIeMONd
Copy link

gDIeMONd commented Dec 3, 2024

"C:\Users\DIeMONd.platformio\penv.libretiny\Scripts\python.exe" -V
Python 3.12.3

"C:\Users\DIeMONd.platformio\penv.libretiny\Scripts\python.exe" -m pip list
Package Version


bitstruct 8.19.0
bk7231tools 2.0.2
certifi 2024.8.30
charset-normalizer 3.4.0
click 8.1.7
colorama 0.4.6
hexdump 3.3
idna 3.10
importlib_metadata 8.5.0
ltchiptool 4.11.2
pip 23.2.1
prettytable 3.12.0
py-datastruct 1.1.0
pycryptodome 3.21.0
pyserial 3.5
requests 2.32.3
semantic-version 2.10.0
setuptools 65.5.0
urllib3 2.2.3
wcwidth 0.2.13
xmodem 0.4.7
zipp 3.21.0

C:\Users\DIeMONd.platformio\penv.libretiny\Scripts\python.exe" -m ltchiptool -V
ltchiptool v4.11.2

gui
image

@kuba2k2
Copy link
Member

kuba2k2 commented Dec 3, 2024

Can you enable verbose logging in ltchiptool GUI and post the full flashing log?

@gDIeMONd
Copy link

gDIeMONd commented Dec 3, 2024

I: Found new device: COM1 - Последовательный порт
I: Found new device: COM7 - USB-SERIAL CH340 - wch.cn (1A86/7523)
I: Connect UART1 of the BK7231 to the USB-TTL adapter:
I:
I: --------+ +--------------------
I: PC | | BK7231
I: --------+ +--------------------
I: RX | ------ | TX1 (GPIO11 / P11)
I: TX | ------ | RX1 (GPIO10 / P10)
I: | |
I: GND | ------ | GND
I: --------+ +--------------------
I:
I: Using a good, stable 3.3V power supply is crucial. Most flashing issues
I: are caused by either voltage drops during intensive flash operations,
I: or bad/loose wires.
I:
I: The UART adapter's 3.3V power regulator is usually not enough. Instead,
I: a regulated bench power supply, or a linear 1117-type regulator is recommended.
I:
I: To enter download mode, the chip has to be rebooted while the flashing program
I: is trying to establish communication.
I: In order to do that, you need to bridge CEN pin to GND with a wire.
V: Log level changed
V: OnUpdate(busy={'com7'})
V: OnUpdate(busy={'com7'})
V: OnUpdate(busy={'com7'})
V: OnUpdate(busy={'com7'})
V: OnUpdate(busy={'com7'})
V: OnUpdate(busy={'com7'})
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
D: Connecting
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
D: Connecting
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())
V: OnUpdate(busy={'com7'})
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
V: <- TX: BkSetBaudRateCmnd(baudrate=921600, delay_ms=20)
V: -- UART: Changing port baudrate
V: -> RX (5): Response check OK
V: <- TX: BkCheckCrcCmnd(start=0x0, end=0x100)
V: -> RX (4): BkCheckCrcResp(crc32=0x45AB3E47)
V: <- TX: BkBootVersionCmnd()
V: -> RX (16): BkBootVersionResp(version=b'BK7231S_1.0.5\x00\x00\x00')
D: BK72xx connected - protocol: BASIC_TUYA, chip: BK7231T, bootloader: BK7231S_1_0_5, chip ID: None, boot version: BK7231S_1.0.5
D: Erasing and writing at 0x11000 (0.00%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x211000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x211000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x211000)
V: <- TX: BkCheckCrcCmnd(start=0x211000, end=0x212000)
V: -> RX (4): BkCheckCrcResp(crc32=0x7049D877)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x12000 (0.57%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x212000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x212000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x212000)
V: <- TX: BkCheckCrcCmnd(start=0x212000, end=0x213000)
V: -> RX (4): BkCheckCrcResp(crc32=0x811A5D69)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x13000 (1.15%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x213000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x213000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x213000)
V: <- TX: BkCheckCrcCmnd(start=0x213000, end=0x214000)
V: -> RX (4): BkCheckCrcResp(crc32=0x339BBF36)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x14000 (1.72%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x214000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x214000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x214000)
V: <- TX: BkCheckCrcCmnd(start=0x214000, end=0x215000)
V: -> RX (4): BkCheckCrcResp(crc32=0x5BFE90BC)
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x15000 (2.30%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x215000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x215000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x215000)
V: <- TX: BkCheckCrcCmnd(start=0x215000, end=0x216000)
V: -> RX (4): BkCheckCrcResp(crc32=0x1B0B72EA)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x16000 (2.87%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x216000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x216000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x216000)
V: <- TX: BkCheckCrcCmnd(start=0x216000, end=0x217000)
V: -> RX (4): BkCheckCrcResp(crc32=0x44F375A7)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x17000 (3.45%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x217000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x217000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x217000)
V: <- TX: BkCheckCrcCmnd(start=0x217000, end=0x218000)
V: -> RX (4): BkCheckCrcResp(crc32=0xF75E2E5)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x18000 (4.02%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x218000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x218000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x218000)
V: <- TX: BkCheckCrcCmnd(start=0x218000, end=0x219000)
V: -> RX (4): BkCheckCrcResp(crc32=0xB7B018FD)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x19000 (4.60%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x219000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x219000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x219000)
V: <- TX: BkCheckCrcCmnd(start=0x219000, end=0x21A000)
V: -> RX (4): BkCheckCrcResp(crc32=0xDAEFABD)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x1A000 (5.17%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x21A000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x21A000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x21A000)
V: <- TX: BkCheckCrcCmnd(start=0x21A000, end=0x21B000)
V: -> RX (4): BkCheckCrcResp(crc32=0x31F60495)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x1B000 (5.74%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x21B000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x21B000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x21B000)
V: <- TX: BkCheckCrcCmnd(start=0x21B000, end=0x21C000)
V: -> RX (4): BkCheckCrcResp(crc32=0xF5D50BB7)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x1C000 (6.32%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x21C000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x21C000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x21C000)
V: <- TX: BkCheckCrcCmnd(start=0x21C000, end=0x21D000)
V: -> RX (4): BkCheckCrcResp(crc32=0x2869F74A)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x1D000 (6.89%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x21D000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x21D000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x21D000)
V: <- TX: BkCheckCrcCmnd(start=0x21D000, end=0x21E000)
V: -> RX (4): BkCheckCrcResp(crc32=0x1148D2DC)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x1E000 (7.47%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x21E000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x21E000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x21E000)
V: <- TX: BkCheckCrcCmnd(start=0x21E000, end=0x21F000)
V: -> RX (4): BkCheckCrcResp(crc32=0x91BAB820)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x1F000 (8.04%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x21F000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x21F000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x21F000)
V: <- TX: BkCheckCrcCmnd(start=0x21F000, end=0x220000)
V: -> RX (4): BkCheckCrcResp(crc32=0x3FBBD182)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x20000 (8.62%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x220000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x220000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x220000)
V: <- TX: BkCheckCrcCmnd(start=0x220000, end=0x221000)
V: -> RX (4): BkCheckCrcResp(crc32=0xDDC74ABA)
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x21000 (9.19%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x221000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x221000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x221000)
V: <- TX: BkCheckCrcCmnd(start=0x221000, end=0x222000)
V: -> RX (4): BkCheckCrcResp(crc32=0xCAE73BC2)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x22000 (9.77%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x222000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x222000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x222000)
V: <- TX: BkCheckCrcCmnd(start=0x222000, end=0x223000)
V: -> RX (4): BkCheckCrcResp(crc32=0x1CEC58CC)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x23000 (10.34%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x223000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x223000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x223000)
V: <- TX: BkCheckCrcCmnd(start=0x223000, end=0x224000)
V: -> RX (4): BkCheckCrcResp(crc32=0x984B7C40)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x24000 (10.92%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x224000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x224000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x224000)
V: <- TX: BkCheckCrcCmnd(start=0x224000, end=0x225000)
V: -> RX (4): BkCheckCrcResp(crc32=0x24EDF7C7)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x25000 (11.49%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x225000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x225000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x225000)
V: <- TX: BkCheckCrcCmnd(start=0x225000, end=0x226000)
V: -> RX (4): BkCheckCrcResp(crc32=0x5B417751)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x26000 (12.06%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x226000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x226000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x226000)
V: <- TX: BkCheckCrcCmnd(start=0x226000, end=0x227000)
V: -> RX (4): BkCheckCrcResp(crc32=0x3DAAB2BA)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x27000 (12.64%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x227000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x227000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x227000)
V: <- TX: BkCheckCrcCmnd(start=0x227000, end=0x228000)
V: -> RX (4): BkCheckCrcResp(crc32=0xA263F0)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x28000 (13.21%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x228000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x228000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x228000)
V: <- TX: BkCheckCrcCmnd(start=0x228000, end=0x229000)
V: -> RX (4): BkCheckCrcResp(crc32=0x90F232CD)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x29000 (13.79%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x229000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x229000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x229000)
V: <- TX: BkCheckCrcCmnd(start=0x229000, end=0x22A000)
V: -> RX (4): BkCheckCrcResp(crc32=0x2F1D9E87)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x2A000 (14.36%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x22A000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x22A000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x22A000)
V: <- TX: BkCheckCrcCmnd(start=0x22A000, end=0x22B000)
V: -> RX (4): BkCheckCrcResp(crc32=0xE48DF96E)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x2B000 (14.94%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x22B000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x22B000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x22B000)
V: <- TX: BkCheckCrcCmnd(start=0x22B000, end=0x22C000)
V: -> RX (4): BkCheckCrcResp(crc32=0x7ECC2C45)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x2C000 (15.51%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x22C000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x22C000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x22C000)
V: <- TX: BkCheckCrcCmnd(start=0x22C000, end=0x22D000)
V: -> RX (4): BkCheckCrcResp(crc32=0x69DFF097)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x2D000 (16.09%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x22D000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x22D000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x22D000)
V: <- TX: BkCheckCrcCmnd(start=0x22D000, end=0x22E000)
V: -> RX (4): BkCheckCrcResp(crc32=0xB83B30EF)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x2E000 (16.66%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x22E000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x22E000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x22E000)
V: <- TX: BkCheckCrcCmnd(start=0x22E000, end=0x22F000)
V: -> RX (4): BkCheckCrcResp(crc32=0x9CD45E15)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x2F000 (17.23%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x22F000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x22F000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x22F000)
V: <- TX: BkCheckCrcCmnd(start=0x22F000, end=0x230000)
V: -> RX (4): BkCheckCrcResp(crc32=0x8E5061C9)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x30000 (17.81%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x230000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x230000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x230000)
V: <- TX: BkCheckCrcCmnd(start=0x230000, end=0x231000)
V: -> RX (4): BkCheckCrcResp(crc32=0x4396300D)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x31000 (18.38%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x231000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x231000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x231000)
V: <- TX: BkCheckCrcCmnd(start=0x231000, end=0x232000)
V: -> RX (4): BkCheckCrcResp(crc32=0xEDF7AC5C)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x32000 (18.96%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x232000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x232000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x232000)
V: <- TX: BkCheckCrcCmnd(start=0x232000, end=0x233000)
V: -> RX (4): BkCheckCrcResp(crc32=0x735DA868)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x33000 (19.53%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x233000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x233000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x233000)
V: <- TX: BkCheckCrcCmnd(start=0x233000, end=0x234000)
V: -> RX (4): BkCheckCrcResp(crc32=0x61BA0FEF)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x34000 (20.11%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x234000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x234000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x234000)
V: <- TX: BkCheckCrcCmnd(start=0x234000, end=0x235000)
V: -> RX (4): BkCheckCrcResp(crc32=0xA310138)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x35000 (20.68%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x235000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x235000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x235000)
V: <- TX: BkCheckCrcCmnd(start=0x235000, end=0x236000)
V: -> RX (4): BkCheckCrcResp(crc32=0x1D746A90)
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x36000 (21.26%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x236000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x236000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x236000)
V: <- TX: BkCheckCrcCmnd(start=0x236000, end=0x237000)
V: -> RX (4): BkCheckCrcResp(crc32=0x205770D6)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x37000 (21.83%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x237000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x237000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x237000)
V: <- TX: BkCheckCrcCmnd(start=0x237000, end=0x238000)
V: -> RX (4): BkCheckCrcResp(crc32=0xB6A3D7ED)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x38000 (22.41%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x238000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x238000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x238000)
V: <- TX: BkCheckCrcCmnd(start=0x238000, end=0x239000)
V: -> RX (4): BkCheckCrcResp(crc32=0x7BB0F89C)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x39000 (22.98%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x239000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x239000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x239000)
V: <- TX: BkCheckCrcCmnd(start=0x239000, end=0x23A000)
V: -> RX (4): BkCheckCrcResp(crc32=0x652E7AFD)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x3A000 (23.55%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x23A000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x23A000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x23A000)
V: <- TX: BkCheckCrcCmnd(start=0x23A000, end=0x23B000)
V: -> RX (4): BkCheckCrcResp(crc32=0x16C901A5)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x3B000 (24.13%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x23B000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x23B000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x23B000)
V: <- TX: BkCheckCrcCmnd(start=0x23B000, end=0x23C000)
V: -> RX (4): BkCheckCrcResp(crc32=0x2C034494)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x3C000 (24.70%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x23C000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x23C000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x23C000)
V: <- TX: BkCheckCrcCmnd(start=0x23C000, end=0x23D000)
V: -> RX (4): BkCheckCrcResp(crc32=0x904F1ACC)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x3D000 (25.28%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x23D000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x23D000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x23D000)
V: <- TX: BkCheckCrcCmnd(start=0x23D000, end=0x23E000)
V: -> RX (4): BkCheckCrcResp(crc32=0x940FDB29)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x3E000 (25.85%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x23E000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x23E000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x23E000)
V: <- TX: BkCheckCrcCmnd(start=0x23E000, end=0x23F000)
V: -> RX (4): BkCheckCrcResp(crc32=0x4443AA8)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x3F000 (26.43%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x23F000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x23F000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x23F000)
V: <- TX: BkCheckCrcCmnd(start=0x23F000, end=0x240000)
V: -> RX (4): BkCheckCrcResp(crc32=0xAF8524EA)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x40000 (27.00%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x240000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x240000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x240000)
V: <- TX: BkCheckCrcCmnd(start=0x240000, end=0x241000)
V: -> RX (4): BkCheckCrcResp(crc32=0x28166A62)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x41000 (27.58%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x241000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x241000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x241000)
V: <- TX: BkCheckCrcCmnd(start=0x241000, end=0x242000)
V: -> RX (4): BkCheckCrcResp(crc32=0xE089FDED)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x42000 (28.15%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x242000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x242000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x242000)
V: <- TX: BkCheckCrcCmnd(start=0x242000, end=0x243000)
V: -> RX (4): BkCheckCrcResp(crc32=0x45A7AC80)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x43000 (28.72%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x243000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x243000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x243000)
V: <- TX: BkCheckCrcCmnd(start=0x243000, end=0x244000)
V: -> RX (4): BkCheckCrcResp(crc32=0x314A4590)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x44000 (29.30%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x244000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x244000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x244000)
V: <- TX: BkCheckCrcCmnd(start=0x244000, end=0x245000)
V: -> RX (4): BkCheckCrcResp(crc32=0x275B006D)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x45000 (29.87%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x245000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x245000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x245000)
V: <- TX: BkCheckCrcCmnd(start=0x245000, end=0x246000)
V: -> RX (4): BkCheckCrcResp(crc32=0x3155C773)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x46000 (30.45%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x246000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x246000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x246000)
V: <- TX: BkCheckCrcCmnd(start=0x246000, end=0x247000)
V: -> RX (4): BkCheckCrcResp(crc32=0x891438AA)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x47000 (31.02%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x247000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x247000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x247000)
V: <- TX: BkCheckCrcCmnd(start=0x247000, end=0x248000)
V: -> RX (4): BkCheckCrcResp(crc32=0x145CBB6D)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x48000 (31.60%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x248000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x248000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x248000)
V: <- TX: BkCheckCrcCmnd(start=0x248000, end=0x249000)
V: -> RX (4): BkCheckCrcResp(crc32=0x7223B9A5)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x49000 (32.17%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x249000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x249000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x249000)
V: <- TX: BkCheckCrcCmnd(start=0x249000, end=0x24A000)
V: -> RX (4): BkCheckCrcResp(crc32=0x905701F1)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x4A000 (32.75%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x24A000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x24A000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x24A000)
V: <- TX: BkCheckCrcCmnd(start=0x24A000, end=0x24B000)
V: -> RX (4): BkCheckCrcResp(crc32=0x709F85CD)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x4B000 (33.32%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x24B000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x24B000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x24B000)
V: <- TX: BkCheckCrcCmnd(start=0x24B000, end=0x24C000)
V: -> RX (4): BkCheckCrcResp(crc32=0x41959E02)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x4C000 (33.89%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x24C000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x24C000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x24C000)
V: <- TX: BkCheckCrcCmnd(start=0x24C000, end=0x24D000)
V: -> RX (4): BkCheckCrcResp(crc32=0xD1E83E08)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x4D000 (34.47%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x24D000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x24D000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x24D000)
V: <- TX: BkCheckCrcCmnd(start=0x24D000, end=0x24E000)
V: -> RX (4): BkCheckCrcResp(crc32=0x3F68C34)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x4E000 (35.04%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x24E000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x24E000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x24E000)
V: <- TX: BkCheckCrcCmnd(start=0x24E000, end=0x24F000)
V: -> RX (4): BkCheckCrcResp(crc32=0x3FE9B909)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x4F000 (35.62%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x24F000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x24F000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x24F000)
V: <- TX: BkCheckCrcCmnd(start=0x24F000, end=0x250000)
V: -> RX (4): BkCheckCrcResp(crc32=0x2ECB7246)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x50000 (36.19%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x250000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x250000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x250000)
V: <- TX: BkCheckCrcCmnd(start=0x250000, end=0x251000)
V: -> RX (4): BkCheckCrcResp(crc32=0x7102EBAB)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x51000 (36.77%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x251000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x251000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x251000)
V: <- TX: BkCheckCrcCmnd(start=0x251000, end=0x252000)
V: -> RX (4): BkCheckCrcResp(crc32=0x77A7C9DD)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x52000 (37.34%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x252000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x252000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x252000)
V: <- TX: BkCheckCrcCmnd(start=0x252000, end=0x253000)
V: -> RX (4): BkCheckCrcResp(crc32=0x12BC3660)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x53000 (37.92%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x253000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x253000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x253000)
V: <- TX: BkCheckCrcCmnd(start=0x253000, end=0x254000)
V: -> RX (4): BkCheckCrcResp(crc32=0x28A5FC4C)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x54000 (38.49%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x254000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x254000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x254000)
V: <- TX: BkCheckCrcCmnd(start=0x254000, end=0x255000)
V: -> RX (4): BkCheckCrcResp(crc32=0x9BE3A936)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x55000 (39.07%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x255000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x255000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x255000)
V: <- TX: BkCheckCrcCmnd(start=0x255000, end=0x256000)
V: -> RX (4): BkCheckCrcResp(crc32=0xA917B52D)
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x56000 (39.64%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x256000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x256000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x256000)
V: <- TX: BkCheckCrcCmnd(start=0x256000, end=0x257000)
V: -> RX (4): BkCheckCrcResp(crc32=0x91028560)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x57000 (40.21%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x257000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x257000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x257000)
V: <- TX: BkCheckCrcCmnd(start=0x257000, end=0x258000)
V: -> RX (4): BkCheckCrcResp(crc32=0x5A8810EE)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x58000 (40.79%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x258000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x258000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x258000)
V: <- TX: BkCheckCrcCmnd(start=0x258000, end=0x259000)
V: -> RX (4): BkCheckCrcResp(crc32=0x748163D2)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x59000 (41.36%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x259000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x259000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x259000)
V: <- TX: BkCheckCrcCmnd(start=0x259000, end=0x25A000)
V: -> RX (4): BkCheckCrcResp(crc32=0x8F7851A3)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x5A000 (41.94%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x25A000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x25A000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x25A000)
V: <- TX: BkCheckCrcCmnd(start=0x25A000, end=0x25B000)
V: -> RX (4): BkCheckCrcResp(crc32=0xDFA05F7F)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x5B000 (42.51%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x25B000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x25B000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x25B000)
V: <- TX: BkCheckCrcCmnd(start=0x25B000, end=0x25C000)
V: -> RX (4): BkCheckCrcResp(crc32=0xE27DD42A)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x5C000 (43.09%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x25C000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x25C000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x25C000)
V: <- TX: BkCheckCrcCmnd(start=0x25C000, end=0x25D000)
V: -> RX (4): BkCheckCrcResp(crc32=0xACF37AF0)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x5D000 (43.66%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x25D000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x25D000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x25D000)
V: <- TX: BkCheckCrcCmnd(start=0x25D000, end=0x25E000)
V: -> RX (4): BkCheckCrcResp(crc32=0x382123BB)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x5E000 (44.24%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x25E000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x25E000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x25E000)
V: <- TX: BkCheckCrcCmnd(start=0x25E000, end=0x25F000)
V: -> RX (4): BkCheckCrcResp(crc32=0x4C3D0367)
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x5F000 (44.81%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x25F000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x25F000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x25F000)
V: <- TX: BkCheckCrcCmnd(start=0x25F000, end=0x260000)
V: -> RX (4): BkCheckCrcResp(crc32=0x4D6F91B6)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x60000 (45.38%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x260000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x260000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x260000)
V: <- TX: BkCheckCrcCmnd(start=0x260000, end=0x261000)
V: -> RX (4): BkCheckCrcResp(crc32=0x4B601A5D)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x61000 (45.96%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x261000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x261000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x261000)
V: <- TX: BkCheckCrcCmnd(start=0x261000, end=0x262000)
V: -> RX (4): BkCheckCrcResp(crc32=0x7547E5E2)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x62000 (46.53%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x262000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x262000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x262000)
V: <- TX: BkCheckCrcCmnd(start=0x262000, end=0x263000)
V: -> RX (4): BkCheckCrcResp(crc32=0x76E41602)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x63000 (47.11%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x263000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x263000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x263000)
V: <- TX: BkCheckCrcCmnd(start=0x263000, end=0x264000)
V: -> RX (4): BkCheckCrcResp(crc32=0xA5AE7027)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x64000 (47.68%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x264000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x264000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x264000)
V: <- TX: BkCheckCrcCmnd(start=0x264000, end=0x265000)
V: -> RX (4): BkCheckCrcResp(crc32=0x66AEDE08)
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x65000 (48.26%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x265000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x265000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x265000)
V: <- TX: BkCheckCrcCmnd(start=0x265000, end=0x266000)
V: -> RX (4): BkCheckCrcResp(crc32=0xE69C97B4)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x66000 (48.83%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x266000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x266000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x266000)
V: <- TX: BkCheckCrcCmnd(start=0x266000, end=0x267000)
V: -> RX (4): BkCheckCrcResp(crc32=0x8EAC8E16)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x67000 (49.41%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x267000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x267000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x267000)
V: <- TX: BkCheckCrcCmnd(start=0x267000, end=0x268000)
V: -> RX (4): BkCheckCrcResp(crc32=0xAE7DEF27)
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x68000 (49.98%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x268000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x268000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x268000)
V: <- TX: BkCheckCrcCmnd(start=0x268000, end=0x269000)
V: -> RX (4): BkCheckCrcResp(crc32=0x36CB74EB)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x69000 (50.56%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x269000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x269000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x269000)
V: <- TX: BkCheckCrcCmnd(start=0x269000, end=0x26A000)
V: -> RX (4): BkCheckCrcResp(crc32=0x37F5F053)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x6A000 (51.13%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x26A000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x26A000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x26A000)
V: <- TX: BkCheckCrcCmnd(start=0x26A000, end=0x26B000)
V: -> RX (4): BkCheckCrcResp(crc32=0x7CA12D8A)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x6B000 (51.70%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x26B000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x26B000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x26B000)
V: <- TX: BkCheckCrcCmnd(start=0x26B000, end=0x26C000)
V: -> RX (4): BkCheckCrcResp(crc32=0x49EC9F51)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x6C000 (52.28%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x26C000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x26C000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x26C000)
V: <- TX: BkCheckCrcCmnd(start=0x26C000, end=0x26D000)
V: -> RX (4): BkCheckCrcResp(crc32=0x5D1A871B)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x6D000 (52.85%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x26D000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x26D000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x26D000)
V: <- TX: BkCheckCrcCmnd(start=0x26D000, end=0x26E000)
V: -> RX (4): BkCheckCrcResp(crc32=0x3A7FCEEA)
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x6E000 (53.43%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x26E000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x26E000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x26E000)
V: <- TX: BkCheckCrcCmnd(start=0x26E000, end=0x26F000)
V: -> RX (4): BkCheckCrcResp(crc32=0xC0E209D0)
V: <- TX: BkLinkCheckCmnd()
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x6F000 (54.00%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x26F000)
V: -> RX (6): Response check OK
V: <- TX: BkFlashWrite4KCmnd(start=0x26F000, data=bytes(4096))
V: -> RX (5): Response check OK
V: -> RX (5): BkFlashWrite4KResp(status=0, start=0x26F000)
V: <- TX: BkCheckCrcCmnd(start=0x26F000, end=0x270000)
V: -> RX (4): BkCheckCrcResp(crc32=0x52B9F57D)
V: <- TX: BkLinkCheckCmnd()
V: -> RX (1): BkLinkCheckResp(value=0)
D: Erasing and writing at 0x70000 (54.58%)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x270000)
W: Erasing failure @ 0x70000 (No response received), retrying (attempt 0)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x270000)
W: Erasing failure @ 0x70000 (No response received), retrying (attempt 1)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x270000)
W: Erasing failure @ 0x70000 (No response received), retrying (attempt 2)
V: <- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x270000)
W: Erasing failure @ 0x70000 (No response received), retrying (attempt 3)
E: An error has occurred
E: ValueError: No response received
E: |-- File "ltchiptool\gui\work\base.py", line 24, in run
E: |-- File "ltchiptool\gui\work\flash.py", line 73, in run_impl
E: |-- File "ltchiptool\gui\work\flash.py", line 126, in _do_write
E: |-- File "ltchiptool\soc\bk72xx\flash.py", line 314, in flash_write_uf2
E: |-- File "ltchiptool\util\streams.py", line 177, in update_from
E: |-- File "bk7231tools\serial\cmd_hl_flash.py", line 185, in program_flash
E: |-- File "bk7231tools\serial\cmd_ll_flash.py", line 227, in flash_erase_block
E: |-- File "bk7231tools\serial\cmd_ll_flash.py", line 190, in do_erase
E: |-- File "bk7231tools\serial\protocol.py", line 144, in command
V: Update: target=NoneType, port=COM7, family=<Family parent: children(2), name=beken-72xx, parent=None>
V: Update: target=ComboBox, port=COM7, family=<Family parent: children(2), name=beken-72xx, parent=None>
V: OnWorkStopped(<class 'ltchiptool.gui.work.flash.FlashThread'>)
V: OnUpdate(busy=set())
V: Deactivating page: <class 'ltchiptool.gui.panels.flash.FlashPanel'>
V: Activating page: <class 'ltctplugin.terminal.gui.TerminalPanel'>
V: OnUpdate(busy=set())
D: Stopped FlashThread
D: Started TerminalThread
D: Terminal opened
V: OnUpdate(busy=set())
V: OnUpdate(busy=set())

@kuba2k2
Copy link
Member

kuba2k2 commented Dec 4, 2024

The log you posted shows a different error (No response received). That means the device was disconnected for one reason or another. If you want, try again to capture logs where the CRC error happens.

@sredni
Copy link

sredni commented Dec 17, 2024

I have similar problem, log output:

ltchiptool -vvv -r flash write -d /dev/cu.usbserial-017C078B  ~/Downloads/small-room.uf2
Found Local data snapshot (v1.7.0) - /Users/sredni/.local/pipx/venvs/ltchiptool/lib/python3.12/site-packages/ltchiptool
Detection: Detection(name='/Users/sredni/Downloads/small-room.uf2', size=2543616, type=<Type.VALID_UF2: 'UF2'>, file_type='UF2 - esphome 2024.8.3', offset=0, skip=0, length=2543616, family=<Family: BK7231T(0x675A40B0), name=beken-7231t, parent=beken-7231>, soc=None)
Detected file type: UF2 - esphome 2024.8.3
Connecting to 'Beken 7231T' on /dev/cu.usbserial-017C078B @ 115200
Linking: stage 0
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
<- TX: BkCheckCrcCmnd(start=0x0, end=0x100)
-> RX (4): BkCheckCrcResp(crc32=0x45AB3E47)
<- TX: BkBootVersionCmnd()
-> RX (16): BkBootVersionResp(version=b'BK7231S_1.0.5\x00\x00\x00')
BK72xx connected - protocol: BASIC_TUYA, chip: BK7231T, bootloader: BK7231S_1_0_5, chip ID: None, boot version: BK7231S_1.0.5
|-- Success! Chip info: BK7231S_1.0.5
Writing '/Users/sredni/Downloads/small-room.uf2'
|-- esphome 2024.8.3 @ 2024-12-17 11:05:42 -> wb2s
Writing (0x011000)  [----------------------------------------------------------------]    0%Erasing and writing at 0x11000 (0.00%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x211000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x211000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x211000)
<- TX: BkCheckCrcCmnd(start=0x211000, end=0x212000)
-> RX (4): BkCheckCrcResp(crc32=0x9858B53A)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x12000 (0.52%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x212000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x212000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x212000)
<- TX: BkCheckCrcCmnd(start=0x212000, end=0x213000)
-> RX (4): BkCheckCrcResp(crc32=0x9EECC985)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [----------------------------------------------------------------]    1%Erasing and writing at 0x13000 (1.04%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x213000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x213000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x213000)
<- TX: BkCheckCrcCmnd(start=0x213000, end=0x214000)
-> RX (4): BkCheckCrcResp(crc32=0xEB8B0FB9)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [----------------------------------------------------------------]    1%  00:01:16Erasing and writing at 0x14000 (1.56%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x214000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x214000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x214000)
<- TX: BkCheckCrcCmnd(start=0x214000, end=0x215000)
-> RX (4): BkCheckCrcResp(crc32=0x586B8B62)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#---------------------------------------------------------------]    2%  00:01:15Erasing and writing at 0x15000 (2.08%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x215000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x215000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x215000)
<- TX: BkCheckCrcCmnd(start=0x215000, end=0x216000)
-> RX (4): BkCheckCrcResp(crc32=0xD98BD264)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x16000 (2.60%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x216000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x216000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x216000)
<- TX: BkCheckCrcCmnd(start=0x216000, end=0x217000)
-> RX (4): BkCheckCrcResp(crc32=0x719F2A5E)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#---------------------------------------------------------------]    3%  00:01:15Erasing and writing at 0x17000 (3.12%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x217000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x217000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x217000)
<- TX: BkCheckCrcCmnd(start=0x217000, end=0x218000)
-> RX (4): BkCheckCrcResp(crc32=0x52ADFD8E)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##--------------------------------------------------------------]    3%  00:01:14Erasing and writing at 0x18000 (3.64%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x218000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x218000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x218000)
<- TX: BkCheckCrcCmnd(start=0x218000, end=0x219000)
-> RX (4): BkCheckCrcResp(crc32=0xAA13D709)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##--------------------------------------------------------------]    4%  00:01:14Erasing and writing at 0x19000 (4.16%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x219000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x219000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x219000)
<- TX: BkCheckCrcCmnd(start=0x219000, end=0x21A000)
-> RX (4): BkCheckCrcResp(crc32=0xF65B3C76)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##--------------------------------------------------------------]    4%  00:01:13Erasing and writing at 0x1A000 (4.68%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x21A000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x21A000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x21A000)
<- TX: BkCheckCrcCmnd(start=0x21A000, end=0x21B000)
-> RX (4): BkCheckCrcResp(crc32=0xF370B6E9)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###-------------------------------------------------------------]    5%  00:01:13Erasing and writing at 0x1B000 (5.20%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x21B000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x21B000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x21B000)
<- TX: BkCheckCrcCmnd(start=0x21B000, end=0x21C000)
-> RX (4): BkCheckCrcResp(crc32=0xA205D434)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x1C000 (5.72%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x21C000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x21C000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x21C000)
<- TX: BkCheckCrcCmnd(start=0x21C000, end=0x21D000)
-> RX (4): BkCheckCrcResp(crc32=0xD0B58B1)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###-------------------------------------------------------------]    6%  00:01:12Erasing and writing at 0x1D000 (6.24%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x21D000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x21D000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x21D000)
<- TX: BkCheckCrcCmnd(start=0x21D000, end=0x21E000)
-> RX (4): BkCheckCrcResp(crc32=0x1D1AEA24)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [####------------------------------------------------------------]    6%  00:01:12Erasing and writing at 0x1E000 (6.76%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x21E000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x21E000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x21E000)
<- TX: BkCheckCrcCmnd(start=0x21E000, end=0x21F000)
-> RX (4): BkCheckCrcResp(crc32=0xA68FFCD0)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [####------------------------------------------------------------]    7%  00:01:11Erasing and writing at 0x1F000 (7.28%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x21F000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x21F000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x21F000)
<- TX: BkCheckCrcCmnd(start=0x21F000, end=0x220000)
-> RX (4): BkCheckCrcResp(crc32=0x1EE3F2CE)
<- TX: BkLinkCheckCmnd()
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x20000 (7.80%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x220000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x220000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x220000)
<- TX: BkCheckCrcCmnd(start=0x220000, end=0x221000)
-> RX (4): BkCheckCrcResp(crc32=0x136FB5B8)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#####-----------------------------------------------------------]    8%  00:01:11Erasing and writing at 0x21000 (8.32%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x221000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x221000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x221000)
<- TX: BkCheckCrcCmnd(start=0x221000, end=0x222000)
-> RX (4): BkCheckCrcResp(crc32=0xD7283898)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#####-----------------------------------------------------------]    8%  00:01:10Erasing and writing at 0x22000 (8.84%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x222000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x222000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x222000)
<- TX: BkCheckCrcCmnd(start=0x222000, end=0x223000)
-> RX (4): BkCheckCrcResp(crc32=0x6FB279F0)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#####-----------------------------------------------------------]    9%  00:01:10Erasing and writing at 0x23000 (9.36%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x223000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x223000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x223000)
<- TX: BkCheckCrcCmnd(start=0x223000, end=0x224000)
-> RX (4): BkCheckCrcResp(crc32=0xEF189404)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [######----------------------------------------------------------]    9%  00:01:09Erasing and writing at 0x24000 (9.88%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x224000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x224000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x224000)
<- TX: BkCheckCrcCmnd(start=0x224000, end=0x225000)
-> RX (4): BkCheckCrcResp(crc32=0x448ED8A)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [######----------------------------------------------------------]   10%  00:01:09Erasing and writing at 0x25000 (10.40%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x225000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x225000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x225000)
<- TX: BkCheckCrcCmnd(start=0x225000, end=0x226000)
-> RX (4): BkCheckCrcResp(crc32=0xE5B2FE32)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x26000 (10.92%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x226000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x226000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x226000)
<- TX: BkCheckCrcCmnd(start=0x226000, end=0x227000)
-> RX (4): BkCheckCrcResp(crc32=0x65943112)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#######---------------------------------------------------------]   11%  00:01:08Erasing and writing at 0x27000 (11.43%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x227000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x227000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x227000)
<- TX: BkCheckCrcCmnd(start=0x227000, end=0x228000)
-> RX (4): BkCheckCrcResp(crc32=0xE130FA89)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x28000 (11.95%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x228000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x228000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x228000)
<- TX: BkCheckCrcCmnd(start=0x228000, end=0x229000)
-> RX (4): BkCheckCrcResp(crc32=0x956337F2)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#######---------------------------------------------------------]   12%  00:01:07Erasing and writing at 0x29000 (12.47%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x229000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x229000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x229000)
<- TX: BkCheckCrcCmnd(start=0x229000, end=0x22A000)
-> RX (4): BkCheckCrcResp(crc32=0x2F4376C0)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [########--------------------------------------------------------]   12%  00:01:07Erasing and writing at 0x2A000 (12.99%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x22A000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x22A000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x22A000)
<- TX: BkCheckCrcCmnd(start=0x22A000, end=0x22B000)
-> RX (4): BkCheckCrcResp(crc32=0x2890DCC8)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [########--------------------------------------------------------]   13%  00:01:07Erasing and writing at 0x2B000 (13.51%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x22B000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x22B000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x22B000)
<- TX: BkCheckCrcCmnd(start=0x22B000, end=0x22C000)
-> RX (4): BkCheckCrcResp(crc32=0x70C3037)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [########--------------------------------------------------------]   14%  00:01:06Erasing and writing at 0x2C000 (14.03%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x22C000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x22C000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x22C000)
<- TX: BkCheckCrcCmnd(start=0x22C000, end=0x22D000)
-> RX (4): BkCheckCrcResp(crc32=0x8695C3C1)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#########-------------------------------------------------------]   14%  00:01:06Erasing and writing at 0x2D000 (14.55%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x22D000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x22D000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x22D000)
<- TX: BkCheckCrcCmnd(start=0x22D000, end=0x22E000)
-> RX (4): BkCheckCrcResp(crc32=0x9E62E190)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#########-------------------------------------------------------]   15%  00:01:05Erasing and writing at 0x2E000 (15.07%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x22E000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x22E000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x22E000)
<- TX: BkCheckCrcCmnd(start=0x22E000, end=0x22F000)
-> RX (4): BkCheckCrcResp(crc32=0xF7BEC601)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x2F000 (15.59%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x22F000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x22F000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x22F000)
<- TX: BkCheckCrcCmnd(start=0x22F000, end=0x230000)
-> RX (4): BkCheckCrcResp(crc32=0xE48BBC56)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##########------------------------------------------------------]   16%  00:01:05Erasing and writing at 0x30000 (16.11%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x230000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x230000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x230000)
<- TX: BkCheckCrcCmnd(start=0x230000, end=0x231000)
-> RX (4): BkCheckCrcResp(crc32=0x30CFAC51)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##########------------------------------------------------------]   16%  00:01:04Erasing and writing at 0x31000 (16.63%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x231000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x231000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x231000)
<- TX: BkCheckCrcCmnd(start=0x231000, end=0x232000)
-> RX (4): BkCheckCrcResp(crc32=0xEDDBFF8B)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##########------------------------------------------------------]   17%  00:01:04Erasing and writing at 0x32000 (17.15%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x232000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x232000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x232000)
<- TX: BkCheckCrcCmnd(start=0x232000, end=0x233000)
-> RX (4): BkCheckCrcResp(crc32=0x849EDC3A)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###########-----------------------------------------------------]   17%  00:01:03Erasing and writing at 0x33000 (17.67%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x233000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x233000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x233000)
<- TX: BkCheckCrcCmnd(start=0x233000, end=0x234000)
-> RX (4): BkCheckCrcResp(crc32=0xD949A51F)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###########-----------------------------------------------------]   18%  00:01:03Erasing and writing at 0x34000 (18.19%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x234000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x234000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x234000)
<- TX: BkCheckCrcCmnd(start=0x234000, end=0x235000)
-> RX (4): BkCheckCrcResp(crc32=0x9FA1FAC9)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x35000 (18.71%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x235000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x235000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x235000)
<- TX: BkCheckCrcCmnd(start=0x235000, end=0x236000)
-> RX (4): BkCheckCrcResp(crc32=0x2336AD9B)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [############----------------------------------------------------]   19%  00:01:02Erasing and writing at 0x36000 (19.23%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x236000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x236000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x236000)
<- TX: BkCheckCrcCmnd(start=0x236000, end=0x237000)
-> RX (4): BkCheckCrcResp(crc32=0x6E2E65AA)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x37000 (19.75%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x237000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x237000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x237000)
<- TX: BkCheckCrcCmnd(start=0x237000, end=0x238000)
-> RX (4): BkCheckCrcResp(crc32=0x9304E25F)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [############----------------------------------------------------]   20%  00:01:01Erasing and writing at 0x38000 (20.27%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x238000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x238000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x238000)
<- TX: BkCheckCrcCmnd(start=0x238000, end=0x239000)
-> RX (4): BkCheckCrcResp(crc32=0xC769321F)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#############---------------------------------------------------]   20%  00:01:01Erasing and writing at 0x39000 (20.79%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x239000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x239000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x239000)
<- TX: BkCheckCrcCmnd(start=0x239000, end=0x23A000)
-> RX (4): BkCheckCrcResp(crc32=0xACDE752D)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#############---------------------------------------------------]   21%  00:01:01Erasing and writing at 0x3A000 (21.31%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x23A000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x23A000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x23A000)
<- TX: BkCheckCrcCmnd(start=0x23A000, end=0x23B000)
-> RX (4): BkCheckCrcResp(crc32=0xE8DC38A3)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#############---------------------------------------------------]   21%  00:01:00Erasing and writing at 0x3B000 (21.83%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x23B000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x23B000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x23B000)
<- TX: BkCheckCrcCmnd(start=0x23B000, end=0x23C000)
-> RX (4): BkCheckCrcResp(crc32=0x121C4A7F)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##############--------------------------------------------------]   22%  00:01:00Erasing and writing at 0x3C000 (22.35%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x23C000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x23C000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x23C000)
<- TX: BkCheckCrcCmnd(start=0x23C000, end=0x23D000)
-> RX (4): BkCheckCrcResp(crc32=0x66714B79)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##############--------------------------------------------------]   22%  00:00:59Erasing and writing at 0x3D000 (22.87%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x23D000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x23D000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x23D000)
<- TX: BkCheckCrcCmnd(start=0x23D000, end=0x23E000)
-> RX (4): BkCheckCrcResp(crc32=0x82A776A9)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##############--------------------------------------------------]   23%  00:00:59Erasing and writing at 0x3E000 (23.39%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x23E000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x23E000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x23E000)
<- TX: BkCheckCrcCmnd(start=0x23E000, end=0x23F000)
-> RX (4): BkCheckCrcResp(crc32=0x700239F5)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###############-------------------------------------------------]   23%  00:00:59Erasing and writing at 0x3F000 (23.91%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x23F000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x23F000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x23F000)
<- TX: BkCheckCrcCmnd(start=0x23F000, end=0x240000)
-> RX (4): BkCheckCrcResp(crc32=0x6680FB24)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###############-------------------------------------------------]   24%  00:00:58Erasing and writing at 0x40000 (24.43%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x240000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x240000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x240000)
<- TX: BkCheckCrcCmnd(start=0x240000, end=0x241000)
-> RX (4): BkCheckCrcResp(crc32=0x392DE9D3)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x41000 (24.95%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x241000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x241000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x241000)
<- TX: BkCheckCrcCmnd(start=0x241000, end=0x242000)
-> RX (4): BkCheckCrcResp(crc32=0x1364127D)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [################------------------------------------------------]   25%  00:00:57Erasing and writing at 0x42000 (25.47%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x242000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x242000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x242000)
<- TX: BkCheckCrcCmnd(start=0x242000, end=0x243000)
-> RX (4): BkCheckCrcResp(crc32=0xD147C120)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x43000 (25.99%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x243000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x243000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x243000)
<- TX: BkCheckCrcCmnd(start=0x243000, end=0x244000)
-> RX (4): BkCheckCrcResp(crc32=0x559F93CE)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [################------------------------------------------------]   26%  00:00:57Erasing and writing at 0x44000 (26.51%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x244000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x244000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x244000)
<- TX: BkCheckCrcCmnd(start=0x244000, end=0x245000)
-> RX (4): BkCheckCrcResp(crc32=0xB073BDFB)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#################-----------------------------------------------]   27%  00:00:56Erasing and writing at 0x45000 (27.03%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x245000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x245000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x245000)
<- TX: BkCheckCrcCmnd(start=0x245000, end=0x246000)
-> RX (4): BkCheckCrcResp(crc32=0x19EA157F)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x46000 (27.55%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x246000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x246000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x246000)
<- TX: BkCheckCrcCmnd(start=0x246000, end=0x247000)
-> RX (4): BkCheckCrcResp(crc32=0xD307BCA0)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#################-----------------------------------------------]   28%  00:00:55Erasing and writing at 0x47000 (28.07%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x247000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x247000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x247000)
<- TX: BkCheckCrcCmnd(start=0x247000, end=0x248000)
-> RX (4): BkCheckCrcResp(crc32=0xB75F216)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##################----------------------------------------------]   28%  00:00:55Erasing and writing at 0x48000 (28.59%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x248000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x248000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x248000)
<- TX: BkCheckCrcCmnd(start=0x248000, end=0x249000)
-> RX (4): BkCheckCrcResp(crc32=0x7FB893E3)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##################----------------------------------------------]   29%  00:00:55Erasing and writing at 0x49000 (29.11%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x249000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x249000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x249000)
<- TX: BkCheckCrcCmnd(start=0x249000, end=0x24A000)
-> RX (4): BkCheckCrcResp(crc32=0x6C3CA4FA)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##################----------------------------------------------]   29%  00:00:54Erasing and writing at 0x4A000 (29.63%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x24A000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x24A000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x24A000)
<- TX: BkCheckCrcCmnd(start=0x24A000, end=0x24B000)
-> RX (4): BkCheckCrcResp(crc32=0x5C2A93D0)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###################---------------------------------------------]   30%  00:00:54Erasing and writing at 0x4B000 (30.15%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x24B000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x24B000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x24B000)
<- TX: BkCheckCrcCmnd(start=0x24B000, end=0x24C000)
-> RX (4): BkCheckCrcResp(crc32=0x892F4D5F)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###################---------------------------------------------]   30%  00:00:53Erasing and writing at 0x4C000 (30.67%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x24C000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x24C000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x24C000)
<- TX: BkCheckCrcCmnd(start=0x24C000, end=0x24D000)
-> RX (4): BkCheckCrcResp(crc32=0x4B6C31FD)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###################---------------------------------------------]   31%  00:00:53Erasing and writing at 0x4D000 (31.19%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x24D000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x24D000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x24D000)
<- TX: BkCheckCrcCmnd(start=0x24D000, end=0x24E000)
-> RX (4): BkCheckCrcResp(crc32=0x16F33192)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [####################--------------------------------------------]   31%  00:00:53Erasing and writing at 0x4E000 (31.71%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x24E000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x24E000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x24E000)
<- TX: BkCheckCrcCmnd(start=0x24E000, end=0x24F000)
-> RX (4): BkCheckCrcResp(crc32=0xBF1BCEA7)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [####################--------------------------------------------]   32%  00:00:52Erasing and writing at 0x4F000 (32.23%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x24F000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x24F000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x24F000)
<- TX: BkCheckCrcCmnd(start=0x24F000, end=0x250000)
-> RX (4): BkCheckCrcResp(crc32=0x7086FB3A)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x50000 (32.75%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x250000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x250000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x250000)
<- TX: BkCheckCrcCmnd(start=0x250000, end=0x251000)
-> RX (4): BkCheckCrcResp(crc32=0x8B20BF05)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#####################-------------------------------------------]   33%  00:00:51Erasing and writing at 0x51000 (33.26%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x251000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x251000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x251000)
<- TX: BkCheckCrcCmnd(start=0x251000, end=0x252000)
-> RX (4): BkCheckCrcResp(crc32=0x623C0681)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x52000 (33.78%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x252000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x252000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x252000)
<- TX: BkCheckCrcCmnd(start=0x252000, end=0x253000)
-> RX (4): BkCheckCrcResp(crc32=0xFE1D9F72)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#####################-------------------------------------------]   34%  00:00:51Erasing and writing at 0x53000 (34.30%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x253000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x253000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x253000)
<- TX: BkCheckCrcCmnd(start=0x253000, end=0x254000)
-> RX (4): BkCheckCrcResp(crc32=0x26181FA7)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [######################------------------------------------------]   34%  00:00:50Erasing and writing at 0x54000 (34.82%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x254000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x254000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x254000)
<- TX: BkCheckCrcCmnd(start=0x254000, end=0x255000)
-> RX (4): BkCheckCrcResp(crc32=0xB4886B16)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [######################------------------------------------------]   35%  00:00:50Erasing and writing at 0x55000 (35.34%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x255000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x255000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x255000)
<- TX: BkCheckCrcCmnd(start=0x255000, end=0x256000)
-> RX (4): BkCheckCrcResp(crc32=0x1C8D59FD)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [######################------------------------------------------]   35%  00:00:49Erasing and writing at 0x56000 (35.86%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x256000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x256000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x256000)
<- TX: BkCheckCrcCmnd(start=0x256000, end=0x257000)
-> RX (4): BkCheckCrcResp(crc32=0x94490BB2)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#######################-----------------------------------------]   36%  00:00:49Erasing and writing at 0x57000 (36.38%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x257000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x257000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x257000)
<- TX: BkCheckCrcCmnd(start=0x257000, end=0x258000)
-> RX (4): BkCheckCrcResp(crc32=0xA02FFD83)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x58000 (36.90%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x258000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x258000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x258000)
<- TX: BkCheckCrcCmnd(start=0x258000, end=0x259000)
-> RX (4): BkCheckCrcResp(crc32=0x7BA2BE3F)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#######################-----------------------------------------]   37%  00:00:48Erasing and writing at 0x59000 (37.42%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x259000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x259000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x259000)
<- TX: BkCheckCrcCmnd(start=0x259000, end=0x25A000)
-> RX (4): BkCheckCrcResp(crc32=0x6DC9CF64)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [########################----------------------------------------]   37%  00:00:48Erasing and writing at 0x5A000 (37.94%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x25A000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x25A000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x25A000)
<- TX: BkCheckCrcCmnd(start=0x25A000, end=0x25B000)
-> RX (4): BkCheckCrcResp(crc32=0xE1F30845)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [########################----------------------------------------]   38%  00:00:47Erasing and writing at 0x5B000 (38.46%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x25B000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x25B000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x25B000)
<- TX: BkCheckCrcCmnd(start=0x25B000, end=0x25C000)
-> RX (4): BkCheckCrcResp(crc32=0x1F435424)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x5C000 (38.98%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x25C000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x25C000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x25C000)
<- TX: BkCheckCrcCmnd(start=0x25C000, end=0x25D000)
-> RX (4): BkCheckCrcResp(crc32=0xD33A55FB)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#########################---------------------------------------]   39%  00:00:47Erasing and writing at 0x5D000 (39.50%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x25D000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x25D000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x25D000)
<- TX: BkCheckCrcCmnd(start=0x25D000, end=0x25E000)
-> RX (4): BkCheckCrcResp(crc32=0x268F9A09)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#########################---------------------------------------]   40%  00:00:46Erasing and writing at 0x5E000 (40.02%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x25E000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x25E000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x25E000)
<- TX: BkCheckCrcCmnd(start=0x25E000, end=0x25F000)
-> RX (4): BkCheckCrcResp(crc32=0x2F8E28FD)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x5F000 (40.54%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x25F000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x25F000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x25F000)
<- TX: BkCheckCrcCmnd(start=0x25F000, end=0x260000)
-> RX (4): BkCheckCrcResp(crc32=0xD232DEA5)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##########################--------------------------------------]   41%  00:00:45Erasing and writing at 0x60000 (41.06%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x260000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x260000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x260000)
<- TX: BkCheckCrcCmnd(start=0x260000, end=0x261000)
-> RX (4): BkCheckCrcResp(crc32=0xC7FDBE9F)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x61000 (41.58%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x261000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x261000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x261000)
<- TX: BkCheckCrcCmnd(start=0x261000, end=0x262000)
-> RX (4): BkCheckCrcResp(crc32=0xAE96946A)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##########################--------------------------------------]   42%  00:00:45Erasing and writing at 0x62000 (42.10%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x262000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x262000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x262000)
<- TX: BkCheckCrcCmnd(start=0x262000, end=0x263000)
-> RX (4): BkCheckCrcResp(crc32=0x763A4F3D)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###########################-------------------------------------]   42%  00:00:44Erasing and writing at 0x63000 (42.62%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x263000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x263000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x263000)
<- TX: BkCheckCrcCmnd(start=0x263000, end=0x264000)
-> RX (4): BkCheckCrcResp(crc32=0x4B54DB76)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###########################-------------------------------------]   43%  00:00:44Erasing and writing at 0x64000 (43.14%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x264000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x264000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x264000)
<- TX: BkCheckCrcCmnd(start=0x264000, end=0x265000)
-> RX (4): BkCheckCrcResp(crc32=0x16D79C53)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###########################-------------------------------------]   43%  00:00:43Erasing and writing at 0x65000 (43.66%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x265000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x265000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x265000)
<- TX: BkCheckCrcCmnd(start=0x265000, end=0x266000)
-> RX (4): BkCheckCrcResp(crc32=0xF0BDD83C)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [############################------------------------------------]   44%  00:00:43Erasing and writing at 0x66000 (44.18%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x266000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x266000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x266000)
<- TX: BkCheckCrcCmnd(start=0x266000, end=0x267000)
-> RX (4): BkCheckCrcResp(crc32=0x3CE91C34)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [############################------------------------------------]   44%  00:00:42Erasing and writing at 0x67000 (44.70%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x267000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x267000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x267000)
<- TX: BkCheckCrcCmnd(start=0x267000, end=0x268000)
-> RX (4): BkCheckCrcResp(crc32=0xB1E3FB80)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [############################------------------------------------]   45%  00:00:42Erasing and writing at 0x68000 (45.22%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x268000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x268000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x268000)
<- TX: BkCheckCrcCmnd(start=0x268000, end=0x269000)
-> RX (4): BkCheckCrcResp(crc32=0xA4F164AC)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#############################-----------------------------------]   45%  00:00:42Erasing and writing at 0x69000 (45.74%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x269000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x269000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x269000)
<- TX: BkCheckCrcCmnd(start=0x269000, end=0x26A000)
-> RX (4): BkCheckCrcResp(crc32=0x8CB49CF7)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#############################-----------------------------------]   46%  00:00:41Erasing and writing at 0x6A000 (46.26%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x26A000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x26A000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x26A000)
<- TX: BkCheckCrcCmnd(start=0x26A000, end=0x26B000)
-> RX (4): BkCheckCrcResp(crc32=0x66C05C44)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x6B000 (46.78%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x26B000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x26B000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x26B000)
<- TX: BkCheckCrcCmnd(start=0x26B000, end=0x26C000)
-> RX (4): BkCheckCrcResp(crc32=0x9C81C3C8)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##############################----------------------------------]   47%  00:00:40Erasing and writing at 0x6C000 (47.30%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x26C000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x26C000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x26C000)
<- TX: BkCheckCrcCmnd(start=0x26C000, end=0x26D000)
-> RX (4): BkCheckCrcResp(crc32=0xE1623FD8)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x6D000 (47.82%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x26D000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x26D000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x26D000)
<- TX: BkCheckCrcCmnd(start=0x26D000, end=0x26E000)
-> RX (4): BkCheckCrcResp(crc32=0xAAAA16E4)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##############################----------------------------------]   48%  00:00:40Erasing and writing at 0x6E000 (48.34%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x26E000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x26E000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x26E000)
<- TX: BkCheckCrcCmnd(start=0x26E000, end=0x26F000)
-> RX (4): BkCheckCrcResp(crc32=0x78712E4A)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###############################---------------------------------]   48%  00:00:39Erasing and writing at 0x6F000 (48.86%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x26F000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x26F000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x26F000)
<- TX: BkCheckCrcCmnd(start=0x26F000, end=0x270000)
-> RX (4): BkCheckCrcResp(crc32=0x9E903011)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###############################---------------------------------]   49%  00:00:39Erasing and writing at 0x70000 (49.38%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x270000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x270000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x270000)
<- TX: BkCheckCrcCmnd(start=0x270000, end=0x271000)
-> RX (4): BkCheckCrcResp(crc32=0x9998C24E)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###############################---------------------------------]   49%  00:00:38Erasing and writing at 0x71000 (49.90%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x271000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x271000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x271000)
<- TX: BkCheckCrcCmnd(start=0x271000, end=0x272000)
-> RX (4): BkCheckCrcResp(crc32=0x104CF2E5)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [################################--------------------------------]   50%  00:00:38Erasing and writing at 0x72000 (50.42%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x272000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x272000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x272000)
<- TX: BkCheckCrcCmnd(start=0x272000, end=0x273000)
-> RX (4): BkCheckCrcResp(crc32=0xA675C5F0)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x73000 (50.94%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x273000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x273000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x273000)
<- TX: BkCheckCrcCmnd(start=0x273000, end=0x274000)
-> RX (4): BkCheckCrcResp(crc32=0xEAA7B126)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [################################--------------------------------]   51%  00:00:37Erasing and writing at 0x74000 (51.46%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x274000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x274000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x274000)
<- TX: BkCheckCrcCmnd(start=0x274000, end=0x275000)
-> RX (4): BkCheckCrcResp(crc32=0x1D99794F)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#################################-------------------------------]   51%  00:00:37Erasing and writing at 0x75000 (51.98%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x275000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x275000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x275000)
<- TX: BkCheckCrcCmnd(start=0x275000, end=0x276000)
-> RX (4): BkCheckCrcResp(crc32=0x8C08E9E1)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#################################-------------------------------]   52%  00:00:36Erasing and writing at 0x76000 (52.50%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x276000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x276000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x276000)
<- TX: BkCheckCrcCmnd(start=0x276000, end=0x277000)
-> RX (4): BkCheckCrcResp(crc32=0x825E8078)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#################################-------------------------------]   53%  00:00:36Erasing and writing at 0x77000 (53.02%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x277000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x277000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x277000)
<- TX: BkCheckCrcCmnd(start=0x277000, end=0x278000)
-> RX (4): BkCheckCrcResp(crc32=0x741AD471)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##################################------------------------------]   53%  00:00:36Erasing and writing at 0x78000 (53.54%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x278000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x278000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x278000)
<- TX: BkCheckCrcCmnd(start=0x278000, end=0x279000)
-> RX (4): BkCheckCrcResp(crc32=0x8134B122)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##################################------------------------------]   54%  00:00:35Erasing and writing at 0x79000 (54.06%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x279000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x279000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x279000)
<- TX: BkCheckCrcCmnd(start=0x279000, end=0x27A000)
-> RX (4): BkCheckCrcResp(crc32=0xCEC46620)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x7A000 (54.58%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x27A000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x27A000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x27A000)
<- TX: BkCheckCrcCmnd(start=0x27A000, end=0x27B000)
-> RX (4): BkCheckCrcResp(crc32=0x1A981B19)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###################################-----------------------------]   55%  00:00:34Erasing and writing at 0x7B000 (55.09%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x27B000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x27B000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x27B000)
<- TX: BkCheckCrcCmnd(start=0x27B000, end=0x27C000)
-> RX (4): BkCheckCrcResp(crc32=0x271A7569)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x7C000 (55.61%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x27C000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x27C000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x27C000)
<- TX: BkCheckCrcCmnd(start=0x27C000, end=0x27D000)
-> RX (4): BkCheckCrcResp(crc32=0xEA49A36E)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###################################-----------------------------]   56%  00:00:34Erasing and writing at 0x7D000 (56.13%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x27D000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x27D000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x27D000)
<- TX: BkCheckCrcCmnd(start=0x27D000, end=0x27E000)
-> RX (4): BkCheckCrcResp(crc32=0xBE050038)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [####################################----------------------------]   56%  00:00:33Erasing and writing at 0x7E000 (56.65%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x27E000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x27E000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x27E000)
<- TX: BkCheckCrcCmnd(start=0x27E000, end=0x27F000)
-> RX (4): BkCheckCrcResp(crc32=0x786CBBD0)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [####################################----------------------------]   57%  00:00:33Erasing and writing at 0x7F000 (57.17%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x27F000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x27F000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x27F000)
<- TX: BkCheckCrcCmnd(start=0x27F000, end=0x280000)
-> RX (4): BkCheckCrcResp(crc32=0xE0BE2D0)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [####################################----------------------------]   57%  00:00:32Erasing and writing at 0x80000 (57.69%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x280000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x280000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x280000)
<- TX: BkCheckCrcCmnd(start=0x280000, end=0x281000)
-> RX (4): BkCheckCrcResp(crc32=0x4D2FD6B)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#####################################---------------------------]   58%  00:00:32Erasing and writing at 0x81000 (58.21%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x281000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x281000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x281000)
<- TX: BkCheckCrcCmnd(start=0x281000, end=0x282000)
-> RX (4): BkCheckCrcResp(crc32=0xC18B175B)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x82000 (58.73%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x282000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x282000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x282000)
<- TX: BkCheckCrcCmnd(start=0x282000, end=0x283000)
-> RX (4): BkCheckCrcResp(crc32=0x3F91AA50)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#####################################---------------------------]   59%  00:00:31Erasing and writing at 0x83000 (59.25%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x283000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x283000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x283000)
<- TX: BkCheckCrcCmnd(start=0x283000, end=0x284000)
-> RX (4): BkCheckCrcResp(crc32=0x328780DF)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [######################################--------------------------]   59%  00:00:31Erasing and writing at 0x84000 (59.77%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x284000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x284000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x284000)
<- TX: BkCheckCrcCmnd(start=0x284000, end=0x285000)
-> RX (4): BkCheckCrcResp(crc32=0xC303EA65)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [######################################--------------------------]   60%  00:00:30Erasing and writing at 0x85000 (60.29%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x285000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x285000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x285000)
<- TX: BkCheckCrcCmnd(start=0x285000, end=0x286000)
-> RX (4): BkCheckCrcResp(crc32=0x34D8FB4E)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x86000 (60.81%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x286000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x286000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x286000)
<- TX: BkCheckCrcCmnd(start=0x286000, end=0x287000)
-> RX (4): BkCheckCrcResp(crc32=0x8786C5A4)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#######################################-------------------------]   61%  00:00:30Erasing and writing at 0x87000 (61.33%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x287000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x287000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x287000)
<- TX: BkCheckCrcCmnd(start=0x287000, end=0x288000)
-> RX (4): BkCheckCrcResp(crc32=0xD8A27E79)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#######################################-------------------------]   61%  00:00:29Erasing and writing at 0x88000 (61.85%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x288000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x288000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x288000)
<- TX: BkCheckCrcCmnd(start=0x288000, end=0x289000)
-> RX (4): BkCheckCrcResp(crc32=0xCC3FA3CF)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#######################################-------------------------]   62%  00:00:29Erasing and writing at 0x89000 (62.37%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x289000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x289000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x289000)
<- TX: BkCheckCrcCmnd(start=0x289000, end=0x28A000)
-> RX (4): BkCheckCrcResp(crc32=0xF6F175E5)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [########################################------------------------]   62%  00:00:28Erasing and writing at 0x8A000 (62.89%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x28A000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x28A000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x28A000)
<- TX: BkCheckCrcCmnd(start=0x28A000, end=0x28B000)
-> RX (4): BkCheckCrcResp(crc32=0xA31F5160)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [########################################------------------------]   63%  00:00:28Erasing and writing at 0x8B000 (63.41%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x28B000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x28B000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x28B000)
<- TX: BkCheckCrcCmnd(start=0x28B000, end=0x28C000)
-> RX (4): BkCheckCrcResp(crc32=0x3F53E6F3)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x8C000 (63.93%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x28C000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x28C000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x28C000)
<- TX: BkCheckCrcCmnd(start=0x28C000, end=0x28D000)
-> RX (4): BkCheckCrcResp(crc32=0x859802B3)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#########################################-----------------------]   64%  00:00:27Erasing and writing at 0x8D000 (64.45%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x28D000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x28D000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x28D000)
<- TX: BkCheckCrcCmnd(start=0x28D000, end=0x28E000)
-> RX (4): BkCheckCrcResp(crc32=0x3FB79DF3)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x8E000 (64.97%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x28E000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x28E000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x28E000)
<- TX: BkCheckCrcCmnd(start=0x28E000, end=0x28F000)
-> RX (4): BkCheckCrcResp(crc32=0xE518599C)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#########################################-----------------------]   65%  00:00:26Erasing and writing at 0x8F000 (65.49%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x28F000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x28F000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x28F000)
<- TX: BkCheckCrcCmnd(start=0x28F000, end=0x290000)
-> RX (4): BkCheckCrcResp(crc32=0x1072565A)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##########################################----------------------]   66%  00:00:26Erasing and writing at 0x90000 (66.01%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x290000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x290000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x290000)
<- TX: BkCheckCrcCmnd(start=0x290000, end=0x291000)
-> RX (4): BkCheckCrcResp(crc32=0x1C345926)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##########################################----------------------]   66%  00:00:25Erasing and writing at 0x91000 (66.53%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x291000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x291000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x291000)
<- TX: BkCheckCrcCmnd(start=0x291000, end=0x292000)
-> RX (4): BkCheckCrcResp(crc32=0x5FDD6544)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##########################################----------------------]   67%  00:00:25Erasing and writing at 0x92000 (67.05%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x292000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x292000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x292000)
<- TX: BkCheckCrcCmnd(start=0x292000, end=0x293000)
-> RX (4): BkCheckCrcResp(crc32=0x34534170)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###########################################---------------------]   67%  00:00:25Erasing and writing at 0x93000 (67.57%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x293000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x293000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x293000)
<- TX: BkCheckCrcCmnd(start=0x293000, end=0x294000)
-> RX (4): BkCheckCrcResp(crc32=0x8CD35B3E)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###########################################---------------------]   68%  00:00:24Erasing and writing at 0x94000 (68.09%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x294000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x294000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x294000)
<- TX: BkCheckCrcCmnd(start=0x294000, end=0x295000)
-> RX (4): BkCheckCrcResp(crc32=0x2812D4ED)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x95000 (68.61%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x295000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x295000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x295000)
<- TX: BkCheckCrcCmnd(start=0x295000, end=0x296000)
-> RX (4): BkCheckCrcResp(crc32=0xB210593C)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [############################################--------------------]   69%  00:00:23Erasing and writing at 0x96000 (69.13%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x296000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x296000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x296000)
<- TX: BkCheckCrcCmnd(start=0x296000, end=0x297000)
-> RX (4): BkCheckCrcResp(crc32=0x4EAA5421)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x97000 (69.65%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x297000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x297000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x297000)
<- TX: BkCheckCrcCmnd(start=0x297000, end=0x298000)
-> RX (4): BkCheckCrcResp(crc32=0xBF7CF66A)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [############################################--------------------]   70%  00:00:23Erasing and writing at 0x98000 (70.17%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x298000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x298000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x298000)
<- TX: BkCheckCrcCmnd(start=0x298000, end=0x299000)
-> RX (4): BkCheckCrcResp(crc32=0x3D0DA4C7)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#############################################-------------------]   70%  00:00:22Erasing and writing at 0x99000 (70.69%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x299000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x299000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x299000)
<- TX: BkCheckCrcCmnd(start=0x299000, end=0x29A000)
-> RX (4): BkCheckCrcResp(crc32=0xC02F8EF6)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#############################################-------------------]   71%  00:00:22Erasing and writing at 0x9A000 (71.21%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x29A000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x29A000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x29A000)
<- TX: BkCheckCrcCmnd(start=0x29A000, end=0x29B000)
-> RX (4): BkCheckCrcResp(crc32=0x738E4E3F)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#############################################-------------------]   71%  00:00:21Erasing and writing at 0x9B000 (71.73%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x29B000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x29B000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x29B000)
<- TX: BkCheckCrcCmnd(start=0x29B000, end=0x29C000)
-> RX (4): BkCheckCrcResp(crc32=0x35433B2)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##############################################------------------]   72%  00:00:21Erasing and writing at 0x9C000 (72.25%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x29C000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x29C000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x29C000)
<- TX: BkCheckCrcCmnd(start=0x29C000, end=0x29D000)
-> RX (4): BkCheckCrcResp(crc32=0x33880899)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0x9D000 (72.77%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x29D000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x29D000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x29D000)
<- TX: BkCheckCrcCmnd(start=0x29D000, end=0x29E000)
-> RX (4): BkCheckCrcResp(crc32=0xADA0E782)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##############################################------------------]   73%  00:00:20Erasing and writing at 0x9E000 (73.29%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x29E000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x29E000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x29E000)
<- TX: BkCheckCrcCmnd(start=0x29E000, end=0x29F000)
-> RX (4): BkCheckCrcResp(crc32=0xCEDC1F76)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###############################################-----------------]   73%  00:00:20Erasing and writing at 0x9F000 (73.81%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x29F000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x29F000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x29F000)
<- TX: BkCheckCrcCmnd(start=0x29F000, end=0x2A0000)
-> RX (4): BkCheckCrcResp(crc32=0xFFBAF268)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###############################################-----------------]   74%  00:00:19Erasing and writing at 0xA0000 (74.33%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2A0000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2A0000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2A0000)
<- TX: BkCheckCrcCmnd(start=0x2A0000, end=0x2A1000)
-> RX (4): BkCheckCrcResp(crc32=0x28FD0903)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0xA1000 (74.85%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2A1000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2A1000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2A1000)
<- TX: BkCheckCrcCmnd(start=0x2A1000, end=0x2A2000)
-> RX (4): BkCheckCrcResp(crc32=0xBF4DA2F9)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [################################################----------------]   75%  00:00:19Erasing and writing at 0xA2000 (75.37%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2A2000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2A2000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2A2000)
<- TX: BkCheckCrcCmnd(start=0x2A2000, end=0x2A3000)
-> RX (4): BkCheckCrcResp(crc32=0x9BCF52E9)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [################################################----------------]   75%  00:00:18Erasing and writing at 0xA3000 (75.89%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2A3000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2A3000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2A3000)
<- TX: BkCheckCrcCmnd(start=0x2A3000, end=0x2A4000)
-> RX (4): BkCheckCrcResp(crc32=0x2C7F99FD)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [################################################----------------]   76%  00:00:18Erasing and writing at 0xA4000 (76.41%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2A4000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2A4000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2A4000)
<- TX: BkCheckCrcCmnd(start=0x2A4000, end=0x2A5000)
-> RX (4): BkCheckCrcResp(crc32=0xA1E62008)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#################################################---------------]   76%  00:00:17Erasing and writing at 0xA5000 (76.92%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2A5000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2A5000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2A5000)
<- TX: BkCheckCrcCmnd(start=0x2A5000, end=0x2A6000)
-> RX (4): BkCheckCrcResp(crc32=0x823965F6)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#################################################---------------]   77%  00:00:17Erasing and writing at 0xA6000 (77.44%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2A6000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2A6000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2A6000)
<- TX: BkCheckCrcCmnd(start=0x2A6000, end=0x2A7000)
-> RX (4): BkCheckCrcResp(crc32=0xEDB97748)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0xA7000 (77.96%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2A7000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2A7000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2A7000)
<- TX: BkCheckCrcCmnd(start=0x2A7000, end=0x2A8000)
-> RX (4): BkCheckCrcResp(crc32=0xE59F9078)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##################################################--------------]   78%  00:00:16Erasing and writing at 0xA8000 (78.48%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2A8000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2A8000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2A8000)
<- TX: BkCheckCrcCmnd(start=0x2A8000, end=0x2A9000)
-> RX (4): BkCheckCrcResp(crc32=0x9B8A132E)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0xA9000 (79.00%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2A9000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2A9000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2A9000)
<- TX: BkCheckCrcCmnd(start=0x2A9000, end=0x2AA000)
-> RX (4): BkCheckCrcResp(crc32=0xC08F883E)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##################################################--------------]   79%  00:00:15Erasing and writing at 0xAA000 (79.52%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2AA000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2AA000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2AA000)
<- TX: BkCheckCrcCmnd(start=0x2AA000, end=0x2AB000)
-> RX (4): BkCheckCrcResp(crc32=0xCAD0491A)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###################################################-------------]   80%  00:00:15Erasing and writing at 0xAB000 (80.04%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2AB000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2AB000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2AB000)
<- TX: BkCheckCrcCmnd(start=0x2AB000, end=0x2AC000)
-> RX (4): BkCheckCrcResp(crc32=0x27674696)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0xAC000 (80.56%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2AC000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2AC000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2AC000)
<- TX: BkCheckCrcCmnd(start=0x2AC000, end=0x2AD000)
-> RX (4): BkCheckCrcResp(crc32=0xD8DA9E76)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###################################################-------------]   81%  00:00:14Erasing and writing at 0xAD000 (81.08%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2AD000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2AD000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2AD000)
<- TX: BkCheckCrcCmnd(start=0x2AD000, end=0x2AE000)
-> RX (4): BkCheckCrcResp(crc32=0x848BAE17)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [####################################################------------]   81%  00:00:14Erasing and writing at 0xAE000 (81.60%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2AE000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2AE000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2AE000)
<- TX: BkCheckCrcCmnd(start=0x2AE000, end=0x2AF000)
-> RX (4): BkCheckCrcResp(crc32=0xFB7B1ACA)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [####################################################------------]   82%  00:00:13Erasing and writing at 0xAF000 (82.12%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2AF000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2AF000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2AF000)
<- TX: BkCheckCrcCmnd(start=0x2AF000, end=0x2B0000)
-> RX (4): BkCheckCrcResp(crc32=0xCF311244)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0xB0000 (82.64%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2B0000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2B0000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2B0000)
<- TX: BkCheckCrcCmnd(start=0x2B0000, end=0x2B1000)
-> RX (4): BkCheckCrcResp(crc32=0xA7DE7CB2)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#####################################################-----------]   83%  00:00:13Erasing and writing at 0xB1000 (83.16%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2B1000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2B1000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2B1000)
<- TX: BkCheckCrcCmnd(start=0x2B1000, end=0x2B2000)
-> RX (4): BkCheckCrcResp(crc32=0xBCDF3129)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#####################################################-----------]   83%  00:00:12Erasing and writing at 0xB2000 (83.68%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2B2000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2B2000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2B2000)
<- TX: BkCheckCrcCmnd(start=0x2B2000, end=0x2B3000)
-> RX (4): BkCheckCrcResp(crc32=0x99A4417C)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#####################################################-----------]   84%  00:00:12Erasing and writing at 0xB3000 (84.20%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2B3000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2B3000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2B3000)
<- TX: BkCheckCrcCmnd(start=0x2B3000, end=0x2B4000)
-> RX (4): BkCheckCrcResp(crc32=0xC23C7E50)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [######################################################----------]   84%  00:00:11Erasing and writing at 0xB4000 (84.72%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2B4000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2B4000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2B4000)
<- TX: BkCheckCrcCmnd(start=0x2B4000, end=0x2B5000)
-> RX (4): BkCheckCrcResp(crc32=0xA55EC0A1)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [######################################################----------]   85%  00:00:11Erasing and writing at 0xB5000 (85.24%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2B5000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2B5000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2B5000)
<- TX: BkCheckCrcCmnd(start=0x2B5000, end=0x2B6000)
-> RX (4): BkCheckCrcResp(crc32=0xE9ABBD5C)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0xB6000 (85.76%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2B6000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2B6000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2B6000)
<- TX: BkCheckCrcCmnd(start=0x2B6000, end=0x2B7000)
-> RX (4): BkCheckCrcResp(crc32=0x4F7DCABE)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#######################################################---------]   86%  00:00:10Erasing and writing at 0xB7000 (86.28%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2B7000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2B7000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2B7000)
<- TX: BkCheckCrcCmnd(start=0x2B7000, end=0x2B8000)
-> RX (4): BkCheckCrcResp(crc32=0x12C1A6EE)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0xB8000 (86.80%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2B8000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2B8000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2B8000)
<- TX: BkCheckCrcCmnd(start=0x2B8000, end=0x2B9000)
-> RX (4): BkCheckCrcResp(crc32=0x1BCC0C78)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#######################################################---------]   87%  00:00:09Erasing and writing at 0xB9000 (87.32%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2B9000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2B9000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2B9000)
<- TX: BkCheckCrcCmnd(start=0x2B9000, end=0x2BA000)
-> RX (4): BkCheckCrcResp(crc32=0x27457A8F)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [########################################################--------]   87%  00:00:09Erasing and writing at 0xBA000 (87.84%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2BA000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2BA000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2BA000)
<- TX: BkCheckCrcCmnd(start=0x2BA000, end=0x2BB000)
-> RX (4): BkCheckCrcResp(crc32=0x22184C1E)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [########################################################--------]   88%  00:00:09Erasing and writing at 0xBB000 (88.36%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2BB000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2BB000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2BB000)
<- TX: BkCheckCrcCmnd(start=0x2BB000, end=0x2BC000)
-> RX (4): BkCheckCrcResp(crc32=0x49973041)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [########################################################--------]   88%  00:00:08Erasing and writing at 0xBC000 (88.88%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2BC000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2BC000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2BC000)
<- TX: BkCheckCrcCmnd(start=0x2BC000, end=0x2BD000)
-> RX (4): BkCheckCrcResp(crc32=0x74DFBF12)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#########################################################-------]   89%  00:00:08Erasing and writing at 0xBD000 (89.40%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2BD000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2BD000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2BD000)
<- TX: BkCheckCrcCmnd(start=0x2BD000, end=0x2BE000)
-> RX (4): BkCheckCrcResp(crc32=0x51AF1E43)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#########################################################-------]   89%  00:00:07Erasing and writing at 0xBE000 (89.92%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2BE000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2BE000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2BE000)
<- TX: BkCheckCrcCmnd(start=0x2BE000, end=0x2BF000)
-> RX (4): BkCheckCrcResp(crc32=0xFEF7CBA9)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#########################################################-------]   90%  00:00:07Erasing and writing at 0xBF000 (90.44%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2BF000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2BF000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2BF000)
<- TX: BkCheckCrcCmnd(start=0x2BF000, end=0x2C0000)
-> RX (4): BkCheckCrcResp(crc32=0x39E2829)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##########################################################------]   90%  00:00:07Erasing and writing at 0xC0000 (90.96%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2C0000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2C0000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2C0000)
<- TX: BkCheckCrcCmnd(start=0x2C0000, end=0x2C1000)
-> RX (4): BkCheckCrcResp(crc32=0xDC4AFDF8)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##########################################################------]   91%  00:00:06Erasing and writing at 0xC1000 (91.48%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2C1000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2C1000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2C1000)
<- TX: BkCheckCrcCmnd(start=0x2C1000, end=0x2C2000)
-> RX (4): BkCheckCrcResp(crc32=0xC4729641)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0xC2000 (92.00%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2C2000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2C2000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2C2000)
<- TX: BkCheckCrcCmnd(start=0x2C2000, end=0x2C3000)
-> RX (4): BkCheckCrcResp(crc32=0x98336162)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###########################################################-----]   92%  00:00:05Erasing and writing at 0xC3000 (92.52%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2C3000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2C3000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2C3000)
<- TX: BkCheckCrcCmnd(start=0x2C3000, end=0x2C4000)
-> RX (4): BkCheckCrcResp(crc32=0x2FFCA637)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###########################################################-----]   93%  00:00:05Erasing and writing at 0xC4000 (93.04%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2C4000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2C4000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2C4000)
<- TX: BkCheckCrcCmnd(start=0x2C4000, end=0x2C5000)
-> RX (4): BkCheckCrcResp(crc32=0x62C35E8E)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0xC5000 (93.56%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2C5000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2C5000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2C5000)
<- TX: BkCheckCrcCmnd(start=0x2C5000, end=0x2C6000)
-> RX (4): BkCheckCrcResp(crc32=0x6BECBF1E)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [############################################################----]   94%  00:00:04Erasing and writing at 0xC6000 (94.08%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2C6000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2C6000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2C6000)
<- TX: BkCheckCrcCmnd(start=0x2C6000, end=0x2C7000)
-> RX (4): BkCheckCrcResp(crc32=0xA78C55E0)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0xC7000 (94.60%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2C7000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2C7000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2C7000)
<- TX: BkCheckCrcCmnd(start=0x2C7000, end=0x2C8000)
-> RX (4): BkCheckCrcResp(crc32=0x21B45A66)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [############################################################----]   95%  00:00:03Erasing and writing at 0xC8000 (95.12%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2C8000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2C8000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2C8000)
<- TX: BkCheckCrcCmnd(start=0x2C8000, end=0x2C9000)
-> RX (4): BkCheckCrcResp(crc32=0xFDD8D4E0)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#############################################################---]   95%  00:00:03Erasing and writing at 0xC9000 (95.64%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2C9000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2C9000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2C9000)
<- TX: BkCheckCrcCmnd(start=0x2C9000, end=0x2CA000)
-> RX (4): BkCheckCrcResp(crc32=0x22715C20)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [#############################################################---]   96%  00:00:02Erasing and writing at 0xCA000 (96.16%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2CA000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2CA000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2CA000)
<- TX: BkCheckCrcCmnd(start=0x2CA000, end=0x2CB000)
-> RX (4): BkCheckCrcResp(crc32=0x4AE04DBF)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0xCB000 (96.68%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2CB000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2CB000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2CB000)
<- TX: BkCheckCrcCmnd(start=0x2CB000, end=0x2CC000)
-> RX (4): BkCheckCrcResp(crc32=0xA540E04B)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##############################################################--]   97%  00:00:02Erasing and writing at 0xCC000 (97.20%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2CC000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2CC000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2CC000)
<- TX: BkCheckCrcCmnd(start=0x2CC000, end=0x2CD000)
-> RX (4): BkCheckCrcResp(crc32=0xD6F7CDAA)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##############################################################--]   97%  00:00:01Erasing and writing at 0xCD000 (97.72%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2CD000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2CD000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2CD000)
<- TX: BkCheckCrcCmnd(start=0x2CD000, end=0x2CE000)
-> RX (4): BkCheckCrcResp(crc32=0x507BDE87)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [##############################################################--]   98%  00:00:01Erasing and writing at 0xCE000 (98.24%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2CE000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2CE000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2CE000)
<- TX: BkCheckCrcCmnd(start=0x2CE000, end=0x2CF000)
-> RX (4): BkCheckCrcResp(crc32=0x424CA1C)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###############################################################-]   98%  00:00:00Erasing and writing at 0xCF000 (98.75%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2CF000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2CF000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2CF000)
<- TX: BkCheckCrcCmnd(start=0x2CF000, end=0x2D0000)
-> RX (4): BkCheckCrcResp(crc32=0xA93CD471)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Writing (0x011000)  [###############################################################-]   99%  00:00:00Erasing and writing at 0xD0000 (99.27%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2D0000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2D0000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2D0000)
<- TX: BkCheckCrcCmnd(start=0x2D0000, end=0x2D1000)
-> RX (4): BkCheckCrcResp(crc32=0xBD9DEBD8)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Erasing and writing at 0xD1000 (99.79%)
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x2D1000)
-> RX (6): Response check OK
<- TX: BkFlashWrite4KCmnd(start=0x2D1000, data=bytes(4096))
-> RX (5): Response check OK
-> RX (5): BkFlashWrite4KResp(status=0, start=0x2D1000)
<- TX: BkCheckCrcCmnd(start=0x2D1000, end=0x2D2000)
-> RX (4): BkCheckCrcResp(crc32=0xE3FB225A)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
Verifying CRC
The current command timeout of 1.0 second(s) is too low for reading 790528 bytes CRC. Increasing to 2 second(s).
<- TX: BkCheckCrcCmnd(start=0x211000, end=0x2D2000)
-> RX (4): BkCheckCrcResp(crc32=0x2CE0F28D)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
OK!
Writing (0x129F0A)  [###############################################################-]   99%  00:00:00Writing unaligned data...
<- TX: BkFlashEraseBlockCmnd(erase_size=32, start=0x329000)
-> RX (6): Response check OK
<- TX: BkFlashWriteCmnd(start=0x329F0A, [...]
-> RX (6): Response check OK
-> RX (6): BkFlashWriteResp(status=0, start=0x329F0A, written=102)
<- TX: BkCheckCrcCmnd(start=0x329F0A, end=0x329F70)
-> RX (4): BkCheckCrcResp(crc32=0xFFFFFFFF)
<- TX: BkLinkCheckCmnd()
-> RX (1): BkLinkCheckResp(value=0)
ValueError: Chip CRC value 0 does not match calculated CRC value 1DFBE182
|-- File "/Users/sredni/.local/pipx/venvs/ltchiptool/lib/python3.12/site-packages/bk7231tools/serial/cmd_ll_chip.py", line 73, in check_crc

@prokoma
Copy link
Contributor

prokoma commented Dec 17, 2024

It seems like ltchiptool is trying to write out of bounds of the flash (start=0x329F0A), could you please share the uf2 file?

@Cossid
Copy link

Cossid commented Dec 17, 2024

Technically, all of its write are out of bounds by 0x200000 and wrap around as a work-around for protected areas, so 0x329F0A becomes 0x129F0A

It seems all bk7231t uf2 files have this issue, including the kickstart bin; https://github.com/libretiny-eu/esphome-kickstart/releases/download/v23.12.15/kickstart-bk7231t-2023-12-15.uf2

@prokoma
Copy link
Contributor

prokoma commented Dec 17, 2024

It would be helpful to read the flash back to determine whether something was actually written at 0x329F0A and the error is in the CRC command or if the write itself also failed.

@Cossid
Copy link

Cossid commented Dec 17, 2024

I'll try to do so as time allows, will be sometime today. Feel free to join the discord channel for discussion as well; https://discord.com/channels/967863521511608370/1146821147644657734

When this happens, we do know that the write of the app partition offset is actually successful, and the device does reboot to it. There is a different BK7231T issue with bin files though (or at least used to be, but I don't remember how to verify/reproduce that at the moment).

@kuba2k2
Copy link
Member

kuba2k2 commented Dec 17, 2024

The device indeed responds with a CRC value of 0xFFFFFFFF (or 0 if inversed). The logs are really helpful in this case.

Looking at the disassembly for BK7231S_1.0.5, there seems to be a problem with unaligned access to the flash. In particular, it reads chunks of 256 bytes into RAM, then calculates the CRC. It can't read properly if the addresses are not aligned.

      crc_start = v1[1] | (v1[2] << 8) | (v1[3] << 16) | (v1[4] << 24);
      crc_end = v1[5] | (v1[6] << 8) | (v1[7] << 16) | (v1[8] << 24);
      crc_init_table();
      v6 = 0;
      v7 = crc_end - crc_start + 1;
      while ( v6 < v7 >> 8 )
      {
        flash_read(&bufa, crc_start, 256);
        crc_value = crc_calc(crc_value, &bufa, 0x100u);
        crc_start += 256;
        v6 = (v6 + 1) & 0xFFFEFFFF;
      }
      flash_protect_maybe(1);
      *v16 = crc_value;
      v16[2] = BYTE2(crc_value);
      v16[3] = HIBYTE(crc_value);
      cmd = uart_write_response(16, 8, v16);

Fixing this will require a change in bk7231tools, which also accounts for the unaligned data writing when checking the CRC.

@Cossid
Copy link

Cossid commented Dec 17, 2024

Here is the before and after. Before is a Tuya devboard stock firmware. I wrote the same https://github.com/libretiny-eu/esphome-kickstart/releases/download/v23.12.15/kickstart-bk7231t-2023-12-15.uf2 kickstart uf2 file.

Full backup of device before uf2 write: wb3s-pre-uf2.zip
log of writing uf2 file with CRC error: kickstart_uf2_write_log.txt
log of reading post-uf2 write: kickstart_post_uf2_write_read_log.txt
full backup of device post-uf2 write: wb3s-post-uf2.zip

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants