From e3241415961a641aabfaa629aacf8fcd6e1681e0 Mon Sep 17 00:00:00 2001 From: cnlohr <lohr85@gmail.com> Date: Sun, 12 Mar 2023 08:08:36 -0400 Subject: [PATCH] Get everything in line. Just need to fix functionality on Link-E --- ch32v003fun/ch32v003fun.c | 4 +++- examples/blink/blink.bin | Bin 468 -> 468 bytes examples/blink/blink.c | 4 ++-- minichlink/pgm-wch-linke.c | 8 +++++++- 4 files changed, 12 insertions(+), 4 deletions(-) diff --git a/ch32v003fun/ch32v003fun.c b/ch32v003fun/ch32v003fun.c index d472c7d..137455e 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 GIT binary patch delta 18 acmcb@e1&<!YW8p;24Qyg9~(C*F#-TQ*ai6j delta 18 acmcb@e1&<!YWC?Y48rW}b{jV-F#-TPY6Wos diff --git a/examples/blink/blink.c b/examples/blink/blink.c index 450893e..ea93690 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 5fa2ade..da38118 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]; -- GitLab