Hallo
Ich bin Anfänger und versuche mit WinARM, GCC 4.1.1 einen ARM uC
zu programmieren.
Ich will stdout und stdin auf den uart umleiten. Ich habe hier im Forum
Beispiele für AVR gefunden:
1 | #include <stdio.h>
|
2 | #include <stdint.h>
|
3 |
|
4 | int PutCharUart2(char ch, FILE *stream);
|
5 | static FILE uartstdout = FDEV_SETUP_STREAM(PutCharUart2, NULL, _FDEV_SETUP_WRITE);
|
6 |
|
7 | int PutCharUart2 (char ch, FILE *stream) { // Schreibe Char auf uart
|
8 | while ((COMSTA0 & 0x40)==0) {} // Warte bis Sendepuffer leer ist
|
9 | if (ch==LF) { // Wandle Zeilenende um
|
10 | COMTX = CR; // Sende Zeichen
|
11 | return 0;
|
12 | }
|
13 | COMTX = ch; // Sende Zeichen
|
14 | return 0;
|
15 | }
|
16 |
|
17 | int main(void) {
|
18 | stdout = &uartstdout;
|
19 | printf("test\n");
|
20 | return 0;
|
21 | }
|
Leider gibt mir make einen Fehler aus:
uart.h:21: warning: implicit declaration of function 'FDEV_SETUP_STREAM'
uart.h:21: error: '_FDEV_SETUP_WRITE' undeclared here (not in a
function)
uart.h:21: error: invalid initializer
Google hat zu _FDEV_SETUP_WRITE nichts gefunden.
Wenn ich FDEV_SETUP_STREAM richti verstanden habe, stellt die Funktion
einen Stream bereit.
_FDEV_SETUP_WRITE gibt die Eigenschaft schreiben an.
Warum kennt mein Compiler _FDEV_SETUP_WRITE nicht?
Vielen Dank, Tilo