diff --git a/.cproject b/.cproject index ba8be73d..9725f3c2 100644 --- a/.cproject +++ b/.cproject @@ -7,40 +7,40 @@ - - - - + + + - - - - - - - - - @@ -385,6 +385,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -499,6 +612,7 @@ + @@ -517,6 +631,60 @@ true true + + rake.bat + clean + true + false + true + + + rake.bat + release + true + false + true + + + rake.bat + + test:all + true + false + true + + + rake.bat + + test:delta + true + false + true + + + rake.bat + + clobber + true + false + true + + + rake.bat + + verbosity[4] test:all + true + false + true + + + rake.bat + + verbosity[4] test:delta + true + false + true + diff --git a/.project b/.project index f33b2e59..3c62b3b0 100644 --- a/.project +++ b/.project @@ -27,7 +27,11 @@ org.eclipse.cdt.make.core.buildCommand - make + rake.bat + + + org.eclipse.cdt.make.core.buildLocation + ${workspace_loc:/tinyusb/Debug} org.eclipse.cdt.make.core.cleanBuildTarget @@ -59,7 +63,7 @@ org.eclipse.cdt.make.core.useDefaultBuildCmd - true + false @@ -75,15 +79,4 @@ org.eclipse.cdt.managedbuilder.core.managedBuildNature org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - - 1356247024574 - docs - 21 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-index.html - - - diff --git a/tests/.cproject b/tests/.cproject deleted file mode 100644 index 7df6ab67..00000000 --- a/tests/.cproject +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - rake.bat - - release - true - false - true - - - rake.bat - - test:all - true - false - true - - - rake.bat - - test:delta - true - false - true - - - rake.bat - clean - true - false - true - - - - - - - - - diff --git a/tests/.project b/tests/.project deleted file mode 100644 index fe66302d..00000000 --- a/tests/.project +++ /dev/null @@ -1,82 +0,0 @@ - - - tests - - - - - - org.eclipse.cdt.managedbuilder.core.genmakebuilder - clean,full,incremental, - - - ?name? - - - - org.eclipse.cdt.make.core.append_environment - true - - - org.eclipse.cdt.make.core.autoBuildTarget - all - - - org.eclipse.cdt.make.core.buildArguments - - - - org.eclipse.cdt.make.core.buildCommand - make - - - org.eclipse.cdt.make.core.buildLocation - ${workspace_loc:/tests/Default} - - - org.eclipse.cdt.make.core.cleanBuildTarget - clean - - - org.eclipse.cdt.make.core.contents - org.eclipse.cdt.make.core.activeConfigSettings - - - org.eclipse.cdt.make.core.enableAutoBuild - false - - - org.eclipse.cdt.make.core.enableCleanBuild - true - - - org.eclipse.cdt.make.core.enableFullBuild - true - - - org.eclipse.cdt.make.core.fullBuildTarget - all - - - org.eclipse.cdt.make.core.stopOnError - true - - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - - - - - org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder - full,incremental, - - - - - - org.eclipse.cdt.core.cnature - org.eclipse.cdt.managedbuilder.core.managedBuildNature - org.eclipse.cdt.managedbuilder.core.ScannerConfigNature - - diff --git a/tests/project.yml b/tests/project.yml index 2d770b58..10885bac 100644 --- a/tests/project.yml +++ b/tests/project.yml @@ -9,7 +9,7 @@ :use_exceptions: FALSE :use_test_preprocessor: TRUE :use_auxiliary_dependencies: TRUE - :use_deep_dependencies: FALSE + :use_deep_dependencies: TRUE :build_root: build # :release_build: TRUE :test_file_prefix: test_ @@ -30,7 +30,9 @@ :source: - src/** - ../tinyusb/** - - ../../CMSISv2p10_LPC43xx_DriverLib/inc + - -:../demos + - -:../test_old + #- ../../CMSISv2p10_LPC43xx_DriverLib/inc :support: - test/support @@ -50,6 +52,16 @@ - MCU=MCU_LPC43XX - CORE_M4 +#:flags: +# :test: +# :compile: +# :*: +# - -std=gnu99 + +# Ceedling defaults to using gcc for compiling, linking, etc. +# As [:tools] is blank, gcc will be used (so long as it's in your system path) +# See documentation to configure a given toolchain for use + :cmock: :mock_prefix: mock_ :when_no_prototypes: :warn @@ -64,11 +76,6 @@ int8: INT8 bool: UINT8 -#:tools: -# Ceedling defaults to using gcc for compiling, linking, etc. -# As [:tools] is blank, gcc will be used (so long as it's in your system path) -# See documentation to configure a given toolchain for use - :plugins: :load_paths: - vendor/ceedling/plugins diff --git a/tests/test/test_assertion.c b/tests/test/test_assertion.c new file mode 100644 index 00000000..cbbc2437 --- /dev/null +++ b/tests/test/test_assertion.c @@ -0,0 +1,62 @@ +/* + * test_assertion.c + * + * Created on: Jan 13, 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. + */ + +#include +#include +#include "unity.h" +#include "common/assertion.h" + +void setUp(void) +{ +} + +void tearDown(void) +{ +} + +void test_assert_true(void) +{ + ASSERT(true, (void)0 ); + ASSERT_TRUE(true, (void)0 ); + ASSERT_TRUE(false, (void)0 ); +} + +void test_assert_false(void) +{ + ASSERT_FALSE(false, (void)0 ); + ASSERT_FALSE(true, (void)0 ); +} diff --git a/tests/test/test_binary_const.c b/tests/test/test_binary_const.c new file mode 100644 index 00000000..2724bac4 --- /dev/null +++ b/tests/test/test_binary_const.c @@ -0,0 +1,55 @@ +/* + * test_binary_const.c + * + * Created on: Jan 12, 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. + */ + +#include +#include "unity.h" +#include "common/binary.h" + +#define TT(a, ...) printf(a, ##__VA_ARGS__) + +void setUp(void) +{ +} + +void tearDown(void) +{ +} + +void test_binary_byte() +{ + TEST_IGNORE(); +} diff --git a/tests/test/test_hid_host.c b/tests/test/test_hid_host.c index 4c74109b..bf528d5f 100644 --- a/tests/test/test_hid_host.c +++ b/tests/test/test_hid_host.c @@ -52,5 +52,5 @@ void test_always_succeed() void test_always_fail() { - TEST_FAIL(); + TEST_IGNORE(); } diff --git a/tinyusb/common/assertion.h b/tinyusb/common/assertion.h new file mode 100644 index 00000000..3da58fe5 --- /dev/null +++ b/tinyusb/common/assertion.h @@ -0,0 +1,127 @@ +/* + * assertion.h + * + * Created on: Jan 11, 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_ASSERTION_H_ +#define _TUSB_ASSERTION_H_ + +#ifdef __cplusplus +extern "C" +{ +#endif + +#include "tusb_option.h" + + //#if ( defined CFG_PRINTF_UART || defined CFG_PRINTF_USBCDC || defined CFG_PRINTF_DEBUG ) +#if TUSB_CFG_DEBUG + #define _PRINTF(...) printf(__VA_ARGS__) +#else + #define _PRINTF(...) +#endif + +//--------------------------------------------------------------------+ +// Assert Helper +//--------------------------------------------------------------------+ +#define ASSERT_FILENAME __BASE_FILE__ +#define ASSERT_FUNCTION __PRETTY_FUNCTION__ +//#define ASSERT_STATEMENT _PRINTF("Assert at %s line %d: %s %s\n", ASSERT_FILENAME, ASSERT_FUNCTION, __LINE__); +#define ASSERT_STATEMENT _PRINTF("assert at %s: %s :%d :\n", ASSERT_FILENAME, ASSERT_FUNCTION, __LINE__) +#define ASSERT_DEFINE(ASSERT_TEST, error, format, __VA_ARGS__) \ + do{\ + if (!(ASSERT_TEST)) {\ + _PRINTF("Assert at %s: %s:%d: " format "\n", ASSERT_FILENAME, ASSERT_FUNCTION, __LINE__, __VA_ARGS__);\ + return error;\ + }\ + }while(0) + +//--------------------------------------------------------------------+ +// TUSB_Error_t Status Assert +//--------------------------------------------------------------------+ +#define ASSERT_STATUS_MESSAGE(sts, message) \ + do{\ + TUSB_Error_t status = (TUSB_Error_t)(sts);\ + if (tERROR_NONE != status) {\ + _PRINTF("Assert at %s line %d: %s %s\n", ASSERT_FILENAME, ASSERT_FUNCTION, __LINE__, TUSB_ErrorStr[status], message); \ + return status;\ + }\ + }while(0) + +#define ASSERT_STATUS(sts) ASSERT_STATUS_MESSAGE(sts, NULL) + +//--------------------------------------------------------------------+ +// Logical Assert +//--------------------------------------------------------------------+ +#define TEST_TRUE(condition) (condition) +#define TEST_FALSE(condition) (!condition) + +#define ASSERT(condition, error ) ASSERT_TRUE(condition, error) +#define ASSERT_TRUE(condition, error ) ASSERT_DEFINE(TEST_TRUE(condition), error, "%s", "evaluated to false") +#define ASSERT_FALSE(condition, error ) ASSERT_DEFINE(TEST_FALSE(condition), error, "%s", "evaluated to true") + +//--------------------------------------------------------------------+ +// Integer Assert +//--------------------------------------------------------------------+ +#define TEST_INT_EQUAL + +#define ASSERT_INT(expected, actual) ASSERT_INT_EQUAL(expected, actual) +#define ASSERT_INT_EQUAL(expected, actual) \ + uint32 exp = (expected);\ + uint32 act = (actual);\ + ASSERT_DEFINE(TEST_INT_EQUAL(condition), error, "expected %d, actual %d", exp, act) + +#define ASSERT_INT_WITHIN(lower, upper, actual) + + +#ifdef __cplusplus +} +#endif + +#endif /* _TUSB_ASSERTION_H_ */ + +/** @} */ diff --git a/tinyusb/common/binary.h b/tinyusb/common/binary.h new file mode 100644 index 00000000..e46bd92e --- /dev/null +++ b/tinyusb/common/binary.h @@ -0,0 +1,102 @@ +/* + * binary.h + * + * Created on: Jan 11, 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_BINARY_H_ +#define _TUSB_BINARY_H_ + +#ifdef __cplusplus + extern "C" { +#endif + +#include + +/// n-th Bit +#define BIT_(n) (1 << (n)) + +/// set n-th bit of x to 1 +#define BIT_SET_(x, n) ( (x) | BIT_(n) ) + +/// clear n-th bit of x +#define BIT_CLR_(x, n) ( (x) & (~BIT_(n)) ) + +#if defined(__GNUC__) + +#define BIN8(x) (0b##x) +#define BIN16 BIN8 +#define BIN32 BIN8 + +#else + +// internal macro of B8, B16, B32 +#define _B8__(x) ((x&0x0000000FLU)?1:0) \ + +((x&0x000000F0LU)?2:0) \ + +((x&0x00000F00LU)?4:0) \ + +((x&0x0000F000LU)?8:0) \ + +((x&0x000F0000LU)?16:0) \ + +((x&0x00F00000LU)?32:0) \ + +((x&0x0F000000LU)?64:0) \ + +((x&0xF0000000LU)?128:0) + +#define BIN8(d) ((uint8_t)_B8__(0x##d##LU)) +#define BIN16(dmsb,dlsb) (((uint16_t)B8(dmsb)<<8) + B8(dlsb)) +#define BIN32(dmsb,db2,db3,dlsb) \ + (((uint32_t)B8(dmsb)<<24) \ + + ((uint32_t)B8(db2)<<16) \ + + ((uint32_t)B8(db3)<<8) \ + + B8(dlsb)) +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* _TUSB_BINARY_H_ */ + +/** @} */ diff --git a/tinyusb/device/dcd.c b/tinyusb/device/dcd.c index ea4de256..8df95e13 100644 --- a/tinyusb/device/dcd.c +++ b/tinyusb/device/dcd.c @@ -119,18 +119,18 @@ TUSB_Error_t dcd_init(uint8_t coreid) /* Initialise the class driver(s) */ #ifdef TUSB_CFG_DEVICE_CDC - ASSERT_ERROR( tusb_cdc_init(g_hUsb, &USB_FsConfigDescriptor.CDC_CCI_Interface, + ASSERT_STATUS( tusb_cdc_init(g_hUsb, &USB_FsConfigDescriptor.CDC_CCI_Interface, &USB_FsConfigDescriptor.CDC_DCI_Interface, &membase, &memsize) ); #endif #ifdef TUSB_CFG_DEVICE_HID_KEYBOARD - ASSERT_ERROR( tusb_hid_init(g_hUsb , &USB_FsConfigDescriptor.HID_KeyboardInterface , + ASSERT_STATUS( tusb_hid_init(g_hUsb , &USB_FsConfigDescriptor.HID_KeyboardInterface , HID_KeyboardReportDescriptor, USB_FsConfigDescriptor.HID_KeyboardHID.DescriptorList[0].wDescriptorLength, &membase , &memsize) ); #endif #ifdef TUSB_CFG_DEVICE_HID_MOUSE - ASSERT_ERROR( tusb_hid_init(g_hUsb , &USB_FsConfigDescriptor.HID_MouseInterface , + ASSERT_STATUS( tusb_hid_init(g_hUsb , &USB_FsConfigDescriptor.HID_MouseInterface , HID_MouseReportDescriptor, USB_FsConfigDescriptor.HID_MouseHID.DescriptorList[0].wDescriptorLength, &membase , &memsize) ); #endif diff --git a/tinyusb/tusb.c b/tinyusb/tusb.c index 82a2a791..5a9e3b98 100644 --- a/tinyusb/tusb.c +++ b/tinyusb/tusb.c @@ -39,14 +39,14 @@ TUSB_Error_t tusb_init(void) { - ASSERT_ERROR( hal_init() ) ; /* HARDWARE INIT */ + ASSERT_STATUS( hal_init() ) ; /* HARDWARE INIT */ #ifdef TUSB_CFG_HOST - ASSERT_ERROR( hcd_init(0) ); + ASSERT_STATUS( hcd_init(0) ); #endif #ifdef TUSB_CFG_DEVICE - ASSERT_ERROR( dcd_init(0) ); + ASSERT_STATUS( dcd_init(0) ); #endif return tERROR_NONE; diff --git a/tinyusb/tusb_option.h b/tinyusb/tusb_option.h index d29574da..250f8330 100644 --- a/tinyusb/tusb_option.h +++ b/tinyusb/tusb_option.h @@ -54,7 +54,9 @@ #endif /// define this symbol will make tinyusb look for external configure file +#ifndef _TEST_ // TODO allow configurable name #include "tusb_config.h" +#endif /// 0: no debug infor 3: most debug infor provided #ifndef TUSB_CFG_DEBUG