diff options
Diffstat (limited to 'example-fs-bb48/sample.c')
-rw-r--r-- | example-fs-bb48/sample.c | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/example-fs-bb48/sample.c b/example-fs-bb48/sample.c index aa69144..f1c19e5 100644 --- a/example-fs-bb48/sample.c +++ b/example-fs-bb48/sample.c @@ -7,6 +7,8 @@ #include "stream.h" #include "board.h" +#include "crc32.h" + struct GPIO { volatile uint32_t PDOR; /* Port Data Output Register */ volatile uint32_t PSOR; /* Port Set Output Register */ @@ -216,12 +218,27 @@ main (int argc, const char *argv[]) if (size >= 0) { + int i; + unsigned int value; + + crc32_init (); s[0] = hexchar (size >> 4); s[1] = hexchar (size & 0x0f); - s[size + 4] = '\r'; - s[size + 5] = '\n'; - if (stream_send (st, s, size + 6) < 0) + for (i = 0; i < size; i++) + crc32_u8 (s + 4 + i); + value = crc32_value () ^ 0xffffffff; + s[4] = hexchar (value >> 28); + s[5] = hexchar (value >> 24); + s[6] = hexchar (value >> 20); + s[7] = hexchar (value >> 16); + s[8] = hexchar (value >> 12); + s[9] = hexchar (value >> 8); + s[10] = hexchar (value >> 4); + s[11] = hexchar (value); + s[12] = '\r'; + s[13] = '\n'; + if (stream_send (st, s, 14) < 0) break; } |