www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Programmstillstand bei time()-Aufruf mit NXP LPC2368 (ARM)


Autor: Rob S. (ckolumbus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Gemeinschaft,

ich bin der Neue. :o) Ich komme gleich zur Sache: Ich arbeite mit Keil 
µVision 4 an einem Programm für einen NXP LPC2368 ARM-Controller mit. Es 
wird der RTX-Kernel verwendet. Das Ganze läuft im ARM-Mode. Nun wollte 
ich in einer Methode eine ANSI-C Standardfunktion nutzen, time(). 
Anfangs hat der Linker sich immer beschwert, dass ihm das Symbol time 
nicht bekannt sei. Ich habe dann herausgefunden, dass es an der 
aktivierten MicroLIB lag, durch die Standardfunktionen die auf das 
Betriebssystem zugreifen nicht verfügbar sind (MicroLIB ist eine 
abgespeckte Bibliothek für Zielumgebungen mit wenig Speicher). Da die 
Nutzung der MicroLIB nicht erforderlich war (k.A. warum die aktiviert 
war), habe ich sie deaktiviert. Nun compiliert und linkt µVision das 
Programm ohne Warnungen oder Fehler, aber das Programm bleibt beim 
time()-Funktionsaufruf stehen. Das passiert sowohl im Debugger als auch 
ohne Debugger. Im Debugger wird bei Ausführung der Zeile mit 
time()-Aufruf im Schrittbetrieb auch keine Funktion geöffnet, wie es 
sonst der Fall ist. Hier ein Code-Auszug aus der Methode:
#include "time.h"

void MethodeXYZ()
{
  time_t TmpZeit;
  struct tm *StartZeit;

  // ...
  time(&TmpZeit);                  // aktuelle Systemzeit (in Sekunden)
  TmpZeit-= lVarB;                 // ermittelte Sekunden abziehen => Startzeit
  StartZeit= localtime(&TmpZeit);  // Startzeit in Struktur mit Einzelwerten
  // ...
}

Kann mir jemand Hinweise geben wie ich das Problem lösen kann und woran 
es liegen könnte?

Vielen Dank schonmal
MfG
cKolumbus

Autor: Marcus Harnisch (mharnisch) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rob S. schrieb:
> Nun compiliert und linkt µVision das Programm ohne Warnungen oder
> Fehler, aber das Programm bleibt beim time()-Funktionsaufruf
> stehen.

Das Problem ist das fehlende retargeting:
http://infocenter.arm.com/help/topic/com.arm.doc.d...

Viele Funktionen der C-library sind sehr systemspezifisch und müssen
daher angepasst werden.

Gruß
Marcus

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.