Я работаю над базой кода 'C', которая была написана специально для одного типа встроенного процессора. Я написал общий «объектно-ориентированный» код psuedo для таких вещей, как светодиоды, линии GPIO и АЦП (с использованием структур и т. Д.). Я также написал большое количество кода, который использует эти «объекты» в аппаратно-целевой зависимости.
Сейчас мы добавляем в процесс другой тип процессора, и я хотел бы сохранить текущую структуру кода, чтобы я все еще мог использовать библиотеки более высокого уровня. Мне, однако, нужно предоставить разные реализации для кода более низкого уровня (светодиоды, GPIO, АЦП).
Я знаю, что #includes в .C файлах обычно смотрят свысока, но в этом случае это уместно? Например:
// led.c
#ifdef TARGET_AVR
#include "led_avr.c"
#elseifdef TARGET_PIC
#include "led_pic.c"
#else
#error "Unspecified Target"
#endif
Если это неуместно, что может быть лучше?
Спасибо!