ch32-rs / wchisp

WCH ISP Tool in Rust
https://ch32-rs.github.io/wchisp/
GNU General Public License v2.0
166 stars 28 forks source link

Works great on wch552 [bootloader 2.50] #14

Open prosper00 opened 2 years ago

prosper00 commented 2 years ago

$wchisp flash ws2812.bin

19:54:06 [INFO] Found USB Device Bus 001 Device 044: ID 4348:55e0
19:54:06 [DEBUG] (1) wchisp::transport: => a11200   00004d4355204953502026205743482e434e
19:54:06 [DEBUG] (1) wchisp::transport: <= a1140200 5211
19:54:06 [DEBUG] (1) wchisp::flashing: found chip: CH552[0x5211]
19:54:06 [DEBUG] (1) wchisp::transport: => a70200   1f00
19:54:06 [DEBUG] (1) wchisp::transport: <= a7141a00 1f00ffffffff23000000ff521414000205001f7b000000000000
19:54:06 [DEBUG] (1) wchisp::flashing: read_config: ffffffff23000000ff521414000205001f7b000000000000
19:54:06 [INFO] Chip: CH552[0x5211] (Code Flash: 14KiB, Data EEPROM: 0KiB)
19:54:06 [INFO] Chip UID: 1f-7b-00-00-00-00-00-00
19:54:06 [INFO] BTVER(bootloader ver): 02.50
19:54:06 [DEBUG] (1) wchisp::transport: => a70200   0700
19:54:06 [DEBUG] (1) wchisp::transport: <= a7140e00 0700ffffffff23000000ff521414
REVERSED: 0xFFFFFFFF
WPROTECT: 0x00000023
  [0:0] NO_KEY_SERIAL_DOWNLOAD 0b1 (0x1)
    `- Enable
  [1:1] DOWNLOAD_CFG 0b1 (0x1)
    `- P4.6 / P15 / P3.6(Default set)
GLOBAL_CFG: 0x141452FF
  [15:15] CODE_PROTECT 0b0 (0x0)
    `- Forbid code & data protection
  [14:14] NO_BOOT_LOAD 0b1 (0x1)
    `- Boot from 0xf400 Bootloader
  [13:13] EN_LONG_RESET 0b0 (0x0)
    `- Short reset
  [12:12] XT_OSC_STRONG 0b1 (0x1)
    `- Enhanced
  [11:11] EN_P5.7_RESET 0b0 (0x0)
    `- Forbid
  [10:10] EN_P0_PULLUP 0b0 (0x0)
    `- Forbid
  [9:8] RESERVED 0b10 (0x2)
    `- Default
  [7:0] RESERVED 0b11111111 (0xFF)
    `- Default
19:54:06 [INFO] Read ws2812.bin as Binary format
19:54:06 [WARN] erase_code: set min number of erased sectors to 8
19:54:06 [DEBUG] (1) wchisp::transport: => a40400   08000000
19:54:06 [DEBUG] (1) wchisp::transport: <= a4140200 0000
19:54:06 [INFO] Erased 8 code flash sectors
19:54:07 [INFO] Erase done
19:54:07 [INFO] Firmware size: 1024
19:54:07 [DEBUG] (1) wchisp::transport: => a31e00   000000000000000000000000000000000000000000000000000000000000
19:54:07 [DEBUG] (1) wchisp::transport: <= a3140200 2200
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   000000001c989a9c989bd9ef6d918898077f18faef989a99e39a73deecfa81e09a0a983b9499ef3a9a7e09684f92229a989f3a43184068ef3a657ee213
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   38000000bf6c4267e29a72deecfa90e39aef3a9a0869934266e29972a89afa96e39b0a9aec7e6a394266436099928eef939a989aefe59a159c74ef6aef
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   70000000713e9e64a90f7a6702be9a6477ae9a670993fa89ee992f93ee1a96ee9f2f93986c9fee9c2f939c31e4e69a1a9ee19ae6ec14181719716a15ea
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   a80000009074ef6a993e64a9797a6774be9a6477d89a67ee9b2f93986c89ee992f93981ae0ee9e2f93981a9f989c2f939c3192e6ec1a9ee19ae69a146e
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   e00000001b1719716a159c74996a993ebe9864a9797a6774be9a6477d89a67ee982f93986c89ee9e2f93981ae0ee9f2f93981a9f989c2f939c3192e6ec
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   18010000c31a9ee19ae69a146e1719716a95259becca99989af03493939a1418151939efe69d15918898fd346e1493b8889b340aec9f889b44889bfcfe
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   50010000cf9af2ef909aef91ecef189b889bea0aed6e889b441a73c97f96c90845d909bace30181f90181f916f7a39e192480f9aeca9080f9a9a580f37
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   8801000037697a39e192480fec9aa9080f9a9a587941697a39e19248799a9aa9080f9a9a2e0f41694051b8ef4dcfef3b30ee62cf55de9c6f23ef3b9ace
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   c0010000493418351974d5faf99f3b9f3b9f3b9f4d9f3b9f3b9f3b8452659b851a7db8346e351974d5fa8f0aef725a9d5a9c889b2c4a9c4a9d842465ed
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   f8010000d4851a7db83418356f8a03981a61140362181519b88a02986c613403e59a14186319b87f90df91faaae09b7f90bf7a6fe67f91a9da886f9109
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   3002000048180f907f190f91ac99901a7c597f91ff6f917f90896f902f7f180f906f6a7f6f0f91da9f6f191f1c18597f91896f910990896f90407bb82e
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   68020000264f7f19aa7d9748397e590f186f187e79196f197f91aa7de77e590f906f907e79916f91889880aa39917e590f186f18080f196f19b8ef18ec
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   a002000044b89a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   d8020000a39a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   100300009e9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   48030000f59a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   80030000829a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a53d00   b8030000009a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a51500   f00300001a9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 0000
19:54:07 [DEBUG] (1) wchisp::transport: => a50500   0004000033
19:54:07 [DEBUG] (1) wchisp::transport: <= a5140200 fe00
19:54:07 [INFO] Code flash 1024 bytes written
19:54:09 [DEBUG] (1) wchisp::transport: => a31e00   000000000000000000000000000000000000000000000000000000000000
19:54:09 [DEBUG] (1) wchisp::transport: <= a3140200 2200
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   0000000033989a9c989bd9ef6d918898077f18faef989a99e39a73deecfa81e09a0a983b9499ef3a9a7e09684f92229a989f3a43184068ef3a657ee213
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   38000000626c4267e29a72deecfa90e39aef3a9a0869934266e29972a89afa96e39b0a9aec7e6a394266436099928eef939a989aefe59a159c74ef6aef
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   700000002f3e9e64a90f7a6702be9a6477ae9a670993fa89ee992f93ee1a96ee9f2f93986c9fee9c2f939c31e4e69a1a9ee19ae6ec14181719716a15ea
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   a80000000974ef6a993e64a9797a6774be9a6477d89a67ee9b2f93986c89ee992f93981ae0ee9e2f93981a9f989c2f939c3192e6ec1a9ee19ae69a146e
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   e00000008a1719716a159c74996a993ebe9864a9797a6774be9a6477d89a67ee982f93986c89ee9e2f93981ae0ee9f2f93981a9f989c2f939c3192e6ec
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   18010000ea1a9ee19ae69a146e1719716a95259becca99989af03493939a1418151939efe69d15918898fd346e1493b8889b340aec9f889b44889bfcfe
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   50010000e29af2ef909aef91ecef189b889bea0aed6e889b441a73c97f96c90845d909bace30181f90181f916f7a39e192480f9aeca9080f9a9a580f37
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   88010000ea697a39e192480fec9aa9080f9a9a587941697a39e19248799a9aa9080f9a9a2e0f41694051b8ef4dcfef3b30ee62cf55de9c6f23ef3b9ace
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   c0010000763418351974d5faf99f3b9f3b9f3b9f4d9f3b9f3b9f3b8452659b851a7db8346e351974d5fa8f0aef725a9d5a9c889b2c4a9c4a9d842465ed
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   f8010000f7851a7db83418356f8a03981a61140362181519b88a02986c613403e59a14186319b87f90df91faaae09b7f90bf7a6fe67f91a9da886f9109
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   30020000e7180f907f190f91ac99901a7c597f91ff6f917f90896f902f7f180f906f6a7f6f0f91da9f6f191f1c18597f91896f910990896f90407bb82e
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   68020000404f7f19aa7d9748397e590f186f187e79196f197f91aa7de77e590f906f907e79916f91889880aa39917e590f186f18080f196f19b8ef18ec
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   a002000023b89a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   d8020000049a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   10030000729a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   48030000919a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   80030000db9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a63d00   b80300007e9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:09 [DEBUG] (1) wchisp::transport: => a61500   f00300002b9a9a9a9a9a9a9aec9a9a9a9a9a9a9aec
19:54:09 [DEBUG] (1) wchisp::transport: <= a6140200 0000
19:54:10 [INFO] Verify OK
19:54:10 [INFO] Now reset device and skip any communication errors
19:54:10 [DEBUG] (1) wchisp::transport: => a20100   01