www.beck-ipc.com
www.beck-ipc.comwww.beck-ipc.com  | ImprintImprint
FAQFAQ  | SearchSearch  |
RegisterRegister   |LoginLogin

SC143 - Problem mit fossil_getbyte

Questions and discussions about the hardware of the IPC@CHIP® products SC123, SC143, SC23 and SC24.
Ich habe eine Applikation, die Daten im ASCII-Format über die serielle Schnittstelle mit 115kBaud empfängt.
Grundsätzlich erhalte ich nur Zeichen im Bereich von 0x20 bis 0x7f.
Wenn ich mit einer CLIB > 2.16 compiliere, passiert es ab und zu, dass fossil_getbyte ein oder mehrere falsche Zeichen liefert (meist 0x00 manchmal auch andere Zeichen > 0x7f). Nach ein paar Zeichen geht der String dann wieder korrekt weiter.

Der Eintrag #define FOSSIL_SETBAUD_LEGACY hat keinen Einfluß auf das Verhalten

Ich hab schon einiges probiert und kann das Verhalten eindeutig der CLIB zuordnen.

Welche Änderungen seit CLIB 2.16 hat es gegeben?

Michael Neudorfhofer

Die Änderungen and der CLIB sind in Clib_ReleaseNotes.pdf dokumentiert, bei mir liegt die Datei in C:\Beck\Clib. Wenn ich sie nach "fossil" durchsuche, finde ich diesen Eintrag für die CLIB 2.17:

Ticket: #2065
Component: CLIB
Type: defect
Summary: Software interrupt for function fossil_setbaud()
Description: The function fossil_setbaud() is implemented in the CLIB and either calls the software interrupt
for fossil_setbaud_std() or fossil_set_extctrl() depending on the desired baud rate. When
implementing an external serial port driver, the function fossil_set_extctrl() might be useless if
the device uses a separate clock. The divider will be wrong. There's no solution if the
application program calls the deprecated function fossil_set_extctrl(). But for fossil_setbaud()
there should be a real software interrupt.
Solution: Implemented
Note that fossil_setbaud() now calls a software interrupt which is not available on old RTOS
versions. To force fossil_setbaud() to behave like before set the define
'FOSSIL_SETBAUD_LEGACY' before including the CLIB.

Kann das vielleicht mit dem Problem zu tun haben?
Jürgen Loh
--
SC12 -> SC13 -> SC143

Ich denke nicht.
Die ReleaseNotes habe ich auch gelesen und es ändert sich auch nichts im Verhalten ob ich den Eintrag mache oder nicht.

Der Empfang der Daten wird in einem Task ausgeführt und die Schnittstelle wird im DMA-Modus betrieben.
Kann es sein, dass es bei der DMA-Übertragung zu Problemen kommt?

Ich nutze die seriellen Schnittstellen auch intensiv, habe solche Probleme aber nicht. Ich nutze bis zu 115200 bit/s. Bezüglich DMA habe ich nichts eingestellt, damit müsste es hier auch eingeschaltet sein. Probleme damit kann ich mir eigentlich auch nur bei RTOS-Updates vorstellen, die CLIB leitet die C-Funktionen eigentlich weitestgehend 1:1 an das RTOS durch.

Die CLIB liegt ja im Quelltext vor, Änderungen lassen sich da ja eigentlich gut nachvollziehen.
Jürgen Loh
--
SC12 -> SC13 -> SC143

Return to SC1x3/SC2x


Who is online

Users browsing this forum: No registered users and 2 guests


cron