Re: Speicherzugriff, Code im Segment 8 Kategorie: Progr. Assembler, TaskingTools, OS (von Hansi - 12.11.2004 7:31) | ||
Als Antwort auf Re: Speicherzugriff, Code im Segment 8 von André H. - 11.11.2004 23:23 | ||
| ||
> Hallo Hansi, > > > Ich habe heute Deine Parameterübergabe in die FS20-Steuerung implementiert. > > Ich verwende keine Speicheradressen im Segment 0 mehr sondern stelle der Assemblerroutine > > ein Integer Array zur Verfügung welches Empfangspuffer, Sendepuffer usw. auf nimmt. > > Damit sollte es zu keinen Kollisionen mehr mit anderen Programm-Modulen kommen. > > Arbeitest Du eigentlich mit einer Interrupt-Routinen, oder Rufst Du > die Routinen jedes mal auf ? > Falls Du eine Interrupt-Routine verwendest, benötigst Du zumindestens eine Speicherzelle > im internen RAM für die Arrayadresse. > Hier kannst Du höchstens den bitadressierbaren Bereich verwenden. (siehe MSR mit CC2) > Nicht zu verwechseln mit dem RAM-Bereich, der temporär benötigt wird, > wenn schreibend und löschend auf den Flash zugegriffen wird. ;-) > Vom Bitadressierbaren Bereich darfst Du nur nicht die Adresse 0xFDFE (16Bit) verwenden. > Diese Speicherzelle benötigt schon cap.c2 für die erweiterten Captures. > Jedoch kann eine Speicherzelle vorher problemlos benutzt werden: 0xFDFC > > MfG André H. > Die Empfangsroutine benötigt einen eigenen Thread, dieser enthält nur den Sprung zur Assembler-Routine und gibt die restliche Rechenzeit mit yield wieder ab. Das Empfängermodul gibt laufend irgendwelche Daten in ähnlichen Pulsbreiten herraus, so das am laufenden Band Interupts ausgelöst werden würden und nicht nur dann, wenn tatsächlich Daten Empfangen werden. Der Thread wird dann so lange ausgeführt, bis ein Fehler auftaucht ( 1ms ) oder ein kompletter Datenrahmen ( max. 75 ms ) empfangen wurde. Gru� Hansi | ||
Antwort schreiben Antworten: Re: Speicherzugriff, Code im Segment 8 (von André H. - 19.11.2004 12:05) |