mirror of
https://github.com/raspberrypi/pico-sdk.git
synced 2025-12-10 07:14:36 +01:00
Check for parameter underflow when PIO_USE_GPIO_BASE is in use
This commit is contained in:
parent
fc23fc86be
commit
65c17547b2
2 changed files with 6 additions and 0 deletions
|
|
@ -1514,6 +1514,7 @@ static inline void pio_sm_set_out_pins(PIO pio, uint sm, uint out_base, uint out
|
||||||
check_pio_param(pio);
|
check_pio_param(pio);
|
||||||
check_sm_param(sm);
|
check_sm_param(sm);
|
||||||
#if PICO_PIO_USE_GPIO_BASE
|
#if PICO_PIO_USE_GPIO_BASE
|
||||||
|
invalid_params_if(HARDWARE_PIO, out_base < pio_get_gpio_base(pio));
|
||||||
out_base -= pio_get_gpio_base(pio);
|
out_base -= pio_get_gpio_base(pio);
|
||||||
#endif
|
#endif
|
||||||
valid_params_if(HARDWARE_PIO, out_base < 32);
|
valid_params_if(HARDWARE_PIO, out_base < 32);
|
||||||
|
|
@ -1538,6 +1539,7 @@ static inline void pio_sm_set_set_pins(PIO pio, uint sm, uint set_base, uint set
|
||||||
check_pio_param(pio);
|
check_pio_param(pio);
|
||||||
check_sm_param(sm);
|
check_sm_param(sm);
|
||||||
#if PICO_PIO_USE_GPIO_BASE
|
#if PICO_PIO_USE_GPIO_BASE
|
||||||
|
invalid_params_if(HARDWARE_PIO, set_base < pio_get_gpio_base(pio));
|
||||||
set_base -= pio_get_gpio_base(pio);
|
set_base -= pio_get_gpio_base(pio);
|
||||||
#endif
|
#endif
|
||||||
valid_params_if(HARDWARE_PIO, set_base < 32);
|
valid_params_if(HARDWARE_PIO, set_base < 32);
|
||||||
|
|
@ -1560,6 +1562,7 @@ static inline void pio_sm_set_in_pins(PIO pio, uint sm, uint in_base) {
|
||||||
check_pio_param(pio);
|
check_pio_param(pio);
|
||||||
check_sm_param(sm);
|
check_sm_param(sm);
|
||||||
#if PICO_PIO_USE_GPIO_BASE
|
#if PICO_PIO_USE_GPIO_BASE
|
||||||
|
invalid_params_if(HARDWARE_PIO, in_base < pio_get_gpio_base(pio));
|
||||||
in_base -= pio_get_gpio_base(pio);
|
in_base -= pio_get_gpio_base(pio);
|
||||||
#endif
|
#endif
|
||||||
valid_params_if(HARDWARE_PIO, in_base < 32);
|
valid_params_if(HARDWARE_PIO, in_base < 32);
|
||||||
|
|
@ -1580,6 +1583,7 @@ static inline void pio_sm_set_sideset_pins(PIO pio, uint sm, uint sideset_base)
|
||||||
check_pio_param(pio);
|
check_pio_param(pio);
|
||||||
check_sm_param(sm);
|
check_sm_param(sm);
|
||||||
#if PICO_PIO_USE_GPIO_BASE
|
#if PICO_PIO_USE_GPIO_BASE
|
||||||
|
invalid_params_if(HARDWARE_PIO, sideset_base < pio_get_gpio_base(pio));
|
||||||
sideset_base -= pio_get_gpio_base(pio);
|
sideset_base -= pio_get_gpio_base(pio);
|
||||||
#endif
|
#endif
|
||||||
valid_params_if(HARDWARE_PIO, sideset_base < 32);
|
valid_params_if(HARDWARE_PIO, sideset_base < 32);
|
||||||
|
|
@ -1599,6 +1603,7 @@ static inline void pio_sm_set_jmp_pin(PIO pio, uint sm, uint pin) {
|
||||||
check_pio_param(pio);
|
check_pio_param(pio);
|
||||||
check_sm_param(sm);
|
check_sm_param(sm);
|
||||||
#if PICO_PIO_USE_GPIO_BASE
|
#if PICO_PIO_USE_GPIO_BASE
|
||||||
|
invalid_params_if(HARDWARE_PIO, pin < pio_get_gpio_base(pio));
|
||||||
pin -= pio_get_gpio_base(pio);
|
pin -= pio_get_gpio_base(pio);
|
||||||
#endif
|
#endif
|
||||||
valid_params_if(HARDWARE_PIO, pin < 32);
|
valid_params_if(HARDWARE_PIO, pin < 32);
|
||||||
|
|
|
||||||
|
|
@ -344,6 +344,7 @@ int pio_sm_set_consecutive_pindirs(PIO pio, uint sm, uint pin, uint count, bool
|
||||||
check_pio_param(pio);
|
check_pio_param(pio);
|
||||||
check_sm_param(sm);
|
check_sm_param(sm);
|
||||||
#if PICO_PIO_USE_GPIO_BASE
|
#if PICO_PIO_USE_GPIO_BASE
|
||||||
|
invalid_params_if_and_return(HARDWARE_PIO, pin < pio_get_gpio_base(pio), PICO_ERROR_INVALID_ARG);
|
||||||
pin -= pio_get_gpio_base(pio);
|
pin -= pio_get_gpio_base(pio);
|
||||||
#endif
|
#endif
|
||||||
invalid_params_if_and_return(HARDWARE_PIO, pin >= 32u, PICO_ERROR_INVALID_ARG);
|
invalid_params_if_and_return(HARDWARE_PIO, pin >= 32u, PICO_ERROR_INVALID_ARG);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue