Я пытаюсь реализовать использование DSP в плате STM32 F411RE, но я не могу включить необходимые файлы, не вызывая многочисленные ошибки.
Фон
Ранее у меня были CMSIS и CMSIS-DSP, работающие в Keil uVision, но учитывая ограничение кода в 32 КБ, которое довольно быстро выводит меня за пределы оценки. В связи с этим я пытался включить CMSIS-DSP в Atollic TrueStudio, но, по-видимому, это трудно осуществить: для CMSIS-DSP имеется ограниченная документация для начала и, тем более, для реализации в Atollic TrueStudio.
Некоторые связанные ресурсы можно найти в
Atollic TrueStudio. Руководство пользователя.
так же как
Тема StackOverflow # 1
а также
Тема StackOverflow # 2
, Большинство других связанных с этим тем, которые я могу найти, просто ссылаются на использование Keil uVision или руководство пользователя без особой помощи.
Atollic TrueStudio включает встроенный менеджер пакетов, в котором базовый CMSIS доступен для загрузки, но он не предоставляет эту опцию для пакета CMSIS-DSP.
Попытка решения
Я попытался вручную загрузить соответствующий пакет CMSIS (STM32Cube_FW_F4_V1.24.0) и поместить соответствующий пакет DSP в структуру файла проекта. Это тогда позволяет использовать функции DSP, такие как
#include arm_math.h
или arm_rfft_fast_instance_f32 S;
, которые также могут вызываться с использованием функции автозаполнения и, таким образом, распознаются в IDE.
Однако этот процесс также вызывает много ошибок, поскольку включенным функциям не удается распознать их зависимости заголовка (например, #include arm_math.h
). Меня смущает, что main.c может распознавать команду #include arm_math.h
, но включенных функций нет, но я, тем не менее, пытаюсь это исправить, добавив CMSIS DSP во включенные каталоги (см. «Свойства сборки» -> Сборка C / C ++ -> Настройки -> Настройки инструмента -> Компилятор C -> Каталоги`). Однако это также не устраняет проблему.
Результаты кода
Функция не может найти заголовок
![Function cannot find the header](https://i.imgur.com/z1nawoz.png)
Однако главный может найти точно такой же заголовок
![Main.c can find the header however](https://imgur.com/ABiXoaI.png)
И заголовок включен в опции сборки -> каталоги
![Build options, includes the DSP header](https://i.imgur.com/p1RJqHW.png)
Только что проверил, что он также включен в «путь и символы», что он должен делать автоматически AFAIK, как только вы включите его в опции сборки:
![Path and symbols](https://i.imgur.com/AzImhRp.png)
Обновление
Со времени моего ОП я добился определенного прогресса, в основном за счет возни с включениями, символами и компоновщиком. Теперь мне удалось победить исходную ошибку (хотя, к сожалению, я понятия не имею, как), но теперь у меня возникло большое количество дополнительных ошибок для файлов startup_stm32.
Все эти ошибки являются ошибочными инструкциями, относящимися к файлам шаблонов, включенным в CMSIS (CMSIS / Device / ST / STM32F4xx / Source / Templates / ARM / ...), которые каким-то образом не могут интерпретировать различные команды, перечисленные в этих шаблонах. .
Пример ошибки: bad instruction __heap_base