remove old host bulk xfer
This commit is contained in:
		
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -1,105 +0,0 @@
 | 
			
		||||
<?xml version="1.0" encoding="UTF-8"?>
 | 
			
		||||
<projectDescription>
 | 
			
		||||
	<name>host_bulk_xfer</name>
 | 
			
		||||
	<comment></comment>
 | 
			
		||||
	<projects>
 | 
			
		||||
	</projects>
 | 
			
		||||
	<buildSpec>
 | 
			
		||||
		<buildCommand>
 | 
			
		||||
			<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
 | 
			
		||||
			<triggers>clean,full,incremental,</triggers>
 | 
			
		||||
			<arguments>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>?name?</key>
 | 
			
		||||
					<value></value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.append_environment</key>
 | 
			
		||||
					<value>true</value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.autoBuildTarget</key>
 | 
			
		||||
					<value>all</value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.buildArguments</key>
 | 
			
		||||
					<value></value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.buildCommand</key>
 | 
			
		||||
					<value>make</value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.buildLocation</key>
 | 
			
		||||
					<value>${workspace_loc:/host/Debug}</value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
 | 
			
		||||
					<value>clean</value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.contents</key>
 | 
			
		||||
					<value>org.eclipse.cdt.make.core.activeConfigSettings</value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.enableAutoBuild</key>
 | 
			
		||||
					<value>false</value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.enableCleanBuild</key>
 | 
			
		||||
					<value>true</value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.enableFullBuild</key>
 | 
			
		||||
					<value>true</value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.fullBuildTarget</key>
 | 
			
		||||
					<value>all</value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.stopOnError</key>
 | 
			
		||||
					<value>true</value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
				<dictionary>
 | 
			
		||||
					<key>org.eclipse.cdt.make.core.useDefaultBuildCmd</key>
 | 
			
		||||
					<value>true</value>
 | 
			
		||||
				</dictionary>
 | 
			
		||||
			</arguments>
 | 
			
		||||
		</buildCommand>
 | 
			
		||||
		<buildCommand>
 | 
			
		||||
			<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
 | 
			
		||||
			<triggers>full,incremental,</triggers>
 | 
			
		||||
			<arguments>
 | 
			
		||||
			</arguments>
 | 
			
		||||
		</buildCommand>
 | 
			
		||||
	</buildSpec>
 | 
			
		||||
	<natures>
 | 
			
		||||
		<nature>org.eclipse.cdt.core.cnature</nature>
 | 
			
		||||
		<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
 | 
			
		||||
		<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
 | 
			
		||||
	</natures>
 | 
			
		||||
	<linkedResources>
 | 
			
		||||
		<link>
 | 
			
		||||
			<name>bsp</name>
 | 
			
		||||
			<type>2</type>
 | 
			
		||||
			<locationURI>PARENT-2-PROJECT_LOC/bsp</locationURI>
 | 
			
		||||
		</link>
 | 
			
		||||
		<link>
 | 
			
		||||
			<name>tinyusb</name>
 | 
			
		||||
			<type>2</type>
 | 
			
		||||
			<locationURI>PARENT-3-PROJECT_LOC/tinyusb</locationURI>
 | 
			
		||||
		</link>
 | 
			
		||||
	</linkedResources>
 | 
			
		||||
	<filteredResources>
 | 
			
		||||
		<filter>
 | 
			
		||||
			<id>1366602895349</id>
 | 
			
		||||
			<name></name>
 | 
			
		||||
			<type>26</type>
 | 
			
		||||
			<matcher>
 | 
			
		||||
				<id>org.eclipse.ui.ide.multiFilter</id>
 | 
			
		||||
				<arguments>1.0-name-matches-false-false-startup_keil</arguments>
 | 
			
		||||
			</matcher>
 | 
			
		||||
		</filter>
 | 
			
		||||
	</filteredResources>
 | 
			
		||||
</projectDescription>
 | 
			
		||||
@@ -1,186 +0,0 @@
 | 
			
		||||
/**************************************************************************/
 | 
			
		||||
/*!
 | 
			
		||||
    @file     main.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
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <string.h>
 | 
			
		||||
 | 
			
		||||
#include "boards/board.h"
 | 
			
		||||
#include "tusb.h"
 | 
			
		||||
 | 
			
		||||
#if defined(__CODE_RED)
 | 
			
		||||
  #include <cr_section_macros.h> // TODO remove & verifed
 | 
			
		||||
  #include <NXP/crp.h>
 | 
			
		||||
  // Variable to store CRP value in. Will be placed automatically
 | 
			
		||||
  // by the linker when "Enable Code Read Protect" selected.
 | 
			
		||||
  // See crp.h header for more information
 | 
			
		||||
  __CRP const unsigned int CRP_WORD = CRP_NO_CRP ;
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// MACRO CONSTANT TYPEDEF
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// INTERNAL OBJECT & FUNCTION DECLARATION
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
OSAL_TASK_FUNCTION( led_blinking_task ) (void* p_task_para);
 | 
			
		||||
OSAL_TASK_DEF(led_blinking_task_def, "led blinking", led_blinking_task, 128, LED_BLINKING_APP_TASK_PRIO);
 | 
			
		||||
void custom_class_loopback_task (void* p_task_para);
 | 
			
		||||
 | 
			
		||||
void print_greeting(void);
 | 
			
		||||
static inline void wait_blocking_ms(uint32_t ms);
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// IMPLEMENTATION
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
 | 
			
		||||
#if TUSB_CFG_OS == TUSB_OS_NONE
 | 
			
		||||
// like a real RTOS, this function is a main loop invoking each task in application and never return
 | 
			
		||||
void os_none_start_scheduler(void)
 | 
			
		||||
{
 | 
			
		||||
  while (1)
 | 
			
		||||
  {
 | 
			
		||||
    tusb_task_runner();
 | 
			
		||||
    led_blinking_task(NULL);
 | 
			
		||||
    custom_class_loopback_task(NULL);
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//TODO try to run with optimization Os
 | 
			
		||||
int main(void)
 | 
			
		||||
{
 | 
			
		||||
  board_init();
 | 
			
		||||
 | 
			
		||||
  // TODO blocking wait --> systick handler -->  ...... freeRTOS hardfault
 | 
			
		||||
  //wait_blocking_ms(1000); // wait a bit for power stable
 | 
			
		||||
  
 | 
			
		||||
  // print_greeting(); TODO uart output before freeRTOS scheduler start will lead to hardfault
 | 
			
		||||
  // find a way to fix this as tusb_init can output to uart when an error occurred
 | 
			
		||||
 | 
			
		||||
  tusb_init();
 | 
			
		||||
 | 
			
		||||
  //------------- start OS scheduler (never return) -------------//
 | 
			
		||||
  os_none_start_scheduler();
 | 
			
		||||
 | 
			
		||||
  //------------- this part of code should not be reached -------------//
 | 
			
		||||
  hal_debugger_breakpoint();
 | 
			
		||||
  while(1) { }
 | 
			
		||||
  return 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// BLINKING TASK
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
uint8_t custom_read_buffer[4*1024] TUSB_CFG_ATTR_USBRAM;
 | 
			
		||||
uint32_t custom_write_buffer[64][64] TUSB_CFG_ATTR_USBRAM; // still 4k
 | 
			
		||||
void custom_class_loopback_task (void* p_task_para)
 | 
			
		||||
{
 | 
			
		||||
  if( tusbh_custom_is_mounted(1, 0, 0) ) // hardcode addr = 1, ignore vendor/product ID
 | 
			
		||||
  {
 | 
			
		||||
    tusbh_custom_read(1, 0, 0, custom_read_buffer, sizeof(custom_read_buffer));
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    if (TUSB_ERROR_NONE == tusbh_custom_write(1, 0, 0, custom_write_buffer, sizeof(custom_write_buffer)))
 | 
			
		||||
    {
 | 
			
		||||
      static uint32_t magic_number = 1;
 | 
			
		||||
      for(uint32_t i = 0; i < 64; i++)
 | 
			
		||||
      {
 | 
			
		||||
        custom_write_buffer[i][0] = magic_number;
 | 
			
		||||
        magic_number += 2;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// BLINKING TASK
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
OSAL_TASK_FUNCTION( led_blinking_task ) (void* p_task_para)
 | 
			
		||||
{
 | 
			
		||||
  // task init, only executed exactly one time, real RTOS does not need this but none OS does
 | 
			
		||||
  {
 | 
			
		||||
    static bool is_init = false;
 | 
			
		||||
    if (!is_init)
 | 
			
		||||
    {
 | 
			
		||||
      is_init = true;
 | 
			
		||||
      print_greeting();
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  static uint32_t led_on_mask = 0;
 | 
			
		||||
 | 
			
		||||
  OSAL_TASK_LOOP_BEGIN
 | 
			
		||||
 | 
			
		||||
  osal_task_delay(1000);
 | 
			
		||||
 | 
			
		||||
  board_leds(led_on_mask, 1 - led_on_mask);
 | 
			
		||||
  led_on_mask = 1 - led_on_mask; // toggle
 | 
			
		||||
 | 
			
		||||
  OSAL_TASK_LOOP_END
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// HELPER FUNCTION
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
void print_greeting(void)
 | 
			
		||||
{
 | 
			
		||||
  printf("\r\n\
 | 
			
		||||
--------------------------------------------------------------------\r\n\
 | 
			
		||||
-                     Host Demo (a tinyusb example)\r\n\
 | 
			
		||||
- if you find any bugs or get any questions, feel free to file an\r\n\
 | 
			
		||||
- issue at https://github.com/hathach/tinyusb\r\n\
 | 
			
		||||
--------------------------------------------------------------------\r\n\r\n"
 | 
			
		||||
  );
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline void wait_blocking_us(volatile uint32_t us)
 | 
			
		||||
{
 | 
			
		||||
	us *= (SystemCoreClock / 1000000) / 3;
 | 
			
		||||
	while(us--);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
static inline void wait_blocking_ms(uint32_t ms)
 | 
			
		||||
{
 | 
			
		||||
	wait_blocking_us(ms * 1000);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@@ -1,126 +0,0 @@
 | 
			
		||||
/**************************************************************************/
 | 
			
		||||
/*!
 | 
			
		||||
    @file     tusb_config.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.
 | 
			
		||||
*/
 | 
			
		||||
/**************************************************************************/
 | 
			
		||||
 | 
			
		||||
/** \file
 | 
			
		||||
 *  \brief TBD
 | 
			
		||||
 *
 | 
			
		||||
 *  \note TBD
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
/** \ingroup TBD
 | 
			
		||||
 *  \defgroup TBD
 | 
			
		||||
 *  \brief TBD
 | 
			
		||||
 *
 | 
			
		||||
 *  @{
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#ifndef _TUSB_TUSB_CONFIG_H_
 | 
			
		||||
#define _TUSB_TUSB_CONFIG_H_
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
 extern "C" {
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// CONTROLLER CONFIGURATION
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
#define TUSB_CFG_CONTROLLER_0_MODE  (TUSB_MODE_HOST)
 | 
			
		||||
#define TUSB_CFG_CONTROLLER_1_MODE  (TUSB_MODE_NONE)
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// HOST CONFIGURATION
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
#define TUSB_CFG_HOST_DEVICE_MAX     2
 | 
			
		||||
#define TUSB_CFG_CONFIGURATION_MAX   1
 | 
			
		||||
 | 
			
		||||
//------------- USBD -------------//
 | 
			
		||||
#define TUSB_CFG_HOST_ENUM_BUFFER_SIZE 256
 | 
			
		||||
 | 
			
		||||
//------------- CLASS -------------//
 | 
			
		||||
#define TUSB_CFG_HOST_HUB           0
 | 
			
		||||
#define TUSB_CFG_HOST_HID_KEYBOARD  0
 | 
			
		||||
#define TUSB_CFG_HOST_HID_MOUSE     0
 | 
			
		||||
#define TUSB_CFG_HOST_HID_GENERIC   0
 | 
			
		||||
#define TUSB_CFG_HOST_MSC           0
 | 
			
		||||
#define TUSB_CFG_HOST_CUSTOM_CLASS  1
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// DEVICE CONFIGURATION
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
//#define TUSB_CFG_DEVICE
 | 
			
		||||
 | 
			
		||||
//------------- CORE/CONTROLLER -------------//
 | 
			
		||||
 | 
			
		||||
//------------- CLASS -------------//
 | 
			
		||||
//#define TUSB_CFG_DEVICE_CDC
 | 
			
		||||
//#define TUSB_CFG_DEVICE_HID_KEYBOARD  1
 | 
			
		||||
//#define TUSB_CFG_DEVICE_HID_MOUSE     1
 | 
			
		||||
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
// COMMON CONFIGURATION
 | 
			
		||||
//--------------------------------------------------------------------+
 | 
			
		||||
 | 
			
		||||
#define TUSB_CFG_DEBUG                3
 | 
			
		||||
 | 
			
		||||
//#define TUSB_CFG_OS                   TUSB_OS_NONE // defined using eclipse build
 | 
			
		||||
//#define TUSB_CFG_OS_TASK_PRIO
 | 
			
		||||
 | 
			
		||||
#define TUSB_CFG_OS_TICKS_PER_SECOND  1000
 | 
			
		||||
 | 
			
		||||
#ifdef __CODE_RED // make use of code red's support for ram region macros
 | 
			
		||||
  #if (TUSB_CFG_MCU == MCU_LPC11UXX) || (TUSB_CFG_MCU == MCU_LPC13UXX)
 | 
			
		||||
    #define TUSB_RAM_SECTION  ".data.$RAM2"
 | 
			
		||||
  #elif  (TUSB_CFG_MCU == MCU_LPC43XX)
 | 
			
		||||
    #define TUSB_RAM_SECTION  ".data.$RAM3"
 | 
			
		||||
  #endif
 | 
			
		||||
 | 
			
		||||
  #define TUSB_CFG_ATTR_USBRAM   __attribute__ ((section(TUSB_RAM_SECTION)))
 | 
			
		||||
#elif defined  __CC_ARM // Compiled with Keil armcc
 | 
			
		||||
  #define TUSB_CFG_ATTR_USBRAM
 | 
			
		||||
#else
 | 
			
		||||
  #error compiler not specified
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#ifdef __cplusplus
 | 
			
		||||
 }
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#endif /* _TUSB_TUSB_CONFIG_H_ */
 | 
			
		||||
 | 
			
		||||
/** @} */
 | 
			
		||||
		Reference in New Issue
	
	Block a user