Hallo, ich bin gerade dabei Code von IAR nach mspgcc zu portieren. Dabei bin ich auf
1 | if ((data & BIT(13)) == BIT(13)) |
gestoßen. GCC kennt das BIT Makro nicht. Ist BIT(13) äquivalent zu (1<<13) ?
|
Forum: Compiler & IDEs BIT() Makro in IARHallo, ich bin gerade dabei Code von IAR nach mspgcc zu portieren. Dabei bin ich auf
gestoßen. GCC kennt das BIT Makro nicht. Ist BIT(13) äquivalent zu (1<<13) ? Bernhard R. schrieb: > Wie ist denn das BIT-Macro im entsprechenden Header-File definiert? Ich konnte es in den >350 Headerdateien nicht finden. hmm. Wegen so was bohrt man normalerweise keinen Compiler auf. In irgendeinem Header wird es wohl sein und du hast es übersehen. Aber egal. Von der Verwendung her würde ich sagen: Ja das wird wohl so definiert sein
Übrigens ist das keine so gute Idee. Wenn du mit Bits arbeitest, ist es in C oft einfacher es sich zur Gewohnheit zu machen: Entweder ein Bit ist 0 oder es ist nicht 0 (also nicht: die Alternative ist, es ist 1) Dann vereinfacht sich die Abfrage
Luk4s K. schrieb: > Ich konnte es in den >350 Headerdateien nicht finden. Es muß in einer der includierten h-Dateien drin sein, sonst gibts nen Compiler-Error. Peter > Ich konnte es in den >350 Headerdateien nicht finden.
Hast du keine IDE, mit der du zu Definitionen hinspringen kannst?
Normalerweise geht das mit einem einzigen Tastendruck (wenn man die
Taste kennt - F3 bei eclipse) oder mit dem Kontextmenü.
> Ich konnte es in den >350 Headerdateien nicht finden.
Betriebssysteme besitzen meist eine Such-Funktion, um beliebige Strings
in Dateien zu finden.
Aber Software portieren wollen...
kopfschüttelnd
Bernhard
Mit (1<<13) geht's ich hatte mit greap alle Dateien im Inc-Verzeichnis der IAR-Installation auf der Windows-Partition durchsuchen lassen. PS: Ich hab unter Windows IAR (für die msp430) mal kurz ausprobiert; eine Frechheit für so etwas noch Geld zu verlangen. Luk4s K. schrieb: > ich hatte mit greap alle Dateien im Inc-Verzeichnis der IAR-Installation > auf der Windows-Partition durchsuchen lassen. Dann wirds wohl in nem Include des Projekts stehen. Es ist kein reserviertes C-Wort, also muß es irgendwo im Quelltext oder dessen Includes stehen. Du mußt Dir mal alle #include-Anweisungen der Quelltexte anzeigen lassen. Vielleicht zeigen welche auf Dateien oder Verzeichnisse, die Du nicht mit kopiert hast. Es soll auch Leute geben, die Includes anders nennen, also nicht *.h. Prinzipiell könen Defines sogar im Make stehen. Peter Also wenn das Problem noch aktuell ist, dann könnte ich dir Helfen. Ich arbeite mit ADuC7061 und dazu gibt es Paar Beispiele von ADI. Dort findet man in jedem Projekt entweder in einer Header-Datei oder gleich in main folgende Zeilen
usw. Somit mit deiner Zeile
überprüffst du ob in data an den 13.ten Bit eine 1 steht. Ich hoffe ich konnte dir helfen. mfg Wadim Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
|
|