add board abstract layer

rename arch to mcu
This commit is contained in:
hathach 2012-12-04 18:18:29 +07:00
parent 82820a2066
commit f31ade6151
15 changed files with 358 additions and 116 deletions

View File

@ -9,6 +9,7 @@
<externalSetting> <externalSetting>
<entry flags="VALUE_WORKSPACE_PATH" kind="includePath" name="/tinyusb"/> <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/Debug"/>
<entry flags="VALUE_WORKSPACE_PATH" kind="libraryPath" name="/tinyusb/lpc134x"/>
<entry flags="RESOLVED" kind="libraryFile" name="tinyusb"/> <entry flags="RESOLVED" kind="libraryFile" name="tinyusb"/>
</externalSetting> </externalSetting>
</externalSettings> </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="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"> <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="__REDLIB__"/>
<listOptionValue builtIn="false" value="MCU=MCU_LPC134X"/>
<listOptionValue builtIn="false" value="DEBUG"/> <listOptionValue builtIn="false" value="DEBUG"/>
<listOptionValue builtIn="false" value="__CODE_RED"/> <listOptionValue builtIn="false" value="__CODE_RED"/>
</option> </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="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="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"> <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="&quot;${workspace_loc:/CMSISv2p10_LPC13Uxx/inc}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/CDL/CMSISv2p10_LPC13Uxx/lpcinc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CDL/CMSISv2p10_LPC13Uxx/inc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/device_keyboard}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/device_keyboard}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/tinyusb}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/tinyusb}&quot;"/>
</option> </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="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"> <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="__REDLIB__"/>
<listOptionValue builtIn="false" value="MCU=MCU_LPC43XX"/>
<listOptionValue builtIn="false" value="DEBUG"/> <listOptionValue builtIn="false" value="DEBUG"/>
<listOptionValue builtIn="false" value="__CODE_RED"/> <listOptionValue builtIn="false" value="__CODE_RED"/>
</option> </option>

86
demos/boards/board.h Normal file
View File

@ -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_ */
/** @} */

View File

@ -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

View File

@ -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

View File

@ -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="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"> <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="__REDLIB__"/>
<listOptionValue builtIn="false" value="BOARD=BOARD_LPCXPRESSO1347"/>
<listOptionValue builtIn="false" value="MCU=MCU_LPC134X"/>
<listOptionValue builtIn="false" value="DEBUG"/> <listOptionValue builtIn="false" value="DEBUG"/>
<listOptionValue builtIn="false" value="__CODE_RED"/> <listOptionValue builtIn="false" value="__CODE_RED"/>
</option> </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.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"> <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="&quot;${workspace_loc:/CMSISv2p10_LPC13Uxx/inc}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/CDL/CMSISv2p10_LPC13Uxx/lpcinc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/LPC13Uxx_DriverLib/inc}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/${ProjName}/boards}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CDL/CMSISv2p10_LPC13Uxx/inc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/CDL/LPC13UxxLib/inc}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tinyusb/tinyusb}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/tinyusb/tinyusb}&quot;"/>
</option> </option>
<option id="gnu.c.compiler.option.include.files.318820756" name="Include files (-include)" superClass="gnu.c.compiler.option.include.files"/> <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"/> <listOptionValue builtIn="false" value="--gc-sections"/>
</option> </option>
<option id="gnu.c.link.option.paths.1465143173" name="Library search path (-L)" superClass="gnu.c.link.option.paths" valueType="libPaths"> <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="&quot;${workspace_loc:/CMSISv2p10_LPC13Uxx/Debug}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/CDL/LPC13Uxx}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/LPC13Uxx_DriverLib/Debug}&quot;"/> <listOptionValue builtIn="false" value="&quot;${workspace_loc:/tinyusb/lpc134x}&quot;"/>
<listOptionValue builtIn="false" value="&quot;${workspace_loc:/tinyusb/Debug}&quot;"/>
</option> </option>
<option id="gnu.c.link.option.libs.447978281" name="Libraries (-l)" superClass="gnu.c.link.option.libs" valueType="libs"> <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="CDL"/>
<listOptionValue builtIn="false" value="LPC13Uxx_DriverLib"/>
<listOptionValue builtIn="false" value="tinyusb"/> <listOptionValue builtIn="false" value="tinyusb"/>
</option> </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"/> <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"/>

View File

@ -3,8 +3,6 @@
<name>device_keyboard</name> <name>device_keyboard</name>
<comment></comment> <comment></comment>
<projects> <projects>
<project>CMSISv2p10_LPC13Uxx</project>
<project>LPC13Uxx_DriverLib</project>
<project>tinyusb</project> <project>tinyusb</project>
</projects> </projects>
<buildSpec> <buildSpec>
@ -82,4 +80,11 @@
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature> <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature> <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
</natures> </natures>
<linkedResources>
<link>
<name>boards</name>
<type>2</type>
<locationURI>PARENT-2-PROJECT_LOC/boards</locationURI>
</link>
</linkedResources>
</projectDescription> </projectDescription>

View File

@ -4,6 +4,7 @@
#include <cr_section_macros.h> #include <cr_section_macros.h>
#include <NXP/crp.h> #include <NXP/crp.h>
#include "board.h"
#include "tusb.h" #include "tusb.h"
// Variable to store CRP value in. Will be placed automatically // Variable to store CRP value in. Will be placed automatically
@ -16,19 +17,7 @@ int main(void)
uint32_t currentSecond, lastSecond; uint32_t currentSecond, lastSecond;
currentSecond = lastSecond = 0; currentSecond = lastSecond = 0;
SystemInit(); board_init();
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);
tusb_init(); tusb_init();
while (1) while (1)
@ -38,7 +27,7 @@ int main(void)
{ {
/* Toggle LED once per second */ /* Toggle LED once per second */
lastSecond = currentSecond; lastSecond = currentSecond;
GPIOSetBitValue(CFG_LED_PORT, CFG_LED_PIN, lastSecond % 2); board_leds(0x01, lastSecond%2);
#ifndef CFG_CLASS_CDC #ifndef CFG_CLASS_CDC
if (usb_isConfigured()) if (usb_isConfigured())
@ -55,38 +44,38 @@ int main(void)
#endif #endif
} }
#ifdef CFG_CLASS_CDC // #ifdef CFG_CLASS_CDC
if (usb_isConfigured()) // if (usb_isConfigured())
{ // {
uint8_t cdc_char; // uint8_t cdc_char;
if( tusb_cdc_getc(&cdc_char) ) // if( tusb_cdc_getc(&cdc_char) )
{ // {
switch (cdc_char) // switch (cdc_char)
{ // {
#ifdef CFG_CLASS_HID_KEYBOARD // #ifdef CFG_CLASS_HID_KEYBOARD
case '1' : // case '1' :
{ // {
uint8_t keys[6] = {HID_USAGE_KEYBOARD_aA + 'e' - 'a'}; // uint8_t keys[6] = {HID_USAGE_KEYBOARD_aA + 'e' - 'a'};
tusb_hid_keyboard_sendKeys(0x08, keys, 1); // windows + E --> open explorer // tusb_hid_keyboard_sendKeys(0x08, keys, 1); // windows + E --> open explorer
} // }
break; // break;
#endif // #endif
//
#ifdef CFG_CLASS_HID_MOUSE // #ifdef CFG_CLASS_HID_MOUSE
case '2' : // case '2' :
tusb_hid_mouse_send(0, 10, 10); // tusb_hid_mouse_send(0, 10, 10);
break; // break;
#endif // #endif
//
default : // default :
cdc_char = toupper(cdc_char); // cdc_char = toupper(cdc_char);
tusb_cdc_putc(cdc_char); // tusb_cdc_putc(cdc_char);
break; // break;
//
} // }
} // }
} // }
#endif //#endif
} }
return 0; return 0;

View File

@ -62,7 +62,7 @@
#include <stdio.h> #include <stdio.h>
#include "tusb_cfg.h" #include "tusb_cfg.h"
#include "arch/arch.h" #include "mcu/mcu.h"
#include "hal/hal.h" #include "hal/hal.h"
#include "compiler/compiler.h" #include "compiler/compiler.h"
#include "errors.h" #include "errors.h"

View File

@ -1,7 +1,7 @@
/* /*
* arm_mx.h * compiler_iar.h
* *
* Created on: Nov 26, 2012 * Created on: Dec 3, 2012
* Author: hathach * Author: hathach
*/ */
@ -32,27 +32,32 @@
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
* OF SUCH DAMAGE. * OF SUCH DAMAGE.
* *
* This file is part of the tinyUSB stack. * This file is part of the tiny usb stack.
*/ */
/** \file /** \file
* \brief ARM Cortex Mx Header * \brief IAR Compiler
*
* \note TBD
*/ */
/** \ingroup Group_Arch /** \ingroup Group_Compiler
* * \defgroup Group_IAR IAR ARM
* @{ * @{
*/ */
#ifndef _TUSB_ARM_MX_H_ #ifndef _TUSB_COMPILER_IAR_H_
#define _TUSB_ARM_MX_H_ #define _TUSB_COMPILER_IAR_H_
// #ifdef ARM_M3 ARM_M4 ARM_M0 #ifdef __cplusplus
extern "C" {
#endif
#define ENDIAN_LITTLE #define ATTR_PREPACKED __packed
#define ALIGNMENT (4) #define ATTR_PACKED
#ifdef __cplusplus
}
#endif
#endif /* _TUSB_COMPILER_IAR_H_ */
#endif /* _TUSB_ARM_MX_H_ */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
* arch.h * mcu.h
* *
* Created on: Nov 26, 2012 * Created on: Nov 26, 2012
* Author: hathach * Author: hathach
@ -42,33 +42,35 @@
*/ */
/** \ingroup Group_Common /** \ingroup Group_Common
* \defgroup Group_Arch Architecture * \defgroup Group_MCU MicroController
* \brief Group_Arch brief * \brief Group_MCU brief
* *
* @{ * @{
*/ */
#ifndef _TUSB_ARCH_H_ #ifndef _TUSB_MCU_H_
#define _TUSB_ARCH_H_ #define _TUSB_MCU_H_
//#define ARCH_LPC134X //#define MCU MCU_LPC43XX
//#define ARCH_LPC11XX
#define ARCH_LPC43XX #define MCU_LPC134X 1
#define MCU_LPC11XX 2
#define MCU_LPC43XX 3
#define ENDIAN_LITTLE ///< MCU Endian #define ENDIAN_LITTLE ///< MCU Endian
#define ALIGNMENT (4) ///< MCU Alignment #define ALIGNMENT (4) ///< MCU Alignment
#if defined ARCH_LPC134X #if MCU == MCU_LPC134X
#include "arch_lpc134x.h" #include "mcu_lpc134x.h"
#elif defined ARCH_LPC43XX #elif MCU == MCU_LPC43XX
#include "arch_lpc43xx.h" #include "mcu_lpc43xx.h"
#elif defined ARCH_LPC11XX #elif MCU == MCU_LPC11XX
#include "arch_lpc11xx.h" #include "mcu_lpc11xx.h"
#else #else
#error Arch is not found #error Arch is not supported yet
#endif #endif
#endif /* _TUSB_ARCH_H_ */ #endif /* _TUSB_MCU_H_ */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
* arch_lpc11xx.h * mcu_lpc11xx.h
* *
* Created on: Nov 29, 2012 * Created on: Nov 29, 2012
* Author: hathach * Author: hathach
@ -41,20 +41,18 @@
* \note TBD * \note TBD
*/ */
/** \ingroup Group_Arch /** \ingroup Group_MCU
* *
* @{ * @{
*/ */
#ifndef ARCH_LPC11XX_H_ #ifndef MCU_LPC11XX_H_
#define ARCH_LPC11XX_H_ #define MCU_LPC11XX_H_
#define ARM_M0
#define DEVICE_ROMDRIVER
#include "arm_mx.h"
#include "LPC11Uxx.h" #include "LPC11Uxx.h"
#endif /* ARCH_LPC11XX_H_ */ #define DEVICE_ROMDRIVER
#endif /* MCU_LPC11XX_H_ */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
* arch_lpc134x.h * mcu_lpc134x.h
* *
* Created on: Nov 26, 2012 * Created on: Nov 26, 2012
* Author: hathach * Author: hathach
@ -41,21 +41,19 @@
* \note TBD * \note TBD
*/ */
/** \ingroup Group_Arch /** \ingroup Group_MCU
* *
* @{ * @{
*/ */
#ifndef _TUSB_ARCH_LPC134_X_H_ #ifndef _TUSB_MCU_LPC134_X_H_
#define _TUSB_ARCH_LPC134_X_H_ #define _TUSB_MCU_LPC134_X_H_
#define ARM_M3
#define DEVICE_ROMDRIVER
#include "arm_mx.h"
#include "LPC13Uxx.h" #include "LPC13Uxx.h"
#endif /* _TUSB_ARCH_LPC134_X_H_ */ #define DEVICE_ROMDRIVER
#endif /* _TUSB_MCU_LPC134_X_H_ */
/** @} */ /** @} */

View File

@ -1,5 +1,5 @@
/* /*
* arch_lpc43xx.h * mcu_lpc43xx.h
* *
* Created on: Nov 26, 2012 * Created on: Nov 26, 2012
* Author: hathach * Author: hathach
@ -41,21 +41,17 @@
* \note TBD * \note TBD
*/ */
/** \ingroup Group_Arch /** \ingroup Group_MCU
* *
* @{ * @{
*/ */
#ifndef _TUSB_ARCH_LPC43XX_H_ #ifndef _TUSB_MCU_LPC43XX_H_
#define _TUSB_ARCH_LPC43XX_H_ #define _TUSB_MCU_LPC43XX_H_
#define ARM_M4
//#define ARM_M0
#include "arm_mx.h"
#include "LPC43xx.h" #include "LPC43xx.h"
#include "lpc43xx_cgu.h" #include "lpc43xx_cgu.h"
#endif /* _TUSB_ARCH_LPC43XX_H_ */ #endif /* _TUSB_MCU_LPC43XX_H_ */
/// @} /// @}

View File

@ -37,7 +37,7 @@
#include "common/common.h" #include "common/common.h"
#ifdef ARCH_LPC134X #if MCU == MCU_LPC134X
TUSB_Error_t hal_init() TUSB_Error_t hal_init()
{ {

View File

@ -37,7 +37,7 @@
#include "common/common.h" #include "common/common.h"
#ifdef ARCH_LPC43XX #if MCU == MCU_LPC43XX
TUSB_Error_t hal_init() TUSB_Error_t hal_init()
{ {