summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorSteven Noreyko <1909661+okyeron@users.noreply.github.com>2024-02-19 15:21:50 -0600
committerSteven Noreyko <1909661+okyeron@users.noreply.github.com>2024-02-19 15:21:50 -0600
commitf9cd2526fc5878c52e290a8dc0bb9260c5bd797a (patch)
tree026bd0b610003f41b08f1fbb2ed695e123221c2a /sw
parente0f9b6b4643a5fdae742137bd2c83b5ca10a64de (diff)
downloadplinky-f9cd2526fc5878c52e290a8dc0bb9260c5bd797a.tar.gz
add vscode cmake stuff
Diffstat (limited to 'sw')
-rw-r--r--sw/.vs/launch.vs.json26
-rw-r--r--sw/.vscode/extensions.json7
-rw-r--r--sw/.vscode/launch.json57
-rw-r--r--sw/.vscode/settings.json5
-rw-r--r--sw/.vscode/tasks.json15
-rw-r--r--sw/CMakeLists.txt8
-rw-r--r--sw/CMakePresets.json53
-rwxr-xr-xsw/Core/Src/plinky.c20
-rw-r--r--sw/cmake/gcc-arm-none-eabi.cmake51
-rw-r--r--sw/cmake/st-project.cmake198
-rw-r--r--sw/vcpkg-configuration.json13
11 files changed, 452 insertions, 1 deletions
diff --git a/sw/.vs/launch.vs.json b/sw/.vs/launch.vs.json
new file mode 100644
index 0000000..0a6a616
--- /dev/null
+++ b/sw/.vs/launch.vs.json
@@ -0,0 +1,26 @@
+{
+ "version": "0.2.1",
+ "configurations": [
+ {
+ "project": "CMakeLists.txt",
+ "projectTarget": "plinkyblack.elf",
+ "name": "Launch",
+ "type": "cppdbg",
+ "request": "launch",
+ "cwd": "${workspaceRoot}",
+ "program": "${debugInfo.fullTargetPath}",
+ "MIMode": "gdb",
+ "miDebuggerPath": "${st.gdb}",
+ "miDebuggerServerAddress": "localhost:3333",
+ "debugServerPath": "${st.gdbserver}",
+ "debugServerArgs": "--stm32cubeprogrammer-path ${st.cubeprogrammer} --swd --port-number 3333",
+ "serverStarted": "Waiting for connection on port .*\\.\\.\\.",
+ "stopAtConnect": true,
+ "postRemoteConnectCommands": [
+ {
+ "text": "load build/debug/build/plinkyblack.elf"
+ }
+ ],
+ "svdPath": "${st.svd}/STM32L476.svd" }
+ ]
+} \ No newline at end of file
diff --git a/sw/.vscode/extensions.json b/sw/.vscode/extensions.json
new file mode 100644
index 0000000..3d787e3
--- /dev/null
+++ b/sw/.vscode/extensions.json
@@ -0,0 +1,7 @@
+{
+ "recommendations": [
+ "ms-vscode.cmake-tools",
+ "ms-vscode.cpptools",
+ "ms-vscode.vscode-embedded-tools"
+ ]
+}
diff --git a/sw/.vscode/launch.json b/sw/.vscode/launch.json
new file mode 100644
index 0000000..fa3c1ca
--- /dev/null
+++ b/sw/.vscode/launch.json
@@ -0,0 +1,57 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "openOCDLaunchCommands": [
+ "adapter speed 50"
+ ],
+ "cwd": "${workspaceFolder}",
+ "executable": "${command:cmake.launchTargetPath}",
+ "name": "JTAG DEBUGGING ",
+ "request": "launch",
+ "type": "cortex-debug",
+ "servertype": "openocd",
+ // "gdbTarget": "localhost:3333",
+ // "armToolchainPath": "",
+ "interface": "swd",
+ "svdFile": "${command:vscode-embedded.st.svd}/STM32L476.svd",
+ "configFiles": [
+ "interface/stlink.cfg",
+ "target/stm32l4x.cfg"
+ ],
+
+ // /opt/homebrew/bin/openocd
+
+ "debuggerArgs": [
+ // "-d",
+ // "${workspaceRoot}\Desktop\DaisyExamples\pod\MultiEffectBlink\"
+ ],
+ "preRestartCommands": [
+ "load",
+ "enable breakpoint",
+ "monitor reset"
+ ],
+ // "showDevDebugOutput": true,
+
+ }
+]
+
+
+// "configurations": [
+ // {
+ // "name": "Launch",
+ // "cwd": "${workspaceFolder}",
+ // // "executable": "./build/debug/build/plinkyblack.elf",
+ // "executable": "${command:cmake.launchTargetPath}",
+ // "request": "launch",
+ // "type": "cortex-debug",
+ // "runToEntryPoint": "main",
+ // "servertype": "stlink",
+
+ // // Connect to an already running OpenOCD instance
+ // "gdbTarget": "localhost:3333",
+
+ // "svdPath": "${command:vscode-embedded.st.svd}/STM32L476.svd"
+ // }
+ // ]
+}
diff --git a/sw/.vscode/settings.json b/sw/.vscode/settings.json
new file mode 100644
index 0000000..e6704ed
--- /dev/null
+++ b/sw/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ "C_Cpp.default.configurationProvider": "ms-vscode.cmake-tools",
+ "cmake.configureOnOpen": true,
+ "cortex-debug.openocdPath": "/opt/homebrew/bin/openocd",
+}
diff --git a/sw/.vscode/tasks.json b/sw/.vscode/tasks.json
new file mode 100644
index 0000000..da7b267
--- /dev/null
+++ b/sw/.vscode/tasks.json
@@ -0,0 +1,15 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "Build",
+ "type": "cmake",
+ "command": "build",
+ "problemMatcher": "$gcc",
+ "group": {
+ "kind": "build",
+ "isDefault": true
+ }
+ }
+ ]
+}
diff --git a/sw/CMakeLists.txt b/sw/CMakeLists.txt
new file mode 100644
index 0000000..91e5054
--- /dev/null
+++ b/sw/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 3.20)
+
+project("plinkyblack" C CXX ASM)
+
+include(cmake/st-project.cmake)
+
+add_executable(${PROJECT_NAME})
+add_st_target_properties(${PROJECT_NAME}) \ No newline at end of file
diff --git a/sw/CMakePresets.json b/sw/CMakePresets.json
new file mode 100644
index 0000000..20a1b59
--- /dev/null
+++ b/sw/CMakePresets.json
@@ -0,0 +1,53 @@
+{
+ "version": 2,
+ "configurePresets": [
+ {
+ "name": "default",
+ "hidden": true,
+ "generator": "Ninja",
+ "binaryDir": "${sourceDir}/build/${presetName}/build",
+ "cacheVariables": {
+ "CMAKE_INSTALL_PREFIX": "${sourceDir}/build/${presetName}/install",
+ "CMAKE_TOOLCHAIN_FILE": {
+ "type": "FILEPATH",
+ "value": "${sourceDir}/cmake/gcc-arm-none-eabi.cmake"
+ }
+ },
+ "architecture": {
+ "value": "unspecified",
+ "strategy": "external"
+ },
+ "vendor": {
+ "microsoft.com/VisualStudioSettings/CMake/1.0": {
+ "intelliSenseMode": "linux-gcc-arm"
+ }
+ }
+ },
+ {
+ "name": "debug",
+ "inherits": "default",
+ "cacheVariables": {
+ "CMAKE_BUILD_TYPE": "Debug",
+ "PRESET_NAME": "debug"
+ }
+ },
+ {
+ "name": "release",
+ "inherits": "default",
+ "cacheVariables": {
+ "CMAKE_BUILD_TYPE": "Release",
+ "PRESET_NAME": "release"
+ }
+ }
+ ],
+ "buildPresets": [
+ {
+ "name": "debug",
+ "configurePreset": "debug"
+ },
+ {
+ "name": "release",
+ "configurePreset": "release"
+ }
+ ]
+}
diff --git a/sw/Core/Src/plinky.c b/sw/Core/Src/plinky.c
index 013ee1a..5cac122 100755
--- a/sw/Core/Src/plinky.c
+++ b/sw/Core/Src/plinky.c
@@ -1495,7 +1495,7 @@ const s8 midicctable[128] = {
/* 72 */ P_R, P_A, P_S, P_D, P_XFREQ, P_XDEPTH, P_XOFFSET, P_YFREQ,
/* 80 */ P_YDEPTH, P_YOFFSET, P_SAMPLE, P_SEQPAT, -1, P_SEQSTEP, -1, -1,
/* 88 */ -1, P_MIXINPUT, P_MIXINWETDRY,P_RVSEND, P_RVTIME, P_RVSHIM, P_DLSEND, P_DLFB,
- /* 96 */ -1, -1, -1, -1, -1, -1, P_ARPONOFF, P_ARPMODE,
+ /* 96 */ -1, -1, -1, -1, -1, P_LATCHONOFF, P_ARPONOFF, P_ARPMODE,
/* 104 */ P_ARPDIV, P_ARPPROB, P_ARPLEN, P_ARPOCT, P_SEQMODE, P_SEQDIV, P_SEQPROB, P_SEQLEN,
/* 112 */ P_DLRATIO, P_DLWOB, P_RVWOB, -1, P_JIT_POS, P_JIT_GRAINSIZE, P_JIT_RATE, P_JIT_PULSE,
/* 120 */ -1, -1, -1, -1, -1, -1, -1, -1,
@@ -1599,6 +1599,24 @@ void processmidimsg(u8 msg, u8 d1, u8 d2) {
if (param_flags[param] & FLAG_SIGNED)
val = val * 2 - FULL;
EditParamNoQuant(param, M_BASE, val);
+
+ if (param == P_ARPONOFF){
+ if (val > 64){
+ rampreset.flags = rampreset.flags | FLAGS_ARP;
+ }else{
+ rampreset.flags = rampreset.flags & ~FLAGS_ARP;
+ }
+ ShowMessage(F_32_BOLD, ((rampreset.flags & FLAGS_ARP)) ? "arp on" : "arp off", 0);
+ }
+ if (param == P_LATCHONOFF){
+ if (val > 64){
+ rampreset.flags = rampreset.flags | FLAGS_LATCH;
+ }else{
+ rampreset.flags = rampreset.flags & ~FLAGS_LATCH;
+ }
+ ShowMessage(F_32_BOLD, ((rampreset.flags & FLAGS_LATCH)) ? "latch on" : "latch off", 0);
+ }
+
}
break;
}
diff --git a/sw/cmake/gcc-arm-none-eabi.cmake b/sw/cmake/gcc-arm-none-eabi.cmake
new file mode 100644
index 0000000..5e91a53
--- /dev/null
+++ b/sw/cmake/gcc-arm-none-eabi.cmake
@@ -0,0 +1,51 @@
+set(WINDOWS_ST_CLT_PATH "C:/ST/STM32CubeCLT/STM32CubeCLT/GNU-tools-for-STM32/bin/")
+set(MAC_ST_CLT_PATH "/opt/ST/STM32CubeCLT/GNU-tools-for-STM32/bin/")
+if(EXISTS "${WINDOWS_ST_CLT_PATH}")
+ set(TOOLCHAIN_DIRECTORIES ${WINDOWS_ST_CLT_PATH})
+elseif(EXISTS "${MAC_ST_CLT_PATH}")
+ set(TOOLCHAIN_DIRECTORIES ${MAC_ST_CLT_PATH})
+else()
+ # Try to find an STM32CubeIDE installation to use for the toolchain.
+ file(GLOB TOOLCHAIN_DIRECTORIES
+ "C:/ST/STM32CubeIDE_*/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.*/tools/bin/"
+ "/opt/st/stm32cubeide_*/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.*/tools/bin/"
+ "/Applications/STM32CubeIDE.app/Contents/Eclipse/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.*/tools/bin/"
+ )
+endif()
+list(LENGTH TOOLCHAIN_DIRECTORIES TOOLCHAIN_DIRECTORIES_COUNT)
+
+if(TOOLCHAIN_DIRECTORIES_COUNT LESS 1)
+ message(WARNING "Could not find an STM32CubeIDE installation. Falling back to tools available on PATH.")
+else()
+ list(GET TOOLCHAIN_DIRECTORIES 0 TOOLCHAIN_DIRECTORY)
+ if (TOOLCHAIN_DIRECTORIES_COUNT GREATER 1)
+ message(STATUS "Found multiple STM32CubeIDE installations. Using \"${TOOLCHAIN_DIRECTORY}\".")
+ endif()
+endif()
+
+if(WIN32)
+ set(TOOLCHAIN_SUFFIX ".exe")
+endif()
+
+set(CMAKE_SYSTEM_NAME Generic)
+set(CMAKE_SYSTEM_PROCESSOR arm)
+
+set(TOOLCHAIN_PREFIX "arm-none-eabi-")
+if(DEFINED TOOLCHAIN_DIRECTORY)
+ set(TOOLCHAIN_PREFIX "${TOOLCHAIN_DIRECTORY}/${TOOLCHAIN_PREFIX}")
+endif()
+set(FLAGS "-fdata-sections -ffunction-sections --specs=nano.specs -Wl,--gc-sections")
+set(ASM_FLAGS "-x assembler-with-cpp")
+set(CPP_FLAGS "-fno-rtti -fno-exceptions -fno-threadsafe-statics")
+
+set(CMAKE_C_COMPILER ${TOOLCHAIN_PREFIX}gcc${TOOLCHAIN_SUFFIX} ${FLAGS})
+set(CMAKE_ASM_COMPILER ${CMAKE_C_COMPILER} ${ASM_FLAGS})
+set(CMAKE_CXX_COMPILER ${TOOLCHAIN_PREFIX}g++${TOOLCHAIN_SUFFIX} ${FLAGS} ${CPP_FLAGS})
+set(CMAKE_OBJCOPY ${TOOLCHAIN_PREFIX}objcopy${TOOLCHAIN_SUFFIX})
+set(CMAKE_SIZE ${TOOLCHAIN_PREFIX}size${TOOLCHAIN_SUFFIX})
+
+set(CMAKE_EXECUTABLE_SUFFIX_ASM ".elf")
+set(CMAKE_EXECUTABLE_SUFFIX_C ".elf")
+set(CMAKE_EXECUTABLE_SUFFIX_CXX ".elf")
+
+set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) \ No newline at end of file
diff --git a/sw/cmake/st-project.cmake b/sw/cmake/st-project.cmake
new file mode 100644
index 0000000..f52fce3
--- /dev/null
+++ b/sw/cmake/st-project.cmake
@@ -0,0 +1,198 @@
+# THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT.
+# BASED ON /Users/nevetsokyeron/Documents/GitHub/plinky_public/sw
+
+function(add_st_target_properties TARGET_NAME)
+
+target_compile_definitions(
+ ${TARGET_NAME} PRIVATE
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:USE_HAL_DRIVER>"
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:STM32L476xx>"
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:DEBUG>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:USE_HAL_DRIVER>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:STM32L476xx>"
+)
+
+target_include_directories(
+ ${TARGET_NAME} PRIVATE
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/CMSIS/Include>"
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Core/Src/tinyusb/src>"
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Core/Inc>"
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32L4xx/Include>"
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/STM32L4xx_HAL_Driver/Inc>"
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/STM32L4xx_HAL_Driver/Inc/Legacy>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/CMSIS/Include>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Core/Src/tinyusb/src>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Core/Inc>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/CMSIS/Device/ST/STM32L4xx/Include>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/STM32L4xx_HAL_Driver/Inc>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:${PROJECT_SOURCE_DIR}/Drivers/STM32L4xx_HAL_Driver/Inc/Legacy>"
+)
+
+target_compile_options(
+ ${TARGET_NAME} PRIVATE
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:ASM>>:-g3>"
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:-g3>"
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:CXX>>:-g3>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:ASM>>:-g0>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:-g0>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:CXX>>:-g0>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:-O3>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:CXX>>:-Os>"
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:C>>:>"
+ "$<$<AND:$<CONFIG:Debug>,$<COMPILE_LANGUAGE:CXX>>:>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:C>>:>"
+ "$<$<AND:$<NOT:$<CONFIG:Debug>>,$<COMPILE_LANGUAGE:CXX>>:>"
+ "$<$<CONFIG:Debug>:-mcpu=cortex-m4>"
+ "$<$<CONFIG:Debug>:-mfpu=fpv4-sp-d16>"
+ "$<$<CONFIG:Debug>:-mfloat-abi=hard>"
+ "$<$<NOT:$<CONFIG:Debug>>:-mcpu=cortex-m4>"
+ "$<$<NOT:$<CONFIG:Debug>>:-mfpu=fpv4-sp-d16>"
+ "$<$<NOT:$<CONFIG:Debug>>:-mfloat-abi=hard>"
+)
+
+target_link_libraries(
+ ${TARGET_NAME} PRIVATE
+)
+
+target_link_directories(
+ ${TARGET_NAME} PRIVATE
+)
+
+target_link_options(
+ ${TARGET_NAME} PRIVATE
+ "$<$<CONFIG:Debug>:-mcpu=cortex-m4>"
+ "$<$<CONFIG:Debug>:-mfpu=fpv4-sp-d16>"
+ "$<$<CONFIG:Debug>:-mfloat-abi=hard>"
+ "$<$<NOT:$<CONFIG:Debug>>:-mcpu=cortex-m4>"
+ "$<$<NOT:$<CONFIG:Debug>>:-mfpu=fpv4-sp-d16>"
+ "$<$<NOT:$<CONFIG:Debug>>:-mfloat-abi=hard>"
+ -T
+ "$<$<CONFIG:Debug>:${PROJECT_SOURCE_DIR}/STM32L476VGTX_FLASH.ld>"
+ "$<$<NOT:$<CONFIG:Debug>>:${PROJECT_SOURCE_DIR}/STM32L476VGTX_FLASH.ld>"
+)
+
+target_sources(
+ ${TARGET_NAME} PRIVATE
+ "Core/Src/gfx.c"
+ "Core/Src/lis2dh12_reg.c"
+ "Core/Src/main.c"
+ "Core/Src/plinky.c"
+ "Core/Src/stm32l4xx_hal_msp.c"
+ "Core/Src/stm32l4xx_it.c"
+ "Core/Src/syscalls.c"
+ "Core/Src/sysmem.c"
+ "Core/Src/system_stm32l4xx.c"
+ "Core/Src/tinyusb/src/class/audio/audio_device.c"
+ "Core/Src/tinyusb/src/class/bth/bth_device.c"
+ "Core/Src/tinyusb/src/class/cdc/cdc_device.c"
+ "Core/Src/tinyusb/src/class/cdc/cdc_host.c"
+ "Core/Src/tinyusb/src/class/cdc/cdc_rndis_host.c"
+ "Core/Src/tinyusb/src/class/dfu/dfu_rt_device.c"
+ "Core/Src/tinyusb/src/class/hid/hid_device.c"
+ "Core/Src/tinyusb/src/class/hid/hid_host.c"
+ "Core/Src/tinyusb/src/class/midi/midi_device.c"
+ "Core/Src/tinyusb/src/class/msc/msc_device.c"
+ "Core/Src/tinyusb/src/class/msc/msc_host.c"
+ "Core/Src/tinyusb/src/class/net/net_device.c"
+ "Core/Src/tinyusb/src/class/usbtmc/usbtmc_device.c"
+ "Core/Src/tinyusb/src/class/vendor/vendor_device.c"
+ "Core/Src/tinyusb/src/class/vendor/vendor_host.c"
+ "Core/Src/tinyusb/src/common/tusb_fifo.c"
+ "Core/Src/tinyusb/src/device/usbd_control.c"
+ "Core/Src/tinyusb/src/device/usbd.c"
+ "Core/Src/tinyusb/src/host/hub.c"
+ "Core/Src/tinyusb/src/host/usbh_control.c"
+ "Core/Src/tinyusb/src/host/usbh.c"
+ "Core/Src/tinyusb/src/portable/dialog/da146xx/dcd_da146xx.c"
+ "Core/Src/tinyusb/src/portable/ehci/ehci.c"
+ "Core/Src/tinyusb/src/portable/espressif/esp32s2/dcd_esp32s2.c"
+ "Core/Src/tinyusb/src/portable/microchip/samd/dcd_samd.c"
+ "Core/Src/tinyusb/src/portable/microchip/samg/dcd_samg.c"
+ "Core/Src/tinyusb/src/portable/nordic/nrf5x/dcd_nrf5x.c"
+ "Core/Src/tinyusb/src/portable/nuvoton/nuc120/dcd_nuc120.c"
+ "Core/Src/tinyusb/src/portable/nuvoton/nuc121/dcd_nuc121.c"
+ "Core/Src/tinyusb/src/portable/nuvoton/nuc505/dcd_nuc505.c"
+ "Core/Src/tinyusb/src/portable/nxp/khci/dcd_khci.c"
+ "Core/Src/tinyusb/src/portable/nxp/lpc_ip3511/dcd_lpc_ip3511.c"
+ "Core/Src/tinyusb/src/portable/nxp/lpc17_40/dcd_lpc17_40.c"
+ "Core/Src/tinyusb/src/portable/nxp/lpc17_40/hcd_lpc17_40.c"
+ "Core/Src/tinyusb/src/portable/nxp/transdimension/dcd_transdimension.c"
+ "Core/Src/tinyusb/src/portable/nxp/transdimension/hcd_transdimension.c"
+ "Core/Src/tinyusb/src/portable/ohci/ohci.c"
+ "Core/Src/tinyusb/src/portable/raspberrypi/rp2040/dcd_rp2040.c"
+ "Core/Src/tinyusb/src/portable/raspberrypi/rp2040/hcd_rp2040.c"
+ "Core/Src/tinyusb/src/portable/raspberrypi/rp2040/rp2040_usb.c"
+ "Core/Src/tinyusb/src/portable/renesas/usba/dcd_usba.c"
+ "Core/Src/tinyusb/src/portable/silabs/efm32/dcd_efm32.c"
+ "Core/Src/tinyusb/src/portable/sony/cxd56/dcd_cxd56.c"
+ "Core/Src/tinyusb/src/portable/st/stm32_fsdev/dcd_stm32_fsdev.c"
+ "Core/Src/tinyusb/src/portable/st/synopsys/dcd_synopsys.c"
+ "Core/Src/tinyusb/src/portable/template/dcd_template.c"
+ "Core/Src/tinyusb/src/portable/ti/msp430x5xx/dcd_msp430x5xx.c"
+ "Core/Src/tinyusb/src/portable/valentyusb/eptri/dcd_eptri.c"
+ "Core/Src/tinyusb/src/tusb.c"
+ "Core/Src/tinyusb/src/usb_descriptors.c"
+ "Core/Src/tinyusb/src/usbmidi.c"
+ "Core/Startup/startup_stm32l476vgtx.s"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc_ex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_adc.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_cortex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dac_ex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dac.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma_ex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_dma.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_exti.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash_ramfunc.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_flash.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_gpio.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c_ex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_i2c.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pcd_ex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pcd.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr_ex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_pwr.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc_ex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_rcc.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_sai_ex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_sai.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi_ex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_spi.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim_ex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tim.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_tsc.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart_ex.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal_uart.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_hal.c"
+ "Drivers/STM32L4xx_HAL_Driver/Src/stm32l4xx_ll_usb.c"
+ # "emu/imgui_impl_glfw.cpp"
+ # "emu/imgui_impl_opengl3.cpp"
+ # "emu/imgui/gl3w/GL/gl3w.c"
+ # "emu/imgui/imgui_draw.cpp"
+ # "emu/imgui/imgui_widgets.cpp"
+ # "emu/imgui/imgui.cpp"
+ # "emu/knob.cpp"
+ # "emu/main.cpp"
+ # "emu/pffft.cpp"
+ # "emu/wavetable/wavetable.cpp"
+ # "plinkyfwpkg/plinkyfwpkg.cpp"
+)
+
+add_custom_command(
+ TARGET ${TARGET_NAME} POST_BUILD
+ COMMAND ${CMAKE_SIZE} $<TARGET_FILE:${TARGET_NAME}>
+)
+
+add_custom_command(
+ TARGET ${TARGET_NAME} POST_BUILD
+ COMMAND ${CMAKE_OBJCOPY} -O ihex
+ $<TARGET_FILE:${TARGET_NAME}> ${TARGET_NAME}.hex
+)
+
+add_custom_command(
+ TARGET ${TARGET_NAME} POST_BUILD
+ COMMAND ${CMAKE_OBJCOPY} -O binary
+ $<TARGET_FILE:${TARGET_NAME}> ${TARGET_NAME}.bin
+)
+
+endfunction() \ No newline at end of file
diff --git a/sw/vcpkg-configuration.json b/sw/vcpkg-configuration.json
new file mode 100644
index 0000000..de363ed
--- /dev/null
+++ b/sw/vcpkg-configuration.json
@@ -0,0 +1,13 @@
+{
+ "registries": [
+ {
+ "name": "microsoft",
+ "location": "https://aka.ms/vcpkg-ce-default",
+ "kind": "artifact"
+ }
+ ],
+ "requires": {
+ "microsoft:tools/kitware/cmake": "* 3.20.1",
+ "microsoft:tools/ninja-build/ninja": "* 1.10.2"
+ }
+}