From 452dd07575a118f29a0dfa712deeb18e92ffb1f4 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Fri, 28 Jan 2022 09:20:29 -0800 Subject: [PATCH] drivers: Fix type of radio timeout parameter Move from uint16_t to AO_TICK_TYPE. Also add explicit casts to quiet remaining -Wconversion messages. Signed-off-by: Keith Packard --- src/drivers/ao_cc1120.c | 36 ++++++++++++++++---------------- src/drivers/ao_cc1120_CC1120.h | 2 +- src/drivers/ao_cc1200.c | 38 +++++++++++++++++----------------- src/drivers/ao_cc1200_CC1200.h | 2 +- 4 files changed, 39 insertions(+), 39 deletions(-) diff --git a/src/drivers/ao_cc1120.c b/src/drivers/ao_cc1120.c index 1ebc0ea2..133f9803 100644 --- a/src/drivers/ao_cc1120.c +++ b/src/drivers/ao_cc1120.c @@ -69,12 +69,12 @@ ao_radio_reg_read(uint16_t addr) data[0] = ((1 << CC1120_READ) | (0 << CC1120_BURST) | CC1120_EXTENDED); - data[1] = addr; + data[1] = (uint8_t) addr; d = 2; } else { data[0] = ((1 << CC1120_READ) | (0 << CC1120_BURST) | - addr); + (uint8_t) addr); d = 1; } ao_radio_select(); @@ -100,12 +100,12 @@ ao_radio_reg_write(uint16_t addr, uint8_t value) data[0] = ((0 << CC1120_READ) | (0 << CC1120_BURST) | CC1120_EXTENDED); - data[1] = addr; + data[1] = (uint8_t) addr; d = 2; } else { data[0] = ((0 << CC1120_READ) | (0 << CC1120_BURST) | - addr); + (uint8_t) addr); d = 1; } data[d] = value; @@ -127,7 +127,7 @@ _ao_radio_burst_read_start (uint16_t addr) addr |= ((1 << CC1120_READ) | (1 << CC1120_BURST)); } - ao_radio_spi_send_byte(addr); + ao_radio_spi_send_byte((uint8_t) addr); } static void @@ -614,7 +614,7 @@ _ao_radio_set_regs(const uint16_t *regs, int nreg) int i; for (i = 0; i < nreg; i++) { - ao_radio_reg_write(regs[0], regs[1]); + ao_radio_reg_write(regs[0], (uint8_t) regs[1]); regs += 2; } } @@ -629,7 +629,7 @@ ao_radio_set_mode(uint16_t new_mode) if (new_mode == ao_radio_mode) return; - changes = new_mode & (~ao_radio_mode); + changes = (uint16_t) (new_mode & (~ao_radio_mode)); if (changes & AO_RADIO_MODE_BITS_PACKET) { ao_radio_set_regs(packet_setup); @@ -720,13 +720,13 @@ ao_radio_get(uint8_t len) if (!ao_radio_configured) ao_radio_setup(); if (ao_config.radio_setting != last_radio_setting) { - ao_radio_reg_write(CC1120_FREQ2, ao_config.radio_setting >> 16); - ao_radio_reg_write(CC1120_FREQ1, ao_config.radio_setting >> 8); - ao_radio_reg_write(CC1120_FREQ0, ao_config.radio_setting); + ao_radio_reg_write(CC1120_FREQ2, (uint8_t) (ao_config.radio_setting >> 16)); + ao_radio_reg_write(CC1120_FREQ1, (uint8_t) (ao_config.radio_setting >> 8)); + ao_radio_reg_write(CC1120_FREQ0, (uint8_t) (ao_config.radio_setting)); last_radio_setting = ao_config.radio_setting; } if (ao_config.radio_rate != last_radio_rate) { - ao_radio_mode &= ~AO_RADIO_MODE_BITS_PACKET; + ao_radio_mode &= (uint16_t) ~AO_RADIO_MODE_BITS_PACKET; last_radio_rate = ao_config.radio_rate; } ao_radio_set_len(len); @@ -807,7 +807,7 @@ ao_radio_test_cmd(void) static uint8_t radio_on; ao_cmd_white(); if (ao_cmd_lex_c != '\n') { - mode = ao_cmd_decimal(); + mode = (uint8_t) ao_cmd_decimal(); } mode++; if ((mode & 2) && !radio_on) { @@ -846,7 +846,7 @@ ao_radio_test_cmd(void) } static void -ao_radio_wait_isr(uint16_t timeout) +ao_radio_wait_isr(AO_TICK_TYPE timeout) { ao_arch_block_interrupts(); while (!ao_radio_wake && !ao_radio_mcu_wake && !ao_radio_abort) @@ -951,12 +951,12 @@ ao_radio_send_aprs(ao_radio_fill_func fill) } if (done) { - ao_radio_set_len(total & 0xff); + ao_radio_set_len((uint8_t) (total & 0xff)); ao_radio_set_mode(AO_RADIO_MODE_APRS_FINISH); } else ao_radio_set_mode(AO_RADIO_MODE_APRS_BUF); - ao_radio_fifo_write(buf, cnt); + ao_radio_fifo_write(buf, (uint8_t) cnt); if (!started) { ao_radio_start_tx(); @@ -1067,7 +1067,7 @@ ao_radio_rx_wait(void) } uint8_t -ao_radio_recv(void *d, uint8_t size, uint8_t timeout) +ao_radio_recv(void *d, uint8_t size, AO_TICK_TYPE timeout) { uint8_t len; uint8_t radio_rssi = 0; @@ -1084,7 +1084,7 @@ ao_radio_recv(void *d, uint8_t size, uint8_t timeout) rx_packet_tick = 0; #endif len = size + 2; /* CRC bytes */ - len += 1 + ~(len & 1); /* 1 or two pad bytes */ + len += (uint8_t) (1 + ~(len & 1)); /* 1 or two pad bytes */ len *= 2; /* 1/2 rate convolution */ rx_data_count = len * 8; /* bytes to bits */ rx_data_cur = 0; @@ -1158,7 +1158,7 @@ abort: rssi0 = ao_radio_reg_read(CC1120_RSSI0); if (rssi0 & 1) { - int8_t rssi = ao_radio_reg_read(CC1120_RSSI1); + int8_t rssi = (int8_t) ao_radio_reg_read(CC1120_RSSI1); ao_radio_rssi = rssi; /* Bound it to the representable range */ diff --git a/src/drivers/ao_cc1120_CC1120.h b/src/drivers/ao_cc1120_CC1120.h index 21a31a89..3552090b 100644 --- a/src/drivers/ao_cc1120_CC1120.h +++ b/src/drivers/ao_cc1120_CC1120.h @@ -66,7 +66,7 @@ /* Carrier sense threshold - 25dB above the noise */ CC1120_AGC_CS_THR, 25, /* Carrier Sense Threshold Configuration */ CC1120_AGC_GAIN_ADJUST, /* RSSI Offset Configuration */ - AO_CC1120_AGC_GAIN_ADJUST, + (uint16_t) AO_CC1120_AGC_GAIN_ADJUST, CC1120_AGC_CFG3, /* AGC Configuration */ (1 << CC1120_AGC_CFG3_RSSI_STEP_THR) | diff --git a/src/drivers/ao_cc1200.c b/src/drivers/ao_cc1200.c index 6f043803..9d3b77cb 100644 --- a/src/drivers/ao_cc1200.c +++ b/src/drivers/ao_cc1200.c @@ -75,12 +75,12 @@ ao_radio_reg_read(uint16_t addr) data[0] = ((1 << CC1200_READ) | (0 << CC1200_BURST) | CC1200_EXTENDED); - data[1] = addr; + data[1] = (uint8_t) addr; d = 2; } else { data[0] = ((1 << CC1200_READ) | (0 << CC1200_BURST) | - addr); + (uint8_t) addr); d = 1; } ao_radio_select(); @@ -106,12 +106,12 @@ ao_radio_reg_write(uint16_t addr, uint8_t value) data[0] = ((0 << CC1200_READ) | (0 << CC1200_BURST) | CC1200_EXTENDED); - data[1] = addr; + data[1] = (uint8_t) addr; d = 2; } else { data[0] = ((0 << CC1200_READ) | (0 << CC1200_BURST) | - addr); + (uint8_t) addr); d = 1; } data[d] = value; @@ -598,7 +598,7 @@ _ao_radio_set_regs(const uint16_t *regs, int nreg) int i; for (i = 0; i < nreg; i++) { - ao_radio_reg_write(regs[0], regs[1]); + ao_radio_reg_write(regs[0], (uint8_t) regs[1]); regs += 2; } } @@ -613,7 +613,7 @@ ao_radio_set_mode(uint16_t new_mode) if (new_mode == ao_radio_mode) return; - changes = new_mode & (~ao_radio_mode); + changes = (uint16_t) (new_mode & (~ao_radio_mode)); if (changes & AO_RADIO_MODE_BITS_PACKET) { ao_radio_set_regs(packet_setup); @@ -722,14 +722,14 @@ ao_radio_get(uint8_t len) if (!ao_radio_configured) ao_radio_setup(); if (ao_config.radio_setting != last_radio_setting) { - ao_radio_reg_write(CC1200_FREQ2, ao_config.radio_setting >> 16); - ao_radio_reg_write(CC1200_FREQ1, ao_config.radio_setting >> 8); - ao_radio_reg_write(CC1200_FREQ0, ao_config.radio_setting); + ao_radio_reg_write(CC1200_FREQ2, (uint8_t) (ao_config.radio_setting >> 16)); + ao_radio_reg_write(CC1200_FREQ1, (uint8_t) (ao_config.radio_setting >> 8)); + ao_radio_reg_write(CC1200_FREQ0, (uint8_t) ao_config.radio_setting); last_radio_setting = ao_config.radio_setting; ao_radio_strobe(CC1200_SCAL); } if (ao_config.radio_rate != last_radio_rate) { - ao_radio_mode &= ~AO_RADIO_MODE_BITS_PACKET; + ao_radio_mode &= (uint16_t) ~AO_RADIO_MODE_BITS_PACKET; last_radio_rate = ao_config.radio_rate; } ao_radio_set_len(len); @@ -759,7 +759,7 @@ ao_radio_show_state(char *where) /* Wait for the radio to signal an interrupt */ static void -ao_radio_wait_isr(uint16_t timeout) +ao_radio_wait_isr(AO_TICK_TYPE timeout) { ao_arch_block_interrupts(); while (!ao_radio_wake && !ao_radio_abort) @@ -881,7 +881,7 @@ ao_radio_test_cmd(void) uint8_t mode = 2; ao_cmd_white(); if (ao_cmd_lex_c != '\n') - mode = ao_cmd_decimal(); + mode = (uint8_t) ao_cmd_decimal(); mode++; if ((mode & 2)) ao_radio_test_on(); @@ -927,7 +927,7 @@ ao_radio_send_aprs(ao_radio_fill_func fill) /* At the last buffer, set the total length */ if (done) - ao_radio_set_len(total & 0xff); + ao_radio_set_len((uint8_t) (total & 0xff)); /* Wait for some space in the fifo */ while (started && ao_radio_int_pin() != 0 && !ao_radio_abort) { @@ -943,7 +943,7 @@ ao_radio_send_aprs(ao_radio_fill_func fill) else ao_radio_set_mode(AO_RADIO_MODE_APRS_BUF); - ao_radio_fifo_write(buf, cnt); + ao_radio_fifo_write(buf, (uint8_t) cnt); if (!started) { ao_radio_strobe(CC1200_STX); started = 1; @@ -1008,7 +1008,7 @@ ao_radio_dump_state(struct ao_radio_state *s) #endif uint8_t -ao_radio_recv(void *d, uint8_t size, uint8_t timeout) +ao_radio_recv(void *d, uint8_t size, AO_TICK_TYPE timeout) { uint8_t success = 0; @@ -1069,13 +1069,13 @@ ao_radio_recv(void *d, uint8_t size, uint8_t timeout) switch (ao_config.radio_rate) { default: case AO_RADIO_RATE_38400: - timeout = AO_MS_TO_TICKS(size * (8 * 2 * 10) / 384) + 1; + timeout = AO_MS_TO_TICKS((AO_TICK_TYPE) size * (8 * 2 * 10) / 384) + 1; break; case AO_RADIO_RATE_9600: - timeout = AO_MS_TO_TICKS(size * (8 * 2 * 10) / 96) + 1; + timeout = AO_MS_TO_TICKS((AO_TICK_TYPE) size * (8 * 2 * 10) / 96) + 1; break; case AO_RADIO_RATE_2400: - timeout = AO_MS_TO_TICKS(size * (8 * 2 * 10) / 24) + 1; + timeout = AO_MS_TO_TICKS((AO_TICK_TYPE) size * (8 * 2 * 10) / 24) + 1; break; } } @@ -1096,7 +1096,7 @@ ao_radio_recv(void *d, uint8_t size, uint8_t timeout) rssi = -11; /* Write it back to the packet */ - ((int8_t *) d)[size-2] = AO_RADIO_FROM_RSSI(rssi); + ((uint8_t *) d)[size-2] = AO_RADIO_FROM_RSSI(rssi); } else { ao_radio_idle(); ao_radio_rssi = 0; diff --git a/src/drivers/ao_cc1200_CC1200.h b/src/drivers/ao_cc1200_CC1200.h index f0214c2a..8c9db2e9 100644 --- a/src/drivers/ao_cc1200_CC1200.h +++ b/src/drivers/ao_cc1200_CC1200.h @@ -55,7 +55,7 @@ CC1200_AGC_REF, 0x27, /* AGC Reference Level Configuration */ CC1200_AGC_CS_THR, 0xec, /* Carrier Sense Threshold Configuration */ CC1200_AGC_GAIN_ADJUST, /* RSSI adjustment */ - AO_CC1200_AGC_GAIN_ADJUST, + (uint16_t) AO_CC1200_AGC_GAIN_ADJUST, CC1200_AGC_CFG1, 0x51, /* Automatic Gain Control Configuration Reg. 1 */ CC1200_AGC_CFG0, 0x87, /* Automatic Gain Control Configuration Reg. 0 */ CC1200_FIFO_CFG, 0x40, /* FIFO Configuration */ -- 2.30.2