hallo zusammen, ich programmiere zurzeit MSP430 mit CCE2.0 und habe ein Problem mit der Software. Würde ich gerne fragen , ob es möglich ist ,ob z.B " Hallo world " von CCE 2.0 ausgegeben wird, also wie in normal C Sprach. ich habe zum Test ein Skript geschrieben: #include <stdio.h> main() { printf("Hello world\n"); } Es gibt zwar einen Snytaxfehler, aber das Skript wird auch nicht durchgeführt. wenn ich z.B ein Word oder eine int-Zahl ausgeben möchte, wie sollte ich in CCE 2.0 schreiben ? mfG! Buwei
Buwei Zhang wrote: > Es gibt zwar einen Snytaxfehler, aber das Skript wird auch nicht > durchgeführt. Das wäre auch sehr ungewöhnlich, da bei einer Fehlermeldung kein ausführbares Programm erzeugt wird. Man könnte nun rumraten, was der Wortlaut dieser Fehlermeldung sein könnte, wenn man viel Langeweile hat. Schau doch mal in das Example Verzeichnis Deiner Compilerinstallation, da ist bestimmt ein UART-Beispiel drin. Peter
hi, habe ich einen Schreibfehler gemacht. Es gibt bei meinem Programm KEIN Syntaxfehler. Gruß! Buwei
Das geht so nicht. Ich nehme an, du willst in der Konsole des CCE was ausgeben, was der MSP430 berechnet hat? Meines Wissens hat die Debug-Logik im MSP430 dafür keine Funktionen eingebaut, dazu müsste die über einen dedizierten JTAG-Kanal Infos an den Host-PC schicken können. Printf beim MSP430 (und bei fast allen anderen µC) ist eine leere Funktion, die durch den Nutzer gefüllt werden muss. Im einfachsten Fall durch Senden an die UART, so dass man mit Hyperterminal oder so am PC die printf Ausschriften lesen kann. Über JTAG geht das (zumindest am MSP430) nicht. Printf ruft für jedes Zeichen eine putchar() Funktion auf, die du selbst noch festlegen musst.
> Über JTAG geht das (zumindest am MSP430) nicht.
Mit Rowley Crossworks geht so etwas doch, zwar ziemlich langsam, aber
immerhin.
Allerdings wird nicht das normale printf durchgereicht, sondern
spezielle Varianten davon, die in cross_studio_io.h deklariert sind, wie
z.b. debug_printf.
Das Zeitverhalten von Anwendungen, die diese Funktionen nutzen, ist
allerdings über den Jordan, irgendwelche Timerprobleme kann man damit
nicht debuggen.
Ja, das hatte ich auch mal wo gelesen, allerdings geht das über irgendwelche "normalen" Register, die dann ausgelesen werden. Das geht dann allerdings wirklich übel langsam, weil ja immer erst die CPU angehalten werden muss, damit der JTAG Kontrolle über MDB und MAB bekommt. Naja, kurz und gut: Nimm die serielle Schnittstelle und lass es dir per HyperTerminal ausgeben.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.