diff options
| author | hathach <[email protected]> | 2012-12-04 18:18:29 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2012-12-04 18:18:29 +0700 |
| commit | f31ade6151089a0d6d99b73c23a7a6e1a538c268 (patch) | |
| tree | 10dbf649bf16f6a6ce4fd9d9e66c1401ad1918a0 | |
| parent | 82820a206666a6415148b0d26985ac5c7a9eb279 (diff) | |
add board abstract layer
rename arch to mcu
| -rw-r--r-- | .cproject | 6 | ||||
| -rw-r--r-- | demos/boards/board.h | 86 | ||||
| -rw-r--r-- | demos/boards/board_lpcexpresso1347.c | 64 | ||||
| -rw-r--r-- | demos/boards/board_ngx4330_explorer.c | 93 | ||||
| -rw-r--r-- | demos/device/keyboard/.cproject | 16 | ||||
| -rw-r--r-- | demos/device/keyboard/.project | 9 | ||||
| -rw-r--r-- | demos/device/keyboard/main.c | 81 | ||||
| -rw-r--r-- | tinyusb/common/common.h | 2 | ||||
| -rw-r--r-- | tinyusb/common/compiler/compiler_iar.h (renamed from tinyusb/common/arch/arm_mx.h) | 33 | ||||
| -rw-r--r-- | tinyusb/common/mcu/mcu.h (renamed from tinyusb/common/arch/arch.h) | 34 | ||||
| -rw-r--r-- | tinyusb/common/mcu/mcu_lpc11xx.h (renamed from tinyusb/common/arch/arch_lpc11xx.h) | 16 | ||||
| -rw-r--r-- | tinyusb/common/mcu/mcu_lpc134x.h (renamed from tinyusb/common/arch/arch_lpc134x.h) | 16 | ||||
| -rw-r--r-- | tinyusb/common/mcu/mcu_lpc43xx.h (renamed from tinyusb/common/arch/arch_lpc43xx.h) | 14 | ||||
| -rw-r--r-- | tinyusb/hal/hal_lpc134x.c | 2 | ||||
| -rw-r--r-- | tinyusb/hal/hal_lpc43xx.c | 2 |
15 files changed, 358 insertions, 116 deletions
@@ -9,6 +9,7 @@ <externalSetting> <entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/tinyusb"/> <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/tinyusb/Debug"/> + <entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/tinyusb/lpc134x"/> <entry flags="RESOLVED" kind="libraryFile" name="tinyusb"/> </externalSetting> </externalSettings> @@ -35,13 +36,15 @@ <option id="com.crt.advproject.gcc.thumb.279363600" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" value="true" valueType="boolean"/> <option id="gnu.c.compiler.option.preprocessor.def.symbols.1841863300" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols"> <listOptionValue builtIn="false" value="__REDLIB__"/> + <listOptionValue builtIn="false" value="MCU=MCU_LPC134X"/> <listOptionValue builtIn="false" value="DEBUG"/> <listOptionValue builtIn="false" value="__CODE_RED"/> </option> <option id="gnu.c.compiler.option.misc.other.1344283117" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/> <option id="com.crt.advproject.c.misc.dialect.995251213" name="C Dialect" superClass="com.crt.advproject.c.misc.dialect" value="com.crt.advproject.misc.dialect.gnu99" valueType="enumerated"/> <option id="gnu.c.compiler.option.include.paths.1054321122" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath"> - <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p10_LPC13Uxx/inc}""/> + <listOptionValue builtIn="false" value=""${workspace_loc:/CDL/CMSISv2p10_LPC13Uxx/lpcinc}""/> + <listOptionValue builtIn="false" value=""${workspace_loc:/CDL/CMSISv2p10_LPC13Uxx/inc}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/device_keyboard}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/tinyusb}""/> </option> @@ -1237,6 +1240,7 @@ <option id="com.crt.advproject.gcc.thumb.191147189" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" value="true" valueType="boolean"/> <option id="gnu.c.compiler.option.preprocessor.def.symbols.302159449" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols"> <listOptionValue builtIn="false" value="__REDLIB__"/> + <listOptionValue builtIn="false" value="MCU=MCU_LPC43XX"/> <listOptionValue builtIn="false" value="DEBUG"/> <listOptionValue builtIn="false" value="__CODE_RED"/> </option> diff --git a/demos/boards/board.h b/demos/boards/board.h new file mode 100644 index 000000000..c3bdd6e48 --- /dev/null +++ b/demos/boards/board.h @@ -0,0 +1,86 @@ +/* + * board.h + * + * Created on: Dec 4, 2012 + * 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 + */ + +/** + * \defgroup Group_Board Boards + * \brief TBD + * + * @{ + */ + +#ifndef _TUSB_BOARD_H_ +#define _TUSB_BOARD_H_ + +#ifdef __cplusplus + extern "C" { +#endif + +#include <stdint.h> + + /// n-th Bit +#ifndef BIT +#define BIT(n) (1 << (n)) +#endif + +#ifndef BOARD +#define BOARD BOARD_NGX4330_EXPLORER +#endif + +#define BOARD_NGX4330_EXPLORER 1 +#define BOARD_LPCXPRESSO1347 2 + +//#ifdef BOARD == BOARD_NGX4330_EXPLORER +//#include "board_ngx4330_explorer.h" +//#endif + +/// Init board peripherals : Clock, UART, LEDs, Buttons +void board_init(void); +void board_leds(uint32_t mask, uint32_t state); + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_BOARD_H_ */ + +/** @} */ diff --git a/demos/boards/board_lpcexpresso1347.c b/demos/boards/board_lpcexpresso1347.c new file mode 100644 index 000000000..9b3179687 --- /dev/null +++ b/demos/boards/board_lpcexpresso1347.c @@ -0,0 +1,64 @@ +/* + * board_lpcexpresso1347.c + * + * Created on: Dec 4, 2012 + * 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 "board.h" + +#if BOARD == BOARD_LPCXPRESSO1347 + +#include "LPC13Uxx.h" + +#define CFG_LED_PORT (0) +#define CFG_LED_PIN (7) +#define CFG_LED_ON (1) +#define CFG_LED_OFF (0) + +void board_init(void) +{ + SystemInit(); + systickInit(1); + GPIOInit(); + GPIOSetDir(CFG_LED_PORT, CFG_LED_PIN, 1); + LPC_GPIO->CLR[CFG_LED_PORT] = (1 << CFG_LED_PIN); +} + +void board_leds(uint32_t mask, uint32_t state) +{ + if (mask) + GPIOSetBitValue(CFG_LED_PORT, CFG_LED_PIN, state); +} + +#endif diff --git a/demos/boards/board_ngx4330_explorer.c b/demos/boards/board_ngx4330_explorer.c new file mode 100644 index 000000000..6ab9c0e27 --- /dev/null +++ b/demos/boards/board_ngx4330_explorer.c @@ -0,0 +1,93 @@ +/* + * board_ngx4330_explorer.c + * + * Created on: Dec 4, 2012 + * 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 "board.h" + +#if BOARD == BOARD_NGX4330_EXPLORER + +#include "lpc43xx_uart.h" +#include "lpc43xx_scu.h" +#include "lpc43xx_cgu.h" +#include "lpc43xx_gpio.h" +#include "lpc43xx_timer.h" +#include "lpc43xx_i2c.h" +#include "lpc43xx_gpdma.h" +#include "lpc43xx_i2s.h" +#include "lpc43xx_emc.h" + +#define BOARD_MAX_LEDS 2 +const static struct { + uint8_t port; + uint8_t pin; +}leds[BOARD_MAX_LEDS] = { {1, 11}, {1,12} }; + +void board_init(void) +{ + CGU_Init(); + SysTick_Config( CGU_GetPCLKFrequency(CGU_PERIPHERAL_M4CORE)/1000 ); /* 1 ms Timer */ + + /* Turn on 5V USB VBUS TODO Should be Host-only */ + scu_pinmux(0x2, 6, MD_PUP | MD_EZI, FUNC4); // P2_6 USB1_PWR_EN, USB1 VBus function + scu_pinmux(0x2, 5, MD_PLN | MD_EZI | MD_ZI, FUNC2); // P2_5 USB1_VBUS, MUST CONFIGURE THIS SIGNAL FOR USB1 NORMAL OPERATION + + /* Turn on 5V USB VBUS TODO Should be Host-only */ +#if 1 //(BOARD == BOARD_XPLORER) + scu_pinmux(0x1, 7, MD_PUP | MD_EZI, FUNC4); // P1_7 USB0_PWR_EN, USB0 VBus function Xplorer +#else + scu_pinmux(0x2, 3, MD_PUP | MD_EZI, FUNC7); // P2_3 USB0_PWR_EN, USB0 VBus function Farnell +#endif + + // Leds Init + uint8_t i; + for (i=0; i<BOARD_MAX_LEDS; i++) + { + scu_pinmux(leds[i].port, leds[i].pin, MD_PUP|MD_EZI|MD_ZI, FUNC0); + GPIO_SetDir(leds[i].port, BIT(leds[i].pin), 1); // output + } +} + +void board_leds(uint32_t mask, uint32_t state) +{ + uint8_t i; + for(i=0; i<BOARD_MAX_LEDS; i++) + { + if ( mask & BIT(i) ) + (mask & state) ? GPIO_SetValue(leds[i].port, BIT(leds[i].pin)) : GPIO_ClearValue(leds[i].port, BIT(leds[i].pin)) ; + } +} + +#endif diff --git a/demos/device/keyboard/.cproject b/demos/device/keyboard/.cproject index 19402f70d..ac7e5142b 100644 --- a/demos/device/keyboard/.cproject +++ b/demos/device/keyboard/.cproject @@ -29,13 +29,17 @@ <option id="com.crt.advproject.gcc.thumb.697143257" name="Thumb mode" superClass="com.crt.advproject.gcc.thumb" value="true" valueType="boolean"/> <option id="gnu.c.compiler.option.preprocessor.def.symbols.371325215" name="Defined symbols (-D)" superClass="gnu.c.compiler.option.preprocessor.def.symbols" valueType="definedSymbols"> <listOptionValue builtIn="false" value="__REDLIB__"/> + <listOptionValue builtIn="false" value="BOARD=BOARD_LPCXPRESSO1347"/> + <listOptionValue builtIn="false" value="MCU=MCU_LPC134X"/> <listOptionValue builtIn="false" value="DEBUG"/> <listOptionValue builtIn="false" value="__CODE_RED"/> </option> <option id="gnu.c.compiler.option.misc.other.204394496" name="Other flags" superClass="gnu.c.compiler.option.misc.other" value="-c -fmessage-length=0 -fno-builtin -ffunction-sections -fdata-sections" valueType="string"/> <option id="gnu.c.compiler.option.include.paths.1207481236" name="Include paths (-I)" superClass="gnu.c.compiler.option.include.paths" valueType="includePath"> - <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p10_LPC13Uxx/inc}""/> - <listOptionValue builtIn="false" value=""${workspace_loc:/LPC13Uxx_DriverLib/inc}""/> + <listOptionValue builtIn="false" value=""${workspace_loc:/CDL/CMSISv2p10_LPC13Uxx/lpcinc}""/> + <listOptionValue builtIn="false" value=""${workspace_loc:/${ProjName}/boards}""/> + <listOptionValue builtIn="false" value=""${workspace_loc:/CDL/CMSISv2p10_LPC13Uxx/inc}""/> + <listOptionValue builtIn="false" value=""${workspace_loc:/CDL/LPC13UxxLib/inc}""/> <listOptionValue builtIn="false" value=""${workspace_loc:/tinyusb/tinyusb}""/> </option> <option id="gnu.c.compiler.option.include.files.318820756" name="Include files (-include)" superClass="gnu.c.compiler.option.include.files"/> @@ -59,13 +63,11 @@ <listOptionValue builtIn="false" value="--gc-sections"/> </option> <option id="gnu.c.link.option.paths.1465143173" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths"> - <listOptionValue builtIn="false" value=""${workspace_loc:/CMSISv2p10_LPC13Uxx/Debug}""/> - <listOptionValue builtIn="false" value=""${workspace_loc:/LPC13Uxx_DriverLib/Debug}""/> - <listOptionValue builtIn="false" value=""${workspace_loc:/tinyusb/Debug}""/> + <listOptionValue builtIn="false" value=""${workspace_loc:/CDL/LPC13Uxx}""/> + <listOptionValue builtIn="false" value=""${workspace_loc:/tinyusb/lpc134x}""/> </option> <option id="gnu.c.link.option.libs.447978281" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs"> - <listOptionValue builtIn="false" value="CMSISv2p10_LPC13Uxx"/> - <listOptionValue builtIn="false" value="LPC13Uxx_DriverLib"/> + <listOptionValue builtIn="false" value="CDL"/> <listOptionValue builtIn="false" value="tinyusb"/> </option> <option id="com.crt.advproject.link.gcc.hdrlib.1111642583" name="Use C library" superClass="com.crt.advproject.link.gcc.hdrlib" value="com.crt.advproject.gcc.link.hdrlib.codered.nohost" valueType="enumerated"/> diff --git a/demos/device/keyboard/.project b/demos/device/keyboard/.project index 200a329db..dd46f5734 100644 --- a/demos/device/keyboard/.project +++ b/demos/device/keyboard/.project @@ -3,8 +3,6 @@ <name>device_keyboard</name> <comment></comment> <projects> - <project>CMSISv2p10_LPC13Uxx</project> - <project>LPC13Uxx_DriverLib</project> <project>tinyusb</project> </projects> <buildSpec> @@ -82,4 +80,11 @@ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> </natures> + <linkedResources> + <link> + <name>boards</name> + <type>2</type> + <locationURI>PARENT-2-PROJECT_LOC/boards</locationURI> + </link> + </linkedResources> </projectDescription> diff --git a/demos/device/keyboard/main.c b/demos/device/keyboard/main.c index b610e6567..859139997 100644 --- a/demos/device/keyboard/main.c +++ b/demos/device/keyboard/main.c @@ -4,6 +4,7 @@ #include <cr_section_macros.h> #include <NXP/crp.h> +#include "board.h" #include "tusb.h" // Variable to store CRP value in. Will be placed automatically @@ -16,19 +17,7 @@ int main(void) uint32_t currentSecond, lastSecond; currentSecond = lastSecond = 0; - SystemInit(); - - systickInit(1); - GPIOInit(); - - #define CFG_LED_PORT (0) - #define CFG_LED_PIN (7) - #define CFG_LED_ON (1) - #define CFG_LED_OFF (0) - - GPIOSetDir(CFG_LED_PORT, CFG_LED_PIN, 1); - LPC_GPIO->CLR[CFG_LED_PORT] = (1 << CFG_LED_PIN); - + board_init(); tusb_init(); while (1) @@ -38,7 +27,7 @@ int main(void) { /* Toggle LED once per second */ lastSecond = currentSecond; - GPIOSetBitValue(CFG_LED_PORT, CFG_LED_PIN, lastSecond % 2); + board_leds(0x01, lastSecond%2); #ifndef CFG_CLASS_CDC if (usb_isConfigured()) @@ -55,38 +44,38 @@ int main(void) #endif } - #ifdef CFG_CLASS_CDC - if (usb_isConfigured()) - { - uint8_t cdc_char; - if( tusb_cdc_getc(&cdc_char) ) - { - switch (cdc_char) - { - #ifdef CFG_CLASS_HID_KEYBOARD - case '1' : - { - uint8_t keys[6] = {HID_USAGE_KEYBOARD_aA + 'e' - 'a'}; - tusb_hid_keyboard_sendKeys(0x08, keys, 1); // windows + E --> open explorer - } - break; - #endif - - #ifdef CFG_CLASS_HID_MOUSE - case '2' : - tusb_hid_mouse_send(0, 10, 10); - break; - #endif - - default : - cdc_char = toupper(cdc_char); - tusb_cdc_putc(cdc_char); - break; - - } - } - } -#endif +// #ifdef CFG_CLASS_CDC +// if (usb_isConfigured()) +// { +// uint8_t cdc_char; +// if( tusb_cdc_getc(&cdc_char) ) +// { +// switch (cdc_char) +// { +// #ifdef CFG_CLASS_HID_KEYBOARD +// case '1' : +// { +// uint8_t keys[6] = {HID_USAGE_KEYBOARD_aA + 'e' - 'a'}; +// tusb_hid_keyboard_sendKeys(0x08, keys, 1); // windows + E --> open explorer +// } +// break; +// #endif +// +// #ifdef CFG_CLASS_HID_MOUSE +// case '2' : +// tusb_hid_mouse_send(0, 10, 10); +// break; +// #endif +// +// default : +// cdc_char = toupper(cdc_char); +// tusb_cdc_putc(cdc_char); +// break; +// +// } +// } +// } +//#endif } return 0; diff --git a/tinyusb/common/common.h b/tinyusb/common/common.h index d073b8cca..4b6fc645b 100644 --- a/tinyusb/common/common.h +++ b/tinyusb/common/common.h @@ -62,7 +62,7 @@ #include <stdio.h> #include "tusb_cfg.h" -#include "arch/arch.h" +#include "mcu/mcu.h" #include "hal/hal.h" #include "compiler/compiler.h" #include "errors.h" diff --git a/tinyusb/common/arch/arm_mx.h b/tinyusb/common/compiler/compiler_iar.h index b806f7b73..9682f2145 100644 --- a/tinyusb/common/arch/arm_mx.h +++ b/tinyusb/common/compiler/compiler_iar.h @@ -1,7 +1,7 @@ /* - * arm_mx.h + * compiler_iar.h * - * Created on: Nov 26, 2012 + * Created on: Dec 3, 2012 * Author: hathach */ @@ -32,27 +32,32 @@ * 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 tinyUSB stack. + * This file is part of the tiny usb stack. */ /** \file - * \brief ARM Cortex Mx Header - * - * \note TBD + * \brief IAR Compiler */ -/** \ingroup Group_Arch - * +/** \ingroup Group_Compiler + * \defgroup Group_IAR IAR ARM * @{ */ -#ifndef _TUSB_ARM_MX_H_ -#define _TUSB_ARM_MX_H_ +#ifndef _TUSB_COMPILER_IAR_H_ +#define _TUSB_COMPILER_IAR_H_ + +#ifdef __cplusplus + extern "C" { +#endif + +#define ATTR_PREPACKED __packed +#define ATTR_PACKED -// #ifdef ARM_M3 ARM_M4 ARM_M0 +#ifdef __cplusplus + } +#endif -#define ENDIAN_LITTLE -#define ALIGNMENT (4) +#endif /* _TUSB_COMPILER_IAR_H_ */ -#endif /* _TUSB_ARM_MX_H_ */ /** @} */ diff --git a/tinyusb/common/arch/arch.h b/tinyusb/common/mcu/mcu.h index 1cc3fc83d..2bff2a017 100644 --- a/tinyusb/common/arch/arch.h +++ b/tinyusb/common/mcu/mcu.h @@ -1,5 +1,5 @@ /* - * arch.h + * mcu.h * * Created on: Nov 26, 2012 * Author: hathach @@ -42,33 +42,35 @@ */ /** \ingroup Group_Common - * \defgroup Group_Arch Architecture - * \brief Group_Arch brief + * \defgroup Group_MCU MicroController + * \brief Group_MCU brief * * @{ */ -#ifndef _TUSB_ARCH_H_ -#define _TUSB_ARCH_H_ +#ifndef _TUSB_MCU_H_ +#define _TUSB_MCU_H_ -//#define ARCH_LPC134X -//#define ARCH_LPC11XX -#define ARCH_LPC43XX +//#define MCU MCU_LPC43XX + +#define MCU_LPC134X 1 +#define MCU_LPC11XX 2 +#define MCU_LPC43XX 3 #define ENDIAN_LITTLE ///< MCU Endian #define ALIGNMENT (4) ///< MCU Alignment -#if defined ARCH_LPC134X - #include "arch_lpc134x.h" -#elif defined ARCH_LPC43XX - #include "arch_lpc43xx.h" -#elif defined ARCH_LPC11XX - #include "arch_lpc11xx.h" +#if MCU == MCU_LPC134X + #include "mcu_lpc134x.h" +#elif MCU == MCU_LPC43XX + #include "mcu_lpc43xx.h" +#elif MCU == MCU_LPC11XX + #include "mcu_lpc11xx.h" #else - #error Arch is not found + #error Arch is not supported yet #endif -#endif /* _TUSB_ARCH_H_ */ +#endif /* _TUSB_MCU_H_ */ /** @} */ diff --git a/tinyusb/common/arch/arch_lpc11xx.h b/tinyusb/common/mcu/mcu_lpc11xx.h index 38d391700..3b7c00f63 100644 --- a/tinyusb/common/arch/arch_lpc11xx.h +++ b/tinyusb/common/mcu/mcu_lpc11xx.h @@ -1,5 +1,5 @@ /* - * arch_lpc11xx.h + * mcu_lpc11xx.h * * Created on: Nov 29, 2012 * Author: hathach @@ -41,20 +41,18 @@ * \note TBD */ -/** \ingroup Group_Arch +/** \ingroup Group_MCU * * @{ */ -#ifndef ARCH_LPC11XX_H_ -#define ARCH_LPC11XX_H_ +#ifndef MCU_LPC11XX_H_ +#define MCU_LPC11XX_H_ -#define ARM_M0 -#define DEVICE_ROMDRIVER - -#include "arm_mx.h" #include "LPC11Uxx.h" -#endif /* ARCH_LPC11XX_H_ */ +#define DEVICE_ROMDRIVER + +#endif /* MCU_LPC11XX_H_ */ /** @} */ diff --git a/tinyusb/common/arch/arch_lpc134x.h b/tinyusb/common/mcu/mcu_lpc134x.h index 1779b784b..d5ac1e053 100644 --- a/tinyusb/common/arch/arch_lpc134x.h +++ b/tinyusb/common/mcu/mcu_lpc134x.h @@ -1,5 +1,5 @@ /* - * arch_lpc134x.h + * mcu_lpc134x.h * * Created on: Nov 26, 2012 * Author: hathach @@ -41,21 +41,19 @@ * \note TBD */ -/** \ingroup Group_Arch +/** \ingroup Group_MCU * * @{ */ -#ifndef _TUSB_ARCH_LPC134_X_H_ -#define _TUSB_ARCH_LPC134_X_H_ +#ifndef _TUSB_MCU_LPC134_X_H_ +#define _TUSB_MCU_LPC134_X_H_ -#define ARM_M3 -#define DEVICE_ROMDRIVER - -#include "arm_mx.h" #include "LPC13Uxx.h" -#endif /* _TUSB_ARCH_LPC134_X_H_ */ +#define DEVICE_ROMDRIVER + +#endif /* _TUSB_MCU_LPC134_X_H_ */ /** @} */ diff --git a/tinyusb/common/arch/arch_lpc43xx.h b/tinyusb/common/mcu/mcu_lpc43xx.h index f96bbb0dc..fc022c4cb 100644 --- a/tinyusb/common/arch/arch_lpc43xx.h +++ b/tinyusb/common/mcu/mcu_lpc43xx.h @@ -1,5 +1,5 @@ /* - * arch_lpc43xx.h + * mcu_lpc43xx.h * * Created on: Nov 26, 2012 * Author: hathach @@ -41,21 +41,17 @@ * \note TBD */ -/** \ingroup Group_Arch +/** \ingroup Group_MCU * * @{ */ -#ifndef _TUSB_ARCH_LPC43XX_H_ -#define _TUSB_ARCH_LPC43XX_H_ +#ifndef _TUSB_MCU_LPC43XX_H_ +#define _TUSB_MCU_LPC43XX_H_ -#define ARM_M4 -//#define ARM_M0 - -#include "arm_mx.h" #include "LPC43xx.h" #include "lpc43xx_cgu.h" -#endif /* _TUSB_ARCH_LPC43XX_H_ */ +#endif /* _TUSB_MCU_LPC43XX_H_ */ /// @} diff --git a/tinyusb/hal/hal_lpc134x.c b/tinyusb/hal/hal_lpc134x.c index 10acd3388..88ecd93e1 100644 --- a/tinyusb/hal/hal_lpc134x.c +++ b/tinyusb/hal/hal_lpc134x.c @@ -37,7 +37,7 @@ #include "common/common.h" -#ifdef ARCH_LPC134X +#if MCU == MCU_LPC134X TUSB_Error_t hal_init() { diff --git a/tinyusb/hal/hal_lpc43xx.c b/tinyusb/hal/hal_lpc43xx.c index 2291e7532..2fcd885f5 100644 --- a/tinyusb/hal/hal_lpc43xx.c +++ b/tinyusb/hal/hal_lpc43xx.c @@ -37,7 +37,7 @@ #include "common/common.h" -#ifdef ARCH_LPC43XX +#if MCU == MCU_LPC43XX TUSB_Error_t hal_init() { |
