Я играю с проектом для STM32 µ C. Я использую SW4STM32 верстак и CubeMX в системе Ma c OSX. Сам мой проект в порядке, все соответственно компилируется и ведет себя на устройстве, как и ожидалось.
Для дальнейшего изучения я хотел бы реализовать модульные тесты с использованием фреймворка CppuUTest . Я настроил все, получил мои тестовые каталоги и make-файл для настройки переменных MakefileWorker.
Однако при выполнении Makefile я получаю сообщение об ошибке:
error:
register 'sp' unsuitable for global register variables on this target
Эта ошибка возникает из-за системных вызовов. c (это файл, созданный CubeMX). Строка, вызывающая ошибку, выглядит следующим образом:
register char * stack_ptr asm("sp");
После моих исследований мне кажется, что для решения проблемы не существует простого обходного пути. Исходный код генерируется Cube и отлично работает при компиляции с помощью цепочки инструментов sw4stm32 (которая использует компилятор mcu g cc). Однако в цепочке инструментов CppUTest используется clang, который не может справиться с глобальными переменными регистра (как об ошибке говорит также).
Мой вопрос здесь:
У кого-нибудь из вас уже была такая же ошибка или больше опыта в настройке CppUTest для проекта sw4stm32 в системе OSx? У кого-нибудь есть идеи, как решить эту проблему?
Если вам нужна дополнительная информация / фрагменты кода от меня, я с удовольствием поделюсь этим.
Большое спасибо, ребята! Любая помощь будет высоко ценится: -)
Ура, Тоби