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