diff options
| author | hathach <[email protected]> | 2014-03-25 16:41:50 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2014-03-25 16:41:50 +0700 |
| commit | 04c94440da119d98f9d6d2f512822b2832c2aefa (patch) | |
| tree | 86ec32cbc323fdf85e4f6465dc40ab32eb17d059 | |
| parent | f802b544178c2ed25c3648bafbbd1f7a37a67d33 (diff) | |
added board lpcxpresso 11u14
| -rw-r--r-- | boards/board.h | 15 | ||||
| -rw-r--r-- | boards/lpcxpresso/board_lpcxpresso11u14.c | 131 | ||||
| -rw-r--r-- | boards/lpcxpresso/board_lpcxpresso11u14.h | 57 | ||||
| -rw-r--r-- | boards/lpcxpresso/board_lpcxpresso1347.c | 1 | ||||
| -rw-r--r-- | boards/microbuilder/board_rf1ghznode.c | 1 | ||||
| -rw-r--r-- | demos/device/src/app_os_prio.h | 73 |
6 files changed, 270 insertions, 8 deletions
diff --git a/boards/board.h b/boards/board.h index 1ee5f4cd5..f4f2503c0 100644 --- a/boards/board.h +++ b/boards/board.h @@ -58,6 +58,7 @@ //--------------------------------------------------------------------+
/** \defgroup group_supported_board Supported Boards
* @{ */
+#define BOARD_LPCXPRESSO11U14 1114 ///< LPCXpresso 11u14, some APIs requires the base board
#define BOARD_RF1GHZNODE 1100 ///< LPC11U37 from microbuilder http://www.microbuilder.eu/Blog/13-03-14/LPC1xxx_1GHZ_Wireless_Board_Preview.aspx
#define BOARD_LPCXPRESSO1347 1300 ///< LPCXpresso 1347, some APIs requires the base board
#define BOARD_LPCXPRESSO1769 1700 ///< LPCXpresso 1769, some APIs requires the base board
@@ -88,20 +89,22 @@ //--------------------------------------------------------------------+
// BOARD INCLUDE
//--------------------------------------------------------------------+
-#if BOARD == BOARD_NGX4330
- #include "ngx/board_ngx4330.h"
-#elif BOARD == BOARD_LPCXPRESSO1347
- #include "lpcxpresso/board_lpcxpresso1347.h"
+#if BOARD == BOARD_LPCXPRESSO11U14
+ #include "lpcxpresso/board_lpcxpresso11u14.h"
#elif BOARD == BOARD_RF1GHZNODE
#include "microbuilder/board_rf1ghznode.h"
+#elif BOARD == BOARD_LPCXPRESSO1347
+ #include "lpcxpresso/board_lpcxpresso1347.h"
+#elif BOARD == BOARD_LPCXPRESSO1769
+ #include "lpcxpresso/board_lpcxpresso1769.h"
+#elif BOARD == BOARD_NGX4330
+ #include "ngx/board_ngx4330.h"
#elif BOARD == BOARD_EA4357
#include "embedded_artists/ea4357/board_ea4357.h"
#elif BOARD == BOARD_MCB4300
#include "keil/board_mcb4300.h"
#elif BOARD == BOARD_HITEX4350
#include "hitex/board_hitex4350.h"
-#elif BOARD == BOARD_LPCXPRESSO1769
- #include "lpcxpresso/board_lpcxpresso1769.h"
#elif BOARD == BOARD_LPC4357USB
#include "microbuilder/board_lpc4357usb.h"
#elif BOARD == BOARD_LPCLINK2
diff --git a/boards/lpcxpresso/board_lpcxpresso11u14.c b/boards/lpcxpresso/board_lpcxpresso11u14.c new file mode 100644 index 000000000..eb8c39eda --- /dev/null +++ b/boards/lpcxpresso/board_lpcxpresso11u14.c @@ -0,0 +1,131 @@ +/**************************************************************************/ +/*! + @file board_lpcxpresso11u14.c + @author hathach (tinyusb.org) + + @section LICENSE + + Software License Agreement (BSD License) + + Copyright (c) 2013, hathach (tinyusb.org) + 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. Neither the name of the copyright holders nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''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 COPYRIGHT HOLDER 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 tinyusb stack. +*/ +/**************************************************************************/ + +#include "../board.h" + +#if BOARD == BOARD_LPCXPRESSO11U14 + +#define LED_PORT (0) +#define LED_PIN (7) +#define LED_ON (1) + +const static struct { + uint8_t port; + uint8_t pin; +} buttons[] = +{ + {1, 22 }, // Joystick up + {1, 20 }, // Joystick down + {1, 23 }, // Joystick left + {1, 21 }, // Joystick right + {1, 19 }, // Joystick press + {0, 1 }, // SW3 +// {1, 4 }, // SW4 (require to remove J28) +}; + + +enum { + BOARD_BUTTON_COUNT = sizeof(buttons) / sizeof(buttons[0]) +}; + +void board_init(void) +{ + SystemInit(); + +#if TUSB_CFG_OS == TUSB_OS_NONE // TODO may move to main.c + SysTick_Config(SystemCoreClock / TUSB_CFG_TICKS_HZ); // 1 msec tick timer +#endif + + GPIOInit(); + + //------------- LED -------------// + GPIOSetDir(LED_PORT, LED_PIN, 1); + + //------------- BUTTON -------------// + for(uint8_t i=0; i<BOARD_BUTTON_COUNT; i++) GPIOSetDir(buttons[i].port, buttons[i].pin, 0); + + //------------- UART -------------// + UARTInit(CFG_UART_BAUDRATE); +} + +//--------------------------------------------------------------------+ +// LEDS +//--------------------------------------------------------------------+ +void board_leds(uint32_t on_mask, uint32_t off_mask) +{ + if (on_mask & BIT_(0)) + { + GPIOSetBitValue(LED_PORT, LED_PIN, LED_ON); + }else if (off_mask & BIT_(0)) + { + GPIOSetBitValue(LED_PORT, LED_PIN, 1 - LED_ON); + } +} + +//--------------------------------------------------------------------+ +// Buttons +//--------------------------------------------------------------------+ +static bool button_read(uint8_t id) +{ + return !GPIOGetPinValue(buttons[id].port, buttons[id].pin); // button is active low +} + +uint32_t board_buttons(void) +{ + uint32_t result = 0; + + for(uint8_t i=0; i<BOARD_BUTTON_COUNT; i++) result |= (button_read(i) ? BIT_(i) : 0); + + return result; +} + +//--------------------------------------------------------------------+ +// UART +//--------------------------------------------------------------------+ +void board_uart_putchar(uint8_t c) +{ + UARTSend(&c, 1); +} + +uint8_t board_uart_getchar(void) +{ +// *buffer = get_key(); TODO cannot find available code for uart getchar + return 0; +} + +#endif diff --git a/boards/lpcxpresso/board_lpcxpresso11u14.h b/boards/lpcxpresso/board_lpcxpresso11u14.h new file mode 100644 index 000000000..cd4314d30 --- /dev/null +++ b/boards/lpcxpresso/board_lpcxpresso11u14.h @@ -0,0 +1,57 @@ +/**************************************************************************/ +/*! + @file board_lpcxpresso11u14.h + @author hathach (tinyusb.org) + + @section LICENSE + + Software License Agreement (BSD License) + + Copyright (c) 2013, hathach (tinyusb.org) + 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. Neither the name of the copyright holders nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''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 COPYRIGHT HOLDER 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 tinyusb stack. +*/ +/**************************************************************************/ + +#ifndef _TUSB_BOARD_RF1GHZNODE_H_ +#define _TUSB_BOARD_RF1GHZNODE_H_ + +#ifdef __cplusplus + extern "C" { +#endif + +#include "LPC11Uxx.h" +#include "lpc11uxx_gpio.h" +#include "lpc11uxx_uart.h" + +//#define CFG_PRINTF_TARGET PRINTF_TARGET_SEMIHOST +#define CFG_PRINTF_TARGET PRINTF_TARGET_UART + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_BOARD_RF1GHZNODE_H_ */ diff --git a/boards/lpcxpresso/board_lpcxpresso1347.c b/boards/lpcxpresso/board_lpcxpresso1347.c index 0a45830c8..74455a235 100644 --- a/boards/lpcxpresso/board_lpcxpresso1347.c +++ b/boards/lpcxpresso/board_lpcxpresso1347.c @@ -76,7 +76,6 @@ void board_init(void) //------------- LED -------------//
GPIOSetDir(LED_PORT, LED_PIN, 1);
- LPC_GPIO->CLR[LED_PORT] = (1 << LED_PIN);
//------------- BUTTON -------------//
for(uint8_t i=0; i<BOARD_BUTTON_COUNT; i++) GPIOSetDir(buttons[i].port, BIT_(buttons[i].pin), 0);
diff --git a/boards/microbuilder/board_rf1ghznode.c b/boards/microbuilder/board_rf1ghznode.c index 9d902282c..882ab6853 100644 --- a/boards/microbuilder/board_rf1ghznode.c +++ b/boards/microbuilder/board_rf1ghznode.c @@ -66,7 +66,6 @@ void board_init(void) //------------- LED -------------//
GPIOSetDir(LED_PORT, LED_PIN, 1);
- board_leds(0x01, 0); // turn off the led first
//------------- BUTTON -------------//
for(uint8_t i=0; i<BOARD_BUTTON_COUNT; i++) GPIOSetDir(buttons[i].port, buttons[i].pin, 0);
diff --git a/demos/device/src/app_os_prio.h b/demos/device/src/app_os_prio.h new file mode 100644 index 000000000..52d42efe3 --- /dev/null +++ b/demos/device/src/app_os_prio.h @@ -0,0 +1,73 @@ +/**************************************************************************/ +/*! + @file app_os_prio.h + @author hathach (tinyusb.org) + + @section LICENSE + + Software License Agreement (BSD License) + + Copyright (c) 2013, hathach (tinyusb.org) + 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. Neither the name of the copyright holders nor the + names of its contributors may be used to endorse or promote products + derived from this software without specific prior written permission. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ''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 COPYRIGHT HOLDER 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 tinyusb stack. +*/ +/**************************************************************************/ + +#ifndef _TUSB_APP_OS_PRIO_H_ +#define _TUSB_APP_OS_PRIO_H_ + + +#ifdef __cplusplus + extern "C" { +#endif + +#include "tusb.h" + +#if TUSB_CFG_OS == TUSB_OS_NONE + #define LOWER_PRIO(x) 0 // does not matter +#elif TUSB_CFG_OS == TUSB_OS_FREERTOS + #define LOWER_PRIO(x) ((x)-1) // freeRTOS lower number --> lower priority +#elif TUSB_CFG_OS == TUSB_OS_CMSIS_RTX + #define LOWER_PRIO(x) ((x)-1) // CMSIS-RTOS lower number --> lower priority +#else + #error Priority is not configured for this RTOS +#endif + +enum { + STANDARD_APP_TASK_PRIO = LOWER_PRIO(TUSB_CFG_OS_TASK_PRIO), // Application Task is lower than usb system task + LED_BLINKING_APP_TASK_PRIO = LOWER_PRIO(STANDARD_APP_TASK_PRIO), // Blinking task is lower than normal task + + KEYBOARD_APP_TASK_PRIO = STANDARD_APP_TASK_PRIO, + MOUSE_APP_TASK_PRIO = STANDARD_APP_TASK_PRIO, + CDC_SERIAL_APP_TASK_PRIO = STANDARD_APP_TASK_PRIO, + MSC_APP_TASK_PRIO = STANDARD_APP_TASK_PRIO +}; + +#ifdef __cplusplus + } +#endif + +#endif /* _TUSB_APP_OS_PRIO_H_ */ |
