Je sais que vous êtes très occupés... Mais j'aurais besoin de votre aide.
J'ai téléchargé les fichiers include .h : iotms470r1a256.h, io_macros.h, tms470r1a256_bit_definitions.h.
Le fichier tms470r1a256_bit_definitions.h : va servir à mettre les différents bits des différents registres à 1 par leur nom.
Le fichier io_macros.h : ce fichier définit les périphériques communs à tous les TMS470.
Le fichier iotms470r1a256.h : ce fichier définit les fonctions spéciales des registres pour le TMS470r1a256.
Problème que je rencontre :
Lors de la compilation avec compilateur de WinARM, j'ai des erreurs :
1. Apparemment ce code ne peut être compilé que par le compilateur ICCARM/AARM. (fichier iotms470r1a256.h)
#if (((__TID__ >> & 0x7F) != 0x4F) /* 0x4f = 79 dec */
#error This file should only be compiled by ICCARM/AARM
#endif
Solution : Donc pour éviter cette erreur à la compilation j'ai enlevé ce bout de code. Est-ce que c'est ce qu'il faut faire ?
2. Erreur de compilation sur toutes les instructions de ce type (fichier iotms470r1a256.h):
__IO_REG32_BIT(SMCR0, 0xfffffd00,__READ_WRITE,__smcr0_bits);
Il y a en plus des parties de code que je ne comprends pas bien (ce qui est en gras) :3. Warnings à cause du backslash
#define __IO_REG8(NAME, ADDRESS, ATTRIBUTE) \
volatile __no_init ATTRIBUTE unsigned char NAME @ ADDRESS
1. #ifdef __IAR_SYSTEMS_ICC__
2. #ifndef _SYSTEM_BUILD
#pragma system_include
#endif
3. #define __IO_REG8_BIT(NAME, ADDRESS, ATTRIBUTE, BIT_STRUCT)\
volatile __no_init ATTRIBUTE union
{
unsigned char NAME;
BIT_STRUCT NAME ## _bit; \
} @ ADDRESS
4. #if (((__TID__ >> & 0x7F) != 0x4F) /* 0x4f = 79 dec */
#error This file should only be compiled by ICCARM/AARM
#endif
Si vous pourriez encore m'éclairer, je serais vraiment ravi.5. #if __LITTLE_ENDIAN__ == 1
#error This file should only be compiled in big endian mode
#endif
Je sais que j'abuse , mais en ce moment, je me sens un peu seul face à tout ça...
Bonne soirée !
Merci pour tout !