diff --git a/.gitignore b/.gitignore index 449fc15f746d0797925a51a746d8f7fa0a2b4227..b56264024e9f393f86ba06d2418e24078af823ac 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ *.lst *.bin *.map +minichlink/minichlink +minichlink/minichlink.so diff --git a/examples/spi_24L01_rx/ch32v003_SPI.h b/examples/spi_24L01_rx/ch32v003_SPI.h index 522ec90566ae3db8d36fd5b675296377bd91ea3a..7f30a051583a07ed3f417202fbd54ebefd7395b3 100644 --- a/examples/spi_24L01_rx/ch32v003_SPI.h +++ b/examples/spi_24L01_rx/ch32v003_SPI.h @@ -127,31 +127,31 @@ _Static_assert(SPI_CLK_PRESCALER >= 0 && SPI_CLK_PRESCALER <= 7, "SPI_CLK_PRESCA #endif #if ((defined(CH32V003_SPI_CLK_MODE_POL0_PHA0) ? 1 : 0) + \ - (defined(CH32V003_SPI_CLK_MODE_POL0_PHA1) ? 1 : 0) + \ - (defined(CH32V003_SPI_CLK_MODE_POL1_PHA0) ? 1 : 0) + \ - (defined(CH32V003_SPI_CLK_MODE_POL1_PHA1) ? 1 : 0)) > 1 - #warning "more than one of the CH32V003_SPI_CLK_MODE_ options were defined!" + (defined(CH32V003_SPI_CLK_MODE_POL0_PHA1) ? 1 : 0) + \ + (defined(CH32V003_SPI_CLK_MODE_POL1_PHA0) ? 1 : 0) + \ + (defined(CH32V003_SPI_CLK_MODE_POL1_PHA1) ? 1 : 0)) > 1 + #warning "more than one of the CH32V003_SPI_CLK_MODE_ options were defined!" #endif #if ((defined(CH32V003_SPI_CLK_MODE_POL0_PHA0) ? 1 : 0) + \ - (defined(CH32V003_SPI_CLK_MODE_POL0_PHA1) ? 1 : 0) + \ - (defined(CH32V003_SPI_CLK_MODE_POL1_PHA0) ? 1 : 0) + \ - (defined(CH32V003_SPI_CLK_MODE_POL1_PHA1) ? 1 : 0)) == 0 - #warning "none of the CH32V003_SPI_CLK_MODE_ options were defined!" + (defined(CH32V003_SPI_CLK_MODE_POL0_PHA1) ? 1 : 0) + \ + (defined(CH32V003_SPI_CLK_MODE_POL1_PHA0) ? 1 : 0) + \ + (defined(CH32V003_SPI_CLK_MODE_POL1_PHA1) ? 1 : 0)) == 0 + #warning "none of the CH32V003_SPI_CLK_MODE_ options were defined!" #endif #if ((defined(CH32V003_SPI_NSS_HARDWARE_PC0) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_HARDWARE_PC1) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_SOFTWARE_PC3) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_SOFTWARE_PC4) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_SOFTWARE_ANY_MANUAL) ? 1 : 0)) > 1 - #warning "more than one of the CH32V003_SPI_NSS_ options were defined!" + (defined(CH32V003_SPI_NSS_HARDWARE_PC1) ? 1 : 0) + \ + (defined(CH32V003_SPI_NSS_SOFTWARE_PC3) ? 1 : 0) + \ + (defined(CH32V003_SPI_NSS_SOFTWARE_PC4) ? 1 : 0) + \ + (defined(CH32V003_SPI_NSS_SOFTWARE_ANY_MANUAL) ? 1 : 0)) > 1 + #warning "more than one of the CH32V003_SPI_NSS_ options were defined!" #endif #if ((defined(CH32V003_SPI_NSS_HARDWARE_PC0) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_HARDWARE_PC1) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_SOFTWARE_PC3) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_SOFTWARE_PC4) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_SOFTWARE_ANY_MANUAL) ? 1 : 0)) == 0 - #warning "none of the CH32V003_SPI_NSS_ options were defined!" + (defined(CH32V003_SPI_NSS_HARDWARE_PC1) ? 1 : 0) + \ + (defined(CH32V003_SPI_NSS_SOFTWARE_PC3) ? 1 : 0) + \ + (defined(CH32V003_SPI_NSS_SOFTWARE_PC4) ? 1 : 0) + \ + (defined(CH32V003_SPI_NSS_SOFTWARE_ANY_MANUAL) ? 1 : 0)) == 0 + #warning "none of the CH32V003_SPI_NSS_ options were defined!" #endif @@ -318,17 +318,13 @@ static inline void restore_interrupts() { //######## small internal function definitions, static inline static inline void SPI_wait_TX_complete() { - while(!(SPI1->STATR & SPI_STATR_TXE)) { - asm volatile("nop"); - } + while(!(SPI1->STATR & SPI_STATR_TXE)) {} } static inline uint8_t SPI_is_RX_empty() { return SPI1->STATR & SPI_STATR_RXNE; } static inline void SPI_wait_RX_available() { - while(!(SPI1->STATR & SPI_STATR_RXNE)) { - asm volatile("nop"); - } + while(!(SPI1->STATR & SPI_STATR_RXNE)) {} } diff --git a/examples/spi_24L01_tx/ch32v003_SPI.h b/examples/spi_24L01_tx/ch32v003_SPI.h index 522ec90566ae3db8d36fd5b675296377bd91ea3a..7f30a051583a07ed3f417202fbd54ebefd7395b3 100644 --- a/examples/spi_24L01_tx/ch32v003_SPI.h +++ b/examples/spi_24L01_tx/ch32v003_SPI.h @@ -127,31 +127,31 @@ _Static_assert(SPI_CLK_PRESCALER >= 0 && SPI_CLK_PRESCALER <= 7, "SPI_CLK_PRESCA #endif #if ((defined(CH32V003_SPI_CLK_MODE_POL0_PHA0) ? 1 : 0) + \ - (defined(CH32V003_SPI_CLK_MODE_POL0_PHA1) ? 1 : 0) + \ - (defined(CH32V003_SPI_CLK_MODE_POL1_PHA0) ? 1 : 0) + \ - (defined(CH32V003_SPI_CLK_MODE_POL1_PHA1) ? 1 : 0)) > 1 - #warning "more than one of the CH32V003_SPI_CLK_MODE_ options were defined!" + (defined(CH32V003_SPI_CLK_MODE_POL0_PHA1) ? 1 : 0) + \ + (defined(CH32V003_SPI_CLK_MODE_POL1_PHA0) ? 1 : 0) + \ + (defined(CH32V003_SPI_CLK_MODE_POL1_PHA1) ? 1 : 0)) > 1 + #warning "more than one of the CH32V003_SPI_CLK_MODE_ options were defined!" #endif #if ((defined(CH32V003_SPI_CLK_MODE_POL0_PHA0) ? 1 : 0) + \ - (defined(CH32V003_SPI_CLK_MODE_POL0_PHA1) ? 1 : 0) + \ - (defined(CH32V003_SPI_CLK_MODE_POL1_PHA0) ? 1 : 0) + \ - (defined(CH32V003_SPI_CLK_MODE_POL1_PHA1) ? 1 : 0)) == 0 - #warning "none of the CH32V003_SPI_CLK_MODE_ options were defined!" + (defined(CH32V003_SPI_CLK_MODE_POL0_PHA1) ? 1 : 0) + \ + (defined(CH32V003_SPI_CLK_MODE_POL1_PHA0) ? 1 : 0) + \ + (defined(CH32V003_SPI_CLK_MODE_POL1_PHA1) ? 1 : 0)) == 0 + #warning "none of the CH32V003_SPI_CLK_MODE_ options were defined!" #endif #if ((defined(CH32V003_SPI_NSS_HARDWARE_PC0) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_HARDWARE_PC1) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_SOFTWARE_PC3) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_SOFTWARE_PC4) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_SOFTWARE_ANY_MANUAL) ? 1 : 0)) > 1 - #warning "more than one of the CH32V003_SPI_NSS_ options were defined!" + (defined(CH32V003_SPI_NSS_HARDWARE_PC1) ? 1 : 0) + \ + (defined(CH32V003_SPI_NSS_SOFTWARE_PC3) ? 1 : 0) + \ + (defined(CH32V003_SPI_NSS_SOFTWARE_PC4) ? 1 : 0) + \ + (defined(CH32V003_SPI_NSS_SOFTWARE_ANY_MANUAL) ? 1 : 0)) > 1 + #warning "more than one of the CH32V003_SPI_NSS_ options were defined!" #endif #if ((defined(CH32V003_SPI_NSS_HARDWARE_PC0) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_HARDWARE_PC1) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_SOFTWARE_PC3) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_SOFTWARE_PC4) ? 1 : 0) + \ - (defined(CH32V003_SPI_NSS_SOFTWARE_ANY_MANUAL) ? 1 : 0)) == 0 - #warning "none of the CH32V003_SPI_NSS_ options were defined!" + (defined(CH32V003_SPI_NSS_HARDWARE_PC1) ? 1 : 0) + \ + (defined(CH32V003_SPI_NSS_SOFTWARE_PC3) ? 1 : 0) + \ + (defined(CH32V003_SPI_NSS_SOFTWARE_PC4) ? 1 : 0) + \ + (defined(CH32V003_SPI_NSS_SOFTWARE_ANY_MANUAL) ? 1 : 0)) == 0 + #warning "none of the CH32V003_SPI_NSS_ options were defined!" #endif @@ -318,17 +318,13 @@ static inline void restore_interrupts() { //######## small internal function definitions, static inline static inline void SPI_wait_TX_complete() { - while(!(SPI1->STATR & SPI_STATR_TXE)) { - asm volatile("nop"); - } + while(!(SPI1->STATR & SPI_STATR_TXE)) {} } static inline uint8_t SPI_is_RX_empty() { return SPI1->STATR & SPI_STATR_RXNE; } static inline void SPI_wait_RX_available() { - while(!(SPI1->STATR & SPI_STATR_RXNE)) { - asm volatile("nop"); - } + while(!(SPI1->STATR & SPI_STATR_RXNE)) {} } diff --git a/minichlink/Makefile b/minichlink/Makefile index 0bd37d30107a55504282a51cafd0406d905875f9..3174e25e7356b806edc9db82dbbf3df337c8c04a 100644 --- a/minichlink/Makefile +++ b/minichlink/Makefile @@ -1,3 +1,5 @@ +OS_NAME := $(shell uname -s | tr A-Z a-z) + TOOLS:=minichlink minichlink.so all : $(TOOLS) @@ -10,10 +12,9 @@ C_S:=minichlink.c pgm-wch-linke.c pgm-esp32s2-ch32xx.c nhc-link042.c minichgdb.c # gdb-multilib {file} # target remote :2345 -ifeq ($(OS),Windows_NT) +ifeq ($(OS_name),windows_nt) LDFLAGS:=-lpthread -lusb-1.0 -lsetupapi else - OS_NAME := $(shell uname -s | tr A-Z a-z) ifeq ($(OS_NAME),linux) LDFLAGS:=-lpthread -lusb-1.0 -ludev endif diff --git a/minichlink/minichlink b/minichlink/minichlink index a92dfebdada0201b544bdc5af27e805a982cdd2e..4b0988b3f6f037bd908ea57b3750560f358eb0ca 100755 Binary files a/minichlink/minichlink and b/minichlink/minichlink differ diff --git a/minichlink/minichlink.so b/minichlink/minichlink.so index fe8f83436cbd1b3c09671ae6664a96cb12fb9cf8..ae7792b02a59af59d0675effbaa7bf97f790ac06 100755 Binary files a/minichlink/minichlink.so and b/minichlink/minichlink.so differ