Pages: [1]   Go Down
Author Topic: Erreur de compil Arduino Due  (Read 423 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
Je developpe un programme actuellement sur Mega2560 le programme tourne bien, mais je n'ai plus que 1,4ko de ram j'ai eu beau optimiser mon code, mais je suis à l'etroit et je n'ai pas terminé mon programme.
Je suis passé sur le Due (plus de ram) mais là alors que mon programme compile bien sur Mega2560 et tourne bien j'ai des erreurs surtout dans des librairies fournies avec le package, que je n'ai donc pas touché et qui sont bien présente (j'ai vérifié).

Voici les erreurs merci de m'aider.

In file included from c:\program files (x86)\arduino\hardware\tools\g++_arm_none_eabi\bin\../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/include/sys/stat.h:9,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\sam\cores\arduino/syscalls.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:50,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\SPI/SPI.h:14,
                 from Chauffage.ino:2:
C:\Program Files (x86)\Arduino\libraries\Time/time.h:15: error: conflicting declaration 'typedef long unsigned int time_t'
c:\program files (x86)\arduino\hardware\tools\g++_arm_none_eabi\bin\../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/include/sys/types.h:109: error: 'time_t' has a previous declaration as 'typedef long int time_t'
In file included from c:\program files (x86)\arduino\hardware\tools\g++_arm_none_eabi\bin\../lib/gcc/arm-none-eabi/4.4.1/../../../../arm-none-eabi/include/sys/stat.h:9,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\sam\cores\arduino/syscalls.h:32,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\sam\variants\arduino_due_x/variant.h:50,
                 from C:\Program Files (x86)\Arduino\hardware\arduino\sam\libraries\SPI/SPI.h:14,
                 from Chauffage.ino:2:
C:\Program Files (x86)\Arduino\libraries\Time/time.h:105: error: declaration of C function 'void setTime(int, int, int, int, int, int)' conflicts with
C:\Program Files (x86)\Arduino\libraries\Time/time.h:104: error: previous declaration 'void setTime(time_t)' here
Logged

@+ JLuc

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3582
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mais je n'ai plus que 1,4ko de ram

Bah j'ai envie de dire il en reste encore :o

Bref sinon sans le code on est pas magicien on peut pas deviner ...

Sinon pas de magie non plus, les librairies entre micro 8-bits et ARM 32 bits sont pas souvent directement compatibles ...
Logged


Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci pour ta réponse, mais je crois en effet que la compatibilité y est pour beaucoup, pour le code je ne l'ai pas mis (près de 2500 lignes) pas possible de poster.
Mais entre temps j'ai fait encore quelques coupes sombres et j'ai gagné quelques % mais comme je l'ai dis mon programme n'es pas terminé et ca me fait peur...
Merci encore pour ta réponse.
Logged

@+ JLuc

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3582
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Visiblement y'a des conflit entre time.h et sys/types.h
change tous les time_t en time_t2 par exemple, dans time.h et time.cpp
Logged


Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

time_t est un format de variable reconnu par le C time_t2 connais pas !
Peux-tu m'en dire plus  ?
Logged

@+ JLuc

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3582
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je sais juste que time_t est le nombre de seconde écoulées depuis le 01/01/12 : http://www.cplusplus.com/reference/ctime/time_t/

Après je découvre avec toi que ça fait partie intégrante du C

Du coup ce que je comprend : la librairie Time que tu utilises, utilise Time.h qui est semble-t-il un fichier de base du C et qui est également utilisé par le compilateur ARM. Donc conflit car "c'était pas prévu pour" on va dire. Donc soit tu trouves une autre lib que Time, soit il va falloir la modifier
Logged


Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
Au vu des erreurs rencontrées, je dirai qu'il n'y a pas que là que ca coince, j'ai en fait l'impression que ide Arduino étant en version beta n'est pas encore à la hauteur pour la compatibilité direct des différentes versions d'Arduino, et j'ai dans l'idée qu'il vont bientôt créer une nouvelle version parce qu'en plus il y a un nouvelle Arduino avec processeur Intel à 400Mhz qui fait son entrée.
Alors pour le moment comme j'ai pu optimiser et gagné suffisamment pour pouvoir continuer un peu, je reste avec le2560, j'essaierai une migration plus tard.
Quoi qu'il en soit, je te remercie beaucoup pour ton aide et je reviendrai parler de la migration dès que le besoin s'en fera sentir comme ca, si ca peut en aider d'autres...
Logged

@+ JLuc

Ales
Offline Offline
Faraday Member
**
Karma: 39
Posts: 3582
Do or DIY
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Elle existe depuis plusieurs mois déjà : http://arduino.cc/en/ArduinoCertified/IntelGalileo#.UwcvGvl5OK8
Logged


Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui c'est vrai, mais il n'y a toujours de prise en compte dans l'ide, donc je verrais avec la prochaine version, merci.
Logged

@+ JLuc

Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ha ben ca y est, je viens de regarder et la version 1.5.6 vient de sortir avec prise en compte du Galileo, affaire à suivre...

Bon je réédite mon post :
Après avoir testé (juste pour voir) c'est quasiment pareil, j'ai surtout l'impression qu'il y a une vrai incompatibilité dût au matériel, du coup le compilateur ne fait pas de miracle, et moi je me vois mal réécrire tout le programme, j'y ai passé trop d'heure et je vais plutôt revoir à la baisse les possibilité que j'avais prévu.
Merci pour ton aide.
« Last Edit: February 21, 2014, 11:04:21 am by JLuc » Logged

@+ JLuc

France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3430
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

C:\Program Files (x86)\Arduino\libraries\Time/time.h:15: error: conflicting declaration 'typedef long unsigned int time_t'

Celle là, ce n'est pas toi qui l'aurait ajoutée.
Elle n’apparaît pas chez moi. Et c'est elle qui est en conflit avec la définition dans types.h du compilateur C arm.
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je viens de voir que tu as posté pendant que je rééditais mon précédent post.
Non je n'ai retouché aucune librairies, je me contente d'écrire les programmes, ca me suffit, je n'aime pas réinventer la roue.
Avec la dernière version je n'ai pas remis cette librairie et les erreurs (même légèrement différentes) persistent.
« Last Edit: February 21, 2014, 11:09:09 am by JLuc » Logged

@+ JLuc

France
Offline Offline
Faraday Member
**
Karma: 55
Posts: 5347
Arduino Hacker
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Dans Time.h au début :
Quote
#include <inttypes.h>
#ifndef __AVR__
#include <sys/types.h> // for __time_t_defined, but avr libc lacks sys/types.h
#endif

#if !defined(__time_t_defined) // avoid conflict with newlib or other posix libc
typedef unsigned long time_t;
#endif
Pas de bol la libc de ARM-gcc possède bien le fichier sys.types.h contrairement à la avr-libc.

Commente la ligne suivante et ça devrais marcher :
Code:
typedef unsigned long time_t;
Logged

Des news, des tuto et plein de bonne chose sur http://skyduino.wordpress.com !

Offline Offline
Full Member
***
Karma: 0
Posts: 125
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,
Mon projet avance bien, et je n'ai plus besoin de la librairie time.h du coup plus de problème mais je me heurte à d'autres depuis hier, j'ai mis une carte réseau w5200 à la place de la w5100 car limité et lente. Je devrai donc pouvoir avancer encore, dès que j'aurai trouvé une librairie adapté pour le due.
Merci beaucoup pour toute l'aide apportée.
Logged

@+ JLuc

Pages: [1]   Go Up
Jump to: