ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1078899
Dingo (20.02.2021 18:58, просмотров: 5155) Evgeny_CD
Доброго! Поделитесь, пожалуйста, кто как выносит из библиотеки нижний уровень? Например - транспортный по i2c, SPI? 

По примеру printf(), где вынесена putchar() для вывода в УАРТ, на дисплей, ещё там куда пользователь пожелает.

Объявляем как external fn() и погнали. Или инициализируем указатель на функцию. Для spi более-менее понятно: err_c spi_trx( p_src, p_dst, cnt);

А как быть с той же i2c? Выделять ли для пользователя состояния start/restart? Как определить на каком уровне выполнять разделение(изоляцию): достаточно ли транспортного? В случае (для примера) с дисплеем - может ли иметь смысл разделение не транспортного уровня, а команды/данные? (имхо - нет)

Не то чтобы я подобное не делал, но захотел причесать некоторые свои наработки, и чтобы поменьше лазить внутрь, пытаюсь понять как это сделать оптимально. Если какая-то библиотека удобная, то почему?

Какие мысли будут у сахарчан?

PS: Если кто сочтёт, что уместней перенести в "Средства и методы" - перебрасывайте.