Неопределенная проблема библиотеки процессора ARM в C

При создании C-программы для микроконтроллера Infineon с использованием DAVE 4.4.2 (IDE на основе Eclipse) я получаю эту ошибку:

'Building target: mcu.elf' 
main.c:(.text.ERU0_3_IRQHandler+0x696): undefined reference to `arm_mat_init_f32'
'Invoking: ARM-GCC C Linker'
collect2.exe: error: ld returned 1 exit status

Это упрощенный обзор моего кода.

#include <arm_math.h>
[other included libraries]

void my_function() {
  arm_matrix_instance_f32 M;
  float32_t zeros33[3][3] = {0};

  arm_mat_init_f32( &M, 3, 3, &zeros33);
}
[other defined functions]

int main(void) {
  my_function()
  [other stuff]
}

Пока в шапке arm_math.h Я вижу определение функции, которая называется неопределенной.

void arm_mat_init_f32(
arm_matrix_instance_f32 * S,
uint16_t nRows,
uint16_t nColumns,
float32_t * pData);

Я подозревал, что проблема могла заключаться в неправильном используемом типе данных или неправильном использовании указателей при передаче аргументов. Я пытался удалить & перед матричными переменными, но безуспешно. Исходя из той же мысли, я также пытался использовать разные типы данных для определения матричных данных: float32_t а также float,

Просматривая различные предупреждения и информационные сообщения, я заметил одно рядом с arm_mat_init_f32 декларация Expected 'float32_t *' but argument is of type 'float32_t (*)[3][3]', Поэтому я также пытался передать адрес "нормальной" переменной float32_t zero = 0.0f, и просто 0.0f, Они оба по-прежнему приводили к сбою сборки из-за неопределенной функции.

Последнее замечание заключается в том, что если я щелкну правой кнопкой мыши вызов функции в моем коде и предложу "перейти к декларации", нужная функция найдена в нужном файле.

В чем может быть проблема?

1 ответ

Решение

При использовании DAVE решением проблемы является добавление приложения через Project/Add new APP. Затем выберите System/CMSIS_DSP и нажмите "Добавить". Программа должна быть полностью перестроена.

Таким образом, DAVE настраивает все необходимые переменные среды и ссылки так, чтобы arm_math библиотека включена.

Другие вопросы по тегам