Blinky needs a uart?

Hi. I am attempting to add a new cpu (Analog Devices MAX32660) and a new board (max32660-evsys).

I thought I would start with the blinky app which says it is intended for exactly this sort of thing. The blinky README says:

“This is mostly useful for boards without stdio to check if a new port of RIOT works. For that reason, this example has only an optional dependency on timer drivers. Hence, this application only needs a working GPIO driver and is likely the first milestone when porting RIOT to new MCUs.”

However, blinky appears to want a uart:

$ make BOARD=max32660-evsys There are unsatisfied feature requirements: periph_uart

The workaround is apparently:

$ make BOARD=max32660-evsys CONTINUE_ON_EXPECTED_ERRORS=1 There are unsatisfied feature requirements: periph_uart EXPECT ERRORS!

The build then finishes (finishes ok as far as I can tell … but then I told it to continue on error, so maybe not).

Blinky is such a basic example that it doesn’t seem like there should be any expected errors. And when I tell it to continue on expected errors, how do I know that I’m not continuing past other errors?

I see in the blinky README that stdio is used for the case that there is no LED to blink, but what would be the point of that?? Seems like that would be the point of the ‘hello world’ example. This seems like an unnecessary complication for something that’s intended only to wiggle a gpio output to help with bringing up a new cpu.

So, I guess my question is: Is there a way to fix blinky to forget the whole uart thing?

(FWIW, I’m just a newbie - maybe I shouldn’t be trying to add a new cpu - except the max32 family has a lot of potential and of course they should be running RIOT OS.)


Hello and welcome! I think adding a new CPU is a great way to get into RIOT, since you ‘just’ have to implement the periph interfaces and and do the clock setup and as it’s a Cortex-M MCU you don’t have to deal with all the nitty gritty details like threading or interrupts as that’s handled by common code.

To answer your question: To disable the UART output (which in the blinky case just prints the welcome message) you can select

USEMODULE += stdio_null

in the Makefile. This will still build all the stdio code, but discard the output, so no actual stdio backend (like UART) is needed.

I wish you the best of luck and don’t hesitate to open a PR or ask in the chat if you have further questions.

Thank you. I’m pretty sure I could not have figured that out on my own - especially since there are no examples of boards or cpus with that statement. I added that statement to the board’s Makefile.dep and now blinky builds without having to tell it to continue on error - I hope that was the proper place to put it.

And thanks for the encouragement!