Неопределенная ссылка на extern int stm32 - PullRequest
0 голосов
/ 27 ноября 2011

Я использую Atrollic Studio (проблема также существует в Eclipse).

.h file

 extern int i2cInitIO(uint channel, uint hz);
 extern int i2cIO(uint device, byte *put, uint putlen, byte *get, uint getlen);

.c file

#include "tollosI2C.h"
int i2cGetReg(uint device, byte reg, byte *get) {
  // write one byte address then read 1 byte data

  return i2cIO(device, &reg, 1, get, 1);
  } // i2cGetReg

У меня естьпроблема: неопределенная ссылка на `i2cIO '. Этот проект должен быть скомпилирован цепочкой инструментов ARM.StM32F103VET6 - устройства высокой плотности. Я использую ST-Link.

UPD: мой файл .h - http://pastebin.com/52ftBxR9

и c.file - http://pastebin.com/CcjpVZUP

Команда вызова компилятора - "gcc" без фигурных скобок.

Аргументы вызова компилятора - "-E -P -v -dD $ {plugin_state_location} /specs.c" безбрекеты.

1 Ответ

0 голосов
/ 27 ноября 2011

ОК, ваша среда называется Atollic (орфографическая ошибка), но из названия заголовочного файла я заключаю, что вы используете супервизор Tollos от Mike Cowlishaw. Во-вторых, ваши параметры компиляции могут быть неверными, поскольку параметр -E для GCC приводит к генерированию только предварительно обработанного вывода, однако сообщаемая вами ошибка является ошибкой компоновщика.

Без дополнительной информации я бы предположил, что вам не хватает библиотеки, содержащей реализацию i2cIO, возможно, отсутствует опция для командной строки компоновщика.

Поскольку вы, похоже, используете вариант процессора, который не поддерживается Tollos напрямую, я полагаю, вы хотите портировать Tollos для вашего процессора. Проверьте ваш make-файл cq. Настройка проекта Atollic для включения правильных библиотек. А при необходимости замените параметр -E на -c.

...