Add tinyusb library as meson subproject, providing USB drivers.

This commit is contained in:
Federico Amedeo Izzo 2022-01-09 17:06:28 +01:00 committed by Silvano Seva
parent ed44e1bb33
commit 8df0ce2f2f
4 changed files with 49 additions and 4 deletions

1
.gitignore vendored
View File

@ -54,6 +54,7 @@ tags
# subprojects
subprojects/radio_tool
subprojects/codec2
subprojects/tinyusb
#ignore log files
*.log

View File

@ -85,6 +85,9 @@ else
codec2_dep = dependency('codec2')
endif
# tinyusb, An open source cross-platform USB stack for embedded system
tinyusb_proj = subproject('tinyusb')
tinyusb_dep = tinyusb_proj.get_variable('tinyusb_dep')
##
## RTOS
@ -418,7 +421,7 @@ md3x0_opts = {'sources' : md3x0_src,
'cpp_args': md3x0_args,
'link_args' : ['-Wl,-T../platform/mcu/STM32F4xx/linker_script_MDx.ld',
'-Wl,--print-memory-usage'],
'dependencies': [codec2_dep],
'dependencies': [codec2_dep, tinyusb_dep],
'include_directories': md3x0_inc}
mduv3x0_opts = {'sources': mduv3x0_src,
@ -426,7 +429,7 @@ mduv3x0_opts = {'sources': mduv3x0_src,
'cpp_args': mduv3x0_args,
'link_args' : ['-Wl,-T../platform/mcu/STM32F4xx/linker_script_MDx.ld',
'-Wl,--print-memory-usage'],
'dependencies': [codec2_dep],
'dependencies': [codec2_dep, tinyusb_dep],
'include_directories': mduv3x0_inc}
gd77_opts = {'sources': gd77_src,
@ -450,7 +453,7 @@ md9600_opts = {'sources': md9600_src,
'cpp_args': md9600_args,
'link_args' : ['-Wl,-T../platform/mcu/STM32F4xx/linker_script_MDx.ld',
'-Wl,--print-memory-usage'],
'dependencies': [codec2_dep],
'dependencies': [codec2_dep, tinyusb_dep],
'include_directories': md9600_inc}
mod17_opts = {'sources': mod17_src,
@ -458,7 +461,7 @@ mod17_opts = {'sources': mod17_src,
'cpp_args': mod17_args,
'link_args' : ['-Wl,-T../platform/mcu/STM32F4xx/linker_script_Mod17.ld',
'-Wl,--print-memory-usage'],
'dependencies': [codec2_dep],
'dependencies': [codec2_dep, tinyusb_dep],
'include_directories': mod17_inc}
##

View File

@ -0,0 +1,37 @@
project('tinyusb', 'c')
#
# HACK
# This is a workaround for meson not propagating the include directories of the
# main project to the subprojects. To avoid double-inclusion we force the
# include paths needed to compile tinyusb and already present in the main
# program via GCC compile arguments.
#
add_project_arguments('-I../platform/mcu/CMSIS/Device/ST/STM32F4xx/Include',
language : 'c')
add_project_arguments('-I../platform/mcu/CMSIS/Include', language : 'c')
add_project_arguments('-w', language : 'c')
tinyusb_inc = include_directories('openrtx', 'src', 'hw')
tinyusb_src = ['src/tusb.c',
'src/device/usbd.c',
'src/common/tusb_fifo.c',
'src/device/usbd_control.c',
'src/class/cdc/cdc_device.c',
'src/portable/st/synopsys/dcd_synopsys.c',
'src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c']
# Define CPU type and clock speed via GCC command line arguments
add_project_arguments('-DSTM32F405xx', language : 'c')
add_project_arguments('-DHSE_VALUE=8000000', language : 'c')
tinyusb = static_library('tinyusb',
tinyusb_src,
include_directories : tinyusb_inc,
install : false)
tinyusb_dep = declare_dependency(include_directories : tinyusb_inc,
link_with : tinyusb)

4
subprojects/tinyusb.wrap Normal file
View File

@ -0,0 +1,4 @@
[wrap-git]
url = https://github.com/hathach/tinyusb.git
revision = 4bfab30c02279a0530e1a56f4a7c539f2d35a293
patch_directory = tinyusb