Значит правильные были подозрения, что это код написан с учетом особенностей Keil.
Правка кода с использованием "__attribute__((__packed__))" прошла успешно, исправил во всех подобных структурах.
Огромное спасибо!
Благодаря помощи удалось решить проблемы со всеми заголовочными файлами, проект почти собран.
Судя по сообщениям компилятора, только в одном .c файле остались ошибки, который отвечает за обмен по i2c.
Добавлено after 1 hour 1 minute 32 seconds:Решил исключить из проекта этот подозрительный файл i2c.c, вызывающий большое количество ошибок, т.к. не обнаружил к нему отсылок в файле Main.c, посчитав, что в случае необходимости компилятор выдаст сообщение об обсутствии необходимого файла.
Но результат вышел неожиданным.
Ошибка появилась по файлу stm32f4xx_conf.h, причем я посмотрел содержимое альтернативных файлов из сети с таким же названием, и там всё написано аналогично.
Но компилятор почему-то ругается именно на него.
Код:
void assert_failed(uint8_t* file, uint32_t line);
#else
#define assert_param(expr) ((void)0) error: expected identifier or '(' before 'void' и error: expected ')' before numeric constant
#endif /* USE_FULL_ASSERT */
#endif /* __STM32F4xx_CONF_H */