- LiTime Speicher und Akkus         
Ergebnis 1 bis 3 von 3

Thema: C-Syntax Überprüfung

  1. #1
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199

    C-Syntax Überprüfung

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo,

    motiviert durch den menschlichen C-Syntax-Checker in folgendem Beitrag fragte ich mich, mit welchen Tools (und wie) man die C-Syntax von Asuro-Programmen automatisch überprüfen lassen kann.

    Als Ergebnis entstand der Artikel C-Syntax Überprüfung in der Rubrik Programmierung auf dem AsuroWiki.

    Ich hoffe, dieser Artikel kann bei kniffligen Problemen helfen ...
    Gruß, Hermann.
    myIrAsuro.Bild hier  

  2. #2
    Benutzer Stammmitglied
    Registriert seit
    01.02.2007
    Ort
    Ashausen
    Alter
    65
    Beiträge
    64
    Hallo Hermann,

    danke für den Tipp.

    Liegt es an dem zu einfachen Beispiel, oder denke ich schief - aber ich bekomme diese Fehler schon vom Compiler angezeigt:

    Code:
    test.c: In function 'main':
    test.c:5: warning: suggest parentheses around assignment used as truth value
    test.c:6: warning: statement with no effect
    ... und wenn man in Eclipse programmiert, dann bekommt man die fehlerhaften Zeilen auch noch unterstrichen:
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken warnings.jpg  

  3. #3
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    18.12.2006
    Ort
    Eberbach
    Beiträge
    199
    Hallo _HP_,
    Zitat Zitat von _HP_
    Hallo Hermann,

    danke für den Tipp.

    Liegt es an dem zu einfachen Beispiel, oder denke ich schief - aber ich bekomme diese Fehler schon vom Compiler angezeigt:
    ...
    da hast Du natürlich Recht, zuerst sollte man mittels avr-gcc -Wall ... schauen, was der Compiler so von sich gibt. Wenn man da nicht fündig wird, und trotzdem noch komisches Verhalten im Programm hat, kann ja mit splint weitermachen.

    Ich habe mal die Dateien der Asurolib unter die Lupe genommen, und unter den unheimlich vielen (wahrscheinlich) harmlosen Meldungen zumindest zwei gefunden, welche nicht bei avr-gcc -Wall ... reported werden:
    • In diesem Fall brennt nichts an wegen AND mit 0x00, aber da sollte besser eine Zuweisung stehen ...
      Code:
      ...
      lcd.c:117:3: Variable dataPins used before definition
        An rvalue is used that may not be initialized to a value on some execution
        path. (Use -usedef to inhibit warning)
      ...
      
      ==============================================
      ...
      void SetDataLCD(unsigned char data)
      {
        unsigned char dataPins;             // Pin Compatibility
      
        // Set First Nibble Data to DataPins on PCF8574
        dataPins &= 0x00;                                           <<<---- Zeile 117
        dataPins |= ((data & 0x80) >> 7) << LD7;
        dataPins |= ((data & 0x40) >> 6) << LD6;
        dataPins |= ((data & 0x20) >> 5) << LD5;
        dataPins |= ((data & 0x10) >> 4) << LD4;
      ...
      ==============================================
    • Unreachable Code in Form des return 0; in main() nach dem while (1); sind wir ja gewohnt, aber in PCDemo hat sich da noch eine Stelle eingeschlichen:
      Code:
      ...
      PCDemo.c: (in function PCDemo)
      PCDemo.c:147:7: Unreachable code: break
        This code will never be reached on any possible execution. (Use -unreachable
        to inhibit warning)
      ...
      
      ============================================
      ...
          switch (cmd)
          {
          case RWD_KEY :
            PCRwd();
            break;
          case FWD_KEY :
            PCFwd();
            break;
          case LEFT_KEY :
            PCLeft();
            break;
          case RIGHT_KEY :
            PCRight();
            break;
          case STOP_KEY :
            PCStop();
            break;
          case ESC_KEY :
            return;
            break;                         <<<--- Zeile 147
          }
      ...
      ============================================
    Gruß, Hermann.
    myIrAsuro.Bild hier  

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiTime Speicher und Akkus