aboutsummaryrefslogtreecommitdiffstats
path: root/firmware/zpu
diff options
context:
space:
mode:
authorNick Foster <nick@nerdnetworks.org>2011-04-13 12:21:28 -0700
committerJosh Blum <josh@joshknows.com>2011-04-29 09:58:54 -0700
commit44c8069855aff9adb65448692de3272d0bb1603a (patch)
tree6a17f3291538e3262f8883abe4fbfa20f6fe7d63 /firmware/zpu
parentb31cefc5eb7022db4851ad333577b5b6829ca2db (diff)
downloaduhd-44c8069855aff9adb65448692de3272d0bb1603a.tar.gz
uhd-44c8069855aff9adb65448692de3272d0bb1603a.tar.bz2
uhd-44c8069855aff9adb65448692de3272d0bb1603a.zip
USRP2/N210: firmware UART read no longer drops 20th char
Diffstat (limited to 'firmware/zpu')
-rw-r--r--firmware/zpu/lib/hal_io.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/firmware/zpu/lib/hal_io.c b/firmware/zpu/lib/hal_io.c
index 1d137943c..4ed694b9d 100644
--- a/firmware/zpu/lib/hal_io.c
+++ b/firmware/zpu/lib/hal_io.c
@@ -255,12 +255,14 @@ fngets(hal_uart_name_t u, char * const s, int len)
int
fngets_noblock(hal_uart_name_t u, char * const s, int len)
{
- char *x = s;
-
- while(((*x=(char)hal_uart_getc_noblock(u)) != '\n') && (*x != 255) && ((x-s) < len)) x++;
- *x = 0;
- //printf("Returning from fngets() with string %d of length %d\n", s[0], x-s);
- return (x-s);
+ int i;
+ for(i=0; i < len; i++) {
+ s[i] = (char) hal_uart_getc_noblock(u);
+ if((s[i] == 255) || (s[i] == '\n')) break;
+ }
+ s[i] = 0;
+
+ return i;
}
char *