Problem bei der Programmierung des LPC2148

02. Januar 2012
Mein erstes Programm hatte ich unter Cygwin mit der Gnu-Toolchain erstellt. Es wurde auch soweit ohne Probleme kompiliert und gelinkt. Aber als ich das HEX-File auf das Device (LPC2148) runtergeschrieben hatte, passierte gar nichts. Nach einigen weiteren relativ erfolglosen Versuchen entschied ich mich dann dafür, doch lieber die CrossWorks-IDE (mit einer Privatlizenz) zu nutzen.
Aber auch da passierte mir das Gleiche. Das Programm wollte einfach nicht so recht laufen. Eine Überprüfung der Startup-Datei sowie der Daten für das Memory-Mapping brachte nichts - es schien alles in Ordnung zu sein. Also entschloss ich mich, das Ganze nochmal mit KEILs uVision zu versuchen. Also lud ich mir die freie (auf 32 kB beschränkte) Version von uVision runter und probierte es hiermit nochmals. Nichts, das Gleiche Problem.
In meiner Verzweiflung sah ich mir die Projekteinstellungen (unter uVision) nochmal an und entdeckte eine kleine Checkbox bei den Linker-Settings.
 
KEIL uVision Projekteinstellungen
 
 
Haken gesetzt und damit nochmal des HEX-File erstellt, runtergeladen und siehe da, das Programm lief! So eine Kleinigkeit. Ich war die ganze Zeit davon ausgegangen, dass die Einstellungen für die Speicherbereiche (die ja stimmten) automatisch übernommen wurden. Offensichtlich passiert dies jedoch nicht.
Okay, damit war aber das Problem für CrossWorks immer noch nicht geklärt. Aber ich wußte schon mal, dass es nicht an meinem Quellcode gelegen hatte. Also nochmal die Einstellungen für das Speichermapping bei CrossWorks geprüft und nach eventuell übersehenen Optionen gesucht. Aber ohne Erfolg. Also hinterließ ich bei Rowley Accociates ein Ticket, in dem ich mein Problem schilderte. Ungefähr eine Stunde später hatte man mir geholfen! Ich muss dazu sagen, es war Sonntag (der 01.01.2012). Super! Die Lösung bestand in der Angabe des Defines STARTUP_FROM_RESET für den Preprozessor.
 
Rowley Assoc. CrossWorks
 
Nachdem ich dieses Define gesetzt hatte, lief mein - per CrossWorks erstelltes - Programm endlich auch auf dem Board. Nun könnte ich das Ganze noch einmal mit Cygwin bzw. der Gnu-Toolchain probieren ...
 
Hast Du etwas dazu zu sagen? Dann tu's doch!
HILFE
Code-Beispiele werden mit den BBCodes [code][/code] dargestellt. Jedes Tag muss eine Zeile für sich allein haben, d.h der Beispiel-Code muss wirklich ZWISCHEN den Tags stehen. Beispiel:
[code] ACHTUNG! HIER UMBRUCH WICHTIG. TAG [code] MUSS ALLEIN STEHEN
#include <stdio.h>

int main( void ){
    return 0;
} ACHTUNG! HIER UMBRUCH WICHTIG. NACHFOLGENDES TAG [/code] MUSS ALLEIN STEHEN
[/code]

Alles was zwischen den beiden Tags [register] und [/register] eingetragen wird, ist nur für registrierte (und eingeloggte) User sichtbar.
Dein Name *
Deine Email
Deine Website
Vorschau