Я думаю вынести драйвера из libregisters.a
Предлагаю сделать так:
- Код: Выделить всё • Развернуть
vovan@vovan-laptop:~/src/orfa/drivers$ tree
.
|-- OR-AVR-M168-DX
| |-- motor_driver.c -> ../OR-AVR-M32-D/motor_driver.c
| |-- motor_driver.h -> ../OR-AVR-M32-D/motor_driver.h
| |-- ports_driver.c -> ../OR-AVR-M32-D/ports_driver.c
| |-- ports_driver.h -> ../OR-AVR-M32-D/ports_driver.h
| |-- spi_driver.c -> ../OR-AVR-M32-D/spi_driver.c
| `-- spi_driver.h -> ../OR-AVR-M32-D/spi_driver.h
|-- OR-AVR-M32-D
| |-- motor_driver.c
| |-- motor_driver.h
| |-- ports_driver.c
| |-- ports_driver.h
| |-- spi_driver.c
| `-- spi_driver.h
`-- OR-AVR-M64-S
|-- motor_driver.c -> ../OR-AVR-M32-D/motor_driver.c
|-- motor_driver.h -> ../OR-AVR-M32-D/motor_driver.h
|-- ports_driver.c -> ../OR-AVR-M32-D/ports_driver.c
|-- ports_driver.h -> ../OR-AVR-M32-D/ports_driver.h
|-- spi_driver.c -> ../OR-AVR-M32-D/spi_driver.c
`-- spi_driver.h -> ../OR-AVR-M32-D/spi_driver.h
3 directories, 18 files
Т.е. для каждого модуля формируется свой набор драйверов, чтобы не отслеживать одинаковые драйвера
делать симлинки (у братьев наших меньших, с недавних пор тоже работает)
меркуриалом симлинки поддерживаются.
А переписывать некоторые части системы под железо все равно потребуется, вопрос только в размере этих кусков.
Имхо это нормально, если некоторые внутренние апи будут зависеть от конкретной платформы
Добавлено спустя 17 минут 58 секунд:Деад, я не согласен, что UID определяет только протокол драйвера
и для всех драйверов портов/моторов/т.д. он должен быть один, а определять по версии.
Нет
Unique IDentificator на то и уникальный, что указывает на конкретный драйвер с его протоколом (может стандартным для всего класса уст-в а может и нет) и его ограничениями.
Например драйвер порта на M32 и M168 имеют разные параметры (кол-во портов)
почему они должны иметь один UID? Да протокол доступа один и тот-же, но портов то меньше!
Почему должна отличаться версия?
С другой стороны мне не понятно, зачем вообще нужна версия драйвера?
Добавил в драйвер порта по-битный доступ, поменял версию, а чем это отличается от смены UIDа?
Да ни чем, имхо даже удобней было-бы: есть одна таблица идов со всеми параметрами драйвера,
а неизвестные параметры мы точно знаем как запросить.