diff --git a/ch32v003fun/ch32v003fun.c b/ch32v003fun/ch32v003fun.c index d472c7df6809f9bd17a96c698d204763459d27f2..137455e00b6ff83a5db7a2edc71de46b6ad379f1 100644 --- a/ch32v003fun/ch32v003fun.c +++ b/ch32v003fun/ch32v003fun.c @@ -875,7 +875,7 @@ int _write(int fd, const char *buf, int size) remain =- tosend; } } -#endif + void SetupDebugPrintf() { @@ -884,6 +884,8 @@ void SetupDebugPrintf() } +#endif + void DelaySysTick( uint32_t n ) { SysTick->SR &= ~(1 << 0); diff --git a/examples/blink/blink.bin b/examples/blink/blink.bin index 9d0751d4d385d8b2e2346a9ab16e20ca1628a5d8..94a16b43785731553baa6a65a8ab89e0914b9772 100755 Binary files a/examples/blink/blink.bin and b/examples/blink/blink.bin differ diff --git a/examples/blink/blink.c b/examples/blink/blink.c index 450893e40ac7bebb8955555270d681339470eadf..ea936900bafe0447bad995a5d187431f8ddea486 100644 --- a/examples/blink/blink.c +++ b/examples/blink/blink.c @@ -22,9 +22,9 @@ int main() while(1) { GPIOD->BSHR = 1; // Turn on GPIOD0 - Delay_Ms( 50 ); + Delay_Ms( 200 ); GPIOD->BSHR = 1<<16; // Turn off GPIOD0 - Delay_Ms( 50 ); + Delay_Ms( 200 ); count++; } } diff --git a/minichlink/pgm-wch-linke.c b/minichlink/pgm-wch-linke.c index 5fa2adef92ccfd312185fedbb571a13384771a52..da38118989beacf961d29edde9fc8ed4b830eaf3 100644 --- a/minichlink/pgm-wch-linke.c +++ b/minichlink/pgm-wch-linke.c @@ -195,7 +195,7 @@ printf( " 5: %d\n", bOn ); static int LEUnbrick( void * dev ) { printf( "Sending unbrick\n" ); - wch_link_command( (libusb_device_handle *)dev, "\x81\x0d\x01\x0f\x09", 5, 0, 0, 0 ); + wch_link_command( (libusb_device_handle *)dev, "\x81\x0d\x01\x0f\x09", 5, 0, 0, 0 ); printf( "Done unbrick\n" ); return 0; } @@ -206,6 +206,7 @@ static int LEHaltMode( void * d, int mode ) if( mode == 0 ) { + printf( "Holding in reset\n" ); // Part one "immediately" places the part into reset. Part 2 says when we're done, leave part in reset. wch_link_multicommands( (libusb_device_handle *)dev, 2, 4, "\x81\x0d\x01\x02", 4, "\x81\x0d\x01\x01" ); } @@ -236,10 +237,13 @@ static int LEConfigureNRSTAsGPIO( void * d, int one_if_yes_gpio ) return 0; } + static int LEReadBinaryBlob( void * d, uint32_t offset, uint32_t amount, uint8_t * readbuff ) { libusb_device_handle * dev = ((struct LinkEProgrammerStruct*)d)->devh; + LEHaltMode( d, 0 ); + int i; int status; uint8_t rbuff[1024]; @@ -296,6 +300,8 @@ static int LEWriteBinaryBlob( void * d, uint32_t address_to_write, uint32_t len, { libusb_device_handle * dev = ((struct LinkEProgrammerStruct*)d)->devh; + LEHaltMode( d, 0 ); + int i; int status; uint8_t rbuff[1024];