From 72cd014f9d7807a6f8a8f3cfd00d3778475eebb3 Mon Sep 17 00:00:00 2001 From: Alexander Mandera <alexander@mandera.eu> Date: Wed, 21 Jun 2023 23:05:53 +0200 Subject: [PATCH] Use binary blob write for whole 20x/30x series --- minichlink/minichlink.exe | Bin 96768 -> 96768 bytes minichlink/pgm-wch-linke.c | 12 +++++++----- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/minichlink/minichlink.exe b/minichlink/minichlink.exe index 7034dcb07c5309422647494d2c5e417d0f30dac0..41c7a0961ea714c1698c7f42a519ef9283b9b923 100644 GIT binary patch delta 15126 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 delta 14946 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μ!}-b)m$WhKojVDrF6sKIK?y_o4wam_H$z#@$v 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 diff --git a/minichlink/pgm-wch-linke.c b/minichlink/pgm-wch-linke.c index dd6bb6a..6034f24 100644 --- a/minichlink/pgm-wch-linke.c +++ b/minichlink/pgm-wch-linke.c @@ -236,11 +236,13 @@ static int LESetupInterface( void * d ) return -1; } - uint32_t target_chip_type = ( rbuff[4] << 4) + (rbuff[5] >> 4); - fprintf(stderr, "Chip Type: %03x\n", target_chip_type); - if( target_chip_type == 0x307 || target_chip_type == 0x203 ) + uint32_t mcu_series = rbuff[4] << 4; + uint32_t target_chip_type = mcu_series + (rbuff[5] >> 4); + fprintf(stderr, "Chip Type: %03x\n", target_chip_type); + + if( mcu_series == 0x300 || mcu_series == 0x200 ) { - fprintf( stderr, "CH32V307 or CH32V203 Detected. Allowing old-flash-mode for operation.\n" ); + fprintf( stderr, "CH32V30x or CH32V20x MCU detected. Using binary blob write for operation.\n" ); MCF.WriteBinaryBlob = LEWriteBinaryBlob; iss->sector_size = 256; @@ -401,7 +403,7 @@ void * TryInit_WCHLinkE() #if 1 -// In case you are using a non-CH32V003 board. +// Flash Bootloader for V20x and V30x series MCUs const uint8_t * bootloader = (const uint8_t*) "\x93\x77\x15\x00\x41\x11\x99\xcf\xb7\x06\x67\x45\xb7\x27\x02\x40" \ -- GitLab