Explorar o código

add board lpclink2, able to run device stack without any problems

hathach %!s(int64=12) %!d(string=hai) anos
pai
achega
2c8b8ea529

+ 4 - 3
demos/bsp/boards/board.h

@@ -69,6 +69,7 @@
 #define BOARD_LPCXPRESSO1769        7
 #define BOARD_LPCXPRESSO1769        7
 
 
 #define BOARD_LPC4357USB            8
 #define BOARD_LPC4357USB            8
+#define BOARD_LPCLINK2              9
 
 
 //--------------------------------------------------------------------+
 //--------------------------------------------------------------------+
 // PRINTF TARGET DEFINE
 // PRINTF TARGET DEFINE
@@ -80,9 +81,7 @@
 
 
 #define PRINTF(...) printf(__VA_ARGS__)
 #define PRINTF(...) printf(__VA_ARGS__)
 
 
-#if BOARD == 0
-  #error BOARD is not defined or supported yet
-#elif BOARD == BOARD_NGX4330
+#if BOARD == BOARD_NGX4330
   #include "ngx/board_ngx4330.h"
   #include "ngx/board_ngx4330.h"
 #elif BOARD == BOARD_LPCXPRESSO1347
 #elif BOARD == BOARD_LPCXPRESSO1347
   #include "lpcxpresso/board_lpcxpresso1347.h"
   #include "lpcxpresso/board_lpcxpresso1347.h"
@@ -98,6 +97,8 @@
   #include "lpcxpresso/board_lpcxpresso1769.h"
   #include "lpcxpresso/board_lpcxpresso1769.h"
 #elif BOARD == BOARD_LPC4357USB
 #elif BOARD == BOARD_LPC4357USB
   #include "microbuilder/board_lpc4357usb.h"
   #include "microbuilder/board_lpc4357usb.h"
+#elif BOARD == BOARD_LPCLINK2
+ #include "lpcxpresso/board_lpclink2.h"
 #else
 #else
   #error BOARD is not defined or supported yet
   #error BOARD is not defined or supported yet
 #endif
 #endif

+ 2 - 7
demos/bsp/boards/embedded_artists/ea4357/board_ea4357.h

@@ -36,12 +36,6 @@
 */
 */
 /**************************************************************************/
 /**************************************************************************/
 
 
-/** \file
- *  \brief TBD
- *
- *  \note TBD
- */
-
 /** \ingroup TBD
 /** \ingroup TBD
  *  \defgroup TBD
  *  \defgroup TBD
  *  \brief TBD
  *  \brief TBD
@@ -65,12 +59,13 @@
 
 
 
 
 #include "../oem_base_board/pca9532.h" // LEDs
 #include "../oem_base_board/pca9532.h" // LEDs
-//#include "../oem_board/nand.h"
+//#include "../oem_board/nand.h"a
 
 
 
 
 //#define CFG_PRINTF_TARGET       PRINTF_TARGET_SWO
 //#define CFG_PRINTF_TARGET       PRINTF_TARGET_SWO
 #define CFG_PRINTF_TARGET       PRINTF_TARGET_UART // FIXME keil's cmsis rtx does not work with UART (work with SWO)
 #define CFG_PRINTF_TARGET       PRINTF_TARGET_UART // FIXME keil's cmsis rtx does not work with UART (work with SWO)
 
 
+// TODO clean up
 /*=========================================================================
 /*=========================================================================
     HARDWARE MAC ADDRESS
     HARDWARE MAC ADDRESS
     -----------------------------------------------------------------------*/
     -----------------------------------------------------------------------*/

+ 126 - 0
demos/bsp/boards/lpcxpresso/board_lpclink2.c

@@ -0,0 +1,126 @@
+/**************************************************************************/
+/*!
+    @file     board_lpclink2.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_LPCLINK2
+
+#define BOARD_UART_PORT           LPC_USART0
+#define BOARD_UART_PIN_PORT       0x0f
+#define BOARD_UART_PIN_TX         10 // PF.10 : UART0_TXD
+#define BOARD_UART_PIN_RX         11 // PF.11 : UART0_RXD
+
+#define BOARD_MAX_LEDS  1
+
+const static struct {
+  uint8_t port;
+  uint8_t pin;
+}leds[BOARD_MAX_LEDS] = { {0, 8} };
+
+void board_init(void)
+{
+  CGU_Init();
+
+#if TUSB_CFG_OS == TUSB_OS_NONE // TODO may move to main.c
+  SysTick_Config(CGU_GetPCLKFrequency(CGU_PERIPHERAL_M4CORE) / CFG_TICKS_PER_SECOND); // 1 msec tick timer
+#endif
+
+  //------------- USB -------------//
+
+
+  //------------- LED -------------//
+  for (uint8_t 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
+  }
+
+
+#if CFG_UART_ENABLE
+  //------------- UART -------------//
+  scu_pinmux(BOARD_UART_PIN_PORT, BOARD_UART_PIN_TX, MD_PDN, FUNC1);
+  scu_pinmux(BOARD_UART_PIN_PORT, BOARD_UART_PIN_RX, MD_PLN | MD_EZI | MD_ZI, FUNC1);
+
+  UART_CFG_Type UARTConfigStruct;
+  UART_ConfigStructInit(&UARTConfigStruct);
+  UARTConfigStruct.Baud_rate = CFG_UART_BAUDRATE;
+  UARTConfigStruct.Clock_Speed = 0;
+
+  UART_Init(BOARD_UART_PORT, &UARTConfigStruct);
+  UART_TxCmd(BOARD_UART_PORT, ENABLE); // Enable UART Transmit
+#endif
+}
+
+//--------------------------------------------------------------------+
+// LEDS
+//--------------------------------------------------------------------+
+void board_leds(uint32_t on_mask, uint32_t off_mask)
+{
+  for (uint32_t i=0; i<BOARD_MAX_LEDS; i++)
+  {
+    if ( on_mask & BIT_(i))
+    {
+      GPIO_SetValue(leds[i].port, BIT_(leds[i].pin));
+    }else if ( off_mask & BIT_(i)) // on_mask take precedence over off_mask
+    {
+      GPIO_ClearValue(leds[i].port, BIT_(leds[i].pin));
+    }
+  }
+}
+
+//--------------------------------------------------------------------+
+// UART
+//--------------------------------------------------------------------+
+#if CFG_UART_ENABLE
+uint32_t board_uart_send(uint8_t *buffer, uint32_t length)
+{
+  return UART_Send(BOARD_UART_PORT, buffer, length, BLOCKING);
+}
+
+uint32_t board_uart_recv(uint8_t *buffer, uint32_t length)
+{
+  return UART_Receive(BOARD_UART_PORT, buffer, length, BLOCKING);
+}
+
+uint8_t  board_uart_getchar(void)
+{
+  return UART_ReceiveByte(BOARD_UART_PORT);
+}
+#endif
+
+#endif

+ 68 - 0
demos/bsp/boards/lpcxpresso/board_lpclink2.h

@@ -0,0 +1,68 @@
+/**************************************************************************/
+/*!
+    @file     board_lpclink2.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.
+*/
+/**************************************************************************/
+
+/** \ingroup TBD
+ *  \defgroup TBD
+ *  \brief TBD
+ *
+ *  @{
+ */
+
+#ifndef _TUSB_BOARD_LPCLINK2_H_
+#define _TUSB_BOARD_LPCLINK2_H_
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+#include "LPC43xx.h"
+#include "lpc43xx_scu.h"
+#include "lpc43xx_cgu.h"a
+#include "lpc43xx_gpio.h"
+#include "lpc43xx_uart.h"
+#include "lpc43xx_i2c.h"
+
+#define CFG_PRINTF_TARGET       PRINTF_TARGET_UART
+
+#ifdef __cplusplus
+ }
+#endif
+
+#endif /* _TUSB_BOARD_LPCLINK2_H_ */
+
+/** @} */

+ 1 - 1
demos/bsp/boards/ngx/board_ngx4330.c

@@ -58,7 +58,7 @@ void board_init(void)
   GPIO_SetDir   (5, BIT_(6), 1);              // GPIO5[6] is output
   GPIO_SetDir   (5, BIT_(6), 1);              // GPIO5[6] is output
   GPIO_SetValue (5, BIT_(6));                 // GPIO5[6] output high
   GPIO_SetValue (5, BIT_(6));                 // GPIO5[6] output high
 
 
-  // Leds Init
+  //------------- LED -------------//
   for (uint8_t i=0; i<BOARD_MAX_LEDS; i++)
   for (uint8_t i=0; i<BOARD_MAX_LEDS; i++)
   {
   {
     scu_pinmux(leds[i].port, leds[i].pin, MD_PUP|MD_EZI|MD_ZI, FUNC0);
     scu_pinmux(leds[i].port, leds[i].pin, MD_PUP|MD_EZI|MD_ZI, FUNC0);

A diferenza do arquivo foi suprimida porque é demasiado grande
+ 97 - 12
demos/device/device_os_none/.cproject


+ 4 - 3
demos/device/device_os_none/tusb_config.h

@@ -83,11 +83,12 @@
 #define TUSB_CFG_DEVICE_FULLSPEED               1 // TODO refractor, remove
 #define TUSB_CFG_DEVICE_FULLSPEED               1 // TODO refractor, remove
 
 
 //------------- CLASS -------------//
 //------------- CLASS -------------//
-#define TUSB_CFG_DEVICE_HID_KEYBOARD  0
-#define TUSB_CFG_DEVICE_HID_MOUSE     0
+#define TUSB_CFG_DEVICE_HID_KEYBOARD  1
+#define TUSB_CFG_DEVICE_HID_MOUSE     1
 #define TUSB_CFG_DEVICE_HID_GENERIC   0
 #define TUSB_CFG_DEVICE_HID_GENERIC   0
 #define TUSB_CFG_DEVICE_MSC           1
 #define TUSB_CFG_DEVICE_MSC           1
-#define TUSB_CFG_DEVICE_CDC           0
+#define TUSB_CFG_DEVICE_CDC           1
+
 
 
 
 
 //--------------------------------------------------------------------+
 //--------------------------------------------------------------------+

+ 0 - 1
tinyusb/device/dcd_lpc_11uxx_13uxx.c

@@ -321,7 +321,6 @@ void dcd_isr(uint8_t coreid)
       }
       }
     }
     }
   }
   }
-
 }
 }
 
 
 //--------------------------------------------------------------------+
 //--------------------------------------------------------------------+

Algúns arquivos non se mostraron porque demasiados arquivos cambiaron neste cambio