Reorder pins in bi_pins_with_names to be correct #1858
No reviewers
Labels
No labels
bazel
bluetooth
board settings
boot_stage2
bug
build
c++
can't reproduce
clang
clib-interface
cmsis
code cleanliness
code size
compiler version issues
cyw43_driver
debug
discussion
documentation
duplicate
dynamic_clock
elf2uf2
enhancement
errata
filesystem
flash layout
floating point
FreeRTOS
hardware_adc
hardware_claim
hardware_clocks
hardware_dma
hardware_exception
hardware_flash
hardware_gpio
hardware_i2c
hardware_irq
hardware_pio
hardware_pwm
hardware_rcp
hardware_rtc
hardware_spi
hardware_sync
hardware_uart
hardware_vreg
hardware_watchdog
hardware_xosc
help wanted
host
IAR
installation
invalid
linker scripts
lto
lwip
mbedtls
missing API
needs reporter detail
networking
newlib
newlib-multicore
non-c
non-cmake
non-gcc
openocd
orphan PR
OS integration
pico_async_context
pico_base
pico_binary_info
pico_flash
picolibc
pico_lwip
pico_malloc
pico_multicore
pico_printf
pico_runtime
pico_stdio
pico_stdio_usb
pico_sync
pico_time
pico_util
pioasm
port
question
review
review2
rtos interop
runtime init
static library
svd
test
tinyusb
vscode
wifi integration
wontfix
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gh-raspberrypi/pico-sdk!1858
Loading…
Reference in a new issue
No description provided.
Delete branch "bi-pins-reorder"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Alternative to #1791 - instead of asserting when the order is incorrect, reorder the names so they are in the correct order for the pin mask
Requires more pre-processor stuff, but doesn't break existing code with the pins in the wrong order, so pico-examples/524 would no longer be required
Has been tested using the following python code to generate all permutations of
bi_declswhich are then copied and compiled into a binary, and then checked withpicotool infoto ensure pins are all named correctlyZOMG! 🤯 As long as you've tested this, I'll assume it's okay 😉
Although I guess your tests could be simplified to use e.g.
pinperms = itertools.permutations(pins[:2], 2)instead?Yeah, it is a bit scary; i was wondering if we should do a recursive implementation, but
So unless anyone has any fantastic ideas i say we take this as is ;-)
https://github.com/svpv/qsort 🤣
I'm gonna believe you!