nahimovv писал(а):1. SPL не решает всех проблем, вам пришлось уйти от SPL чтобы решить свою задачу.
2. SPL не несёт никакой информации о работе периферии, знание референса и работы модулей является первостепенной.
3. SPL даёт заведомо тормозной и избыточный код.
Начнем с того, что я не ратую за использование SPL. Я за принцип разумной необходимости. SPL пусть занимается инициализацией контроллера дисплея, внешней памяти, ножки выставляет в нужные конфиги при старте и т.д. Это выполняется один раз и по.. все равно как оно написано, главное чтоб работало. Дисплей мне не особо интересен, а вот инит ацп, пдп я рассматриваю более пристально, смотря в даташит и в SPL. На ините долбаться ради 0.01% объема? Увольте. А вот работу с памятью и АЦП я делаю руками, например я никогда не доверю SPL читать индекс буфера ПДП после прерывания, а делаю это руками, еще и не ленюсь в ассемблер залезть и посмотреть как легло. Теперь по пунктам:
1. Не поверите, но функция в SPL делает ровно то же самое, что сделал я (запись только одного регистра), только с лишней проверкой и в проблеме она не виновата, ибо проблема возникает в любом случае.
2. Заблуждение. Информация есть, достаточно залезть в ту самую SPL и почитать код. Некоторые места в даташите можно прояснить.
3. Есть два момента - избыточность от параноидального подхода, что пользователь библиотеки даун, либо от не оптимального решения задачи. В некоторых местах от этого тормозной. Но тут все по классике - и мега быстрый оптимальный кусок кода может завесить систему если более высокоуровневый алгоритм неправильно его использует. Надо искать узкие места, а это целая наука и по ней книжки написаны. На тех задачах, для которых эти камни предназначены, первостепенная роль возлагаются на системные подходы и правильную архитектуру проекта
Любой, заслуживающий внимания, опыт приобретается себе в убыток...