Re: Problem beim Aufruf eines externen Programmes Kategorie: Progr. Assembler, TaskingTools, OS (von André H. - 9.05.2004 15:31) | ||
Als Antwort auf Problem beim Aufruf eines externen Programmes von Matthias Siemß - 5.05.2004 18:01 | ||
| ||
Hallo Matthias, Zuerst: Ein "Hallo" oder ähnliches am Anfang eines Postings kann nicht schaden. Soviel Zeit mu� sein. :-) > Ich habe mit einem GNU-C Compiler ein Programm geschrieben und daraus ein HEX-File > gemacht. Dieses dann mit einem "system.call(3,0);" aufgerufen und anschliessend reagiert die Unit > nicht mehr oder straten immer wieder neu. Woran kann das liegen? > > z.B: > > thread main > { > hwcom.init(); > hwcom.setspeed(5); > hwcom.put(1); > while 1 { > > hwcom.put(2); > system.call(3,0); > } > } > wenn ich das ohne dem "system.call(3,0);" starte dann werden eine eins und viele zweien ausgegeben, > mit dem "system.call(3,0);" wird nur eine 1 ausgegeben. Hier kommen mehrere Dinge zusammen: 1. Du solltest keine Konstanten Bedingungen benutzen. Ein while 1 { } kann beim kompilieren zu Problemen führen, da der Compiler mit rein konstanten Bedingungen nicht gut zurechtkommt. Au�erdem macht soetwas keinerlei Sinn. Besser ist es hier ein einfaches loop { } zu benutzen. 2. Der Fehler wird in Deiner System-Routine liegen. Ohne einem Quellcode-Ausschnitt dieser kann man Dir nicht helfen. Der Grund, warum ASCII 2 nicht ausgegeben wird liegt daran, dieses Byte bei dem Aufruf der ASM-Routine noch nicht (ganz) gesendet wurde. Da Deine ASM-Routine aber zum Absturz/Reset führt, kann das Senden nicht vollendet werden. MfG André H. Antworten bitte nur ins Forum! Fragen per EMail auf Forum-Postings werden nicht beantwortet! Das macht meine Heizung gerade | ||
Antwort schreiben Antworten: Re: Problem beim Aufruf eines externen Programmes (von Matthias Siemß - 10.05.2004 10:37) Re: Problem beim Aufruf eines externen Programmes (von André H. - 12.06.2004 18:42) |