Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions src/boards/include/boards/adafruit_fruit_jam.h
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,9 @@ pico_board_cmake_set(PICO_PLATFORM, rp2350)
#endif

// --- PIO USB ---
#ifndef PICO_DEFAULT_PIO_USB_DP_PIN
#define PICO_DEFAULT_PIO_USB_DP_PIN ADAFRUIT_FRUIT_JAM_USB_HOST_DATA_PLUS_PIN
#endif

// --- FLASH ---
// Winbond W25Q128 (16MB) flash
Expand Down
2 changes: 2 additions & 0 deletions src/boards/include/boards/machdyne_werkzeug.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,10 @@ pico_board_cmake_set(PICO_PLATFORM, rp2040)
// --- LED ---
#ifndef PICO_DEFAULT_LED_PIN
#define PICO_DEFAULT_LED_PIN 20
#ifndef PICO_DEFAULT_LED_PIN_INVERTED
#define PICO_DEFAULT_LED_PIN_INVERTED 1
#endif
#endif

// --- I2C ---
#ifndef PICO_DEFAULT_I2C
Expand Down
4 changes: 4 additions & 0 deletions src/boards/include/boards/pololu_3pi_2040_robot.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,15 @@ pico_board_cmake_set(PICO_PLATFORM, rp2040)
// For board detection
#define POLOLU_3PI_2040_ROBOT

#ifndef PICO_DEFAULT_LED_PIN
#define PICO_DEFAULT_LED_PIN 25
#endif
#define PICO_BOOT_STAGE2_CHOOSE_W25Q080 1
#define PICO_FLASH_SPI_CLKDIV 2
pico_board_cmake_set_default(PICO_FLASH_SIZE_BYTES, (16 * 1024 * 1024))
#ifndef PICO_FLASH_SIZE_BYTES
#define PICO_FLASH_SIZE_BYTES (16 * 1024 * 1024)
#endif

// All boards have at least the B1 revision
#define PICO_RP2040_B0_SUPPORTED 0
Expand Down
4 changes: 4 additions & 0 deletions src/boards/include/boards/pololu_zumo_2040_robot.h
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,15 @@ pico_board_cmake_set(PICO_PLATFORM, rp2040)
// For board detection
#define POLOLU_ZUMO_2040_ROBOT

#ifndef PICO_DEFAULT_LED_PIN
#define PICO_DEFAULT_LED_PIN 25
#endif
#define PICO_BOOT_STAGE2_CHOOSE_W25Q080 1
#define PICO_FLASH_SPI_CLKDIV 2
pico_board_cmake_set_default(PICO_FLASH_SIZE_BYTES, (16 * 1024 * 1024))
#ifndef PICO_FLASH_SIZE_BYTES
#define PICO_FLASH_SIZE_BYTES (16 * 1024 * 1024)
#endif

// All boards have at least the B1 revision
#define PICO_RP2040_B0_SUPPORTED 0
Expand Down
2 changes: 2 additions & 0 deletions src/boards/include/boards/waveshare_rp2350_usb_a.h
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,9 @@ pico_board_cmake_set(PICO_PLATFORM, rp2350)
#ifndef WAVESHARE_RP2350_USB_A_USB_DM_PIN
#define WAVESHARE_RP2350_USB_A_USB_DM_PIN 13
#endif
#ifndef PICO_DEFAULT_PIO_USB_DP_PIN
#define PICO_DEFAULT_PIO_USB_DP_PIN WAVESHARE_RP2350_USB_A_USB_DP_PIN
#endif

// --- FLASH ---
#define PICO_BOOT_STAGE2_CHOOSE_W25Q080 1
Expand Down
22 changes: 13 additions & 9 deletions tools/check_board_header.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ def __init__(self, message, errors):
matching_cmake_default_settings = set(['PICO_FLASH_SIZE_BYTES', 'PICO_RP2350_A2_SUPPORTED'])
compulsory_defines = set(['PICO_FLASH_SIZE_BYTES'])

DefineType = namedtuple("DefineType", ["name", "value", "resolved_value", "lineno"])
DefineType = namedtuple("DefineType", ["name", "value", "resolved_value", "lineno", "has_ifndef"])

def list_to_string_with(lst, joiner):
elems = len(lst)
Expand Down Expand Up @@ -112,7 +112,7 @@ def read_defines_from(header_file, defines_dict):
if show_warnings:
warnings.warn("{}:{} Multiple values for pico_board_cmake_set({}) ({} and {})".format(board_header, lineno, name, cmake_settings[name].value, value))
else:
cmake_settings[name] = DefineType(name, value, None, lineno)
cmake_settings[name] = DefineType(name, value, None, lineno, False)
continue

# look for "pico_board_cmake_set_default(BLAH_BLAH, 42)"
Expand All @@ -125,7 +125,7 @@ def read_defines_from(header_file, defines_dict):
if name != name.upper():
errors.append(Exception("{}:{} Expected \"{}\" to be all uppercase".format(board_header, lineno, name)))
if name not in cmake_default_settings:
cmake_default_settings[name] = DefineType(name, value, None, lineno)
cmake_default_settings[name] = DefineType(name, value, None, lineno, False)
continue

# look for "#else"
Expand Down Expand Up @@ -211,13 +211,13 @@ def read_defines_from(header_file, defines_dict):
if show_warnings:
warnings.warn("{}:{} Multiple definitions for {} ({} and {})".format(board_header, lineno, name, defines_dict[name].value, value))
else:
defines_dict[name] = DefineType(name, value, resolved_value, lineno)
defines_dict[name] = DefineType(name, value, resolved_value, lineno, last_ifndef == name)
return errors


if board_header_basename == "amethyst_fpga.h":
defines['PICO_RP2350'] = DefineType('PICO_RP2350', 1, 1, -1)
defines['PICO_RP2350A'] = DefineType('PICO_RP2350A', 0, 0, -1)
defines['PICO_RP2350'] = DefineType('PICO_RP2350', 1, 1, -1, False)
defines['PICO_RP2350A'] = DefineType('PICO_RP2350A', 0, 0, -1, False)

errors = []

Expand Down Expand Up @@ -276,7 +276,7 @@ def read_defines_from(header_file, defines_dict):
value = int(value, 0)
except ValueError:
pass
cmake_settings[name] = DefineType(name, value, None, lineno)
cmake_settings[name] = DefineType(name, value, None, lineno, False)
continue

# look for "pico_board_cmake_set_default(BLAH_BLAH, 42)"
Expand All @@ -298,7 +298,7 @@ def read_defines_from(header_file, defines_dict):
value = int(value, 0)
except ValueError:
pass
cmake_default_settings[name] = DefineType(name, value, None, lineno)
cmake_default_settings[name] = DefineType(name, value, None, lineno, False)
continue

# look for "#else"
Expand Down Expand Up @@ -402,7 +402,7 @@ def read_defines_from(header_file, defines_dict):
if name in defines:
errors.append(Exception("{}:{} Multiple definitions for {} ({} and {})".format(board_header, lineno, name, defines[name].value, value)))
else:
defines[name] = DefineType(name, value, resolved_value, lineno)
defines[name] = DefineType(name, value, resolved_value, lineno, last_ifndef == name)
continue


Expand Down Expand Up @@ -549,6 +549,10 @@ def read_defines_from(header_file, defines_dict):
if not any(func_pin in defines for func_pin in expected_function_pins):
errors.append(Exception("{}:{} {} is defined but none of {} are defined".format(board_header, define.lineno, name, list_to_string_with(expected_function_pins, "or"))))

# check that relevant defines are inside an ifndef clause
if (name in cmake_default_settings or name.startswith("PICO_DEFAULT_")) and not define.has_ifndef:
errors.append(Exception("{}:{} {} isn't enclosed in an #ifndef {} guard".format(board_header, define.lineno, name, name)))

if not has_include_guard:
errors.append(Exception("{} has no include-guard (expected {})".format(board_header, expected_include_guard)))
if not has_board_detection and expected_board_detection != "NONE":
Expand Down
Loading