Hallo, wie der Titel sagt habe ich ein Programm im CY7C68013A laufen. Ich habe jedoch dermaßen komisches Verhalten, sodass ich nun absolut ratlos bin wo nun das Problem liegt. Es scheint an der Codegröße zu liegen, jedoch müsste das Programm locker hinein passen, Der µC hat ja 16k Ram. Nehme ich in main.c:167 das eine nop heraus, läuft es tadellos. Ist es aber drin, auch egal an welcher Stelle, fängt der Code irgendwo in der mitte an, läuft nicht richtig weiter, und kommt auch nicht zum Ende (main:201) Debuggen kann ich leider nur mittels software uart (_putchar) und setzt natürlich voraus, dass der Code einigermaßen richtig läuft :) Angehängt ist der Code, Listing und Linker Map des funktionierenden und nicht funktionierenden programms. Wäre sehr nett, wenn mir hier doch jemand auf die Sprünge helfen könnte.
Tut das Not mit den vielen asm-Pragmas? Was soll das Programm eigentlich machen? Aus den Kommentaren werd ich nicht schlau. Auf mich macht das Program einen recht konfusen Eindruck (Timer wird genutzt, aber nicht richtig initialisiert, timer und trotzdem usleep, etc.) In main.c finde ich:
1 | IOA = 0x00; // set Port A to LOW |
ohne das vorher OEA beschrieben wird. Ist das so gewollt? Uwe
Was soll denn dieses Programm tun ? was soll z.B. send0() und send1() tun? Du weißt ja das nach einmaligem Ablauf der Prozessor sich mit while(1); beschäftigt? Gruß T. P.S. die wichtigste Frage ist eigentlich: Warum nimmst du diesen Chip? Derzeit nutzt Du die eigentlich Stärke (USB 2.0) gar nicht.
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.