added dcd_dma_descriptor_t typdef
reorganize test project, multiple test projects each is specifically for an MCU
This commit is contained in:
171
.cproject
171
.cproject
@@ -101,61 +101,6 @@
|
|||||||
</infoList>
|
</infoList>
|
||||||
</TargetConfig></projectStorage>
|
</TargetConfig></projectStorage>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
|
|
||||||
<buildTargets>
|
|
||||||
<target name="clean" path="tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
|
||||||
<buildCommand>rake.bat</buildCommand>
|
|
||||||
<buildArguments/>
|
|
||||||
<buildTarget>clean</buildTarget>
|
|
||||||
<stopOnError>true</stopOnError>
|
|
||||||
<useDefaultCommand>false</useDefaultCommand>
|
|
||||||
<runAllBuilders>true</runAllBuilders>
|
|
||||||
</target>
|
|
||||||
<target name="release" path="tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
|
||||||
<buildCommand>rake.bat</buildCommand>
|
|
||||||
<buildArguments/>
|
|
||||||
<buildTarget>release</buildTarget>
|
|
||||||
<stopOnError>true</stopOnError>
|
|
||||||
<useDefaultCommand>false</useDefaultCommand>
|
|
||||||
<runAllBuilders>true</runAllBuilders>
|
|
||||||
</target>
|
|
||||||
<target name="test" path="tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
|
||||||
<buildCommand>rake.bat</buildCommand>
|
|
||||||
<buildTarget>test:all</buildTarget>
|
|
||||||
<stopOnError>true</stopOnError>
|
|
||||||
<useDefaultCommand>false</useDefaultCommand>
|
|
||||||
<runAllBuilders>true</runAllBuilders>
|
|
||||||
</target>
|
|
||||||
<target name="test delta" path="tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
|
||||||
<buildCommand>rake.bat</buildCommand>
|
|
||||||
<buildTarget>test:delta</buildTarget>
|
|
||||||
<stopOnError>true</stopOnError>
|
|
||||||
<useDefaultCommand>false</useDefaultCommand>
|
|
||||||
<runAllBuilders>true</runAllBuilders>
|
|
||||||
</target>
|
|
||||||
<target name="clobber" path="tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
|
||||||
<buildCommand>rake.bat</buildCommand>
|
|
||||||
<buildTarget>clobber</buildTarget>
|
|
||||||
<stopOnError>true</stopOnError>
|
|
||||||
<useDefaultCommand>false</useDefaultCommand>
|
|
||||||
<runAllBuilders>true</runAllBuilders>
|
|
||||||
</target>
|
|
||||||
<target name="test verbose" path="tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
|
||||||
<buildCommand>rake.bat</buildCommand>
|
|
||||||
<buildTarget>verbosity[4] test:all</buildTarget>
|
|
||||||
<stopOnError>true</stopOnError>
|
|
||||||
<useDefaultCommand>false</useDefaultCommand>
|
|
||||||
<runAllBuilders>true</runAllBuilders>
|
|
||||||
</target>
|
|
||||||
<target name="test verbose delta" path="tests" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
|
||||||
<buildCommand>rake.bat</buildCommand>
|
|
||||||
<buildTarget>verbosity[4] test:delta</buildTarget>
|
|
||||||
<stopOnError>true</stopOnError>
|
|
||||||
<useDefaultCommand>false</useDefaultCommand>
|
|
||||||
<runAllBuilders>true</runAllBuilders>
|
|
||||||
</target>
|
|
||||||
</buildTargets>
|
|
||||||
</storageModule>
|
|
||||||
<storageModule moduleId="refreshScope" versionNumber="1">
|
<storageModule moduleId="refreshScope" versionNumber="1">
|
||||||
<resource resourceType="PROJECT" workspacePath="/tinyusb"/>
|
<resource resourceType="PROJECT" workspacePath="/tinyusb"/>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
@@ -418,4 +363,120 @@
|
|||||||
</scannerConfigBuildInfo>
|
</scannerConfigBuildInfo>
|
||||||
</storageModule>
|
</storageModule>
|
||||||
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
|
<storageModule moduleId="org.eclipse.cdt.internal.ui.text.commentOwnerProjectMappings"/>
|
||||||
|
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets">
|
||||||
|
<buildTargets>
|
||||||
|
<target name="clean" path="tests/test" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>clean</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="clobber" path="tests/test" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>clobber</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="release" path="tests/test" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>release</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="test" path="tests/test" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>test:all</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="test delta" path="tests/test" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>test:delta</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="test verbose" path="tests/test" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>verbosity[4] test:all</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="test verbose delta" path="tests/test" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>verbosity[4] test:delta</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="clean" path="tests/lpc175x_6x" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>clean</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="clobber" path="tests/lpc175x_6x" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>clobber</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="release" path="tests/lpc175x_6x" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>release</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="test" path="tests/lpc175x_6x" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>test:all</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="test delta" path="tests/lpc175x_6x" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>test:delta</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="test verbose" path="tests/lpc175x_6x" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>verbosity[4] test:all</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
<target name="test verbose delta" path="tests/lpc175x_6x" targetID="org.eclipse.cdt.build.MakeTargetBuilder">
|
||||||
|
<buildCommand>rake.bat</buildCommand>
|
||||||
|
<buildArguments/>
|
||||||
|
<buildTarget>verbosity[4] test:delta</buildTarget>
|
||||||
|
<stopOnError>true</stopOnError>
|
||||||
|
<useDefaultCommand>false</useDefaultCommand>
|
||||||
|
<runAllBuilders>true</runAllBuilders>
|
||||||
|
</target>
|
||||||
|
</buildTargets>
|
||||||
|
</storageModule>
|
||||||
</cproject>
|
</cproject>
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
language: c
|
language: c
|
||||||
compiler:
|
compiler:
|
||||||
- gcc
|
- gcc
|
||||||
script: cd tests/ && mkdir build && rake test:all
|
script: cd tests/test && rake test:all && cd ../lpc175x_6x && rake test:all
|
||||||
|
1
tests/lpc175x_6x/build/readme.md
Normal file
1
tests/lpc175x_6x/build/readme.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
just a build folder
|
@@ -69,6 +69,26 @@
|
|||||||
|
|
||||||
#define TEST_ASSERT_STATUS( actual )\
|
#define TEST_ASSERT_STATUS( actual )\
|
||||||
TEST_ASSERT_EQUAL( TUSB_ERROR_NONE, (actual) )
|
TEST_ASSERT_EQUAL( TUSB_ERROR_NONE, (actual) )
|
||||||
|
|
||||||
|
// log2_of a value is equivalent to its highest set bit's position
|
||||||
|
#define BITFIELD_OFFSET_OF_MEMBER(struct_type, member, bitfield_member) \
|
||||||
|
({\
|
||||||
|
uint32_t value=0;\
|
||||||
|
struct_type str;\
|
||||||
|
memclr_((void*)&str, sizeof(struct_type));\
|
||||||
|
str.member.bitfield_member = 1;\
|
||||||
|
memcpy(&value, (void*)&str.member, sizeof(str.member));\
|
||||||
|
log2_of( value );\
|
||||||
|
})
|
||||||
|
|
||||||
|
#define BITFIELD_OFFSET_OF_UINT32(struct_type, offset, bitfield_member) \
|
||||||
|
({\
|
||||||
|
struct_type str;\
|
||||||
|
memclr_(&str, sizeof(struct_type));\
|
||||||
|
str.bitfield_member = 1;\
|
||||||
|
log2_of( ((uint32_t*) &str)[offset] );\
|
||||||
|
})
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
1
tests/test/build/readme.md
Normal file
1
tests/test/build/readme.md
Normal file
@@ -0,0 +1 @@
|
|||||||
|
just a build folder
|
@@ -26,17 +26,16 @@
|
|||||||
:paths:
|
:paths:
|
||||||
:test:
|
:test:
|
||||||
- +:test/**
|
- +:test/**
|
||||||
- -:test/support
|
|
||||||
:source:
|
:source:
|
||||||
- ../tinyusb/**
|
- ../../tinyusb/**
|
||||||
- +:../demos/bsp/lpc43xx/**
|
- +:../../demos/bsp/lpc43xx/**
|
||||||
- +:../demos/device/keyboard/*
|
- +:../../demos/device/keyboard/*
|
||||||
- -:../demos/
|
- -:../../demos/
|
||||||
- ../vendor/freertos/freertos/Source/*
|
- ../../vendor/freertos/freertos/Source/*
|
||||||
- ../vendor/freertos/freertos/Source/portable/MSVC-MingW/*
|
- ../../vendor/freertos/freertos/Source/portable/MSVC-MingW/*
|
||||||
|
|
||||||
:support:
|
:support:
|
||||||
- test/support
|
- ../support
|
||||||
|
|
||||||
:defines:
|
:defines:
|
||||||
# in order to add common defines:
|
# in order to add common defines:
|
||||||
@@ -59,8 +58,8 @@
|
|||||||
#:flags:
|
#:flags:
|
||||||
# :test:
|
# :test:
|
||||||
# :compile:
|
# :compile:
|
||||||
# :hid_host:
|
# :dcd_lpc175x_6x.c:
|
||||||
# - -Dstatic=
|
# - -DMCU=MCU_LPC175X_6X
|
||||||
|
|
||||||
# Ceedling defaults to using gcc for compiling, linking, etc.
|
# Ceedling defaults to using gcc for compiling, linking, etc.
|
||||||
# As [:tools] is blank, gcc will be used (so long as it's in your system path)
|
# As [:tools] is blank, gcc will be used (so long as it's in your system path)
|
||||||
@@ -75,7 +74,6 @@
|
|||||||
- :callback
|
- :callback
|
||||||
- :array
|
- :array
|
||||||
#:ignore: :args_only
|
#:ignore: :args_only
|
||||||
# :unity_helper_path: test/support/type_helper.h
|
|
||||||
:treat_as:
|
:treat_as:
|
||||||
uint8: HEX8
|
uint8: HEX8
|
||||||
uint16: HEX16
|
uint16: HEX16
|
||||||
@@ -85,7 +83,7 @@
|
|||||||
|
|
||||||
:plugins:
|
:plugins:
|
||||||
:load_paths:
|
:load_paths:
|
||||||
- vendor/ceedling/plugins
|
- ../vendor/ceedling/plugins
|
||||||
:enabled:
|
:enabled:
|
||||||
#- stdout_pretty_tests_report
|
#- stdout_pretty_tests_report
|
||||||
- stdout_ide_tests_report
|
- stdout_ide_tests_report
|
@@ -1,4 +1,4 @@
|
|||||||
PROJECT_CEEDLING_ROOT = "vendor/ceedling"
|
PROJECT_CEEDLING_ROOT = "../vendor/ceedling"
|
||||||
load "#{PROJECT_CEEDLING_ROOT}/lib/rakefile.rb"
|
load "#{PROJECT_CEEDLING_ROOT}/lib/rakefile.rb"
|
||||||
|
|
||||||
task :default => %w[ test:all release ]
|
task :default => %w[ test:all release ]
|
@@ -41,6 +41,7 @@
|
|||||||
#include "tusb_option.h"
|
#include "tusb_option.h"
|
||||||
#include "errors.h"
|
#include "errors.h"
|
||||||
#include "binary.h"
|
#include "binary.h"
|
||||||
|
#include "type_helper.h"
|
||||||
|
|
||||||
#include "hal.h"
|
#include "hal.h"
|
||||||
#include "hcd.h"
|
#include "hcd.h"
|
||||||
@@ -55,26 +56,6 @@ usbh_device_info_t usbh_devices[TUSB_CFG_HOST_DEVICE_MAX+1];
|
|||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// Setup/Teardown + helper declare
|
// Setup/Teardown + helper declare
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
|
||||||
// log2_of a value is equivalent to its highest set bit's position
|
|
||||||
#define BITFIELD_OFFSET_OF_MEMBER(struct_type, member, bitfield_member) \
|
|
||||||
({\
|
|
||||||
uint32_t value=0;\
|
|
||||||
struct_type str;\
|
|
||||||
memclr_((void*)&str, sizeof(struct_type));\
|
|
||||||
str.member.bitfield_member = 1;\
|
|
||||||
memcpy(&value, (void*)&str.member, sizeof(str.member));\
|
|
||||||
log2_of( value );\
|
|
||||||
})
|
|
||||||
|
|
||||||
#define BITFIELD_OFFSET_OF_UINT32(struct_type, offset, bitfield_member) \
|
|
||||||
({\
|
|
||||||
struct_type str;\
|
|
||||||
memclr_(&str, sizeof(struct_type));\
|
|
||||||
str.bitfield_member = 1;\
|
|
||||||
log2_of( ((uint32_t*) &str)[offset] );\
|
|
||||||
})
|
|
||||||
|
|
||||||
void setUp(void)
|
void setUp(void)
|
||||||
{
|
{
|
||||||
|
|
@@ -51,6 +51,7 @@
|
|||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// MACRO CONSTANT TYPEDEF
|
// MACRO CONSTANT TYPEDEF
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
|
STATIC_ dcd_dma_descriptor_t* dcd_udca[32] ATTR_ALIGNED(128) TUSB_CFG_ATTR_USBRAM;
|
||||||
|
|
||||||
//--------------------------------------------------------------------+
|
//--------------------------------------------------------------------+
|
||||||
// INTERNAL OBJECT & FUNCTION DECLARATION
|
// INTERNAL OBJECT & FUNCTION DECLARATION
|
||||||
|
@@ -46,11 +46,49 @@
|
|||||||
#ifndef _TUSB_DCD_LPC175X_6X_H_
|
#ifndef _TUSB_DCD_LPC175X_6X_H_
|
||||||
#define _TUSB_DCD_LPC175X_6X_H_
|
#define _TUSB_DCD_LPC175X_6X_H_
|
||||||
|
|
||||||
|
#include "common/common.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct
|
||||||
|
{
|
||||||
|
//------------- Word 0 -------------//
|
||||||
|
uint32_t next;
|
||||||
|
|
||||||
|
//------------- Word 1 -------------//
|
||||||
|
uint16_t mode : 2; // either normal or ATLE(auto length extraction)
|
||||||
|
uint16_t is_next_valid : 1;
|
||||||
|
uint16_t : 1;
|
||||||
|
uint16_t is_isochronous : 1; // is an iso endpoint
|
||||||
|
uint16_t max_packet_size : 11;
|
||||||
|
volatile uint16_t buffer_length;
|
||||||
|
|
||||||
|
//------------- Word 2 -------------//
|
||||||
|
volatile uint8_t* buffer_start_addr;
|
||||||
|
|
||||||
|
//------------- Word 3 -------------//
|
||||||
|
volatile uint16_t is_retired : 1; // initialized to zero
|
||||||
|
volatile uint16_t status : 4;
|
||||||
|
volatile uint16_t iso_last_packet_valid : 1;
|
||||||
|
volatile uint16_t atle_is_lsb_extracted : 1; // used in ATLE mode
|
||||||
|
volatile uint16_t atle_is_msb_extracted : 1; // used in ATLE mode
|
||||||
|
volatile uint16_t atle_message_length_position : 6; // used in ATLE mode
|
||||||
|
uint16_t : 2;
|
||||||
|
volatile uint16_t present_count; // The number of bytes transferred by the DMA engine. The DMA engine updates this field after completing each packet transfer.
|
||||||
|
|
||||||
|
//------------- Word 4 -------------//
|
||||||
|
// uint32_t iso_packet_size_addr; // iso only, can be omitted for non-iso
|
||||||
|
} ATTR_ALIGNED(4) dcd_dma_descriptor_t;
|
||||||
|
|
||||||
|
#define DCD_DD_NUM 10 // TODO scale with configure
|
||||||
|
typedef struct {
|
||||||
|
dcd_dma_descriptor_t dd[DCD_DD_NUM];
|
||||||
|
|
||||||
|
}dcd_data_t;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user