diff --git a/src/js/port_handler.js b/src/js/port_handler.js index 7b2fd9e2..4496777e 100644 --- a/src/js/port_handler.js +++ b/src/js/port_handler.js @@ -11,6 +11,7 @@ const TIMEOUT_CHECK = 500 ; // With 250 it seems that it produces a memory leak export const usbDevices = { filters: [ {'vendorId': 1155, 'productId': 57105}, // STM Device in DFU Mode || Digital Radio in USB mode {'vendorId': 10473, 'productId': 393}, // GD32 DFU Bootloader + {'vendorId': 0x2E3C, 'productId': 0xDF11}, // AT32F435 DFU Bootloader ] }; const PortHandler = new function () { diff --git a/src/js/protocols/stm32usbdfu.js b/src/js/protocols/stm32usbdfu.js index 90345a0f..482f9805 100644 --- a/src/js/protocols/stm32usbdfu.js +++ b/src/js/protocols/stm32usbdfu.js @@ -346,10 +346,18 @@ STM32DFU_protocol.prototype.getChipInfo = function (_interface, callback) { // H750 SPRacing H7 EXST: "@External Flash /0x90000000/1001*128Kg,3*128Kg,20*128Ka" - Early BL firmware with incorrect string, treat as above. // H750 Partitions: Flash, Config, Firmware, 1x BB Management block + x BB Replacement blocks) + // AT32 F437 "@Internal Flash /0x08000000/08*04Ka,1000*04Kg" if (str === "@External Flash /0x90000000/1001*128Kg,3*128Kg,20*128Ka") { str = "@External Flash /0x90000000/998*128Kg,1*128Kg,4*128Kg,21*128Ka"; } - + //AT32F43xxM + if (str === "@Option byte /0x1FFFC000/01*4096 g"){ + str = "@Option bytes /0x1FFFC000/01*4096 g"; + } + //AT32F43xxG + if (str === "@Option byte /0x1FFFC000/01*512 g"){ + str = "@Option bytes /0x1FFFC000/01*512 g"; + } // split main into [location, start_addr, sectors] var tmp0 = str.replace(/[^\x20-\x7E]+/g, ""); diff --git a/src/js/serial.js b/src/js/serial.js index 009ceb6d..4cd1f7fb 100644 --- a/src/js/serial.js +++ b/src/js/serial.js @@ -28,6 +28,7 @@ const serial = { {'vendorId': 4292, 'productId': 60000}, // CP210x {'vendorId': 4292, 'productId': 60001}, // CP210x {'vendorId': 4292, 'productId': 60002}, // CP210x + {'vendorId': 0x2e3c, 'productId': 0x5740}, // AT32 VCP ], connect: function (path, options, callback) {