hi,

ich hab mir selbst ein fifo-buffer programmiert und ich bin mir nicht sicher warum das hier so ist: wenn ich diesen code hier benutze (auszug aus main())

Code:
    while(TRUE)
    {
      int8_t data = 0xFF;

      if(fifo_pop(fifo_rx, &data) == FIFO_SUCCESS)
      {
        uart_putc(data);
      }
    }
dann bekomm ich beim übertragen immer fehler in form von daten die nicht im fifo-buffer stehen. benutz ich aber folgenden code, der ja theoretisch das gleiche ist bekomm ich eine saubere übertragung:

Code:
    while(TRUE)
    {
      int8_t *data = (int8_t*) malloc(1);

      if(fifo_pop(fifo_rx, data) == FIFO_SUCCESS)
      {
        uart_putc(*data);
      }

      free(data);
    }
ich hab den fifo-buffer mal in einem C-Programm implementiert und getest - scheint zu funktionieren. hier der code: http://nopaste.debianforum.de/6098

die ausgabe von dem prgramm sieht so aus:

Code:
104
97
108
108
111
97
98
99
0
----------------------------
h
----------------------------
97
108
108
111
97
98
99
0
0
was meint ihr dazu?

mfg blan