Board library generator from netlist?

Hi all,
It is my first time posting but I am a long time user of Kicad and follower of the forum.
I have been working on a general firmware for some AVR-based projects I have with a OO board-level abstraction layer composed from individual OO hardware abstraction layers, so that I can construct a new board firmware by simple linking components. Something like this:

Blockquote
#include <Components/ATMEGA328PB.h>
#include <Components/M24M0X.h>
#include <Components/DS3231.h>
#include <Components/SDCard.h>
class Board
{
private:
///< board traits
static constexpr uint16_t boardVoltage = 12;
static constexpr uint16_t avrDigitalVoltage = 3.3;
static constexpr uint16_t avrAnalogVoltage = 3.3;
static constexpr JUMPER1 jumper1 = OPEN;
public:
// board AVR
static ATMEGA328PB avr;
///< board bus
static Stream<decltype(avr.twi0)> I2CBus;
static Stream<decltype(avr.usart0)> USARTBus;
static Stream<decltype(avr.spi0)> SPIBus;
///< board Components
static DS3231<decltype(I2CBus), decltype(avr.pb0)> ds3231;
static M24M0X<1, 0, 0, decltype(I2CBus)> eeprom;
static SDCard<decltype(SPIBus), decltype(avr.pc0)> SDCard;
static LED<decltype(avr.pd7)> ledGPIO;
};

I was thinking the components inclusion and liking could be easilly done from a netlist, allowing firmware generation from board design. I was wondering whether anyone has been working with this or know if this idea has been implemented somewhere.
I did saw a generator of pindefs from netlists (https://github.com/DeshmukhMalhar/sch2header) but not a firmware generator.
Thanks,
Paulo.
(btw, sorry, I am looking how to properlly format code in the forum, I will change it as soon as I find)

You can’t really infer what the board will be used for based on the netlist, other than maybe include headers and stubs for USB (what type???), serial etc

Sorry, I meant a board library, rather than a firmware for using with the board (i edited the title now).
The overall idea would be a first decoupling between implementations - any created board would already come objectified in a library (hardware abstractions could be chosen together with footprints for example).

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.