У меня есть вопрос или лучший способ подключения интерфейса во время выполнения или во время компиляции / компоновки. Для моих встроенных проектов драйверы устройств и устройства ввода-вывода имеют интерфейсы, которые должны быть связаны (т.е. склеены) с соответствующими им интерфейсными зависимостями. Например, для драйвера аналогового устройства требуется интерфейс с драйвером дискретного вывода, чтобы установить линии MUX и Enable, и интерфейс для этого выглядит следующим образом:
unsigned char (*SetDiscOutput)(unsigned short signalID, unsigned char state);
В настоящее время я использую таблицу конфигурации, которая связывает требования к интерфейсу модуля с соответствующей зависимостью интерфейса, а затем во время выполнения конфигурация среды перебирает этот список и назначает зависимости. Другой метод, который я до сих пор придумал, заключается в использовании файла конфигурации оборудования, который будет связывать интерфейсы модуля с соответствующими им интерфейсами зависимостей, которые будут назначаться во время компиляции / компоновки.
Что было бы лучшим подходом (за / против) друг к другу и, что более важно, есть более элегантный способ связывания этих интерфейсных зависимостей.
Mark