diff --git a/examples/sandbox/sandbox.c b/examples/sandbox/sandbox.c index 9a50ccce1593883c43885eee6339491ce01d0373..05365be064812c3b7366d21e686c4742e3f78b5d 100644 --- a/examples/sandbox/sandbox.c +++ b/examples/sandbox/sandbox.c @@ -8,15 +8,6 @@ // Working on WS2812 driving. - -static inline uint32_t __get_dscratch0(void) -{ - uint32_t result; - - __ASM volatile("csrr %0," "0x7b2": "=r"(result)); - return (result); -} - int main() { SystemInit48HSI(); diff --git a/minichlink/Makefile b/minichlink/Makefile index 777467a49e72f978c0871a1e1c5e54e23d10c1fb..5706a90ef536e4f396db4b089916757a2145103f 100644 --- a/minichlink/Makefile +++ b/minichlink/Makefile @@ -1,4 +1,4 @@ -TOOLS:=wch_erase wch_reset wch_write_simple minichlink +TOOLS:=wch_erase wch_reset wch_write_simple wch_printf minichlink all : $(TOOLS) @@ -9,6 +9,8 @@ wch_erase : wch_erase.c gcc -o $@ $^ $(LDFLAGS) $(CFLAGS) wch_reset : wch_reset.c gcc -o $@ $^ $(LDFLAGS) $(CFLAGS) +wch_printf : wch_printf.c + gcc -o $@ $^ $(LDFLAGS) $(CFLAGS) wch_write_simple : wch_write_simple.c gcc -o $@ $^ $(LDFLAGS) $(CFLAGS) minichlink : minichlink.c diff --git a/minichlink/wch_printf.c b/minichlink/wch_printf.c new file mode 100644 index 0000000000000000000000000000000000000000..1d78ee8befd5eb0d9ea5deb226dabfee5615beec --- /dev/null +++ b/minichlink/wch_printf.c @@ -0,0 +1,35 @@ +#include <stdio.h> +#include "wch_link_base.h" + +// TESTED + +int main() +{ + libusb_device_handle * devh = wch_link_base_setup(); + + // Issue reset +// wch_link_command( devh, "\x81\x0b\x01\x01", 4, 0, 0, 0 ); + // Why does db[1] = 6 appear to be some sort of query? + // Also 0x0b appears to be a query. But it wrecks up the chip. + // db[1] = 0xd DOES WRITE TO 0xe0000000. But is it predictable? + // DO NOT 0x0f! + unsigned char databuff[11] = { 0x81, 0x0d, 0x08, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; + unsigned char rbuff[1024]; + int i, j; + for( i = 1; i < 20; i++ ) + for( j = 1; j < 20; j++ ) + { + databuff[2] = i; + databuff[3] = j; + int transferred; + wch_link_command( devh, databuff, 11, &transferred, rbuff, 1024 ); + int k; + printf( "%d, %d: %d: ", i, j, transferred ); + for( k = 0; k < transferred; k++ ) printf( "%02x ", rbuff[k] ); + printf( "\n" ); + usleep(10000); + } + + // Close out. + wch_link_command( devh, "\x81\x0d\x01\xff", 4, 0, 0, 0 ); +}