From 74328c0fc0a8d46c97b954ab153d44ac2891ed04 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Tue, 8 Dec 2009 21:38:05 +0000 Subject: [PATCH] git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@1404 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- os/hal/platforms/Win32/hal_lld.c | 2 + os/hal/platforms/Win32/serial_lld.c | 4 + os/hal/platforms/Win32/serial_lld.h | 4 + test/coverage/Makefile | 14 +- test/coverage/board.h | 23 +++ test/coverage/chcore.c | 123 -------------- test/coverage/chcore.h | 211 ------------------------- test/coverage/console.c | 77 +++++++++ test/coverage/{chtypes.h => console.h} | 40 ++--- test/coverage/halconf.h | 96 +++++++++++ test/coverage/main.c | 8 +- test/coverage/serial_lld.c | 118 -------------- test/coverage/serial_lld.h | 124 --------------- 13 files changed, 237 insertions(+), 607 deletions(-) create mode 100644 test/coverage/board.h delete mode 100644 test/coverage/chcore.c delete mode 100644 test/coverage/chcore.h create mode 100644 test/coverage/console.c rename test/coverage/{chtypes.h => console.h} (52%) create mode 100644 test/coverage/halconf.h delete mode 100644 test/coverage/serial_lld.c delete mode 100644 test/coverage/serial_lld.h diff --git a/os/hal/platforms/Win32/hal_lld.c b/os/hal/platforms/Win32/hal_lld.c index 9051e90dc..43eff9781 100644 --- a/os/hal/platforms/Win32/hal_lld.c +++ b/os/hal/platforms/Win32/hal_lld.c @@ -81,11 +81,13 @@ void hal_lld_init(void) { void ChkIntSources(void) { LARGE_INTEGER n; +#if CH_HAL_USE_SERIAL if (sd_lld_interrupt_pending()) { if (chSchIsRescRequiredExI()) chSchDoRescheduleI(); return; } +#endif // Interrupt Timer simulation (10ms interval). QueryPerformanceCounter(&n); diff --git a/os/hal/platforms/Win32/serial_lld.c b/os/hal/platforms/Win32/serial_lld.c index c8543799f..18266ef6b 100644 --- a/os/hal/platforms/Win32/serial_lld.c +++ b/os/hal/platforms/Win32/serial_lld.c @@ -27,6 +27,8 @@ #include "ch.h" #include "hal.h" +#if CH_HAL_USE_SERIAL || defined(__DOXYGEN__) + /** @brief Serial driver 1 identifier.*/ #if USE_WIN32_SERIAL1 || defined(__DOXYGEN__) SerialDriver SD1; @@ -248,4 +250,6 @@ bool_t sd_lld_interrupt_pending(void) { outint(&SD1) || outint(&SD2); } +#endif /* CH_HAL_USE_SERIAL */ + /** @} */ diff --git a/os/hal/platforms/Win32/serial_lld.h b/os/hal/platforms/Win32/serial_lld.h index e831b83bd..a74028b8b 100644 --- a/os/hal/platforms/Win32/serial_lld.h +++ b/os/hal/platforms/Win32/serial_lld.h @@ -27,6 +27,8 @@ #ifndef _SERIAL_LLD_H_ #define _SERIAL_LLD_H_ +#if CH_HAL_USE_SERIAL || defined(__DOXYGEN__) + /*===========================================================================*/ /* Driver pre-compile time settings. */ /*===========================================================================*/ @@ -166,6 +168,8 @@ extern "C" { #endif /** @endcond*/ +#endif /* CH_HAL_USE_SERIAL */ + #endif /* _SERIAL_LLD_H_ */ /** @} */ diff --git a/test/coverage/Makefile b/test/coverage/Makefile index adefad74b..37d0de1ef 100644 --- a/test/coverage/Makefile +++ b/test/coverage/Makefile @@ -58,20 +58,26 @@ UADEFS = # Imported source files CHIBIOS = ../.. +include ${CHIBIOS}/os/hal/hal.mk +include ${CHIBIOS}/os/hal/platforms/Win32/platform.mk +include ${CHIBIOS}/os/ports/GCC/SIMIA32/port.mk include ${CHIBIOS}/os/kernel/kernel.mk include ${CHIBIOS}/test/test.mk # List C source files here -SRC = ${KERNSRC} \ +SRC = ${PORTSRC} \ + ${KERNSRC} \ ${TESTSRC} \ - ${CHIBIOS}/os/io/serial.c \ - chcore.c serial_lld.c main.c + ${HALSRC} \ + ${PLATFORMSRC} \ + console.c main.c # List ASM source files here ASRC = # List all user directories here -UINCDIR = $(KERNINC) $(TESTINC) ${CHIBIOS}/os/io +UINCDIR = $(PORTINC) $(KERNINC) $(TESTINC) $(HALINC) $(PLATFORMINC) \ + ${CHIBIOS}/os/various # List the user directory to look for the libraries here ULIBDIR = diff --git a/test/coverage/board.h b/test/coverage/board.h new file mode 100644 index 000000000..a6e056d58 --- /dev/null +++ b/test/coverage/board.h @@ -0,0 +1,23 @@ +/* + ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef _BOARD_H_ +#define _BOARD_H_ + +#endif /* _BOARD_H_ */ diff --git a/test/coverage/chcore.c b/test/coverage/chcore.c deleted file mode 100644 index 3863a9b83..000000000 --- a/test/coverage/chcore.c +++ /dev/null @@ -1,123 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - ChibiOS/RT is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -#include -#include - -/** - * @addtogroup WIN32SIM_CORE - * @{ - */ - -#include "ch.h" -#include "hal.h" - -static LARGE_INTEGER nextcnt; -static LARGE_INTEGER slice; - -/* - * Simulated HW initialization. - */ -void InitCore(void) { - printf("ChibiOS/RT test simulator\n\n"); - printf("Thread structure %d bytes\n", sizeof(Thread)); - if (!QueryPerformanceFrequency(&slice)) { - fprintf(stderr, "QueryPerformanceFrequency() error"); - fflush(stderr); - exit(1); - } - printf("Core Frequency %u Hz\n", (int)slice.LowPart); - slice.QuadPart /= CH_FREQUENCY; - QueryPerformanceCounter(&nextcnt); - nextcnt.QuadPart += slice.QuadPart; - - sdInit(); - - fflush(stdout); -} - -/* - * Interrupt simulation. - */ -void ChkIntSources(void) { - LARGE_INTEGER n; - bool_t rflag = FALSE; - - if (sd_lld_interrupt_pending()) { - if (chSchIsRescRequiredExI()) - rflag = TRUE; - } - - // Interrupt Timer simulation (10ms interval). - QueryPerformanceCounter(&n); - if (n.QuadPart > nextcnt.QuadPart) { - nextcnt.QuadPart += slice.QuadPart; - chSysTimerHandlerI(); - if (chSchIsRescRequiredExI()) - rflag = TRUE; - } - - if (rflag) - chSchDoRescheduleI(); -} - -/** - * Performs a context switch between two threads. - * @param otp the thread to be switched out - * @param ntp the thread to be switched in - */ -__attribute__((used)) -static void __dummy(Thread *otp, Thread *ntp) { - (void)otp; (void)ntp; - asm volatile (".globl @port_switch@8 \n\t" \ - "@port_switch@8: \n\t" \ - "push %ebp \n\t" \ - "push %esi \n\t" \ - "push %edi \n\t" \ - "push %ebx \n\t" \ - "movl %esp, 16(%ecx) \n\t" \ - "movl 16(%edx), %esp \n\t" \ - "pop %ebx \n\t" \ - "pop %edi \n\t" \ - "pop %esi \n\t" \ - "pop %ebp \n\t" \ - "ret"); -} - -/** - * Halts the system. In this implementation it just exits the simulation. - */ -__attribute__((fastcall)) -void port_halt(void) { - - fprintf(stderr, "\nHalted\n"); - fflush(stderr); - exit(2); -} - -/** - * Threads return point, it just invokes @p chThdExit(). - */ -void threadexit(void) { - - asm volatile ("push %eax \n\t" \ - "call _chThdExit"); -} - -/** @} */ diff --git a/test/coverage/chcore.h b/test/coverage/chcore.h deleted file mode 100644 index 9347a7d5e..000000000 --- a/test/coverage/chcore.h +++ /dev/null @@ -1,211 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - ChibiOS/RT is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -/** - * @addtogroup WIN32SIM_CORE - * @{ - */ - -#ifndef _CHCORE_H_ -#define _CHCORE_H_ - -/** - * Macro defining the a simulated architecture into Win32. - */ -#define CH_ARCHITECTURE_WIN32SIM - -/** - * Name of the implemented architecture. - */ -#define CH_ARCHITECTURE_NAME "WIN32 Simulator" - -/** - * 32 bit stack alignment. - */ -typedef uint32_t stkalign_t; - -/** - * Generic x86 register. - */ -typedef void *regx86; - -/** - * Interrupt saved context. - * This structure represents the stack frame saved during a preemption-capable - * interrupt handler. - */ -struct extctx { -}; - -/** - * System saved context. - * @note In this demo the floating point registers are not saved. - */ -struct intctx { - regx86 ebx; - regx86 edi; - regx86 esi; - regx86 ebp; - regx86 eip; -}; - -/** - * Platform dependent part of the @p Thread structure. - * This structure usually contains just the saved stack pointer defined as a - * pointer to a @p intctx structure. - */ -struct context { - struct intctx volatile *esp; -}; - -#define APUSH(p, a) (p) -= sizeof(void *), *(void **)(p) = (void*)(a) - -/** - * Platform dependent part of the @p chThdInit() API. - * This code usually setup the context switching frame represented by a - * @p intctx structure. - */ -#define SETUP_CONTEXT(workspace, wsize, pf, arg) { \ - uint8_t *esp = (uint8_t *)workspace + wsize; \ - APUSH(esp, arg); \ - APUSH(esp, threadexit); \ - esp -= sizeof(struct intctx); \ - ((struct intctx *)esp)->eip = pf; \ - ((struct intctx *)esp)->ebx = 0; \ - ((struct intctx *)esp)->edi = 0; \ - ((struct intctx *)esp)->esi = 0; \ - ((struct intctx *)esp)->ebp = 0; \ - tp->p_ctx.esp = (struct intctx *)esp; \ -} - -/** - * Stack size for the system idle thread. - */ -#ifndef IDLE_THREAD_STACK_SIZE -#define IDLE_THREAD_STACK_SIZE 256 -#endif - -/** - * Per-thread stack overhead for interrupts servicing, it is used in the - * calculation of the correct working area size. - * It requires stack space because the simulated "interrupt handlers" invoke - * Win32 APIs inside so it better have a lot of space. - */ -#ifndef INT_REQUIRED_STACK -#define INT_REQUIRED_STACK 16384 -#endif - -/** - * Enforces a correct alignment for a stack area size value. - */ -#define STACK_ALIGN(n) ((((n) - 1) | (sizeof(stkalign_t) - 1)) + 1) - - /** - * Computes the thread working area global size. - */ -#define THD_WA_SIZE(n) STACK_ALIGN(sizeof(Thread) + \ - sizeof(void *) * 2 + \ - sizeof(struct intctx) + \ - sizeof(struct extctx) + \ - (n) + (INT_REQUIRED_STACK)) - -/** - * Macro used to allocate a thread working area aligned as both position and - * size. - */ -#define WORKING_AREA(s, n) stkalign_t s[THD_WA_SIZE(n) / sizeof(stkalign_t)]; - -/** - * IRQ prologue code, inserted at the start of all IRQ handlers enabled to - * invoke system APIs. - */ -#define PORT_IRQ_PROLOGUE() asm volatile ("nop") - -/** - * IRQ epilogue code, inserted at the end of all IRQ handlers enabled to - * invoke system APIs. - */ -#define PORT_IRQ_EPILOGUE() asm volatile ("nop") - -/** - * IRQ handler function declaration. - */ -#define PORT_IRQ_HANDLER(id) void id(void) - -/** - * Simulator initialization. - */ -#define port_init() InitCore() - -/** - * Does nothing in this simulator. - */ -#define port_lock() asm volatile ("nop") - -/** - * Does nothing in this simulator. - */ -#define port_unlock() asm volatile ("nop") - -/** - * Does nothing in this simulator. - */ -#define port_lock_from_isr() asm volatile ("nop") - -/** - * Does nothing in this simulator. - */ -#define port_unlock_from_isr() asm volatile ("nop") - -/** - * Does nothing in this simulator. - */ -#define port_disable() asm volatile ("nop") - -/** - * Does nothing in this simulator. - */ -#define port_suspend() asm volatile ("nop") - -/** - * Does nothing in this simulator. - */ -#define port_enable() asm volatile ("nop") - -/** - * In the simulator this does a polling pass on the simulated interrupt - * sources. - */ -#define port_wait_for_interrupt() ChkIntSources() - -#ifdef __cplusplus -extern "C" { -#endif - __attribute__((fastcall)) void port_switch(Thread *otp, Thread *ntp); - __attribute__((fastcall)) void port_halt(void); - void InitCore(void); - void ChkIntSources(void); - void threadexit(void); -#ifdef __cplusplus -} -#endif - -#endif /* _CHCORE_H_ */ - -/** @} */ diff --git a/test/coverage/console.c b/test/coverage/console.c new file mode 100644 index 000000000..d35bc3850 --- /dev/null +++ b/test/coverage/console.c @@ -0,0 +1,77 @@ +/* + ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file console.c + * @brief Simulator console driver code. + * @{ + */ + +#include + +#include "ch.h" +#include "console.h" + +/** + * @brief Console driver 1. + */ +BaseChannel CD1; + +/* + * Interface implementation, the following functions just invoke the equivalent + * queue-level function or macro. + */ +static bool_t putwouldblock(void *ip) { + + (void)ip; + return FALSE; +} + +static bool_t getwouldblock(void *ip) { + + (void)ip; + return FALSE; /******************************/ +} + +static msg_t put(void *ip, uint8_t b, systime_t timeout) { + + (void)ip; + (void)timeout; + fputc(b, stdout); + fflush(stdout); + return RDY_OK; +} + +static msg_t get(void *ip, systime_t timeout) { + + (void)ip; + (void)timeout; + return 0; +} + +static const struct BaseChannelVMT vmt = { + {putwouldblock, getwouldblock, put, get} +}; + +void conInit(void) { + + CD1.vmt = &vmt; +} + +/** @} */ diff --git a/test/coverage/chtypes.h b/test/coverage/console.h similarity index 52% rename from test/coverage/chtypes.h rename to test/coverage/console.h index 354da269e..e8079a042 100644 --- a/test/coverage/chtypes.h +++ b/test/coverage/console.h @@ -17,31 +17,25 @@ along with this program. If not, see . */ -#ifndef _CHTYPES_H_ -#define _CHTYPES_H_ +/** + * @file console.h + * @brief Simulator console driver header. + * @{ + */ -#define __need_NULL -#define __need_size_t -#define __need_ptrdiff_t -#include +#ifndef _CONSOLE_H_ +#define _CONSOLE_H_ -#if !defined(_STDINT_H) && !defined(__STDINT_H_) -#include +extern BaseChannel CD1; + +#ifdef __cplusplus +extern "C" { +#endif + void conInit(void); +#ifdef __cplusplus +} #endif -typedef int8_t bool_t; -typedef uint8_t tmode_t; -typedef uint8_t tstate_t; -typedef uint32_t tprio_t; -typedef int32_t msg_t; -typedef int32_t eventid_t; -typedef uint32_t eventmask_t; -typedef uint32_t systime_t; -typedef int32_t cnt_t; +#endif /* _CONSOLE_H_ */ -#define INLINE inline -#define PACK_STRUCT_STRUCT __attribute__((packed)) -#define PACK_STRUCT_BEGIN -#define PACK_STRUCT_END - -#endif /* _CHTYPES_H_ */ +/** @} */ diff --git a/test/coverage/halconf.h b/test/coverage/halconf.h new file mode 100644 index 000000000..51a169a37 --- /dev/null +++ b/test/coverage/halconf.h @@ -0,0 +1,96 @@ +/* + ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +/** + * @file templates/halconf.h + * @brief HAL configuration header. + * @addtogroup HAL_CONF + * @{ + */ + +/* + * HAL configuration file, this file allows to enable or disable the various + * device drivers from your application. You may also use this file in order + * to change the device drivers settings found in the low level drivers + * headers, just define here the new settings and those will override the + * defaults defined in the LLD headers. + */ + +#ifndef _HALCONF_H_ +#define _HALCONF_H_ + +/** + * @brief Enables the PAL subsystem. + */ +#if !defined(CH_HAL_USE_PAL) || defined(__DOXYGEN__) +#define CH_HAL_USE_PAL FALSE +#endif + +/** + * @brief Enables the ADC subsystem. + */ +#if !defined(CH_HAL_USE_ADC) || defined(__DOXYGEN__) +#define CH_HAL_USE_ADC FALSE +#endif + +/** + * @brief Enables the CAN subsystem. + */ +#if !defined(CH_HAL_USE_CAN) || defined(__DOXYGEN__) +#define CH_HAL_USE_CAN FALSE +#endif + +/** + * @brief Enables the MAC subsystem. + */ +#if !defined(CH_HAL_USE_MAC) || defined(__DOXYGEN__) +#define CH_HAL_USE_MAC FALSE +#endif + +/** + * @brief Enables the PWM subsystem. + */ +#if !defined(CH_HAL_USE_PWM) || defined(__DOXYGEN__) +#define CH_HAL_USE_PWM FALSE +#endif + +/** + * @brief Enables the SERIAL subsystem. + */ +#if !defined(CH_HAL_USE_SERIAL) || defined(__DOXYGEN__) +#define CH_HAL_USE_SERIAL FALSE +#endif + +/** + * @brief Enables the SPI subsystem. + */ +#if !defined(CH_HAL_USE_SPI) || defined(__DOXYGEN__) +#define CH_HAL_USE_SPI FALSE +#endif + +/** + * @brief Enables the MMC_SPI subsystem. + */ +#if !defined(CH_HAL_USE_MMC_SPI) || defined(__DOXYGEN__) +#define CH_HAL_USE_MMC_SPI FALSE +#endif + +#endif /* _HALCONF_H_ */ + +/** @} */ diff --git a/test/coverage/main.c b/test/coverage/main.c index 929ed622e..80390360d 100644 --- a/test/coverage/main.c +++ b/test/coverage/main.c @@ -23,6 +23,7 @@ #include "ch.h" #include "hal.h" #include "test.h" +#include "console.h" /* * Simulator main. @@ -33,12 +34,11 @@ int main(int argc, char *argv[]) { (void)argc; (void)argv; + halInit(); + conInit(); chSysInit(); - sdStart(&SD1, NULL); - result = TestThread(&SD1); - chThdSleepMilliseconds(1); /* Gives time to flush SD1 output queue */ - fflush(stdout); + result = TestThread(&CD1); if (result) exit(1); else diff --git a/test/coverage/serial_lld.c b/test/coverage/serial_lld.c deleted file mode 100644 index 512a6ebc1..000000000 --- a/test/coverage/serial_lld.c +++ /dev/null @@ -1,118 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - ChibiOS/RT is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -/** - * @file Win32/serial_lld.c - * @brief Win32 low level simulated serial driver code - * @addtogroup WIN32_SERIAL - * @{ - */ - -#include -#include - -#include "ch.h" -#include "hal.h" - -/** @brief Test serial driver identifier.*/ -SerialDriver SD1; - -/** @brief Driver default configuration.*/ -static const SerialDriverConfig default_config = { -}; - -/*===========================================================================*/ -/* Low Level Driver local functions. */ -/*===========================================================================*/ - -static bool_t sd1_conn_chkint(void) { - - return FALSE; -} - -static bool_t sd1_in_chkint(void) { - - return FALSE; -} - -static bool_t sd1_out_chkint(void) { - msg_t n; - bool_t rflag = FALSE; - - while (TRUE) { - n = sdRequestDataI(&SD1); - if (n < 0) { - fflush(stdout); - return rflag; - } - fputc(n, stdout); - rflag = TRUE; - } -} - -/*===========================================================================*/ -/* Low Level Driver interrupt handlers. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Low Level Driver exported functions. */ -/*===========================================================================*/ - -/** - * Low level serial driver initialization. - */ -void sd_lld_init(void) { - - sdObjectInit(&SD1, NULL, NULL); -} - -/** - * @brief Low level serial driver configuration and (re)start. - * - * @param[in] sdp pointer to a @p SerialDriver object - * @param[in] config the architecture-dependent serial driver configuration. - * If this parameter is set to @p NULL then a default - * configuration is used. - */ -void sd_lld_start(SerialDriver *sdp, const SerialDriverConfig *config) { - - (void)sdp; - if (config == NULL) - config = &default_config; - -} - -/** - * @brief Low level serial driver stop. - * @details De-initializes the USART, stops the associated clock, resets the - * interrupt vector. - * - * @param[in] sdp pointer to a @p SerialDriver object - */ -void sd_lld_stop(SerialDriver *sdp) { - - (void)sdp; -} - -bool_t sd_lld_interrupt_pending(void) { - - return sd1_conn_chkint() || sd1_in_chkint() || sd1_out_chkint(); -} - -/** @} */ diff --git a/test/coverage/serial_lld.h b/test/coverage/serial_lld.h deleted file mode 100644 index ba3a27b87..000000000 --- a/test/coverage/serial_lld.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. - - This file is part of ChibiOS/RT. - - ChibiOS/RT is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - ChibiOS/RT is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . -*/ - -/** - * @file Win32/serial_lld.h - * @brief Win32 low level simulated serial driver header - * @addtogroup WIN32_SERIAL - * @{ - */ - -#ifndef _SERIAL_LLD_H_ -#define _SERIAL_LLD_H_ - -#include - -/*===========================================================================*/ -/* Driver pre-compile time settings. */ -/*===========================================================================*/ - -/** - * @brief Serial buffers size. - * @details Configuration parameter, you can change the depth of the queue - * buffers depending on the requirements of your application. - */ -#if !defined(SERIAL_BUFFERS_SIZE) || defined(__DOXYGEN__) -#define SERIAL_BUFFERS_SIZE 1024 -#endif - -/*===========================================================================*/ -/* Unsupported event flags and custom events. */ -/*===========================================================================*/ - -/*===========================================================================*/ -/* Driver data structures and types. */ -/*===========================================================================*/ - -/** - * Serial Driver condition flags type. - */ -typedef uint32_t sdflags_t; - -/** - * @brief @p SerialDriver specific data. - */ -struct _serial_driver_data { - /** - * Input queue, incoming data can be read from this input queue by - * using the queues APIs. - */ - InputQueue iqueue; - /** - * Output queue, outgoing data can be written to this output queue by - * using the queues APIs. - */ - OutputQueue oqueue; - /** - * Status Change @p EventSource. This event is generated when one or more - * condition flags change. - */ - EventSource sevent; - /** - * I/O driver status flags. - */ - sdflags_t flags; - /** - * Input circular buffer. - */ - uint8_t ib[SERIAL_BUFFERS_SIZE]; - /** - * Output circular buffer. - */ - uint8_t ob[SERIAL_BUFFERS_SIZE]; -}; - -/** - * @brief Generic Serial Driver configuration structure. - * @details An instance of this structure must be passed to @p sdStart() - * in order to configure and start a serial driver operations. - * - * @note This structure content is architecture dependent, each driver - * implementation defines its own version and the custom static - * initializers. - */ -typedef struct { -} SerialDriverConfig; - -/*===========================================================================*/ -/* External declarations. */ -/*===========================================================================*/ - -/** @cond never*/ -extern SerialDriver SD1; - -#ifdef __cplusplus -extern "C" { -#endif - void sd_lld_init(void); - void sd_lld_start(SerialDriver *sdp, const SerialDriverConfig *config); - void sd_lld_stop(SerialDriver *sdp); - bool_t sd_lld_interrupt_pending(void); -#ifdef __cplusplus -} -#endif -/** @endcond*/ - -#endif /* _SERIAL_LLD_H_ */ - -/** @} */