diff options
| author | hathach <[email protected]> | 2013-02-04 00:03:08 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2013-02-04 00:03:08 +0700 |
| commit | 5f8839fff8ff12bbf172b5fb9a984867a0d1d8da (patch) | |
| tree | 0f983489c408ecea8d79661b40d42498a0e709ed /tinyusb/osal | |
| parent | 3ac88f1b4ec4ab83682b5c1b1589970096bbc1c4 (diff) | |
refine ASSERT_DEFINE to allow special error_handler for os task
add device_addr0 for enumeration task
start to add osal port for freeRTOS
Diffstat (limited to 'tinyusb/osal')
| -rw-r--r-- | tinyusb/osal/osal.h | 4 | ||||
| -rw-r--r-- | tinyusb/osal/osal_freeRTOS.h | 89 | ||||
| -rw-r--r-- | tinyusb/osal/osal_none.h | 15 |
3 files changed, 96 insertions, 12 deletions
diff --git a/tinyusb/osal/osal.h b/tinyusb/osal/osal.h index 707a74bff..0f632f529 100644 --- a/tinyusb/osal/osal.h +++ b/tinyusb/osal/osal.h @@ -84,10 +84,12 @@ typedef uint32_t osal_task_t; #define OSAL_TASK_LOOP_BEGIN #define OSAL_TASK_LOOP_END + + #define TASK_ASSERT_STATUS(sts) \ ASSERT_DEFINE(tusb_error_t status = (tusb_error_t)(sts),\ TUSB_ERROR_NONE == status, (void) 0, "%s", TUSB_ErrorStr[status]) - +#define TASK_ASSERT(condition) ASSERT(condition, (void) 0) tusb_error_t osal_task_create(osal_task_t *task); diff --git a/tinyusb/osal/osal_freeRTOS.h b/tinyusb/osal/osal_freeRTOS.h new file mode 100644 index 000000000..180bff72e --- /dev/null +++ b/tinyusb/osal/osal_freeRTOS.h @@ -0,0 +1,89 @@ +/* + * osal_freeRTOS.h + * + * Created on: Feb 2, 2013 + * Author: hathach + */ + +/* + * Software License Agreement (BSD License) + * Copyright (c) 2012, hathach (tinyusb.net) + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * 1. Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * 3. The name of the author may not be used to endorse or promote products + * derived from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT + * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT + * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING + * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY + * OF SUCH DAMAGE. + * + * This file is part of the tiny usb stack. + */ + +/** \file + * \brief TBD + * + * \note TBD + */ + +/** \ingroup TBD + * \defgroup TBD + * \brief TBD + * + * @{ + */ + +#ifndef _TUSB_OSAL_FREERTOS_H_ +#define _TUSB_OSAL_FREERTOS_H_ + +#ifdef __cplusplus + extern "C" { +#endif + +#include "osal_common.h" +#include "FreeRTOS.h" + +//--------------------------------------------------------------------+ +// TICK API +//--------------------------------------------------------------------+ +#define osal_tick_get xTaskGetTickCount + +//--------------------------------------------------------------------+ +// TASK API +//--------------------------------------------------------------------+ +#define OSAL_TASK_LOOP_BEGIN \ + while(1) { + +#define OSAL_TASK_LOOP_END \ + } + +#define TASK_ASSERT(condition) +#define TASK_ASSERT_STATUS(sts) + +//--------------------------------------------------------------------+ +// Semaphore API +//--------------------------------------------------------------------+ + + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_OSAL_FREERTOS_H_ */ + +/** @} */ diff --git a/tinyusb/osal/osal_none.h b/tinyusb/osal/osal_none.h index 682f60efa..2056f5214 100644 --- a/tinyusb/osal/osal_none.h +++ b/tinyusb/osal/osal_none.h @@ -90,19 +90,12 @@ uint32_t osal_tick_get(void); state = 0;\ } -#define TASK_ASSERT_DEFINE(setup_statement, condition, error, format, ...) \ - do{\ - setup_statement;\ - if (!(condition)) {\ - ASSERT_MESSAGE(format, __VA_ARGS__);\ - state = 0; /* reset task loop */\ - break;\ - }\ - }while(0) +#define TASK_ASSERT_ERROR_HANDLER \ + state = 0; break; -#define TASK_ASSERT(condition, error) TASK_ASSERT_DEFINE( , (condition), error, "%s", "evaluated to false") +#define TASK_ASSERT(condition) ASSERT_DEFINE_WITH_HANDLER(TASK_ASSERT_ERROR_HANDLER, , (condition), (void) 0, "%s", "evaluated to false") #define TASK_ASSERT_STATUS(sts) \ - TASK_ASSERT_DEFINE(tusb_error_t status = (tusb_error_t)(sts),\ + ASSERT_DEFINE_WITH_HANDLER(TASK_ASSERT_ERROR_HANDLER, tusb_error_t status = (tusb_error_t)(sts),\ TUSB_ERROR_NONE == status, status, "%s", TUSB_ErrorStr[status]) //--------------------------------------------------------------------+ // Semaphore API |
