Github Action "CMake Config and build" fails after adding a new Board

Post here first, or if you can't find a relevant section!
Post Reply
SerFab
Posts: 2
Joined: Thu Apr 18, 2024 1:46 pm

Github Action "CMake Config and build" fails after adding a new Board

Post by SerFab »

Hi everyone!

I want to include a new Board into stm32duino and woul like to commit that as a Pull request.

I have an Issue with the Github actions. the action "CMake config and Build fails with the error message "KeyError: serial". When i run the Update_boarddb.py locally with the changed boards.txt, i can see that this error happens when the line

Code: Select all

MyBoards.menu.upload_method.serialMethod.upload.options={serial.port.file}
gets parsed.
I have Compared this to similar entries in the boards.txt file and can not see any difference that would cause this. Any help would be appreciated!

Edit:
The Line that throws this exception is line 44 in parse_boards.py:

Code: Select all

newv = self[k].format(**wrt)
Thanks,

SF
User avatar
fpiSTM
Posts: 1758
Joined: Wed Dec 11, 2019 7:11 pm
Answers: 91
Location: Le Mans
Contact:

Re: Github Action "CMake Config and build" fails after adding a new Board

Post by fpiSTM »

Hard to tell without the full code added.
Do you declare "MyBoards" properly?
SerFab
Posts: 2
Joined: Thu Apr 18, 2024 1:46 pm

Re: Github Action "CMake Config and build" fails after adding a new Board

Post by SerFab »

Hello, thanks for the fast initial reply. Here is all the code i have added to the Boards.txt file:

Code: Select all

################################################################################
# MyBoards

MyBoards.name=My Boards

MyBoards.build.core=arduino
MyBoards.build.board=MyBoards
MyBoards.build.variant_h=variant_{build.board}.h
MyBoards.upload.maximum_size=0
MyBoards.upload.maximum_data_size=0

# New Variant board
MyBoards.menu.pnum.NewVariant=NewVariant
MyBoards.menu.pnum.NewVariant.upload.maximum_size=124927
MyBoards.menu.pnum.NewVariant.upload.maximum_data_size=16383
MyBoards.menu.pnum.NewVariant.build.mcu=cortex-m4
#MyBoards.menu.pnum.NewVariant.build.fpu=-mfpu=fpv4-sp-d16
#MyBoards.menu.pnum.NewVariant.build.float-abi=-mfloat-abi=hard
MyBoards.menu.pnum.NewVariant.build.board=NewVariant
MyBoards.menu.pnum.NewVariant.build.series=STM32WLxx
MyBoards.menu.pnum.NewVariant.build.product_line=STM32WLE5xx
MyBoards.menu.pnum.NewVariant.build.variant=STM32WLxx/WL54JCI_WL55JCI_WLE4J(8-B-C)I_WLE5J(8-B-C)I
MyBoards.menu.pnum.NewVariant.build.variant_h=variant_NewVariant.h
#MyBoards.menu.pnum.NewVariant.build.ldscript=NewVariant.ld
MyBoards.menu.pnum.NewVariant.build.flash_offset=0x800
#MyBoards.menu.pnum.NewVariant.build.peripheral_pins=-DCUSTOM_PERIPHERAL_PINS
MyBoards.menu.pnum.NewVariant.build.cmsis_lib_gcc=arm_cortexM4l_math
MyBoards.menu.pnum.NewVariant.build.st_extra_flags=-D{build.product_line} -DUSE_CM4_STARTUP_FILE {build.xSerial}

# Upload menu
MyBoards.menu.upload_method.swdMethod=STM32CubeProgrammer (SWD) with Bootloader
MyBoards.menu.upload_method.swdMethod.upload.protocol=0
MyBoards.menu.upload_method.swdMethod.upload.tool=stm32CubeProg
MyBoards.menu.upload_method.swdMethod.build.bootloader_flags=-DBL_LEGACY_LEAF -DVECT_TAB_OFFSET={build.flash_offset}

MyBoards.menu.upload_method.serialMethod=STM32CubeProgrammer (Serial)  with Bootloader
MyBoards.menu.upload_method.serialMethod.upload.protocol=1
MyBoards.menu.upload_method.serialMethod.upload.options={serial.port.file}
MyBoards.menu.upload_method.serialMethod.upload.tool=stm32CubeProg
MyBoards.menu.upload_method.serialMethod.build.bootloader_flags=-DBL_LEGACY_LEAF -DVECT_TAB_OFFSET={build.flash_offset}

Code: Select all

MyBoards.menu.opt.osstd=Smallest (-Os default)
MyBoards.menu.opt.oslto=Smallest (-Os) with LTO
MyBoards.menu.opt.oslto.build.flags.optimize=-Os -flto
MyBoards.menu.opt.o1std=Fast (-O1)
MyBoards.menu.opt.o1std.build.flags.optimize=-O1
MyBoards.menu.opt.o1lto=Fast (-O1) with LTO
MyBoards.menu.opt.o1lto.build.flags.optimize=-O1 -flto
MyBoards.menu.opt.o2std=Faster (-O2)
MyBoards.menu.opt.o2std.build.flags.optimize=-O2
MyBoards.menu.opt.o2lto=Faster (-O2) with LTO
MyBoards.menu.opt.o2lto.build.flags.optimize=-O2 -flto
MyBoards.menu.opt.o3std=Fastest (-O3)
MyBoards.menu.opt.o3std.build.flags.optimize=-O3
MyBoards.menu.opt.o3lto=Fastest (-O3) with LTO
MyBoards.menu.opt.o3lto.build.flags.optimize=-O3 -flto
MyBoards.menu.opt.ogstd=Debug (-Og)
MyBoards.menu.opt.ogstd.build.flags.optimize=-Og
MyBoards.menu.opt.o0std=No Optimization (-O0)
MyBoards.menu.opt.o0std.build.flags.optimize=-O0

Code: Select all

MyBoards.menu.rtlib.nano=Newlib Nano (default)
MyBoards.menu.rtlib.nanofp=Newlib Nano + Float Printf
MyBoards.menu.rtlib.nanofp.build.flags.ldspecs=--specs=nano.specs -u _printf_float
MyBoards.menu.rtlib.nanofs=Newlib Nano + Float Scanf
MyBoards.menu.rtlib.nanofs.build.flags.ldspecs=--specs=nano.specs -u _scanf_float
MyBoards.menu.rtlib.nanofps=Newlib Nano + Float Printf/Scanf
MyBoards.menu.rtlib.nanofps.build.flags.ldspecs=--specs=nano.specs -u _printf_float -u _scanf_float
MyBoards.menu.rtlib.full=Newlib Standard
MyBoards.menu.rtlib.full.build.flags.ldspecs=
Please excuse the obfuscation for anonymity reasons. In the actual pull request the Names will be better

I have oriented myself at the other board entries for similar variants. I can compile and upload code via the IDE to the MCU. The Arduino-cli action also returns a success. I am unfortunately at a loss at what is wrong.
User avatar
fpiSTM
Posts: 1758
Joined: Wed Dec 11, 2019 7:11 pm
Answers: 91
Location: Le Mans
Contact:

Re: Github Action "CMake Config and build" fails after adding a new Board

Post by fpiSTM »

Will check next week. I'm off until monday. ;)
Post Reply

Return to “General discussion”