Skip to content

Commit 67d05ed

Browse files
jimmodpgeorge
authored andcommitted
ports: Make generated pin.c handling more consistent across ports.
Signed-off-by: Jim Mussared <[email protected]>
1 parent 17f2783 commit 67d05ed

File tree

5 files changed

+61
-60
lines changed

5 files changed

+61
-60
lines changed

ports/mimxrt/Makefile

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ MICROPY_VFS_LFS2 ?= 1
1515
MICROPY_VFS_FAT ?= 1
1616

1717
# qstr definitions (must come before including py.mk)
18-
QSTR_DEFS = qstrdefsport.h
18+
QSTR_DEFS += qstrdefsport.h
1919
QSTR_GLOBAL_DEPENDENCIES = $(BOARD_DIR)/mpconfigboard.h
2020

2121
# Generation scripts
@@ -49,7 +49,6 @@ GEN_FLEXRAM_CONFIG_SRC = $(BUILD)/flexram_config.s
4949
GEN_PINS_AF_CONST = $(HEADER_BUILD)/pins_af_const.h
5050
GEN_PINS_AF_PY = $(BUILD)/pins_af.py
5151
GEN_PINS_HDR = $(HEADER_BUILD)/pins.h
52-
GEN_PINS_QSTR = $(BUILD)/pins_qstr.h
5352
GEN_PINS_SRC = $(BUILD)/pins_gen.c
5453

5554
# =============================================================================
@@ -435,7 +434,7 @@ OBJ += $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
435434
OBJ += $(addprefix $(BUILD)/, $(SRC_S:.s=.o))
436435
OBJ += $(addprefix $(BUILD)/, $(SRC_SS:.S=.o))
437436
OBJ += $(addprefix $(BUILD)/, $(SRC_MOD:.c=.o))
438-
OBJ += $(BUILD)/pins_gen.o
437+
OBJ += $(GEN_PINS_SRC:.c=.o)
439438

440439
# Workaround for bug in older gcc, warning on "static usbd_device_t _usbd_dev = { 0 };"
441440
$(BUILD)/lib/tinyusb/src/device/usbd.o: CFLAGS += -Wno-missing-braces
@@ -486,7 +485,7 @@ $(BUILD)/%_gen.c $(HEADER_BUILD)/%.h: $(BOARD_PINS) $(MAKE_PINS) $(AF_FILE) $(PR
486485
--iomux $(abspath $(TOP)/$(MCU_DIR)/drivers/fsl_iomuxc.h) \
487486
--prefix $(PREFIX_FILE) --hdr $(GEN_PINS_HDR) > $(GEN_PINS_SRC)
488487

489-
$(BUILD)/pins_gen.o: $(BUILD)/pins_gen.c
488+
$(GEN_PINS_SRC:.c=.o): $(GEN_PINS_SRC)
490489
$(call compile_c)
491490

492491
include $(TOP)/py/mkrules.mk

ports/nrf/Makefile

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ endif
4545
-include boards/$(BOARD)/modules/boardmodules.mk
4646

4747
# qstr definitions (must come before including py.mk)
48-
QSTR_DEFS = qstrdefsport.h $(BUILD)/pins_qstr.h
48+
QSTR_DEFS = qstrdefsport.h $(GEN_PINS_QSTR)
4949

5050
# MicroPython feature configurations
5151
ifeq ($(DEBUG), 0)
@@ -106,6 +106,16 @@ endif
106106
NRF_DEFINES += -D$(MCU_SUB_VARIANT_UPPER)
107107
NRF_DEFINES += -DCONFIG_GPIO_AS_PINRESET
108108

109+
MAKE_PINS = boards/make-pins.py
110+
BOARD_PINS = boards/$(BOARD)/pins.csv
111+
AF_FILE = $(MCU_VARIANT)_af.csv
112+
PREFIX_FILE = boards/$(MCU_VARIANT)_prefix.c
113+
GEN_PINS_SRC = $(BUILD)/pins_gen.c
114+
GEN_PINS_HDR = $(HEADER_BUILD)/pins.h
115+
GEN_PINS_QSTR = $(BUILD)/pins_qstr.h
116+
GEN_PINS_AF_CONST = $(HEADER_BUILD)/pins_af_const.h
117+
GEN_PINS_AF_PY = $(BUILD)/pins_af.py
118+
109119
CFLAGS_CORTEX_M = -mthumb -mabi=aapcs -fsingle-precision-constant -Wdouble-promotion
110120

111121
CFLAGS_MCU_m33 = $(CFLAGS_CORTEX_M) -mcpu=cortex-m33 -march=armv8-m.main+dsp -mcmse -mfpu=fpv5-sp-d16 -mfloat-abi=hard
@@ -354,7 +364,7 @@ OBJ += $(addprefix $(BUILD)/, $(SRC_NRFX_HAL:.c=.o))
354364
OBJ += $(addprefix $(BUILD)/, $(DRIVERS_SRC_C:.c=.o))
355365
OBJ += $(addprefix $(BUILD)/, $(SYSTEM_C_SRC:.c=.o))
356366
OBJ += $(addprefix $(BUILD)/, $(SRC_LIB:.c=.o))
357-
OBJ += $(BUILD)/pins_gen.o
367+
OBJ += $(GEN_PINS_SRC:.c=.o)
358368

359369
$(BUILD)/$(OOFATFS_DIR)/ff.o: COPT += -Os
360370
$(filter $(PY_BUILD)/../extmod/vfs_fat_%.o, $(PY_O)): COPT += -Os
@@ -528,19 +538,9 @@ $(BUILD)/%_gen.c $(HEADER_BUILD)/%.h $(HEADER_BUILD)/%_af_const.h $(BUILD)/%_qst
528538
$(ECHO) "Create $@"
529539
$(Q)$(PYTHON) $(MAKE_PINS) --board $(BOARD_PINS) --af $(AF_FILE) --prefix $(PREFIX_FILE) --hdr $(GEN_PINS_HDR) --qstr $(GEN_PINS_QSTR) --af-const $(GEN_PINS_AF_CONST) --af-py $(GEN_PINS_AF_PY) > $(GEN_PINS_SRC)
530540

531-
$(BUILD)/pins_gen.o: $(BUILD)/pins_gen.c
541+
$(GEN_PINS_SRC:.c=.o): $(GEN_PINS_SRC)
532542
$(call compile_c)
533543

534-
MAKE_PINS = boards/make-pins.py
535-
BOARD_PINS = boards/$(BOARD)/pins.csv
536-
AF_FILE = $(MCU_VARIANT)_af.csv
537-
PREFIX_FILE = boards/$(MCU_VARIANT)_prefix.c
538-
GEN_PINS_SRC = $(BUILD)/pins_gen.c
539-
GEN_PINS_HDR = $(HEADER_BUILD)/pins.h
540-
GEN_PINS_QSTR = $(BUILD)/pins_qstr.h
541-
GEN_PINS_AF_CONST = $(HEADER_BUILD)/pins_af_const.h
542-
GEN_PINS_AF_PY = $(BUILD)/pins_af.py
543-
544544
ifneq ($(FROZEN_MANIFEST),)
545545
CFLAGS += -DMICROPY_QSTR_EXTRA_POOL=mp_qstr_frozen_const_pool
546546
CFLAGS += -DMICROPY_MODULE_FROZEN_MPY

ports/samd/Makefile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,6 @@ SRC_C += \
106106
mphalport.c \
107107
pendsv.c \
108108
pin_af.c \
109-
$(BUILD)/pins.c \
110109
samd_flash.c \
111110
samd_isr.c \
112111
samd_soc.c \
@@ -170,6 +169,7 @@ OBJ += $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
170169
OBJ += $(addprefix $(BUILD)/, $(SRC_CXX:.cpp=.o))
171170
OBJ += $(addprefix $(BUILD)/, $(SRC_S:.s=.o))
172171
OBJ += $(addprefix $(BUILD)/, $(SRC_MOD:.c=.o))
172+
OBJ += $(GEN_PINS_SRC:.c=.o)
173173

174174
ifneq ($(FROZEN_MANIFEST),)
175175
CFLAGS += -DMICROPY_MODULE_FROZEN_MPY
@@ -205,4 +205,7 @@ $(GEN_PINS_SRC) $(GEN_PINS_HDR): $(BOARD_PINS) | $(HEADER_BUILD)
205205
$(ECHO) "Create $@"
206206
$(Q)$(PYTHON) $(MAKE_PINS) --board $(BOARD_PINS) --pins $(GEN_PINS_SRC) --inc $(GEN_PINS_HDR)
207207

208+
$(GEN_PINS_SRC:.c=.o): $(GEN_PINS_SRC)
209+
$(call compile_c)
210+
208211
include $(TOP)/py/mkrules.mk

ports/stm32/Makefile

Lines changed: 28 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ include ../../py/mkenv.mk
1515
include $(BOARD_DIR)/mpconfigboard.mk
1616

1717
# Files that are generated and needed before the QSTR build.
18-
QSTR_GENERATED_HEADERS = $(BUILD)/pins_qstr.h $(BUILD)/modstm_qstr.h
18+
QSTR_GENERATED_HEADERS = $(GEN_PINS_QSTR) $(GEN_STMCONST_QSTR)
1919

2020
# qstr definitions (must come before including py.mk)
2121
QSTR_DEFS += qstrdefsport.h $(QSTR_GENERATED_HEADERS)
@@ -57,6 +57,31 @@ OPENOCD_CONFIG ?= boards/openocd_stm32f4.cfg
5757

5858
include stm32.mk
5959

60+
PLLVALUES = boards/pllvalues.py
61+
MAKE_PINS = boards/make-pins.py
62+
BOARD_PINS = $(BOARD_DIR)/pins.csv
63+
PREFIX_FILE = boards/stm32f4xx_prefix.c
64+
GEN_PINS_SRC = $(BUILD)/pins_$(BOARD).c
65+
GEN_PINS_HDR = $(HEADER_BUILD)/pins.h
66+
GEN_PINS_QSTR = $(BUILD)/pins_qstr.h
67+
GEN_PINS_AF_CONST = $(HEADER_BUILD)/pins_af_const.h
68+
GEN_PINS_AF_DEFS = $(HEADER_BUILD)/pins_af_defs.h
69+
GEN_PINS_AF_PY = $(BUILD)/pins_af.py
70+
71+
INSERT_USB_IDS = $(TOP)/tools/insert-usb-ids.py
72+
FILE2H = $(TOP)/tools/file2h.py
73+
74+
USB_IDS_FILE = mpconfigboard_common.h
75+
CDCINF_TEMPLATE = pybcdc.inf_template
76+
GEN_CDCINF_FILE = $(HEADER_BUILD)/pybcdc.inf
77+
GEN_CDCINF_HEADER = $(HEADER_BUILD)/pybcdc_inf.h
78+
79+
GEN_PLLFREQTABLE_HDR = $(HEADER_BUILD)/pllfreqtable.h
80+
GEN_STMCONST_HDR = $(HEADER_BUILD)/modstm_const.h
81+
GEN_STMCONST_QSTR = $(BUILD)/modstm_qstr.h
82+
GEN_STMCONST_MPZ = $(HEADER_BUILD)/modstm_mpz.h
83+
CMSIS_MCU_HDR = $(STM32LIB_CMSIS_ABS)/Include/$(CMSIS_MCU_LOWER).h
84+
6085
# Select the cross compile prefix
6186
CROSS_COMPILE ?= arm-none-eabi-
6287

@@ -537,8 +562,7 @@ OBJ += $(addprefix $(BUILD)/, $(HAL_SRC_C:.c=.o))
537562
OBJ += $(addprefix $(BUILD)/, $(USBDEV_SRC_C:.c=.o))
538563
OBJ += $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
539564
OBJ += $(addprefix $(BUILD)/, $(SRC_CXX:.cpp=.o))
540-
OBJ += $(addprefix $(BUILD)/, $(SRC_MOD:.c=.o))
541-
OBJ += $(BUILD)/pins_$(BOARD).o
565+
OBJ += $(GEN_PINS_SRC:.c=.o)
542566

543567
# This file contains performance critical functions so turn up the optimisation
544568
# level. It doesn't add much to the code size and improves performance a bit.
@@ -689,25 +713,6 @@ $(BUILD)/firmware.hex: $(BUILD)/firmware.elf
689713
$(BUILD)/firmware.elf: $(OBJ)
690714
$(call GENERATE_ELF,$@,$^)
691715

692-
PLLVALUES = boards/pllvalues.py
693-
MAKE_PINS = boards/make-pins.py
694-
BOARD_PINS = $(BOARD_DIR)/pins.csv
695-
PREFIX_FILE = boards/stm32f4xx_prefix.c
696-
GEN_PINS_SRC = $(BUILD)/pins_$(BOARD).c
697-
GEN_PINS_HDR = $(HEADER_BUILD)/pins.h
698-
GEN_PINS_QSTR = $(BUILD)/pins_qstr.h
699-
GEN_PINS_AF_CONST = $(HEADER_BUILD)/pins_af_const.h
700-
GEN_PINS_AF_DEFS = $(HEADER_BUILD)/pins_af_defs.h
701-
GEN_PINS_AF_PY = $(BUILD)/pins_af.py
702-
703-
INSERT_USB_IDS = $(TOP)/tools/insert-usb-ids.py
704-
FILE2H = $(TOP)/tools/file2h.py
705-
706-
USB_IDS_FILE = mpconfigboard_common.h
707-
CDCINF_TEMPLATE = pybcdc.inf_template
708-
GEN_CDCINF_FILE = $(HEADER_BUILD)/pybcdc.inf
709-
GEN_CDCINF_HEADER = $(HEADER_BUILD)/pybcdc_inf.h
710-
711716
# List of sources for qstr extraction
712717
SRC_QSTR += $(SRC_C) $(SRC_CXX) $(SRC_MOD) $(SHARED_SRC_C) $(EXTMOD_SRC_C)
713718
# Append any auto-generated sources that are needed by sources listed in
@@ -738,15 +743,9 @@ $(BUILD)/%_$(BOARD).c $(HEADER_BUILD)/%.h $(HEADER_BUILD)/%_af_const.h $(HEADER_
738743
--af-defs $(GEN_PINS_AF_DEFS) --af-defs-cmp-strings \
739744
--af-py $(GEN_PINS_AF_PY) > $(GEN_PINS_SRC)
740745

741-
$(BUILD)/pins_$(BOARD).o: $(BUILD)/pins_$(BOARD).c
746+
$(GEN_PINS_SRC:.c=.o): $(GEN_PINS_SRC)
742747
$(call compile_c)
743748

744-
GEN_PLLFREQTABLE_HDR = $(HEADER_BUILD)/pllfreqtable.h
745-
GEN_STMCONST_HDR = $(HEADER_BUILD)/modstm_const.h
746-
GEN_STMCONST_QSTR = $(BUILD)/modstm_qstr.h
747-
GEN_STMCONST_MPZ = $(HEADER_BUILD)/modstm_mpz.h
748-
CMSIS_MCU_HDR = $(STM32LIB_CMSIS_ABS)/Include/$(CMSIS_MCU_LOWER).h
749-
750749
modmachine.c: $(GEN_PLLFREQTABLE_HDR)
751750
$(GEN_PLLFREQTABLE_HDR): $(PLLVALUES) | $(HEADER_BUILD)
752751
$(ECHO) "GEN $@"

ports/teensy/Makefile

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
include ../../py/mkenv.mk
22

33
# qstr definitions (must come before including py.mk)
4-
QSTR_DEFS = qstrdefsport.h $(BUILD)/pins_qstr.h
4+
QSTR_DEFS = qstrdefsport.h $(GEN_PINS_QSTR)
55

66
# MicroPython feature configurations
77
MICROPY_ROM_TEXT_COMPRESSION ?= 1
@@ -66,6 +66,16 @@ $(info Using toolchain from PATH)
6666
CROSS_COMPILE ?= arm-none-eabi-
6767
endif
6868

69+
MAKE_PINS = make-pins.py
70+
BOARD_PINS = teensy_pins.csv
71+
AF_FILE = mk20dx256_af.csv
72+
PREFIX_FILE = mk20dx256_prefix.c
73+
GEN_PINS_SRC = $(BUILD)/pins_gen.c
74+
GEN_PINS_HDR = $(HEADER_BUILD)/pins.h
75+
GEN_PINS_QSTR = $(BUILD)/pins_qstr.h
76+
GEN_PINS_AF_CONST = $(HEADER_BUILD)/pins_af_const.h
77+
GEN_PINS_AF_PY = $(BUILD)/pins_af.py
78+
6979
CFLAGS_TEENSY = -DF_CPU=96000000 -DUSB_SERIAL -D__MK20DX256__
7080
CFLAGS_CORTEX_M4 = -mthumb -mtune=cortex-m4 -mcpu=cortex-m4 -msoft-float -mfloat-abi=soft -fsingle-precision-constant -Wdouble-promotion $(CFLAGS_TEENSY)
7181

@@ -157,7 +167,7 @@ SRC_TEENSY = $(addprefix core/,\
157167
OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o) $(STM_SRC_C:.c=.o) $(SRC_TEENSY:.c=.o))
158168
OBJ += $(addprefix $(BUILD)/, $(SHARED_SRC_C:.c=.o))
159169
OBJ += $(BUILD)/shared/runtime/gchelper_m3.o
160-
OBJ += $(BUILD)/pins_gen.o
170+
OBJ += $(GEN_PINS_SRC:.c=.o)
161171

162172
all: hex
163173
hex: $(BUILD)/micropython.hex
@@ -195,16 +205,6 @@ $(BUILD)/%.hex: $(BUILD)/%.elf
195205
$(ECHO) "HEX $<"
196206
$(Q)$(OBJCOPY) -O ihex -R .eeprom "$<" "$@"
197207

198-
MAKE_PINS = make-pins.py
199-
BOARD_PINS = teensy_pins.csv
200-
AF_FILE = mk20dx256_af.csv
201-
PREFIX_FILE = mk20dx256_prefix.c
202-
GEN_PINS_SRC = $(BUILD)/pins_gen.c
203-
GEN_PINS_HDR = $(HEADER_BUILD)/pins.h
204-
GEN_PINS_QSTR = $(BUILD)/pins_qstr.h
205-
GEN_PINS_AF_CONST = $(HEADER_BUILD)/pins_af_const.h
206-
GEN_PINS_AF_PY = $(BUILD)/pins_af.py
207-
208208
# List of sources for qstr extraction
209209
SRC_QSTR += $(SRC_C) $(STM_SRC_C) $(SHARED_SRC_C)
210210
# Append any auto-generated sources that are needed by sources listed in
@@ -224,7 +224,7 @@ $(BUILD)/%_gen.c $(HEADER_BUILD)/%.h $(HEADER_BUILD)/%_af_const.h $(BUILD)/%_qst
224224
$(ECHO) "Create $@"
225225
$(Q)$(PYTHON) $(MAKE_PINS) --board $(BOARD_PINS) --af $(AF_FILE) --prefix $(PREFIX_FILE) --hdr $(GEN_PINS_HDR) --qstr $(GEN_PINS_QSTR) --af-const $(GEN_PINS_AF_CONST) --af-py $(GEN_PINS_AF_PY) > $(GEN_PINS_SRC)
226226

227-
$(BUILD)/pins_gen.o: $(BUILD)/pins_gen.c
227+
$(GEN_PINS_SRC:.c=.o): $(GEN_PINS_SRC)
228228
$(call compile_c)
229229

230230
$(BUILD)/%.pp: $(BUILD)/%.c

0 commit comments

Comments
 (0)