Библиотеки абстракции не гарантируют переносимость кода между микроконтроллерами разных производителей по нескольким причинам:
- Различия в подходах к организации периферийных модулей. russianelectronics.ru Например, один производитель ориентируется на максимально эффективное использование специализированных периферийных ресурсов, а второй разрабатывает универсальный код с использованием стандартных модулей и функций. russianelectronics.ru При таких разных подходах сложно обеспечить бесшовную переносимость приложения. russianelectronics.ru
- Использование собственных алгоритмов и функций. russianelectronics.ru Каждый производитель интегрирует ядро, память и периферийные модули собственным методом, поэтому сложно придумать один стандартный уровень абстракции для всех. russianelectronics.ru
- Разная реализация аналогичных периферийных устройств. we.easyelectronics.ru Например, у разных производителей отличается разрядность портов ввода-вывода. we.easyelectronics.ru
- Использование библиотек для специализированных приложений. russianelectronics.ru Такие библиотеки могут содержать объекты интеллектуальной собственности, которые не могут быть перенесены на микроконтроллер другого производителя. russianelectronics.ru
Чтобы улучшить переносимость кода, можно создавать аппаратно-независимые библиотеки, которые позволяют использовать одну и ту же библиотеку на различных микроконтроллерах без изменения кода библиотеки под каждый из них. habr.com