1. Банальная поддержка УАРТ для RS485. В одном контроллере есть
прерывание по пустому регистру сдвига, в другом нет, нужно таймер
задействовать. 2. Переход в энергосберегающий режим одному
контроллеру пофиг, что на входе пробуждения, он на фронт реагирует,
а другой не заснёт, если на входе пробуждения не тот уровень. Тут
не просто ПО, тут еще и схемотехника завязана. А в схемотехнике
банальный детектор питания, пока сохранялись, он опять дернулся и
прибор не уснул, или не проснулся, не помню уже. 3. Объем работы с EEPROM. В одних проектах я реализовал I2C ногодрыганьем и все портируется на низком уровне, а если нужно постоянно писать то это разные драйверы, перенос границы портирования на высокий уровень. 4. Ну невыровненый доступ это уже да, разная архитектура.