From 3f4d9d09ec5458bdddbe1dc19023d499cf5bdb88 Mon Sep 17 00:00:00 2001 From: "DESKTOP-M9CCUTI\\ian" Date: Mon, 26 Aug 2024 17:56:49 +0200 Subject: [PATCH] remove any gpio_pull_down in BP6 due to bug in rp2350. Cleanup for compile. --- binmode/binmodes.c | 1 - binmode/logicanalyzer.c | 2 +- commands/spi/sniff.c | 6 +++--- lib/pico_ir_nec/nec_transmit.c | 3 ++- lib/picorvd/picoswio.c | 4 +++- mode/hw2wire.c | 2 +- mode/hwi2c.c | 2 +- mode/hwled.c | 5 +++-- pirate/hw1wire.pio | 3 +++ pirate/hw2wire.pio | 3 +++ pirate/hw2wire_pio.h | 2 +- pirate/hwi2c.pio | 4 +++- pirate/hwi2c_pio.c | 10 ++++------ pirate/hwuart.pio | 4 +++- pirate/hwuart_pio.c | 6 +++--- 15 files changed, 34 insertions(+), 23 deletions(-) diff --git a/binmode/binmodes.c b/binmode/binmodes.c index 47284f0..6bbbf58 100644 --- a/binmode/binmodes.c +++ b/binmode/binmodes.c @@ -44,7 +44,6 @@ const binmode_t binmodes[] = { .binmode_cleanup = falaio_cleanup, }, }; -}; inline void binmode_setup(void){ if(binmodes[system_config.binmode_select].lock_terminal){ diff --git a/binmode/logicanalyzer.c b/binmode/logicanalyzer.c index 24d8ab4..57521fe 100644 --- a/binmode/logicanalyzer.c +++ b/binmode/logicanalyzer.c @@ -167,7 +167,7 @@ void restart_dma() { dma_channel_configure(la_dma[i], &la_dma_config, (volatile uint8_t*)&la_buf[DMA_BYTES_PER_CHUNK * i], - &pio->rxf[pio_config.sm], + &pio_config.pio->rxf[pio_config.sm], DMA_BYTES_PER_CHUNK, false); } diff --git a/commands/spi/sniff.c b/commands/spi/sniff.c index d01bfac..951d0a6 100644 --- a/commands/spi/sniff.c +++ b/commands/spi/sniff.c @@ -54,7 +54,7 @@ bool pio_read(uint32_t *raw){ return false; } // 8-bit read from the uppermost byte of the FIFO, as data is left-justified - (*raw) = pio->rxf[pio_config.sm]; + (*raw) = pio_config.pio->rxf[pio_config.sm]; //TODO: change this based on UART settings //Detect parity error? return true; @@ -65,7 +65,7 @@ bool pio_read_d1(uint32_t *raw){ return false; } // 8-bit read from the uppermost byte of the FIFO, as data is left-justified - (*raw) = pio->rxf[pio_config_d1.sm]; + (*raw) = pio_config_d1.pio->rxf[pio_config_d1.sm]; //TODO: change this based on UART settings //Detect parity error? return true; @@ -82,7 +82,7 @@ void sniff_handler(struct command_result *res){ printf("PIO: pio=%d, sm=%d, offset=%d\r\n", PIO_NUM(pio_config.pio), pio_config.sm, pio_config.offset); spisnif_program_init(pio_config.pio, pio_config.sm, pio_config.offset, bio2bufiopin[BIO3], bio2bufiopin[BIO0], bio2bufiopin[BIO2]); - bool success = pio_claim_free_sm_and_add_program_for_gpio_range(&spisnif_2_program, &pio_config_d1.pio, &pio_config_d1.sm, &pio_config_d1.offset, bio2bufiopin[BIO0], 3, true); + success = pio_claim_free_sm_and_add_program_for_gpio_range(&spisnif_2_program, &pio_config_d1.pio, &pio_config_d1.sm, &pio_config_d1.offset, bio2bufiopin[BIO0], 3, true); hard_assert(success); printf("PIO: pio=%d, sm=%d, offset=%d\r\n", PIO_NUM(pio_config_d1.pio), pio_config_d1.sm, pio_config_d1.offset); spisnif_2_program_init(pio_config_d1.pio, pio_config_d1.sm, pio_config_d1.offset, bio2bufiopin[BIO3], bio2bufiopin[BIO1], bio2bufiopin[BIO2]); diff --git a/lib/pico_ir_nec/nec_transmit.c b/lib/pico_ir_nec/nec_transmit.c index 055c996..9efc999 100644 --- a/lib/pico_ir_nec/nec_transmit.c +++ b/lib/pico_ir_nec/nec_transmit.c @@ -11,6 +11,7 @@ #include "hardware/pio.h" #include "hardware/clocks.h" // for clock_get_hz() #include "nec_transmit.h" +#include "pirate.h" // import the assembled PIO state machine programs #include "nec_carrier_burst.pio.h" @@ -44,7 +45,7 @@ int nec_tx_init(uint pin_num) { 38.222e3); // 38.222 kHz carrier // install the carrier_control program in the PIO shared instruction space - bool success = pio_claim_free_sm_and_add_program_for_gpio_range(&nec_carrier_control_program, &pio_config_control.pio, &pio_config_control.sm, &pio_config_control.offset, pin_num, 1, true); + success = pio_claim_free_sm_and_add_program_for_gpio_range(&nec_carrier_control_program, &pio_config_control.pio, &pio_config_control.sm, &pio_config_control.offset, pin_num, 1, true); hard_assert(success); if(!success) { return -1; diff --git a/lib/picorvd/picoswio.c b/lib/picorvd/picoswio.c index c5f751d..f747b4a 100644 --- a/lib/picorvd/picoswio.c +++ b/lib/picorvd/picoswio.c @@ -70,7 +70,9 @@ void ch32vswio_reset(int pin, int dirpin) { // 125 mhz / 12 = 96 nanoseconds per tick, close enough to 100 ns. sm_config_set_clkdiv (&c, 12); - //gpio_pull_down(pin); + #if BP_VER==5 + gpio_pull_down(pin); + #endif pio_sm_set_pindirs_with_mask(pio_config.pio, pio_config.sm, 0, (1u<rxf[pio_config_rx.sm]; + (*raw) = pio_config_rx.pio->rxf[pio_config_rx.sm]; //TODO: change this based on UART settings //Detect parity error? (*cooked) = (uint8_t)((*raw) >> 22); //MSB is the parity bit...