Je programme sur un microprocesseur (Coldfire) et je n'ai pas accès tous les jours au microprocesseur, donc je veux pouvoir exécuter une partie de mon code sur l'ordinateur.Le préprocesseur ne saute pas les directives asm
Donc j'essaie d'ignorer une partie de mon code lors de l'exécution sur l'ordinateur en définissant TEST.
Cela ne fonctionne pas. Il essaie de compiler le code asm et meurt en pleurant de ne pas connaître les noms des registres (ils sont bien définis en compilant contre le Coldfire, pas mon Intel Core Duo).
Des idées pour lesquelles cela ne fonctionne pas? ou peut-être une autre façon d'exécuter le code sur le PC sans le commenter ?.
est ici un exemple de code de mon projet:
inline void ct_sistem_exit(int status)
{
#ifdef _TEST_
exit(status);
#else
asm volatile(
"moveb #0,%%d1\n\t"
"movel #0, %%d0\n\t"
"trap #15\n\t"
:
:
: "d0", "d1"
);
#endif /* _TEST_ */
}
Si elle aide: l'aide gcc3 avec Cygwin sur Netbeans 6.8
Et la façon dont je suis la définition _TEST_:
#define _TEST_
#include "mycode.c"
int main(int argc, char** argv)
{
ct_sistem_exit(0);
}
Comment définissez-vous '_TEST_'? Il semble que cela devrait fonctionner si ce symbole est défini correctement. Vous pouvez essayer de mettre "#define '_TEST_' 1" juste avant cette fonction pour vous assurer que cela fonctionne. Vous pouvez également essayer un nom différent au cas où '_TEST_' est utilisé pour autre chose. – WildCrustacean
J'ai essayé de définir _TEST_ juste avant la fonction, comme vous l'avez dit, mais cela provoque de drôles d'erreurs sur mon code. Je vais ajouter à la question comment j'ai défini _TEST_ – demula