Прошу помощи! Использую STM32F3Discovery и Keil 4. При создании проекта автоматически добавляется файл startup_stm32f30x.s, в котором в том числе прописаны обработчики прерываний. Если подключаем библиотечный файл arm_math.h, в котором имеется #include «ARMCM4.h». В последнем еще раз определены некоторые обработчики прерываний, на что Keil страшно ругается. Пробовал их закомментировал, но думаю, что это не правильно. Как тогда использовать arm_math.h.
Спасибо, работает! А можно чуть подробнее о сути происходящего. Без вышепоказанного кейл пишет "redefinition of IRQn". Т.е. в ARMCM4.h переопределяются некоторые IRQ под свои нужды?
#if defined (ARM_MATH_CM4) #include "core_cm4.h" #elif defined (ARM_MATH_CM3) #include "core_cm3.h" #elif defined (ARM_MATH_CM0) #include "core_cm0.h" #else #include "ARMCM4.h" #warning "Define either ARM_MATH_CM4 OR ARM_MATH_CM3...By Default building on ARM_MATH_CM4....." #endif
ARMCM4.h я вообще не нашел, подумал, что это заглушка на случай если мы забудем выбрать тип ядра.
_________________ Иван Сусанин - первый полупроводник
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
P.S. Методом тыка нашел. В IAR 8.30.1 нужно поставить галки "Use CMSIS" и "DSP Library" в поле "CMSIS" во вкладке "General Options-Library Configuration" и вписать ARM_MATH_CM4 в поле «Defend symbols: (One per line)» во вкладке «C/C++ Compiler-Preprocessor».
P.P.S. Оказалось, это еще не все. Как я понимаю, требуется выбрать VFPv4 single precision в выпадающем списке «FPU» в поле «General Options-Target». После чего проект скомпилировался, но появилось всплывающее окно с сообщением что не найден файл arm_cmplx_mag_q15.c в какой-то директории на диске D:. При том, что у меня нет диска D. И дальше предложение пропустить этот момент. При нажатии Skip проект компилируется вроде, но недостача какого-то файла, это ненормально, я считаю. Взял этот файл из скачанной с сайта ST либы CMSIS и добавил его в проект. Кажется прокатило.
P.P.P.S. Не прокатило. Теперь в мессагах Build стало появлятся сообщение Fatal Error[Pe035]: #error directive: "Compiler generates FPU instructions for a device without an FPU (check __FPU_PRESENT)" C:\STM32\F303\Fourier\CMSIS\core_cm4.h 117. Нашел в файле stm32f303xc.h такую строчку #define __FPU_PRESENT 1U /*!< STM32F303xC devices provide an FPU */. Скопировал оттуда __FPU_PRESENT в поле «Defend symbols: (One per line)» во вкладке «C/C++ Compiler-Preprocessor». Скомпилировалось без ошибок.
_________________ Астролябия-сама меряет, было бы что мерять!!!
С IAR не работал, но должно не сильно отличаться: 1. подключить нужную библиотеку. Например, libarm_cortex..._math.a как arm_cortex..._math 2. указать путь к \Drivers\CMSIS\Lib\GCC, \Drivers\CMSIS\DSP\Include и к libarm_cortex..._math.a файлу 3. прописать __FPU_PRESENT, ARM_MATH_CM4 не через #define, а в "Symbols".
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 48
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения