Undefined Reference : AVR Studio

Bonsoir tout le monde

Je viens de trouver une librairie bien sympa : Procyon AVRlib - C-Language Function Library for Atmel AVR Processors
Que je ne peux pas compiler… impossibilité totale et je n’arrive pas à trouver une solution à ça :
Error 1 undefined reference to i2cInit()
J’utilise AVR Studio pour ce projet.

Le code est vraiment bidon c’est juste pour tester que tout fonctionne avant de l’intégrer dans le vrai projet:
Je ne sais pas si vous avez besoin de tout les fichiers complet, il sont vraiment long, je vais le limiter au départ:

/*
 * atmega32u4.cpp
 *
 * Created: 15/12/2013 23:16:54
 *  Author: someone
 */ 

#include <avr/io.h>
#include "i2c.h"

int main(void)
{
	i2cInit();
}
//i2c.c

#include <avr/io.h>
#include <avr/interrupt.h>

#include "i2c.h"

.
.
.
//i2c.h

#ifndef I2C_H
#define I2C_H

#include "global.h"

// include project-specific configuration
#include "i2cconf.h"

.
.
.

Sans utiliser de fonction dans le main ça compile, sinon ça me crache à la figure l’erreur de référence…
J’ai tout essayé, en cliquant partout dans les paramètres, en incluant plein de dossier dans le linker, le compileur etc… rien ne fonctionne.

Merci d’avance !

La plus récente mise à jour de cette librairie date de 7 ans...

Certes ça commence à prendre de la bouteille ^^ Mais le code m'a paru correct, il suffit (je pense, mais c'est pas sûr) juste d'adapter le nom des registres. Mais je ne peux même pas essayer de faire quoi que ce soit ça compile pas.. pourtant ce ne sont que deux fichiers tout bête... Je ne comprend pas

L'age de la librairie n'a pas d'importance. Elle peut être mature et ne pas avoir nécessité de mise à jour. Les processeur AVR existent depuis un bon bout de temps et avant l'avènement de l'Arduino il existait déjà des librairies pour faciliter le codage des microcontrôleur.

As-tu essayé ceci : Procyon AVRlib

Oui j'ai regardé un peu partout dans la doc, mais il n'est mentionné nul part comment importer la librairie souhaitée à son projet. C'est pour ça que j'ai supposé juste devoir copier les fichiers dans le répertoire du projet, faire un import par l'IDE et roulez jeunesse... Mais il semblerait que j'ai manqué quelque chose...

Bonjour,

Tu veut utiliser cette librairie pour quelle raison ?
C'est manifestement une librairie conçue pour être compilée à part avec un makefile.
L'ide Arduino n'as aucune chance de pouvoir retrouver l'architecture de dossiers qui lui faut dedans.

Je n'utilise pas l'IDE Arduino, mais AVR Studio :wink:
J'utilise cette librairie parce que j'en ai assez de jouer aux petits suisses à chaque fois avec les registres du µC et pour le moment je n'ai pas le temps je coder ma propre librairie pour le moment, l'échéancier de mon projet arrive à pas de géant... :confused:

Ce que tu veux dire, c'est que je suis censé compiler à part la librairie avec make (ça va encore être du gâteau ça sur windob :cry: ) et qu'ensuite je dois la déclarer au linker pour pouvoir l'utiliser ?

Reynosa:
Oui j'ai regardé un peu partout dans la doc, mais il n'est mentionné nul part comment importer la librairie souhaitée à son projet. C'est pour ça que j'ai supposé juste devoir copier les fichiers dans le répertoire du projet, faire un import par l'IDE et roulez jeunesse... Mais il semblerait que j'ai manqué quelque chose...

On importe rien.
Dans tes sources tu déclares les .h des librairies que tu utilises.
Tu configures correctement la variable d'environnement comme expliqué dans "Installing AVRlib Manually"
Ensuite tu dois créer tes makefile pour compiler ton code. Il y a des exemples livrés avec la librairie.

Reynosa:
Je n'utilise pas l'IDE Arduino, mais AVR Studio :wink:

J'avais mal lu, désolé.

Reynosa:
Ce que tu veux dire, c'est que je suis censé compiler à part la librairie avec make (ça va encore être du gâteau ça sur windob :cry: ) et qu'ensuite je dois la déclarer au linker pour pouvoir l'utiliser ?

Tu doit avoir un répertoire "make" avec un makefile dedans, suivant ta version d'AVR studio tu doit pouvoir importer le code en tant que projet.
Sinon dans le manuel "Installing AVRlib Manually" tu as un exemple de make pour compiler en ligne de commande.

Ok merci à vous deux !
Je testerai ça quand j'aurais deux minutes :slight_smile: