А вопросец то наверное многих волнует. Я к тому же пришел, надо ваять что то эдакое... ;-)
Сейчас сел разделять работу с I2C периферией (а у меня 5 слейвов на шине, разных, от TAOSовского датчика освещенности до далласовского I2C потенциометра) на 2 "слоя" - собственно драйвер I2C устройства и "прослойка" которая обеспечивает работу всех этих драйверов с I2C периферией конкретного камня или реализует bit banging на портах ввода-вывода.
Потом видимо придется сделать то же самое и с SPI.
Надоело каждый раз перезатачивать отлаженные уже куски кода под другой камень и отлаживаться заново.
Собираюсь сделать все это kernel-aware, чтобы если в проекте присутствует например ucos, автоматом подтягивались куски кода которые заведуют семафорами, и варианты "вклинивания" в транзакцию на шине исключались в корне.
Но пока все только на уровне неотлаженных огрызков. Для себя решил насчет "стандарта" вызовов драйверов железа и по мере сил делаю (в фоновом режиме).
На самом деле - проектец такой, который бы можно было сделать "народным". ;-)
|