From 2b0091246dd48f7a764b652c4c56fff25c5e3550 Mon Sep 17 00:00:00 2001 From: Edvard Pettersen Date: Thu, 8 Feb 2018 12:42:06 +0100 Subject: [PATCH] UART0 arch driver impl * Async read * Renamed driver to uart0-arch * Renamed arch/cpu source folder to dev/ --- arch/cpu/simplelink/Makefile.simplelink | 11 ++----- .../simplelink/{source => dev}/clock-arch.c | 0 arch/cpu/simplelink/{source => dev}/dbg.h | 0 .../simplelink/{source => dev}/debug-uart.h | 0 .../simplelink/{source => dev}/putchar-arch.c | 16 +++++----- .../simplelink/{source => dev}/rtimer-arch.c | 0 .../simplelink/{source => dev}/rtimer-arch.h | 0 .../simplelink-uart.c => dev/uart0-arch.c} | 31 ++++++++++--------- .../simplelink-uart.h => dev/uart0-arch.h} | 14 ++++----- .../{source => dev}/watchdog-arch.c | 0 arch/platform/simplelink/platform.c | 4 +-- 11 files changed, 36 insertions(+), 40 deletions(-) rename arch/cpu/simplelink/{source => dev}/clock-arch.c (100%) rename arch/cpu/simplelink/{source => dev}/dbg.h (100%) rename arch/cpu/simplelink/{source => dev}/debug-uart.h (100%) rename arch/cpu/simplelink/{source => dev}/putchar-arch.c (88%) rename arch/cpu/simplelink/{source => dev}/rtimer-arch.c (100%) rename arch/cpu/simplelink/{source => dev}/rtimer-arch.h (100%) rename arch/cpu/simplelink/{source/simplelink-uart.c => dev/uart0-arch.c} (83%) rename arch/cpu/simplelink/{source/simplelink-uart.h => dev/uart0-arch.h} (90%) rename arch/cpu/simplelink/{source => dev}/watchdog-arch.c (100%) diff --git a/arch/cpu/simplelink/Makefile.simplelink b/arch/cpu/simplelink/Makefile.simplelink index 23681367c..ecc5d5272 100644 --- a/arch/cpu/simplelink/Makefile.simplelink +++ b/arch/cpu/simplelink/Makefile.simplelink @@ -55,19 +55,14 @@ endif ### CPU-dependent directories CONTIKI_ARM_DIRS += . common/dbg-io CONTIKI_CPU_DIRS += . $(addprefix ../arm/, $(CPU_DIRS)) -CONTIKI_CPU_DIRS += source +CONTIKI_CPU_DIRS += dev ### CPU-dependent source files CONTIKI_CPU_SOURCEFILES += rtimer-arch.c clock-arch.c CONTIKI_CPU_SOURCEFILES += watchdog-arch.c putchar-arch.c -CONTIKI_CPU_SOURCEFILES += simplelink-uart.c -# CONTIKI_CPU_SOURCEFILES += contiki-watchdog.c aux-ctrl.c -# CONTIKI_CPU_SOURCEFILES += putchar.c ieee-addr.c batmon-sensor.c adc-sensor.c -# CONTIKI_CPU_SOURCEFILES += slip-arch.c slip.c cc26xx-uart.c lpm.c -# CONTIKI_CPU_SOURCEFILES += gpio-interrupt.c oscillators.c -# CONTIKI_CPU_SOURCEFILES += rf-core.c rf-ble.c ieee-mode.c -# CONTIKI_CPU_SOURCEFILES += random.c soc-trng.c int-master.c +CONTIKI_CPU_SOURCEFILES += uart0-arch.c +### CPU-dependent debug source files DEBUG_IO_SOURCEFILES += dbg-printf.c dbg-snprintf.c dbg-sprintf.c strformat.c CONTIKI_SOURCEFILES += $(CONTIKI_CPU_SOURCEFILES) $(DEBUG_IO_SOURCEFILES) diff --git a/arch/cpu/simplelink/source/clock-arch.c b/arch/cpu/simplelink/dev/clock-arch.c similarity index 100% rename from arch/cpu/simplelink/source/clock-arch.c rename to arch/cpu/simplelink/dev/clock-arch.c diff --git a/arch/cpu/simplelink/source/dbg.h b/arch/cpu/simplelink/dev/dbg.h similarity index 100% rename from arch/cpu/simplelink/source/dbg.h rename to arch/cpu/simplelink/dev/dbg.h diff --git a/arch/cpu/simplelink/source/debug-uart.h b/arch/cpu/simplelink/dev/debug-uart.h similarity index 100% rename from arch/cpu/simplelink/source/debug-uart.h rename to arch/cpu/simplelink/dev/debug-uart.h diff --git a/arch/cpu/simplelink/source/putchar-arch.c b/arch/cpu/simplelink/dev/putchar-arch.c similarity index 88% rename from arch/cpu/simplelink/source/putchar-arch.c rename to arch/cpu/simplelink/dev/putchar-arch.c index b440e2b41..d5dd4ac49 100644 --- a/arch/cpu/simplelink/source/putchar-arch.c +++ b/arch/cpu/simplelink/dev/putchar-arch.c @@ -31,7 +31,7 @@ #include #include -#include "simplelink-uart.h" +#include "uart0-arch.h" #undef putchar @@ -41,7 +41,7 @@ int putchar(int c) { const unsigned char ch = (unsigned char)c; - return (simplelink_uart_write(&ch, 1) == 1) + return (uart0_write(&ch, 1) == 1) ? (int)ch : EOF; } @@ -49,7 +49,7 @@ putchar(int c) int puts(const char *str) { - if(!str) + if(!str) { return EOF; } @@ -57,8 +57,8 @@ puts(const char *str) const size_t len = strlen(str); const unsigned char newline = '\n'; - if ((simplelink_uart_write(str, len) != len) && - (simplelink_uart_write(&newline, 1) != 1)) + if ((uart0_write(str, len) != len) && + (uart0_write(&newline, 1) != 1)) { return EOF; } @@ -69,15 +69,15 @@ puts(const char *str) unsigned int dbg_send_bytes(const unsigned char *s, unsigned int len) { - if(!s || strlen((const char *)s) < len) + if(!s || strlen((const char *)s) < len) { return EOF; } const unsigned char newline = '\n'; - if ((simplelink_uart_write(s, len) != len) && - (simplelink_uart_write(&newline, 1) != 1)) + if ((uart0_write(s, len) != len) && + (uart0_write(&newline, 1) != 1)) { return EOF; } diff --git a/arch/cpu/simplelink/source/rtimer-arch.c b/arch/cpu/simplelink/dev/rtimer-arch.c similarity index 100% rename from arch/cpu/simplelink/source/rtimer-arch.c rename to arch/cpu/simplelink/dev/rtimer-arch.c diff --git a/arch/cpu/simplelink/source/rtimer-arch.h b/arch/cpu/simplelink/dev/rtimer-arch.h similarity index 100% rename from arch/cpu/simplelink/source/rtimer-arch.h rename to arch/cpu/simplelink/dev/rtimer-arch.h diff --git a/arch/cpu/simplelink/source/simplelink-uart.c b/arch/cpu/simplelink/dev/uart0-arch.c similarity index 83% rename from arch/cpu/simplelink/source/simplelink-uart.c rename to arch/cpu/simplelink/dev/uart0-arch.c index 28fb80b53..b80e9c736 100644 --- a/arch/cpu/simplelink/source/simplelink-uart.c +++ b/arch/cpu/simplelink/dev/uart0-arch.c @@ -41,38 +41,39 @@ #include -#include "simplelink-uart.h" +#include "uart0-arch.h" static UART_Handle gh_uart; -static volatile InputCb g_input_cb; -static unsigned char g_charbuf; +static volatile uart0_input_cb g_input_cb; +static unsigned char g_char_buf; /*---------------------------------------------------------------------------*/ static void -uart_cb(UART_Handle handle, void *buf, size_t count) +uart0_cb(UART_Handle handle, void *buf, size_t count) { if (!g_input_cb) { return; } - const InputCb currCb = g_input_cb; - currCb(g_charbuf); + const uart0_input_cb currCb = g_input_cb; + currCb(g_char_buf); if (currCb == g_input_cb) { - UART_read(gh_uart, &g_charbuf, 1); + UART_read(gh_uart, &g_char_buf, 1); } } /*---------------------------------------------------------------------------*/ void -simplelink_uart_init(void) +uart0_init(void) { UART_init(); UART_Params params; UART_Params_init(¶ms); params.readMode = UART_MODE_CALLBACK; - params.writeMode = UART_MODE_BLOCKING ; - params.readCallback = uart_cb; - // TODO configure + params.writeMode = UART_MODE_BLOCKING; + params.readCallback = uart0_cb; + params.readDataMode = UART_DATA_TEXT; + params.readReturnMode = UART_RETURN_NEWLINE; gh_uart = UART_open(Board_UART0, ¶ms); if (!gh_uart) @@ -82,7 +83,7 @@ simplelink_uart_init(void) } /*---------------------------------------------------------------------------*/ int_fast32_t -simplelink_uart_write(const void *buffer, size_t size) +uart0_write(const void *buffer, size_t size) { if (!gh_uart) { @@ -92,18 +93,18 @@ simplelink_uart_write(const void *buffer, size_t size) } /*---------------------------------------------------------------------------*/ void -simplelink_uart_set_callback(InputCb input_cb) +uart0_set_callback(uart0_input_cb input_cb) { if (g_input_cb == input_cb) { return; } g_input_cb = input_cb; if (input_cb) { - UART_read(gh_uart, &g_charbuf, 1); + UART_read(gh_uart, &g_char_buf, 1); } else { - UART_readCancel(gh_uart); + UART_readCancel(gh_uart); } } /*---------------------------------------------------------------------------*/ diff --git a/arch/cpu/simplelink/source/simplelink-uart.h b/arch/cpu/simplelink/dev/uart0-arch.h similarity index 90% rename from arch/cpu/simplelink/source/simplelink-uart.h rename to arch/cpu/simplelink/dev/uart0-arch.h index 9e93dc317..7266a4db5 100644 --- a/arch/cpu/simplelink/source/simplelink-uart.h +++ b/arch/cpu/simplelink/dev/uart0-arch.h @@ -39,12 +39,12 @@ * \file * Header file for the CC13xx/CC26xx UART driver */ -#ifndef SIMPLELINK_UART_H_ -#define SIMPLELINK_UART_H_ +#ifndef UART0_ARCH_H_ +#define UART0_ARCH_H_ #include -typedef void (*InputCb)(unsigned char); +typedef int (*uart0_input_cb)(unsigned char); /*---------------------------------------------------------------------------*/ /** \name UART functions @@ -54,7 +54,7 @@ typedef void (*InputCb)(unsigned char); /** * \brief Initializes the UART driver */ -void simplelink_uart_init(void); +void uart0_init(void); /** * \brief Writes data from a memory buffer to the UART interface. @@ -63,7 +63,7 @@ void simplelink_uart_init(void); * \return Number of bytes that has been written to the UART. If an * error occurs, a negative value is returned. */ -int_fast32_t simplelink_uart_write(const void *buffer, size_t size); +int_fast32_t uart0_write(const void *buffer, size_t size); /** * \brief Reads data from the UART interface to a memory buffer. @@ -72,11 +72,11 @@ int_fast32_t simplelink_uart_write(const void *buffer, size_t size); * \return Number of bytes that has been written to the buffer. If an * error occurs, a negative value is returned. */ -void simplelink_uart_set_callback(InputCb input_cb); +void uart0_set_callback(uart0_input_cb input_cb); /** @} */ /*---------------------------------------------------------------------------*/ -#endif /* SIMPLELINK_UART_H_ */ +#endif /* UART0_ARCH_H_ */ /** * @} diff --git a/arch/cpu/simplelink/source/watchdog-arch.c b/arch/cpu/simplelink/dev/watchdog-arch.c similarity index 100% rename from arch/cpu/simplelink/source/watchdog-arch.c rename to arch/cpu/simplelink/dev/watchdog-arch.c diff --git a/arch/platform/simplelink/platform.c b/arch/platform/simplelink/platform.c index 74302bb17..9d09a072d 100644 --- a/arch/platform/simplelink/platform.c +++ b/arch/platform/simplelink/platform.c @@ -55,7 +55,7 @@ #include "contiki.h" #include "contiki-net.h" -#include "simplelink-uart.h" +#include "uart0-arch.h" //#include "leds.h" //#include "lpm.h" @@ -172,7 +172,7 @@ platform_init_stage_one() void platform_init_stage_two() { - simplelink_uart_init(); + uart0_init(); // random_init(0x1234); //