From 4da377e42950fcf4cf037f13bdf0c9080d7e562a Mon Sep 17 00:00:00 2001 From: Anthony Date: Mon, 22 Apr 2024 22:22:14 +0200 Subject: [PATCH] moved somes files, add vorbis playback support --- .gitignore | 2 + {software => firmware}/.gdbinit | 0 .../.vscode/c_cpp_properties.json | 0 {software => firmware}/.vscode/launch.json | 0 {software => firmware}/.vscode/settings.json | 0 {software => firmware}/CMakeLists.txt | 0 .../chip32/chip32_assembler.cpp | 0 .../chip32/chip32_assembler.h | 0 .../chip32/chip32_test/CMakeLists.txt | 0 .../chip32/chip32_test/main.cpp | 0 .../chip32/chip32_test/test_parser.cpp | 0 .../chip32/chip32_test/test_vm.cpp | 0 {software => firmware}/chip32/chip32_vm.c | 0 {software => firmware}/chip32/chip32_vm.h | 0 {software => firmware}/cmake/cross-gcc.cmake | 0 .../CMSIS/Include/arm_common_tables.h | 0 .../CMSIS/Include/arm_const_structs.h | 0 .../3rd-party/CMSIS/Include/arm_math.h | 0 .../3rd-party/CMSIS/Include/cmsis_armcc.h | 0 .../3rd-party/CMSIS/Include/cmsis_armclang.h | 0 .../3rd-party/CMSIS/Include/cmsis_compiler.h | 0 .../3rd-party/CMSIS/Include/cmsis_gcc.h | 0 .../3rd-party/CMSIS/Include/core_armv8mbl.h | 0 .../3rd-party/CMSIS/Include/core_armv8mml.h | 0 .../3rd-party/CMSIS/Include/core_cm0.h | 0 .../3rd-party/CMSIS/Include/core_cm0plus.h | 0 .../3rd-party/CMSIS/Include/core_cm23.h | 0 .../3rd-party/CMSIS/Include/core_cm3.h | 0 .../3rd-party/CMSIS/Include/core_cm33.h | 0 .../3rd-party/CMSIS/Include/core_cm4.h | 0 .../3rd-party/CMSIS/Include/core_cm7.h | 0 .../3rd-party/CMSIS/Include/core_sc000.h | 0 .../3rd-party/CMSIS/Include/core_sc300.h | 0 .../3rd-party/CMSIS/Include/tz_context.h | 0 .../CMSIS/Lib/libarm_cortexM0l_math.a | Bin .../3rd-party/component-version.h | 0 .../cpu/atmel-samd21/3rd-party/component/ac.h | 0 .../atmel-samd21/3rd-party/component/adc.h | 0 .../atmel-samd21/3rd-party/component/dac.h | 0 .../atmel-samd21/3rd-party/component/dmac.h | 0 .../atmel-samd21/3rd-party/component/dsu.h | 0 .../atmel-samd21/3rd-party/component/eic.h | 0 .../atmel-samd21/3rd-party/component/evsys.h | 0 .../atmel-samd21/3rd-party/component/gclk.h | 0 .../3rd-party/component/hmatrixb.h | 0 .../atmel-samd21/3rd-party/component/i2s.h | 0 .../atmel-samd21/3rd-party/component/mtb.h | 0 .../3rd-party/component/nvmctrl.h | 0 .../atmel-samd21/3rd-party/component/pac.h | 0 .../cpu/atmel-samd21/3rd-party/component/pm.h | 0 .../atmel-samd21/3rd-party/component/port.h | 0 .../atmel-samd21/3rd-party/component/rfctrl.h | 0 .../atmel-samd21/3rd-party/component/rtc.h | 0 .../atmel-samd21/3rd-party/component/sercom.h | 0 .../3rd-party/component/sysctrl.h | 0 .../cpu/atmel-samd21/3rd-party/component/tc.h | 0 .../atmel-samd21/3rd-party/component/tcc.h | 0 .../atmel-samd21/3rd-party/component/usb.h | 0 .../atmel-samd21/3rd-party/component/wdt.h | 0 .../cpu/atmel-samd21/3rd-party/instance/ac.h | 0 .../cpu/atmel-samd21/3rd-party/instance/adc.h | 0 .../cpu/atmel-samd21/3rd-party/instance/dac.h | 0 .../atmel-samd21/3rd-party/instance/dmac.h | 0 .../cpu/atmel-samd21/3rd-party/instance/dsu.h | 0 .../cpu/atmel-samd21/3rd-party/instance/eic.h | 0 .../atmel-samd21/3rd-party/instance/evsys.h | 0 .../atmel-samd21/3rd-party/instance/gclk.h | 0 .../cpu/atmel-samd21/3rd-party/instance/i2s.h | 0 .../cpu/atmel-samd21/3rd-party/instance/mtb.h | 0 .../atmel-samd21/3rd-party/instance/nvmctrl.h | 0 .../atmel-samd21/3rd-party/instance/pac0.h | 0 .../atmel-samd21/3rd-party/instance/pac1.h | 0 .../atmel-samd21/3rd-party/instance/pac2.h | 0 .../cpu/atmel-samd21/3rd-party/instance/pm.h | 0 .../atmel-samd21/3rd-party/instance/port.h | 0 .../atmel-samd21/3rd-party/instance/rfctrl.h | 0 .../cpu/atmel-samd21/3rd-party/instance/rtc.h | 0 .../3rd-party/instance/sbmatrix.h | 0 .../atmel-samd21/3rd-party/instance/sercom0.h | 0 .../atmel-samd21/3rd-party/instance/sercom1.h | 0 .../atmel-samd21/3rd-party/instance/sercom2.h | 0 .../atmel-samd21/3rd-party/instance/sercom3.h | 0 .../atmel-samd21/3rd-party/instance/sercom4.h | 0 .../atmel-samd21/3rd-party/instance/sercom5.h | 0 .../atmel-samd21/3rd-party/instance/sysctrl.h | 0 .../cpu/atmel-samd21/3rd-party/instance/tc3.h | 0 .../cpu/atmel-samd21/3rd-party/instance/tc4.h | 0 .../cpu/atmel-samd21/3rd-party/instance/tc5.h | 0 .../cpu/atmel-samd21/3rd-party/instance/tc6.h | 0 .../cpu/atmel-samd21/3rd-party/instance/tc7.h | 0 .../atmel-samd21/3rd-party/instance/tcc0.h | 0 .../atmel-samd21/3rd-party/instance/tcc1.h | 0 .../atmel-samd21/3rd-party/instance/tcc2.h | 0 .../cpu/atmel-samd21/3rd-party/instance/usb.h | 0 .../cpu/atmel-samd21/3rd-party/instance/wdt.h | 0 .../atmel-samd21/3rd-party/pio/samd21e15a.h | 0 .../atmel-samd21/3rd-party/pio/samd21e16a.h | 0 .../atmel-samd21/3rd-party/pio/samd21e17a.h | 0 .../atmel-samd21/3rd-party/pio/samd21e18a.h | 0 .../atmel-samd21/3rd-party/pio/samd21g15a.h | 0 .../atmel-samd21/3rd-party/pio/samd21g16a.h | 0 .../atmel-samd21/3rd-party/pio/samd21g17a.h | 0 .../atmel-samd21/3rd-party/pio/samd21g17au.h | 0 .../atmel-samd21/3rd-party/pio/samd21g18a.h | 0 .../atmel-samd21/3rd-party/pio/samd21g18au.h | 0 .../atmel-samd21/3rd-party/pio/samd21j15a.h | 0 .../atmel-samd21/3rd-party/pio/samd21j16a.h | 0 .../atmel-samd21/3rd-party/pio/samd21j17a.h | 0 .../atmel-samd21/3rd-party/pio/samd21j18a.h | 0 .../atmel-samd21/3rd-party/pio/samr21e16a.h | 0 .../atmel-samd21/3rd-party/pio/samr21e17a.h | 0 .../atmel-samd21/3rd-party/pio/samr21e18a.h | 0 .../atmel-samd21/3rd-party/pio/samr21e19a.h | 0 .../atmel-samd21/3rd-party/pio/samr21g16a.h | 0 .../atmel-samd21/3rd-party/pio/samr21g17a.h | 0 .../atmel-samd21/3rd-party/pio/samr21g18a.h | 0 .../cpu/atmel-samd21/3rd-party/sam.h | 0 .../cpu/atmel-samd21/3rd-party/samd21.h | 0 .../cpu/atmel-samd21/3rd-party/samd21e15a.h | 0 .../cpu/atmel-samd21/3rd-party/samd21e16a.h | 0 .../cpu/atmel-samd21/3rd-party/samd21e17a.h | 0 .../cpu/atmel-samd21/3rd-party/samd21e18a.h | 0 .../cpu/atmel-samd21/3rd-party/samd21g15a.h | 0 .../cpu/atmel-samd21/3rd-party/samd21g16a.h | 0 .../cpu/atmel-samd21/3rd-party/samd21g17a.h | 0 .../cpu/atmel-samd21/3rd-party/samd21g17au.h | 0 .../cpu/atmel-samd21/3rd-party/samd21g18a.h | 0 .../cpu/atmel-samd21/3rd-party/samd21g18au.h | 0 .../cpu/atmel-samd21/3rd-party/samd21j15a.h | 0 .../cpu/atmel-samd21/3rd-party/samd21j16a.h | 0 .../cpu/atmel-samd21/3rd-party/samd21j17a.h | 0 .../cpu/atmel-samd21/3rd-party/samd21j18a.h | 0 .../cpu/atmel-samd21/3rd-party/samr21.h | 0 .../cpu/atmel-samd21/3rd-party/samr21e16a.h | 0 .../cpu/atmel-samd21/3rd-party/samr21e17a.h | 0 .../cpu/atmel-samd21/3rd-party/samr21e18a.h | 0 .../cpu/atmel-samd21/3rd-party/samr21e19a.h | 0 .../cpu/atmel-samd21/3rd-party/samr21g16a.h | 0 .../cpu/atmel-samd21/3rd-party/samr21g17a.h | 0 .../cpu/atmel-samd21/3rd-party/samr21g18a.h | 0 .../atmel-samd21/3rd-party/system_samd21.h | 0 .../atmel-samd21/3rd-party/system_samr21.h | 0 .../cpu/atmel-samd21/CMakeLists.txt | 0 {software => firmware}/cpu/atmel-samd21/adc.c | 0 {software => firmware}/cpu/atmel-samd21/adc.h | 0 .../cpu/atmel-samd21/arduino_platform.h | 0 ...M_D21_DA1_Family_DataSheet_DS40001882F.pdf | Bin .../docs/arduino_mkr_zero_2.atstart | 0 .../cpu/atmel-samd21/gpio.c | 0 .../cpu/atmel-samd21/gpio.h | 0 .../cpu/atmel-samd21/hal_gpio.h | 0 .../hardware/arduino_mkr_zero_schematics.pdf | Bin .../cpu/atmel-samd21/i2c_master.c | 0 .../cpu/atmel-samd21/i2c_master.h | 0 .../cpu/atmel-samd21/include.cmake | 0 .../atmel-samd21/linker/samd21g18a_flash.ld | 0 .../samd21g18a_flash_without_bootloader.ld | 0 .../atmel-samd21/linker/samd21g18a_sram.ld | 0 .../cpu/atmel-samd21/linker/samd21j18.ld | 0 .../cpu/atmel-samd21/spi_display.c | 0 .../cpu/atmel-samd21/spi_display.h | 0 .../cpu/atmel-samd21/spi_master.c | 0 .../cpu/atmel-samd21/spi_master.h | 0 .../cpu/atmel-samd21/startup_samd21.c | 0 .../cpu/atmel-samd21/system_samd21.c | 0 .../cpu/atmel-samd21/uart.c | 0 .../cpu/atmel-samd21/uart.h | 0 .../cpu/gigadevice-gd32vf103/CMakeLists.txt | 0 .../Include/gd32vf103_adc.h | 0 .../Include/gd32vf103_bkp.h | 0 .../Include/gd32vf103_can.h | 0 .../Include/gd32vf103_crc.h | 0 .../Include/gd32vf103_dac.h | 0 .../Include/gd32vf103_dbg.h | 0 .../Include/gd32vf103_dma.h | 0 .../Include/gd32vf103_eclic.h | 0 .../Include/gd32vf103_exmc.h | 0 .../Include/gd32vf103_exti.h | 0 .../Include/gd32vf103_fmc.h | 0 .../Include/gd32vf103_fwdgt.h | 0 .../Include/gd32vf103_gpio.h | 0 .../Include/gd32vf103_i2c.h | 0 .../Include/gd32vf103_pmu.h | 0 .../Include/gd32vf103_rcu.h | 0 .../Include/gd32vf103_rtc.h | 0 .../Include/gd32vf103_spi.h | 0 .../Include/gd32vf103_timer.h | 0 .../Include/gd32vf103_usart.h | 0 .../Include/gd32vf103_wwdgt.h | 0 .../Source/gd32vf103_adc.c | 0 .../Source/gd32vf103_bkp.c | 0 .../Source/gd32vf103_can.c | 0 .../Source/gd32vf103_crc.c | 0 .../Source/gd32vf103_dac.c | 0 .../Source/gd32vf103_dbg.c | 0 .../Source/gd32vf103_dma.c | 0 .../Source/gd32vf103_eclic.c | 0 .../Source/gd32vf103_exmc.c | 0 .../Source/gd32vf103_exti.c | 0 .../Source/gd32vf103_fmc.c | 0 .../Source/gd32vf103_fwdgt.c | 0 .../Source/gd32vf103_gpio.c | 0 .../Source/gd32vf103_i2c.c | 0 .../Source/gd32vf103_pmu.c | 0 .../Source/gd32vf103_rcu.c | 0 .../Source/gd32vf103_rtc.c | 0 .../Source/gd32vf103_spi.c | 0 .../Source/gd32vf103_timer.c | 0 .../Source/gd32vf103_usart.c | 0 .../Source/gd32vf103_wwdgt.c | 0 .../GD32VF103_standard_peripheral/gd32vf103.h | 0 .../gd32vf103_libopt.h | 0 .../system_gd32vf103.c | 0 .../system_gd32vf103.h | 0 .../Include/drv_usb_core.h | 0 .../Include/drv_usb_dev.h | 0 .../Include/drv_usb_host.h | 0 .../Include/drv_usb_hw.h | 0 .../Include/drv_usb_regs.h | 0 .../Include/drv_usbd_int.h | 0 .../Include/drv_usbh_int.h | 0 .../Include/usb_ch9_std.h | 0 .../Include/usbd_core.h | 0 .../Include/usbd_enum.h | 0 .../Include/usbd_transc.h | 0 .../Include/usbh_core.h | 0 .../Include/usbh_enum.h | 0 .../Include/usbh_pipe.h | 0 .../Include/usbh_transc.h | 0 .../Source/drv_usb_core.c | 0 .../Source/drv_usb_dev.c | 0 .../Source/drv_usb_host.c | 0 .../Source/drv_usbd_int.c | 0 .../Source/drv_usbh_int.c | 0 .../GD32VF103_usbfs_driver/Source/usbd_core.c | 0 .../GD32VF103_usbfs_driver/Source/usbd_enum.c | 0 .../Source/usbd_transc.c | 0 .../GD32VF103_usbfs_driver/Source/usbh_core.c | 0 .../GD32VF103_usbfs_driver/Source/usbh_enum.c | 0 .../GD32VF103_usbfs_driver/Source/usbh_pipe.c | 0 .../Source/usbh_transc.c | 0 .../RISCV/drivers/n200_eclic.h | 0 .../RISCV/drivers/n200_func.c | 0 .../RISCV/drivers/n200_func.h | 0 .../RISCV/drivers/n200_timer.h | 0 .../RISCV/drivers/riscv_bits.h | 0 .../RISCV/drivers/riscv_const.h | 0 .../RISCV/drivers/riscv_encoding.h | 0 .../RISCV/env_Eclipse/GD32VF103x4.lds | 0 .../RISCV/env_Eclipse/GD32VF103x6.lds | 0 .../RISCV/env_Eclipse/GD32VF103x8.lds | 0 .../RISCV/env_Eclipse/GD32VF103xB.lds | 0 .../RISCV/env_Eclipse/entry.S | 0 .../RISCV/env_Eclipse/handlers.c | 0 .../RISCV/env_Eclipse/init.c | 0 .../RISCV/env_Eclipse/start.S | 0 .../RISCV/env_Eclipse/your_printf.c | 0 .../gigadevice-gd32vf103/RISCV/stubs/_exit.c | 0 .../gigadevice-gd32vf103/RISCV/stubs/close.c | 0 .../gigadevice-gd32vf103/RISCV/stubs/fstat.c | 0 .../gigadevice-gd32vf103/RISCV/stubs/isatty.c | 0 .../gigadevice-gd32vf103/RISCV/stubs/lseek.c | 0 .../gigadevice-gd32vf103/RISCV/stubs/read.c | 0 .../gigadevice-gd32vf103/RISCV/stubs/sbrk.c | 0 .../gigadevice-gd32vf103/RISCV/stubs/stub.h | 0 .../gigadevice-gd32vf103/RISCV/stubs/write.c | 0 .../RISCV/stubs/write_hex.c | 0 .../docs/GD32VF103_User_Manual_EN_V1.2.pdf | Bin .../cpu/gigadevice-gd32vf103/include.cmake | 0 .../gigadevice-gd32vf103/svd/GD32VF103.svd | 0 .../cpu/gigadevice-gd32vf103/systick.c | 0 .../cpu/gigadevice-gd32vf103/systick.h | 0 {software => firmware}/gd32vf103_ozone.jdebug | 0 {software => firmware}/library/bitmap.c | 0 {software => firmware}/library/bitmap.h | 0 {software => firmware}/library/ili9341.c | 0 {software => firmware}/library/ili9341.h | 0 {software => firmware}/library/json.hpp | 0 {software => firmware}/library/mini_qoi.c | 0 {software => firmware}/library/mini_qoi.h | 0 {software => firmware}/library/qoi.h | 0 {software => firmware}/library/resource.h | 0 {software => firmware}/library/serializers.h | 0 {software => firmware}/library/st7789.c | 0 {software => firmware}/library/st7789.h | 0 .../platform/arduino-mkr-zero/CMakeLists.txt | 0 .../arduino-mkr-zero/ost_hal_wrapper.c | 0 .../platform/qt-qml/CMakeLists.txt | 0 .../platform/qt-qml/FrontButton.qml | 0 .../platform/qt-qml/README.md | 0 .../platform/qt-qml/StoryTellerModel.cpp | 0 .../platform/qt-qml/StoryTellerModel.h | 0 .../platform/qt-qml/StoryView.qml | 0 .../platform/qt-qml/default_image.bmp | Bin .../platform/qt-qml/icon.rc | 0 .../platform/qt-qml/icons/home.png | Bin .../platform/qt-qml/icons/ok.png | Bin .../platform/qt-qml/icons/pause.png | Bin .../platform/qt-qml/main.cpp | 0 .../platform/qt-qml/main.qml | 0 .../platform/qt-qml/ost-icon.ico | Bin .../platform/qt-qml/ost-logo-scale320x240.png | Bin .../platform/qt-qml/ost-logo.png | Bin .../platform/qt-qml/qml.qrc | 0 .../platform/qt-qml/qtquickcontrols2.conf | 0 .../platform/qt-qml/screenshots/beta1.png | Bin .../platform/raspberry-pico-w/CMakeLists.txt | 0 .../platform/raspberry-pico-w/msc_disk.c | 0 .../platform/raspberry-pico-w/msc_disk.h | 0 .../raspberry-pico-w/pico_hal_wrapper.c | 0 .../platform/raspberry-pico-w/pico_i2s.c | 0 .../platform/raspberry-pico-w/pico_i2s.h | 0 .../platform/raspberry-pico-w/pico_i2s.pio | 0 .../platform/raspberry-pico-w/pico_lcd_spi.c | 0 .../platform/raspberry-pico-w/pico_lcd_spi.h | 0 .../raspberry-pico-w/pico_sdcard_spi.c | 0 .../raspberry-pico-w/pico_sdcard_spi.h | 0 .../raspberry-pico-w/pico_sdk_import.cmake | 0 .../raspberry-pico-w/pio_rotary_encoder.pio | 0 .../platform/raspberry-pico-w/rp2040.svd | 0 .../platform/raspberry-pico-w/tusb_config.h | 0 .../raspberry-pico-w/usb_descriptors.c | 0 .../sipeed-longan-nano/CMakeLists.txt | 0 .../platform/sipeed-longan-nano/audio.c | 0 .../platform/sipeed-longan-nano/audio.h | 0 .../platform/sipeed-longan-nano/i2s.c | 0 .../platform/sipeed-longan-nano/i2s.h | 0 .../sipeed-longan-nano/ost_hal_wrapper.c | 0 .../platform/sipeed-longan-nano/spi0.c | 0 .../platform/sipeed-longan-nano/spi0.h | 0 .../platform/sipeed-longan-nano/spi1.c | 0 .../platform/sipeed-longan-nano/spi1.h | 0 {software => firmware}/samd21_ozone.jdebug | 0 {software => firmware}/system/audio_player.c | 0 {software => firmware}/system/audio_player.h | 0 {software => firmware}/system/debug.c | 0 {software => firmware}/system/debug.h | 0 .../system/ff/00history.txt | 0 {software => firmware}/system/ff/00readme.txt | 0 {software => firmware}/system/ff/LICENSE.txt | 0 {software => firmware}/system/ff/diskio.c | 0 {software => firmware}/system/ff/diskio.h | 0 {software => firmware}/system/ff/ff.c | 0 {software => firmware}/system/ff/ff.h | 0 {software => firmware}/system/ff/ff_stubs.c | 0 {software => firmware}/system/ff/ffconf.h | 0 {software => firmware}/system/ff/ffsystem.c | 0 {software => firmware}/system/ff/ffunicode.c | 0 {software => firmware}/system/ff/library.json | 0 .../system/ff_diskio_sdcard.c | 0 {software => firmware}/system/filesystem.c | 0 {software => firmware}/system/filesystem.h | 0 {software => firmware}/system/fs_task.c | 0 {software => firmware}/system/fs_task.h | 0 {software => firmware}/system/main.c | 0 {software => firmware}/system/nanoprintf.h | 0 {software => firmware}/system/ost_hal.h | 0 {software => firmware}/system/qor.c | 0 {software => firmware}/system/qor.h | 0 {software => firmware}/system/qor_armv6m.s | 0 {software => firmware}/system/qor_armv7m.s | 0 {software => firmware}/system/rotary-button.c | 0 {software => firmware}/system/rotary-button.h | 0 {software => firmware}/system/sdcard.c | 0 {software => firmware}/system/sdcard.h | 0 {software => firmware}/system/system.h | 0 {software => firmware}/system/time_server.c | 0 {software => firmware}/system/time_server.h | 0 {software => firmware}/system/usb_task.c | 0 {software => firmware}/system/usb_task.h | 0 {software => firmware}/system/vm_task.c | 0 {software => firmware}/system/vm_task.h | 0 .../test/bmp_decoding/0_000_314CBAA1.bmp | Bin .../test/bmp_decoding/CMakeLists.txt | 0 .../test/bmp_decoding/main.cpp | 0 .../test/bmp_decoding/mainwindow.cpp | 0 .../test/bmp_decoding/mainwindow.h | 0 .../test/bmp_decoding/mainwindow.ui | 0 {software => firmware}/test/catch.hpp | 0 .../test/platform_validation.c | 0 shared/audio_player.cpp | 353 ++++++++++++ {software/common => shared}/audio_player.h | 0 .../library => shared}/library_manager.cpp | 0 .../library => shared}/library_manager.h | 0 {software/library => shared}/miniaudio.h | 0 .../library => shared}/resource_manager.cpp | 0 .../library => shared}/resource_manager.h | 0 {software/library => shared}/stb_vorbis.c | 0 .../library => shared}/story_project.cpp | 0 {software/library => shared}/story_project.h | 0 {software/library => shared}/thread_pool.hpp | 0 .../library => shared}/thread_safe_queue.h | 0 {software/common => shared}/tlv.h | 0 {software/library => shared}/uuid.h | 0 software/common/audio_player.cpp | 142 ----- software/library/miniaudio_libopus.h | 496 ----------------- software/library/miniaudio_libvorbis.h | 516 ------------------ story-editor/CMakeLists.txt | 41 +- 398 files changed, 374 insertions(+), 1176 deletions(-) rename {software => firmware}/.gdbinit (100%) rename {software => firmware}/.vscode/c_cpp_properties.json (100%) rename {software => firmware}/.vscode/launch.json (100%) rename {software => firmware}/.vscode/settings.json (100%) rename {software => firmware}/CMakeLists.txt (100%) rename {software => firmware}/chip32/chip32_assembler.cpp (100%) rename {software => firmware}/chip32/chip32_assembler.h (100%) rename {software => firmware}/chip32/chip32_test/CMakeLists.txt (100%) rename {software => firmware}/chip32/chip32_test/main.cpp (100%) rename {software => firmware}/chip32/chip32_test/test_parser.cpp (100%) rename {software => firmware}/chip32/chip32_test/test_vm.cpp (100%) rename {software => firmware}/chip32/chip32_vm.c (100%) rename {software => firmware}/chip32/chip32_vm.h (100%) rename {software => firmware}/cmake/cross-gcc.cmake (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_common_tables.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_const_structs.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_math.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_armcc.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_armclang.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_compiler.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_gcc.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_armv8mbl.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_armv8mml.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm0.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm0plus.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm23.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm3.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm33.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm4.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm7.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_sc000.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_sc300.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Include/tz_context.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/CMSIS/Lib/libarm_cortexM0l_math.a (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component-version.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/ac.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/adc.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/dac.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/dmac.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/dsu.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/eic.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/evsys.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/gclk.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/hmatrixb.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/i2s.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/mtb.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/nvmctrl.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/pac.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/pm.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/port.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/rfctrl.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/rtc.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/sercom.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/sysctrl.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/tc.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/tcc.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/usb.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/component/wdt.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/ac.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/adc.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/dac.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/dmac.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/dsu.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/eic.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/evsys.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/gclk.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/i2s.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/mtb.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/nvmctrl.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/pac0.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/pac1.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/pac2.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/pm.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/port.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/rfctrl.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/rtc.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/sbmatrix.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/sercom0.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/sercom1.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/sercom2.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/sercom3.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/sercom4.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/sercom5.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/sysctrl.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/tc3.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/tc4.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/tc5.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/tc6.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/tc7.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/tcc0.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/tcc1.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/tcc2.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/usb.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/instance/wdt.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21e15a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21e16a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21e17a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21e18a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21g15a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21g16a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21g17a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21g17au.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21g18a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21g18au.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21j15a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21j16a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21j17a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samd21j18a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samr21e16a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samr21e17a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samr21e18a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samr21e19a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samr21g16a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samr21g17a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/pio/samr21g18a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/sam.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21e15a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21e16a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21e17a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21e18a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21g15a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21g16a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21g17a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21g17au.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21g18a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21g18au.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21j15a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21j16a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21j17a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samd21j18a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samr21.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samr21e16a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samr21e17a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samr21e18a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samr21e19a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samr21g16a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samr21g17a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/samr21g18a.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/system_samd21.h (100%) rename {software => firmware}/cpu/atmel-samd21/3rd-party/system_samr21.h (100%) rename {software => firmware}/cpu/atmel-samd21/CMakeLists.txt (100%) rename {software => firmware}/cpu/atmel-samd21/adc.c (100%) rename {software => firmware}/cpu/atmel-samd21/adc.h (100%) rename {software => firmware}/cpu/atmel-samd21/arduino_platform.h (100%) rename {software => firmware}/cpu/atmel-samd21/docs/SAM_D21_DA1_Family_DataSheet_DS40001882F.pdf (100%) rename {software => firmware}/cpu/atmel-samd21/docs/arduino_mkr_zero_2.atstart (100%) rename {software => firmware}/cpu/atmel-samd21/gpio.c (100%) rename {software => firmware}/cpu/atmel-samd21/gpio.h (100%) rename {software => firmware}/cpu/atmel-samd21/hal_gpio.h (100%) rename {software => firmware}/cpu/atmel-samd21/hardware/arduino_mkr_zero_schematics.pdf (100%) rename {software => firmware}/cpu/atmel-samd21/i2c_master.c (100%) rename {software => firmware}/cpu/atmel-samd21/i2c_master.h (100%) rename {software => firmware}/cpu/atmel-samd21/include.cmake (100%) rename {software => firmware}/cpu/atmel-samd21/linker/samd21g18a_flash.ld (100%) rename {software => firmware}/cpu/atmel-samd21/linker/samd21g18a_flash_without_bootloader.ld (100%) rename {software => firmware}/cpu/atmel-samd21/linker/samd21g18a_sram.ld (100%) rename {software => firmware}/cpu/atmel-samd21/linker/samd21j18.ld (100%) rename {software => firmware}/cpu/atmel-samd21/spi_display.c (100%) rename {software => firmware}/cpu/atmel-samd21/spi_display.h (100%) rename {software => firmware}/cpu/atmel-samd21/spi_master.c (100%) rename {software => firmware}/cpu/atmel-samd21/spi_master.h (100%) rename {software => firmware}/cpu/atmel-samd21/startup_samd21.c (100%) rename {software => firmware}/cpu/atmel-samd21/system_samd21.c (100%) rename {software => firmware}/cpu/atmel-samd21/uart.c (100%) rename {software => firmware}/cpu/atmel-samd21/uart.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/CMakeLists.txt (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_adc.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_bkp.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_can.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_crc.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dac.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dbg.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dma.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_eclic.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_exmc.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_exti.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_fmc.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_fwdgt.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_gpio.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_i2c.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_pmu.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_rcu.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_rtc.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_spi.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_timer.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_usart.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_wwdgt.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_adc.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_bkp.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_can.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_crc.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dac.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dbg.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dma.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_eclic.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_exmc.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_exti.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_fmc.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_fwdgt.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_gpio.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_i2c.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_pmu.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_rcu.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_rtc.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_spi.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_timer.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_usart.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_wwdgt.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/gd32vf103.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/gd32vf103_libopt.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/system_gd32vf103.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/system_gd32vf103.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_core.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_dev.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_host.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_hw.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_regs.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usbd_int.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usbh_int.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usb_ch9_std.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_core.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_enum.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_transc.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_core.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_enum.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_pipe.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_transc.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_core.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_dev.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_host.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usbd_int.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usbh_int.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_core.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_enum.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_transc.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_core.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_enum.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_pipe.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_transc.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_eclic.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_func.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_func.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_timer.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_bits.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_const.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_encoding.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x4.lds (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x6.lds (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x8.lds (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103xB.lds (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/entry.S (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/handlers.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/init.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/start.S (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/your_printf.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/stubs/_exit.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/stubs/close.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/stubs/fstat.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/stubs/isatty.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/stubs/lseek.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/stubs/read.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/stubs/sbrk.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/stubs/stub.h (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/stubs/write.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/RISCV/stubs/write_hex.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/docs/GD32VF103_User_Manual_EN_V1.2.pdf (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/include.cmake (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/svd/GD32VF103.svd (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/systick.c (100%) rename {software => firmware}/cpu/gigadevice-gd32vf103/systick.h (100%) rename {software => firmware}/gd32vf103_ozone.jdebug (100%) rename {software => firmware}/library/bitmap.c (100%) rename {software => firmware}/library/bitmap.h (100%) rename {software => firmware}/library/ili9341.c (100%) rename {software => firmware}/library/ili9341.h (100%) rename {software => firmware}/library/json.hpp (100%) rename {software => firmware}/library/mini_qoi.c (100%) rename {software => firmware}/library/mini_qoi.h (100%) rename {software => firmware}/library/qoi.h (100%) rename {software => firmware}/library/resource.h (100%) rename {software => firmware}/library/serializers.h (100%) rename {software => firmware}/library/st7789.c (100%) rename {software => firmware}/library/st7789.h (100%) rename {software => firmware}/platform/arduino-mkr-zero/CMakeLists.txt (100%) rename {software => firmware}/platform/arduino-mkr-zero/ost_hal_wrapper.c (100%) rename {software => firmware}/platform/qt-qml/CMakeLists.txt (100%) rename {software => firmware}/platform/qt-qml/FrontButton.qml (100%) rename {software => firmware}/platform/qt-qml/README.md (100%) rename {software => firmware}/platform/qt-qml/StoryTellerModel.cpp (100%) rename {software => firmware}/platform/qt-qml/StoryTellerModel.h (100%) rename {software => firmware}/platform/qt-qml/StoryView.qml (100%) rename {software => firmware}/platform/qt-qml/default_image.bmp (100%) rename {software => firmware}/platform/qt-qml/icon.rc (100%) rename {software => firmware}/platform/qt-qml/icons/home.png (100%) rename {software => firmware}/platform/qt-qml/icons/ok.png (100%) rename {software => firmware}/platform/qt-qml/icons/pause.png (100%) rename {software => firmware}/platform/qt-qml/main.cpp (100%) rename {software => firmware}/platform/qt-qml/main.qml (100%) rename {software => firmware}/platform/qt-qml/ost-icon.ico (100%) rename {software => firmware}/platform/qt-qml/ost-logo-scale320x240.png (100%) rename {software => firmware}/platform/qt-qml/ost-logo.png (100%) rename {software => firmware}/platform/qt-qml/qml.qrc (100%) rename {software => firmware}/platform/qt-qml/qtquickcontrols2.conf (100%) rename {software => firmware}/platform/qt-qml/screenshots/beta1.png (100%) rename {software => firmware}/platform/raspberry-pico-w/CMakeLists.txt (100%) rename {software => firmware}/platform/raspberry-pico-w/msc_disk.c (100%) rename {software => firmware}/platform/raspberry-pico-w/msc_disk.h (100%) rename {software => firmware}/platform/raspberry-pico-w/pico_hal_wrapper.c (100%) rename {software => firmware}/platform/raspberry-pico-w/pico_i2s.c (100%) rename {software => firmware}/platform/raspberry-pico-w/pico_i2s.h (100%) rename {software => firmware}/platform/raspberry-pico-w/pico_i2s.pio (100%) rename {software => firmware}/platform/raspberry-pico-w/pico_lcd_spi.c (100%) rename {software => firmware}/platform/raspberry-pico-w/pico_lcd_spi.h (100%) rename {software => firmware}/platform/raspberry-pico-w/pico_sdcard_spi.c (100%) rename {software => firmware}/platform/raspberry-pico-w/pico_sdcard_spi.h (100%) rename {software => firmware}/platform/raspberry-pico-w/pico_sdk_import.cmake (100%) rename {software => firmware}/platform/raspberry-pico-w/pio_rotary_encoder.pio (100%) rename {software => firmware}/platform/raspberry-pico-w/rp2040.svd (100%) rename {software => firmware}/platform/raspberry-pico-w/tusb_config.h (100%) rename {software => firmware}/platform/raspberry-pico-w/usb_descriptors.c (100%) rename {software => firmware}/platform/sipeed-longan-nano/CMakeLists.txt (100%) rename {software => firmware}/platform/sipeed-longan-nano/audio.c (100%) rename {software => firmware}/platform/sipeed-longan-nano/audio.h (100%) rename {software => firmware}/platform/sipeed-longan-nano/i2s.c (100%) rename {software => firmware}/platform/sipeed-longan-nano/i2s.h (100%) rename {software => firmware}/platform/sipeed-longan-nano/ost_hal_wrapper.c (100%) rename {software => firmware}/platform/sipeed-longan-nano/spi0.c (100%) rename {software => firmware}/platform/sipeed-longan-nano/spi0.h (100%) rename {software => firmware}/platform/sipeed-longan-nano/spi1.c (100%) rename {software => firmware}/platform/sipeed-longan-nano/spi1.h (100%) rename {software => firmware}/samd21_ozone.jdebug (100%) rename {software => firmware}/system/audio_player.c (100%) rename {software => firmware}/system/audio_player.h (100%) rename {software => firmware}/system/debug.c (100%) rename {software => firmware}/system/debug.h (100%) rename {software => firmware}/system/ff/00history.txt (100%) rename {software => firmware}/system/ff/00readme.txt (100%) rename {software => firmware}/system/ff/LICENSE.txt (100%) rename {software => firmware}/system/ff/diskio.c (100%) rename {software => firmware}/system/ff/diskio.h (100%) rename {software => firmware}/system/ff/ff.c (100%) rename {software => firmware}/system/ff/ff.h (100%) rename {software => firmware}/system/ff/ff_stubs.c (100%) rename {software => firmware}/system/ff/ffconf.h (100%) rename {software => firmware}/system/ff/ffsystem.c (100%) rename {software => firmware}/system/ff/ffunicode.c (100%) rename {software => firmware}/system/ff/library.json (100%) rename {software => firmware}/system/ff_diskio_sdcard.c (100%) rename {software => firmware}/system/filesystem.c (100%) rename {software => firmware}/system/filesystem.h (100%) rename {software => firmware}/system/fs_task.c (100%) rename {software => firmware}/system/fs_task.h (100%) rename {software => firmware}/system/main.c (100%) rename {software => firmware}/system/nanoprintf.h (100%) rename {software => firmware}/system/ost_hal.h (100%) rename {software => firmware}/system/qor.c (100%) rename {software => firmware}/system/qor.h (100%) rename {software => firmware}/system/qor_armv6m.s (100%) rename {software => firmware}/system/qor_armv7m.s (100%) rename {software => firmware}/system/rotary-button.c (100%) rename {software => firmware}/system/rotary-button.h (100%) rename {software => firmware}/system/sdcard.c (100%) rename {software => firmware}/system/sdcard.h (100%) rename {software => firmware}/system/system.h (100%) rename {software => firmware}/system/time_server.c (100%) rename {software => firmware}/system/time_server.h (100%) rename {software => firmware}/system/usb_task.c (100%) rename {software => firmware}/system/usb_task.h (100%) rename {software => firmware}/system/vm_task.c (100%) rename {software => firmware}/system/vm_task.h (100%) rename {software => firmware}/test/bmp_decoding/0_000_314CBAA1.bmp (100%) rename {software => firmware}/test/bmp_decoding/CMakeLists.txt (100%) rename {software => firmware}/test/bmp_decoding/main.cpp (100%) rename {software => firmware}/test/bmp_decoding/mainwindow.cpp (100%) rename {software => firmware}/test/bmp_decoding/mainwindow.h (100%) rename {software => firmware}/test/bmp_decoding/mainwindow.ui (100%) rename {software => firmware}/test/catch.hpp (100%) rename {software => firmware}/test/platform_validation.c (100%) create mode 100644 shared/audio_player.cpp rename {software/common => shared}/audio_player.h (100%) rename {software/library => shared}/library_manager.cpp (100%) rename {software/library => shared}/library_manager.h (100%) rename {software/library => shared}/miniaudio.h (100%) rename {software/library => shared}/resource_manager.cpp (100%) rename {software/library => shared}/resource_manager.h (100%) rename {software/library => shared}/stb_vorbis.c (100%) rename {software/library => shared}/story_project.cpp (100%) rename {software/library => shared}/story_project.h (100%) rename {software/library => shared}/thread_pool.hpp (100%) rename {software/library => shared}/thread_safe_queue.h (100%) rename {software/common => shared}/tlv.h (100%) rename {software/library => shared}/uuid.h (100%) delete mode 100644 software/common/audio_player.cpp delete mode 100644 software/library/miniaudio_libopus.h delete mode 100644 software/library/miniaudio_libvorbis.h diff --git a/.gitignore b/.gitignore index 42f5f32..403d3d8 100644 --- a/.gitignore +++ b/.gitignore @@ -81,3 +81,5 @@ story-editor/cmake-build-debug/ story-editor/build-win32/ build-story-editor-Desktop_Qt_GCC_64bit-Debug/ + +firmware/build/ diff --git a/software/.gdbinit b/firmware/.gdbinit similarity index 100% rename from software/.gdbinit rename to firmware/.gdbinit diff --git a/software/.vscode/c_cpp_properties.json b/firmware/.vscode/c_cpp_properties.json similarity index 100% rename from software/.vscode/c_cpp_properties.json rename to firmware/.vscode/c_cpp_properties.json diff --git a/software/.vscode/launch.json b/firmware/.vscode/launch.json similarity index 100% rename from software/.vscode/launch.json rename to firmware/.vscode/launch.json diff --git a/software/.vscode/settings.json b/firmware/.vscode/settings.json similarity index 100% rename from software/.vscode/settings.json rename to firmware/.vscode/settings.json diff --git a/software/CMakeLists.txt b/firmware/CMakeLists.txt similarity index 100% rename from software/CMakeLists.txt rename to firmware/CMakeLists.txt diff --git a/software/chip32/chip32_assembler.cpp b/firmware/chip32/chip32_assembler.cpp similarity index 100% rename from software/chip32/chip32_assembler.cpp rename to firmware/chip32/chip32_assembler.cpp diff --git a/software/chip32/chip32_assembler.h b/firmware/chip32/chip32_assembler.h similarity index 100% rename from software/chip32/chip32_assembler.h rename to firmware/chip32/chip32_assembler.h diff --git a/software/chip32/chip32_test/CMakeLists.txt b/firmware/chip32/chip32_test/CMakeLists.txt similarity index 100% rename from software/chip32/chip32_test/CMakeLists.txt rename to firmware/chip32/chip32_test/CMakeLists.txt diff --git a/software/chip32/chip32_test/main.cpp b/firmware/chip32/chip32_test/main.cpp similarity index 100% rename from software/chip32/chip32_test/main.cpp rename to firmware/chip32/chip32_test/main.cpp diff --git a/software/chip32/chip32_test/test_parser.cpp b/firmware/chip32/chip32_test/test_parser.cpp similarity index 100% rename from software/chip32/chip32_test/test_parser.cpp rename to firmware/chip32/chip32_test/test_parser.cpp diff --git a/software/chip32/chip32_test/test_vm.cpp b/firmware/chip32/chip32_test/test_vm.cpp similarity index 100% rename from software/chip32/chip32_test/test_vm.cpp rename to firmware/chip32/chip32_test/test_vm.cpp diff --git a/software/chip32/chip32_vm.c b/firmware/chip32/chip32_vm.c similarity index 100% rename from software/chip32/chip32_vm.c rename to firmware/chip32/chip32_vm.c diff --git a/software/chip32/chip32_vm.h b/firmware/chip32/chip32_vm.h similarity index 100% rename from software/chip32/chip32_vm.h rename to firmware/chip32/chip32_vm.h diff --git a/software/cmake/cross-gcc.cmake b/firmware/cmake/cross-gcc.cmake similarity index 100% rename from software/cmake/cross-gcc.cmake rename to firmware/cmake/cross-gcc.cmake diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_common_tables.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_common_tables.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_common_tables.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_common_tables.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_const_structs.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_const_structs.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_const_structs.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_const_structs.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_math.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_math.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_math.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/arm_math.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_armcc.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_armcc.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_armcc.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_armcc.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_armclang.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_armclang.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_armclang.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_armclang.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_compiler.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_compiler.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_compiler.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_compiler.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_gcc.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_gcc.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_gcc.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/cmsis_gcc.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_armv8mbl.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_armv8mbl.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_armv8mbl.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_armv8mbl.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_armv8mml.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_armv8mml.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_armv8mml.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_armv8mml.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm0.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm0.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm0.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm0.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm0plus.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm0plus.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm0plus.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm0plus.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm23.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm23.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm23.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm23.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm3.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm3.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm3.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm3.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm33.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm33.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm33.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm33.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm4.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm4.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm4.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm4.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm7.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm7.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm7.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_cm7.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_sc000.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_sc000.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_sc000.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_sc000.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_sc300.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_sc300.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_sc300.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/core_sc300.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Include/tz_context.h b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/tz_context.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Include/tz_context.h rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Include/tz_context.h diff --git a/software/cpu/atmel-samd21/3rd-party/CMSIS/Lib/libarm_cortexM0l_math.a b/firmware/cpu/atmel-samd21/3rd-party/CMSIS/Lib/libarm_cortexM0l_math.a similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/CMSIS/Lib/libarm_cortexM0l_math.a rename to firmware/cpu/atmel-samd21/3rd-party/CMSIS/Lib/libarm_cortexM0l_math.a diff --git a/software/cpu/atmel-samd21/3rd-party/component-version.h b/firmware/cpu/atmel-samd21/3rd-party/component-version.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component-version.h rename to firmware/cpu/atmel-samd21/3rd-party/component-version.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/ac.h b/firmware/cpu/atmel-samd21/3rd-party/component/ac.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/ac.h rename to firmware/cpu/atmel-samd21/3rd-party/component/ac.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/adc.h b/firmware/cpu/atmel-samd21/3rd-party/component/adc.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/adc.h rename to firmware/cpu/atmel-samd21/3rd-party/component/adc.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/dac.h b/firmware/cpu/atmel-samd21/3rd-party/component/dac.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/dac.h rename to firmware/cpu/atmel-samd21/3rd-party/component/dac.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/dmac.h b/firmware/cpu/atmel-samd21/3rd-party/component/dmac.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/dmac.h rename to firmware/cpu/atmel-samd21/3rd-party/component/dmac.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/dsu.h b/firmware/cpu/atmel-samd21/3rd-party/component/dsu.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/dsu.h rename to firmware/cpu/atmel-samd21/3rd-party/component/dsu.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/eic.h b/firmware/cpu/atmel-samd21/3rd-party/component/eic.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/eic.h rename to firmware/cpu/atmel-samd21/3rd-party/component/eic.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/evsys.h b/firmware/cpu/atmel-samd21/3rd-party/component/evsys.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/evsys.h rename to firmware/cpu/atmel-samd21/3rd-party/component/evsys.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/gclk.h b/firmware/cpu/atmel-samd21/3rd-party/component/gclk.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/gclk.h rename to firmware/cpu/atmel-samd21/3rd-party/component/gclk.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/hmatrixb.h b/firmware/cpu/atmel-samd21/3rd-party/component/hmatrixb.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/hmatrixb.h rename to firmware/cpu/atmel-samd21/3rd-party/component/hmatrixb.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/i2s.h b/firmware/cpu/atmel-samd21/3rd-party/component/i2s.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/i2s.h rename to firmware/cpu/atmel-samd21/3rd-party/component/i2s.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/mtb.h b/firmware/cpu/atmel-samd21/3rd-party/component/mtb.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/mtb.h rename to firmware/cpu/atmel-samd21/3rd-party/component/mtb.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/nvmctrl.h b/firmware/cpu/atmel-samd21/3rd-party/component/nvmctrl.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/nvmctrl.h rename to firmware/cpu/atmel-samd21/3rd-party/component/nvmctrl.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/pac.h b/firmware/cpu/atmel-samd21/3rd-party/component/pac.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/pac.h rename to firmware/cpu/atmel-samd21/3rd-party/component/pac.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/pm.h b/firmware/cpu/atmel-samd21/3rd-party/component/pm.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/pm.h rename to firmware/cpu/atmel-samd21/3rd-party/component/pm.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/port.h b/firmware/cpu/atmel-samd21/3rd-party/component/port.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/port.h rename to firmware/cpu/atmel-samd21/3rd-party/component/port.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/rfctrl.h b/firmware/cpu/atmel-samd21/3rd-party/component/rfctrl.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/rfctrl.h rename to firmware/cpu/atmel-samd21/3rd-party/component/rfctrl.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/rtc.h b/firmware/cpu/atmel-samd21/3rd-party/component/rtc.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/rtc.h rename to firmware/cpu/atmel-samd21/3rd-party/component/rtc.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/sercom.h b/firmware/cpu/atmel-samd21/3rd-party/component/sercom.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/sercom.h rename to firmware/cpu/atmel-samd21/3rd-party/component/sercom.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/sysctrl.h b/firmware/cpu/atmel-samd21/3rd-party/component/sysctrl.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/sysctrl.h rename to firmware/cpu/atmel-samd21/3rd-party/component/sysctrl.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/tc.h b/firmware/cpu/atmel-samd21/3rd-party/component/tc.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/tc.h rename to firmware/cpu/atmel-samd21/3rd-party/component/tc.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/tcc.h b/firmware/cpu/atmel-samd21/3rd-party/component/tcc.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/tcc.h rename to firmware/cpu/atmel-samd21/3rd-party/component/tcc.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/usb.h b/firmware/cpu/atmel-samd21/3rd-party/component/usb.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/usb.h rename to firmware/cpu/atmel-samd21/3rd-party/component/usb.h diff --git a/software/cpu/atmel-samd21/3rd-party/component/wdt.h b/firmware/cpu/atmel-samd21/3rd-party/component/wdt.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/component/wdt.h rename to firmware/cpu/atmel-samd21/3rd-party/component/wdt.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/ac.h b/firmware/cpu/atmel-samd21/3rd-party/instance/ac.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/ac.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/ac.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/adc.h b/firmware/cpu/atmel-samd21/3rd-party/instance/adc.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/adc.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/adc.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/dac.h b/firmware/cpu/atmel-samd21/3rd-party/instance/dac.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/dac.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/dac.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/dmac.h b/firmware/cpu/atmel-samd21/3rd-party/instance/dmac.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/dmac.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/dmac.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/dsu.h b/firmware/cpu/atmel-samd21/3rd-party/instance/dsu.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/dsu.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/dsu.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/eic.h b/firmware/cpu/atmel-samd21/3rd-party/instance/eic.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/eic.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/eic.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/evsys.h b/firmware/cpu/atmel-samd21/3rd-party/instance/evsys.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/evsys.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/evsys.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/gclk.h b/firmware/cpu/atmel-samd21/3rd-party/instance/gclk.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/gclk.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/gclk.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/i2s.h b/firmware/cpu/atmel-samd21/3rd-party/instance/i2s.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/i2s.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/i2s.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/mtb.h b/firmware/cpu/atmel-samd21/3rd-party/instance/mtb.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/mtb.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/mtb.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/nvmctrl.h b/firmware/cpu/atmel-samd21/3rd-party/instance/nvmctrl.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/nvmctrl.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/nvmctrl.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/pac0.h b/firmware/cpu/atmel-samd21/3rd-party/instance/pac0.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/pac0.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/pac0.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/pac1.h b/firmware/cpu/atmel-samd21/3rd-party/instance/pac1.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/pac1.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/pac1.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/pac2.h b/firmware/cpu/atmel-samd21/3rd-party/instance/pac2.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/pac2.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/pac2.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/pm.h b/firmware/cpu/atmel-samd21/3rd-party/instance/pm.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/pm.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/pm.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/port.h b/firmware/cpu/atmel-samd21/3rd-party/instance/port.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/port.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/port.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/rfctrl.h b/firmware/cpu/atmel-samd21/3rd-party/instance/rfctrl.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/rfctrl.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/rfctrl.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/rtc.h b/firmware/cpu/atmel-samd21/3rd-party/instance/rtc.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/rtc.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/rtc.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/sbmatrix.h b/firmware/cpu/atmel-samd21/3rd-party/instance/sbmatrix.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/sbmatrix.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/sbmatrix.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/sercom0.h b/firmware/cpu/atmel-samd21/3rd-party/instance/sercom0.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/sercom0.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/sercom0.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/sercom1.h b/firmware/cpu/atmel-samd21/3rd-party/instance/sercom1.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/sercom1.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/sercom1.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/sercom2.h b/firmware/cpu/atmel-samd21/3rd-party/instance/sercom2.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/sercom2.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/sercom2.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/sercom3.h b/firmware/cpu/atmel-samd21/3rd-party/instance/sercom3.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/sercom3.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/sercom3.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/sercom4.h b/firmware/cpu/atmel-samd21/3rd-party/instance/sercom4.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/sercom4.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/sercom4.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/sercom5.h b/firmware/cpu/atmel-samd21/3rd-party/instance/sercom5.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/sercom5.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/sercom5.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/sysctrl.h b/firmware/cpu/atmel-samd21/3rd-party/instance/sysctrl.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/sysctrl.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/sysctrl.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/tc3.h b/firmware/cpu/atmel-samd21/3rd-party/instance/tc3.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/tc3.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/tc3.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/tc4.h b/firmware/cpu/atmel-samd21/3rd-party/instance/tc4.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/tc4.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/tc4.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/tc5.h b/firmware/cpu/atmel-samd21/3rd-party/instance/tc5.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/tc5.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/tc5.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/tc6.h b/firmware/cpu/atmel-samd21/3rd-party/instance/tc6.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/tc6.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/tc6.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/tc7.h b/firmware/cpu/atmel-samd21/3rd-party/instance/tc7.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/tc7.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/tc7.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/tcc0.h b/firmware/cpu/atmel-samd21/3rd-party/instance/tcc0.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/tcc0.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/tcc0.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/tcc1.h b/firmware/cpu/atmel-samd21/3rd-party/instance/tcc1.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/tcc1.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/tcc1.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/tcc2.h b/firmware/cpu/atmel-samd21/3rd-party/instance/tcc2.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/tcc2.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/tcc2.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/usb.h b/firmware/cpu/atmel-samd21/3rd-party/instance/usb.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/usb.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/usb.h diff --git a/software/cpu/atmel-samd21/3rd-party/instance/wdt.h b/firmware/cpu/atmel-samd21/3rd-party/instance/wdt.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/instance/wdt.h rename to firmware/cpu/atmel-samd21/3rd-party/instance/wdt.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21e15a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21e15a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21e15a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21e15a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21e16a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21e16a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21e16a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21e16a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21e17a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21e17a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21e17a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21e17a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21e18a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21e18a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21e18a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21e18a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21g15a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21g15a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21g15a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21g15a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21g16a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21g16a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21g16a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21g16a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21g17a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21g17a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21g17a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21g17a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21g17au.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21g17au.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21g17au.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21g17au.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21g18a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21g18a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21g18a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21g18a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21g18au.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21g18au.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21g18au.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21g18au.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21j15a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21j15a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21j15a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21j15a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21j16a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21j16a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21j16a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21j16a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21j17a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21j17a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21j17a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21j17a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samd21j18a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samd21j18a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samd21j18a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samd21j18a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samr21e16a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samr21e16a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samr21e16a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samr21e16a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samr21e17a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samr21e17a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samr21e17a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samr21e17a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samr21e18a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samr21e18a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samr21e18a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samr21e18a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samr21e19a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samr21e19a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samr21e19a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samr21e19a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samr21g16a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samr21g16a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samr21g16a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samr21g16a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samr21g17a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samr21g17a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samr21g17a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samr21g17a.h diff --git a/software/cpu/atmel-samd21/3rd-party/pio/samr21g18a.h b/firmware/cpu/atmel-samd21/3rd-party/pio/samr21g18a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/pio/samr21g18a.h rename to firmware/cpu/atmel-samd21/3rd-party/pio/samr21g18a.h diff --git a/software/cpu/atmel-samd21/3rd-party/sam.h b/firmware/cpu/atmel-samd21/3rd-party/sam.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/sam.h rename to firmware/cpu/atmel-samd21/3rd-party/sam.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21.h b/firmware/cpu/atmel-samd21/3rd-party/samd21.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21e15a.h b/firmware/cpu/atmel-samd21/3rd-party/samd21e15a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21e15a.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21e15a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21e16a.h b/firmware/cpu/atmel-samd21/3rd-party/samd21e16a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21e16a.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21e16a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21e17a.h b/firmware/cpu/atmel-samd21/3rd-party/samd21e17a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21e17a.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21e17a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21e18a.h b/firmware/cpu/atmel-samd21/3rd-party/samd21e18a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21e18a.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21e18a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21g15a.h b/firmware/cpu/atmel-samd21/3rd-party/samd21g15a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21g15a.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21g15a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21g16a.h b/firmware/cpu/atmel-samd21/3rd-party/samd21g16a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21g16a.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21g16a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21g17a.h b/firmware/cpu/atmel-samd21/3rd-party/samd21g17a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21g17a.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21g17a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21g17au.h b/firmware/cpu/atmel-samd21/3rd-party/samd21g17au.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21g17au.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21g17au.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21g18a.h b/firmware/cpu/atmel-samd21/3rd-party/samd21g18a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21g18a.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21g18a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21g18au.h b/firmware/cpu/atmel-samd21/3rd-party/samd21g18au.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21g18au.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21g18au.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21j15a.h b/firmware/cpu/atmel-samd21/3rd-party/samd21j15a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21j15a.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21j15a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21j16a.h b/firmware/cpu/atmel-samd21/3rd-party/samd21j16a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21j16a.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21j16a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21j17a.h b/firmware/cpu/atmel-samd21/3rd-party/samd21j17a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21j17a.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21j17a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samd21j18a.h b/firmware/cpu/atmel-samd21/3rd-party/samd21j18a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samd21j18a.h rename to firmware/cpu/atmel-samd21/3rd-party/samd21j18a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samr21.h b/firmware/cpu/atmel-samd21/3rd-party/samr21.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samr21.h rename to firmware/cpu/atmel-samd21/3rd-party/samr21.h diff --git a/software/cpu/atmel-samd21/3rd-party/samr21e16a.h b/firmware/cpu/atmel-samd21/3rd-party/samr21e16a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samr21e16a.h rename to firmware/cpu/atmel-samd21/3rd-party/samr21e16a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samr21e17a.h b/firmware/cpu/atmel-samd21/3rd-party/samr21e17a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samr21e17a.h rename to firmware/cpu/atmel-samd21/3rd-party/samr21e17a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samr21e18a.h b/firmware/cpu/atmel-samd21/3rd-party/samr21e18a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samr21e18a.h rename to firmware/cpu/atmel-samd21/3rd-party/samr21e18a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samr21e19a.h b/firmware/cpu/atmel-samd21/3rd-party/samr21e19a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samr21e19a.h rename to firmware/cpu/atmel-samd21/3rd-party/samr21e19a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samr21g16a.h b/firmware/cpu/atmel-samd21/3rd-party/samr21g16a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samr21g16a.h rename to firmware/cpu/atmel-samd21/3rd-party/samr21g16a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samr21g17a.h b/firmware/cpu/atmel-samd21/3rd-party/samr21g17a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samr21g17a.h rename to firmware/cpu/atmel-samd21/3rd-party/samr21g17a.h diff --git a/software/cpu/atmel-samd21/3rd-party/samr21g18a.h b/firmware/cpu/atmel-samd21/3rd-party/samr21g18a.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/samr21g18a.h rename to firmware/cpu/atmel-samd21/3rd-party/samr21g18a.h diff --git a/software/cpu/atmel-samd21/3rd-party/system_samd21.h b/firmware/cpu/atmel-samd21/3rd-party/system_samd21.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/system_samd21.h rename to firmware/cpu/atmel-samd21/3rd-party/system_samd21.h diff --git a/software/cpu/atmel-samd21/3rd-party/system_samr21.h b/firmware/cpu/atmel-samd21/3rd-party/system_samr21.h similarity index 100% rename from software/cpu/atmel-samd21/3rd-party/system_samr21.h rename to firmware/cpu/atmel-samd21/3rd-party/system_samr21.h diff --git a/software/cpu/atmel-samd21/CMakeLists.txt b/firmware/cpu/atmel-samd21/CMakeLists.txt similarity index 100% rename from software/cpu/atmel-samd21/CMakeLists.txt rename to firmware/cpu/atmel-samd21/CMakeLists.txt diff --git a/software/cpu/atmel-samd21/adc.c b/firmware/cpu/atmel-samd21/adc.c similarity index 100% rename from software/cpu/atmel-samd21/adc.c rename to firmware/cpu/atmel-samd21/adc.c diff --git a/software/cpu/atmel-samd21/adc.h b/firmware/cpu/atmel-samd21/adc.h similarity index 100% rename from software/cpu/atmel-samd21/adc.h rename to firmware/cpu/atmel-samd21/adc.h diff --git a/software/cpu/atmel-samd21/arduino_platform.h b/firmware/cpu/atmel-samd21/arduino_platform.h similarity index 100% rename from software/cpu/atmel-samd21/arduino_platform.h rename to firmware/cpu/atmel-samd21/arduino_platform.h diff --git a/software/cpu/atmel-samd21/docs/SAM_D21_DA1_Family_DataSheet_DS40001882F.pdf b/firmware/cpu/atmel-samd21/docs/SAM_D21_DA1_Family_DataSheet_DS40001882F.pdf similarity index 100% rename from software/cpu/atmel-samd21/docs/SAM_D21_DA1_Family_DataSheet_DS40001882F.pdf rename to firmware/cpu/atmel-samd21/docs/SAM_D21_DA1_Family_DataSheet_DS40001882F.pdf diff --git a/software/cpu/atmel-samd21/docs/arduino_mkr_zero_2.atstart b/firmware/cpu/atmel-samd21/docs/arduino_mkr_zero_2.atstart similarity index 100% rename from software/cpu/atmel-samd21/docs/arduino_mkr_zero_2.atstart rename to firmware/cpu/atmel-samd21/docs/arduino_mkr_zero_2.atstart diff --git a/software/cpu/atmel-samd21/gpio.c b/firmware/cpu/atmel-samd21/gpio.c similarity index 100% rename from software/cpu/atmel-samd21/gpio.c rename to firmware/cpu/atmel-samd21/gpio.c diff --git a/software/cpu/atmel-samd21/gpio.h b/firmware/cpu/atmel-samd21/gpio.h similarity index 100% rename from software/cpu/atmel-samd21/gpio.h rename to firmware/cpu/atmel-samd21/gpio.h diff --git a/software/cpu/atmel-samd21/hal_gpio.h b/firmware/cpu/atmel-samd21/hal_gpio.h similarity index 100% rename from software/cpu/atmel-samd21/hal_gpio.h rename to firmware/cpu/atmel-samd21/hal_gpio.h diff --git a/software/cpu/atmel-samd21/hardware/arduino_mkr_zero_schematics.pdf b/firmware/cpu/atmel-samd21/hardware/arduino_mkr_zero_schematics.pdf similarity index 100% rename from software/cpu/atmel-samd21/hardware/arduino_mkr_zero_schematics.pdf rename to firmware/cpu/atmel-samd21/hardware/arduino_mkr_zero_schematics.pdf diff --git a/software/cpu/atmel-samd21/i2c_master.c b/firmware/cpu/atmel-samd21/i2c_master.c similarity index 100% rename from software/cpu/atmel-samd21/i2c_master.c rename to firmware/cpu/atmel-samd21/i2c_master.c diff --git a/software/cpu/atmel-samd21/i2c_master.h b/firmware/cpu/atmel-samd21/i2c_master.h similarity index 100% rename from software/cpu/atmel-samd21/i2c_master.h rename to firmware/cpu/atmel-samd21/i2c_master.h diff --git a/software/cpu/atmel-samd21/include.cmake b/firmware/cpu/atmel-samd21/include.cmake similarity index 100% rename from software/cpu/atmel-samd21/include.cmake rename to firmware/cpu/atmel-samd21/include.cmake diff --git a/software/cpu/atmel-samd21/linker/samd21g18a_flash.ld b/firmware/cpu/atmel-samd21/linker/samd21g18a_flash.ld similarity index 100% rename from software/cpu/atmel-samd21/linker/samd21g18a_flash.ld rename to firmware/cpu/atmel-samd21/linker/samd21g18a_flash.ld diff --git a/software/cpu/atmel-samd21/linker/samd21g18a_flash_without_bootloader.ld b/firmware/cpu/atmel-samd21/linker/samd21g18a_flash_without_bootloader.ld similarity index 100% rename from software/cpu/atmel-samd21/linker/samd21g18a_flash_without_bootloader.ld rename to firmware/cpu/atmel-samd21/linker/samd21g18a_flash_without_bootloader.ld diff --git a/software/cpu/atmel-samd21/linker/samd21g18a_sram.ld b/firmware/cpu/atmel-samd21/linker/samd21g18a_sram.ld similarity index 100% rename from software/cpu/atmel-samd21/linker/samd21g18a_sram.ld rename to firmware/cpu/atmel-samd21/linker/samd21g18a_sram.ld diff --git a/software/cpu/atmel-samd21/linker/samd21j18.ld b/firmware/cpu/atmel-samd21/linker/samd21j18.ld similarity index 100% rename from software/cpu/atmel-samd21/linker/samd21j18.ld rename to firmware/cpu/atmel-samd21/linker/samd21j18.ld diff --git a/software/cpu/atmel-samd21/spi_display.c b/firmware/cpu/atmel-samd21/spi_display.c similarity index 100% rename from software/cpu/atmel-samd21/spi_display.c rename to firmware/cpu/atmel-samd21/spi_display.c diff --git a/software/cpu/atmel-samd21/spi_display.h b/firmware/cpu/atmel-samd21/spi_display.h similarity index 100% rename from software/cpu/atmel-samd21/spi_display.h rename to firmware/cpu/atmel-samd21/spi_display.h diff --git a/software/cpu/atmel-samd21/spi_master.c b/firmware/cpu/atmel-samd21/spi_master.c similarity index 100% rename from software/cpu/atmel-samd21/spi_master.c rename to firmware/cpu/atmel-samd21/spi_master.c diff --git a/software/cpu/atmel-samd21/spi_master.h b/firmware/cpu/atmel-samd21/spi_master.h similarity index 100% rename from software/cpu/atmel-samd21/spi_master.h rename to firmware/cpu/atmel-samd21/spi_master.h diff --git a/software/cpu/atmel-samd21/startup_samd21.c b/firmware/cpu/atmel-samd21/startup_samd21.c similarity index 100% rename from software/cpu/atmel-samd21/startup_samd21.c rename to firmware/cpu/atmel-samd21/startup_samd21.c diff --git a/software/cpu/atmel-samd21/system_samd21.c b/firmware/cpu/atmel-samd21/system_samd21.c similarity index 100% rename from software/cpu/atmel-samd21/system_samd21.c rename to firmware/cpu/atmel-samd21/system_samd21.c diff --git a/software/cpu/atmel-samd21/uart.c b/firmware/cpu/atmel-samd21/uart.c similarity index 100% rename from software/cpu/atmel-samd21/uart.c rename to firmware/cpu/atmel-samd21/uart.c diff --git a/software/cpu/atmel-samd21/uart.h b/firmware/cpu/atmel-samd21/uart.h similarity index 100% rename from software/cpu/atmel-samd21/uart.h rename to firmware/cpu/atmel-samd21/uart.h diff --git a/software/cpu/gigadevice-gd32vf103/CMakeLists.txt b/firmware/cpu/gigadevice-gd32vf103/CMakeLists.txt similarity index 100% rename from software/cpu/gigadevice-gd32vf103/CMakeLists.txt rename to firmware/cpu/gigadevice-gd32vf103/CMakeLists.txt diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_adc.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_adc.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_adc.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_adc.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_bkp.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_bkp.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_bkp.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_bkp.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_can.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_can.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_can.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_can.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_crc.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_crc.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_crc.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_crc.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dac.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dac.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dac.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dac.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dbg.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dbg.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dbg.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dbg.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dma.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dma.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dma.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_dma.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_eclic.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_eclic.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_eclic.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_eclic.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_exmc.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_exmc.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_exmc.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_exmc.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_exti.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_exti.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_exti.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_exti.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_fmc.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_fmc.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_fmc.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_fmc.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_fwdgt.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_fwdgt.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_fwdgt.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_fwdgt.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_gpio.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_gpio.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_gpio.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_gpio.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_i2c.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_i2c.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_i2c.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_i2c.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_pmu.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_pmu.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_pmu.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_pmu.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_rcu.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_rcu.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_rcu.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_rcu.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_rtc.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_rtc.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_rtc.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_rtc.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_spi.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_spi.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_spi.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_spi.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_timer.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_timer.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_timer.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_timer.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_usart.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_usart.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_usart.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_usart.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_wwdgt.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_wwdgt.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_wwdgt.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Include/gd32vf103_wwdgt.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_adc.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_adc.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_adc.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_adc.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_bkp.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_bkp.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_bkp.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_bkp.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_can.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_can.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_can.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_can.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_crc.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_crc.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_crc.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_crc.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dac.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dac.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dac.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dac.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dbg.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dbg.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dbg.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dbg.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dma.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dma.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dma.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_dma.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_eclic.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_eclic.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_eclic.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_eclic.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_exmc.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_exmc.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_exmc.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_exmc.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_exti.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_exti.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_exti.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_exti.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_fmc.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_fmc.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_fmc.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_fmc.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_fwdgt.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_fwdgt.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_fwdgt.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_fwdgt.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_gpio.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_gpio.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_gpio.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_gpio.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_i2c.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_i2c.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_i2c.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_i2c.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_pmu.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_pmu.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_pmu.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_pmu.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_rcu.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_rcu.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_rcu.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_rcu.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_rtc.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_rtc.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_rtc.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_rtc.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_spi.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_spi.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_spi.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_spi.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_timer.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_timer.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_timer.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_timer.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_usart.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_usart.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_usart.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_usart.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_wwdgt.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_wwdgt.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_wwdgt.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/Source/gd32vf103_wwdgt.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/gd32vf103.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/gd32vf103.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/gd32vf103.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/gd32vf103.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/gd32vf103_libopt.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/gd32vf103_libopt.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/gd32vf103_libopt.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/gd32vf103_libopt.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/system_gd32vf103.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/system_gd32vf103.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/system_gd32vf103.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/system_gd32vf103.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/system_gd32vf103.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/system_gd32vf103.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/system_gd32vf103.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_standard_peripheral/system_gd32vf103.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_core.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_core.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_core.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_core.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_dev.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_dev.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_dev.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_dev.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_host.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_host.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_host.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_host.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_hw.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_hw.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_hw.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_hw.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_regs.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_regs.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_regs.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usb_regs.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usbd_int.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usbd_int.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usbd_int.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usbd_int.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usbh_int.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usbh_int.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usbh_int.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/drv_usbh_int.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usb_ch9_std.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usb_ch9_std.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usb_ch9_std.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usb_ch9_std.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_core.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_core.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_core.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_core.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_enum.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_enum.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_enum.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_enum.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_transc.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_transc.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_transc.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbd_transc.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_core.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_core.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_core.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_core.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_enum.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_enum.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_enum.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_enum.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_pipe.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_pipe.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_pipe.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_pipe.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_transc.h b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_transc.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_transc.h rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Include/usbh_transc.h diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_core.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_core.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_core.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_core.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_dev.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_dev.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_dev.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_dev.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_host.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_host.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_host.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usb_host.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usbd_int.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usbd_int.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usbd_int.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usbd_int.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usbh_int.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usbh_int.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usbh_int.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/drv_usbh_int.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_core.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_core.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_core.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_core.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_enum.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_enum.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_enum.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_enum.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_transc.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_transc.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_transc.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbd_transc.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_core.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_core.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_core.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_core.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_enum.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_enum.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_enum.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_enum.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_pipe.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_pipe.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_pipe.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_pipe.c diff --git a/software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_transc.c b/firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_transc.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_transc.c rename to firmware/cpu/gigadevice-gd32vf103/GD32VF103_usbfs_driver/Source/usbh_transc.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_eclic.h b/firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_eclic.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_eclic.h rename to firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_eclic.h diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_func.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_func.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_func.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_func.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_func.h b/firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_func.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_func.h rename to firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_func.h diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_timer.h b/firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_timer.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_timer.h rename to firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/n200_timer.h diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_bits.h b/firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_bits.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_bits.h rename to firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_bits.h diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_const.h b/firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_const.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_const.h rename to firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_const.h diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_encoding.h b/firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_encoding.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_encoding.h rename to firmware/cpu/gigadevice-gd32vf103/RISCV/drivers/riscv_encoding.h diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x4.lds b/firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x4.lds similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x4.lds rename to firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x4.lds diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x6.lds b/firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x6.lds similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x6.lds rename to firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x6.lds diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x8.lds b/firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x8.lds similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x8.lds rename to firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103x8.lds diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103xB.lds b/firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103xB.lds similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103xB.lds rename to firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/GD32VF103xB.lds diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/entry.S b/firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/entry.S similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/entry.S rename to firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/entry.S diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/handlers.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/handlers.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/handlers.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/handlers.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/init.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/init.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/init.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/init.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/start.S b/firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/start.S similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/start.S rename to firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/start.S diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/your_printf.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/your_printf.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/your_printf.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/env_Eclipse/your_printf.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/stubs/_exit.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/_exit.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/stubs/_exit.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/_exit.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/stubs/close.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/close.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/stubs/close.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/close.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/stubs/fstat.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/fstat.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/stubs/fstat.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/fstat.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/stubs/isatty.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/isatty.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/stubs/isatty.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/isatty.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/stubs/lseek.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/lseek.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/stubs/lseek.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/lseek.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/stubs/read.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/read.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/stubs/read.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/read.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/stubs/sbrk.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/sbrk.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/stubs/sbrk.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/sbrk.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/stubs/stub.h b/firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/stub.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/stubs/stub.h rename to firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/stub.h diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/stubs/write.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/write.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/stubs/write.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/write.c diff --git a/software/cpu/gigadevice-gd32vf103/RISCV/stubs/write_hex.c b/firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/write_hex.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/RISCV/stubs/write_hex.c rename to firmware/cpu/gigadevice-gd32vf103/RISCV/stubs/write_hex.c diff --git a/software/cpu/gigadevice-gd32vf103/docs/GD32VF103_User_Manual_EN_V1.2.pdf b/firmware/cpu/gigadevice-gd32vf103/docs/GD32VF103_User_Manual_EN_V1.2.pdf similarity index 100% rename from software/cpu/gigadevice-gd32vf103/docs/GD32VF103_User_Manual_EN_V1.2.pdf rename to firmware/cpu/gigadevice-gd32vf103/docs/GD32VF103_User_Manual_EN_V1.2.pdf diff --git a/software/cpu/gigadevice-gd32vf103/include.cmake b/firmware/cpu/gigadevice-gd32vf103/include.cmake similarity index 100% rename from software/cpu/gigadevice-gd32vf103/include.cmake rename to firmware/cpu/gigadevice-gd32vf103/include.cmake diff --git a/software/cpu/gigadevice-gd32vf103/svd/GD32VF103.svd b/firmware/cpu/gigadevice-gd32vf103/svd/GD32VF103.svd similarity index 100% rename from software/cpu/gigadevice-gd32vf103/svd/GD32VF103.svd rename to firmware/cpu/gigadevice-gd32vf103/svd/GD32VF103.svd diff --git a/software/cpu/gigadevice-gd32vf103/systick.c b/firmware/cpu/gigadevice-gd32vf103/systick.c similarity index 100% rename from software/cpu/gigadevice-gd32vf103/systick.c rename to firmware/cpu/gigadevice-gd32vf103/systick.c diff --git a/software/cpu/gigadevice-gd32vf103/systick.h b/firmware/cpu/gigadevice-gd32vf103/systick.h similarity index 100% rename from software/cpu/gigadevice-gd32vf103/systick.h rename to firmware/cpu/gigadevice-gd32vf103/systick.h diff --git a/software/gd32vf103_ozone.jdebug b/firmware/gd32vf103_ozone.jdebug similarity index 100% rename from software/gd32vf103_ozone.jdebug rename to firmware/gd32vf103_ozone.jdebug diff --git a/software/library/bitmap.c b/firmware/library/bitmap.c similarity index 100% rename from software/library/bitmap.c rename to firmware/library/bitmap.c diff --git a/software/library/bitmap.h b/firmware/library/bitmap.h similarity index 100% rename from software/library/bitmap.h rename to firmware/library/bitmap.h diff --git a/software/library/ili9341.c b/firmware/library/ili9341.c similarity index 100% rename from software/library/ili9341.c rename to firmware/library/ili9341.c diff --git a/software/library/ili9341.h b/firmware/library/ili9341.h similarity index 100% rename from software/library/ili9341.h rename to firmware/library/ili9341.h diff --git a/software/library/json.hpp b/firmware/library/json.hpp similarity index 100% rename from software/library/json.hpp rename to firmware/library/json.hpp diff --git a/software/library/mini_qoi.c b/firmware/library/mini_qoi.c similarity index 100% rename from software/library/mini_qoi.c rename to firmware/library/mini_qoi.c diff --git a/software/library/mini_qoi.h b/firmware/library/mini_qoi.h similarity index 100% rename from software/library/mini_qoi.h rename to firmware/library/mini_qoi.h diff --git a/software/library/qoi.h b/firmware/library/qoi.h similarity index 100% rename from software/library/qoi.h rename to firmware/library/qoi.h diff --git a/software/library/resource.h b/firmware/library/resource.h similarity index 100% rename from software/library/resource.h rename to firmware/library/resource.h diff --git a/software/library/serializers.h b/firmware/library/serializers.h similarity index 100% rename from software/library/serializers.h rename to firmware/library/serializers.h diff --git a/software/library/st7789.c b/firmware/library/st7789.c similarity index 100% rename from software/library/st7789.c rename to firmware/library/st7789.c diff --git a/software/library/st7789.h b/firmware/library/st7789.h similarity index 100% rename from software/library/st7789.h rename to firmware/library/st7789.h diff --git a/software/platform/arduino-mkr-zero/CMakeLists.txt b/firmware/platform/arduino-mkr-zero/CMakeLists.txt similarity index 100% rename from software/platform/arduino-mkr-zero/CMakeLists.txt rename to firmware/platform/arduino-mkr-zero/CMakeLists.txt diff --git a/software/platform/arduino-mkr-zero/ost_hal_wrapper.c b/firmware/platform/arduino-mkr-zero/ost_hal_wrapper.c similarity index 100% rename from software/platform/arduino-mkr-zero/ost_hal_wrapper.c rename to firmware/platform/arduino-mkr-zero/ost_hal_wrapper.c diff --git a/software/platform/qt-qml/CMakeLists.txt b/firmware/platform/qt-qml/CMakeLists.txt similarity index 100% rename from software/platform/qt-qml/CMakeLists.txt rename to firmware/platform/qt-qml/CMakeLists.txt diff --git a/software/platform/qt-qml/FrontButton.qml b/firmware/platform/qt-qml/FrontButton.qml similarity index 100% rename from software/platform/qt-qml/FrontButton.qml rename to firmware/platform/qt-qml/FrontButton.qml diff --git a/software/platform/qt-qml/README.md b/firmware/platform/qt-qml/README.md similarity index 100% rename from software/platform/qt-qml/README.md rename to firmware/platform/qt-qml/README.md diff --git a/software/platform/qt-qml/StoryTellerModel.cpp b/firmware/platform/qt-qml/StoryTellerModel.cpp similarity index 100% rename from software/platform/qt-qml/StoryTellerModel.cpp rename to firmware/platform/qt-qml/StoryTellerModel.cpp diff --git a/software/platform/qt-qml/StoryTellerModel.h b/firmware/platform/qt-qml/StoryTellerModel.h similarity index 100% rename from software/platform/qt-qml/StoryTellerModel.h rename to firmware/platform/qt-qml/StoryTellerModel.h diff --git a/software/platform/qt-qml/StoryView.qml b/firmware/platform/qt-qml/StoryView.qml similarity index 100% rename from software/platform/qt-qml/StoryView.qml rename to firmware/platform/qt-qml/StoryView.qml diff --git a/software/platform/qt-qml/default_image.bmp b/firmware/platform/qt-qml/default_image.bmp similarity index 100% rename from software/platform/qt-qml/default_image.bmp rename to firmware/platform/qt-qml/default_image.bmp diff --git a/software/platform/qt-qml/icon.rc b/firmware/platform/qt-qml/icon.rc similarity index 100% rename from software/platform/qt-qml/icon.rc rename to firmware/platform/qt-qml/icon.rc diff --git a/software/platform/qt-qml/icons/home.png b/firmware/platform/qt-qml/icons/home.png similarity index 100% rename from software/platform/qt-qml/icons/home.png rename to firmware/platform/qt-qml/icons/home.png diff --git a/software/platform/qt-qml/icons/ok.png b/firmware/platform/qt-qml/icons/ok.png similarity index 100% rename from software/platform/qt-qml/icons/ok.png rename to firmware/platform/qt-qml/icons/ok.png diff --git a/software/platform/qt-qml/icons/pause.png b/firmware/platform/qt-qml/icons/pause.png similarity index 100% rename from software/platform/qt-qml/icons/pause.png rename to firmware/platform/qt-qml/icons/pause.png diff --git a/software/platform/qt-qml/main.cpp b/firmware/platform/qt-qml/main.cpp similarity index 100% rename from software/platform/qt-qml/main.cpp rename to firmware/platform/qt-qml/main.cpp diff --git a/software/platform/qt-qml/main.qml b/firmware/platform/qt-qml/main.qml similarity index 100% rename from software/platform/qt-qml/main.qml rename to firmware/platform/qt-qml/main.qml diff --git a/software/platform/qt-qml/ost-icon.ico b/firmware/platform/qt-qml/ost-icon.ico similarity index 100% rename from software/platform/qt-qml/ost-icon.ico rename to firmware/platform/qt-qml/ost-icon.ico diff --git a/software/platform/qt-qml/ost-logo-scale320x240.png b/firmware/platform/qt-qml/ost-logo-scale320x240.png similarity index 100% rename from software/platform/qt-qml/ost-logo-scale320x240.png rename to firmware/platform/qt-qml/ost-logo-scale320x240.png diff --git a/software/platform/qt-qml/ost-logo.png b/firmware/platform/qt-qml/ost-logo.png similarity index 100% rename from software/platform/qt-qml/ost-logo.png rename to firmware/platform/qt-qml/ost-logo.png diff --git a/software/platform/qt-qml/qml.qrc b/firmware/platform/qt-qml/qml.qrc similarity index 100% rename from software/platform/qt-qml/qml.qrc rename to firmware/platform/qt-qml/qml.qrc diff --git a/software/platform/qt-qml/qtquickcontrols2.conf b/firmware/platform/qt-qml/qtquickcontrols2.conf similarity index 100% rename from software/platform/qt-qml/qtquickcontrols2.conf rename to firmware/platform/qt-qml/qtquickcontrols2.conf diff --git a/software/platform/qt-qml/screenshots/beta1.png b/firmware/platform/qt-qml/screenshots/beta1.png similarity index 100% rename from software/platform/qt-qml/screenshots/beta1.png rename to firmware/platform/qt-qml/screenshots/beta1.png diff --git a/software/platform/raspberry-pico-w/CMakeLists.txt b/firmware/platform/raspberry-pico-w/CMakeLists.txt similarity index 100% rename from software/platform/raspberry-pico-w/CMakeLists.txt rename to firmware/platform/raspberry-pico-w/CMakeLists.txt diff --git a/software/platform/raspberry-pico-w/msc_disk.c b/firmware/platform/raspberry-pico-w/msc_disk.c similarity index 100% rename from software/platform/raspberry-pico-w/msc_disk.c rename to firmware/platform/raspberry-pico-w/msc_disk.c diff --git a/software/platform/raspberry-pico-w/msc_disk.h b/firmware/platform/raspberry-pico-w/msc_disk.h similarity index 100% rename from software/platform/raspberry-pico-w/msc_disk.h rename to firmware/platform/raspberry-pico-w/msc_disk.h diff --git a/software/platform/raspberry-pico-w/pico_hal_wrapper.c b/firmware/platform/raspberry-pico-w/pico_hal_wrapper.c similarity index 100% rename from software/platform/raspberry-pico-w/pico_hal_wrapper.c rename to firmware/platform/raspberry-pico-w/pico_hal_wrapper.c diff --git a/software/platform/raspberry-pico-w/pico_i2s.c b/firmware/platform/raspberry-pico-w/pico_i2s.c similarity index 100% rename from software/platform/raspberry-pico-w/pico_i2s.c rename to firmware/platform/raspberry-pico-w/pico_i2s.c diff --git a/software/platform/raspberry-pico-w/pico_i2s.h b/firmware/platform/raspberry-pico-w/pico_i2s.h similarity index 100% rename from software/platform/raspberry-pico-w/pico_i2s.h rename to firmware/platform/raspberry-pico-w/pico_i2s.h diff --git a/software/platform/raspberry-pico-w/pico_i2s.pio b/firmware/platform/raspberry-pico-w/pico_i2s.pio similarity index 100% rename from software/platform/raspberry-pico-w/pico_i2s.pio rename to firmware/platform/raspberry-pico-w/pico_i2s.pio diff --git a/software/platform/raspberry-pico-w/pico_lcd_spi.c b/firmware/platform/raspberry-pico-w/pico_lcd_spi.c similarity index 100% rename from software/platform/raspberry-pico-w/pico_lcd_spi.c rename to firmware/platform/raspberry-pico-w/pico_lcd_spi.c diff --git a/software/platform/raspberry-pico-w/pico_lcd_spi.h b/firmware/platform/raspberry-pico-w/pico_lcd_spi.h similarity index 100% rename from software/platform/raspberry-pico-w/pico_lcd_spi.h rename to firmware/platform/raspberry-pico-w/pico_lcd_spi.h diff --git a/software/platform/raspberry-pico-w/pico_sdcard_spi.c b/firmware/platform/raspberry-pico-w/pico_sdcard_spi.c similarity index 100% rename from software/platform/raspberry-pico-w/pico_sdcard_spi.c rename to firmware/platform/raspberry-pico-w/pico_sdcard_spi.c diff --git a/software/platform/raspberry-pico-w/pico_sdcard_spi.h b/firmware/platform/raspberry-pico-w/pico_sdcard_spi.h similarity index 100% rename from software/platform/raspberry-pico-w/pico_sdcard_spi.h rename to firmware/platform/raspberry-pico-w/pico_sdcard_spi.h diff --git a/software/platform/raspberry-pico-w/pico_sdk_import.cmake b/firmware/platform/raspberry-pico-w/pico_sdk_import.cmake similarity index 100% rename from software/platform/raspberry-pico-w/pico_sdk_import.cmake rename to firmware/platform/raspberry-pico-w/pico_sdk_import.cmake diff --git a/software/platform/raspberry-pico-w/pio_rotary_encoder.pio b/firmware/platform/raspberry-pico-w/pio_rotary_encoder.pio similarity index 100% rename from software/platform/raspberry-pico-w/pio_rotary_encoder.pio rename to firmware/platform/raspberry-pico-w/pio_rotary_encoder.pio diff --git a/software/platform/raspberry-pico-w/rp2040.svd b/firmware/platform/raspberry-pico-w/rp2040.svd similarity index 100% rename from software/platform/raspberry-pico-w/rp2040.svd rename to firmware/platform/raspberry-pico-w/rp2040.svd diff --git a/software/platform/raspberry-pico-w/tusb_config.h b/firmware/platform/raspberry-pico-w/tusb_config.h similarity index 100% rename from software/platform/raspberry-pico-w/tusb_config.h rename to firmware/platform/raspberry-pico-w/tusb_config.h diff --git a/software/platform/raspberry-pico-w/usb_descriptors.c b/firmware/platform/raspberry-pico-w/usb_descriptors.c similarity index 100% rename from software/platform/raspberry-pico-w/usb_descriptors.c rename to firmware/platform/raspberry-pico-w/usb_descriptors.c diff --git a/software/platform/sipeed-longan-nano/CMakeLists.txt b/firmware/platform/sipeed-longan-nano/CMakeLists.txt similarity index 100% rename from software/platform/sipeed-longan-nano/CMakeLists.txt rename to firmware/platform/sipeed-longan-nano/CMakeLists.txt diff --git a/software/platform/sipeed-longan-nano/audio.c b/firmware/platform/sipeed-longan-nano/audio.c similarity index 100% rename from software/platform/sipeed-longan-nano/audio.c rename to firmware/platform/sipeed-longan-nano/audio.c diff --git a/software/platform/sipeed-longan-nano/audio.h b/firmware/platform/sipeed-longan-nano/audio.h similarity index 100% rename from software/platform/sipeed-longan-nano/audio.h rename to firmware/platform/sipeed-longan-nano/audio.h diff --git a/software/platform/sipeed-longan-nano/i2s.c b/firmware/platform/sipeed-longan-nano/i2s.c similarity index 100% rename from software/platform/sipeed-longan-nano/i2s.c rename to firmware/platform/sipeed-longan-nano/i2s.c diff --git a/software/platform/sipeed-longan-nano/i2s.h b/firmware/platform/sipeed-longan-nano/i2s.h similarity index 100% rename from software/platform/sipeed-longan-nano/i2s.h rename to firmware/platform/sipeed-longan-nano/i2s.h diff --git a/software/platform/sipeed-longan-nano/ost_hal_wrapper.c b/firmware/platform/sipeed-longan-nano/ost_hal_wrapper.c similarity index 100% rename from software/platform/sipeed-longan-nano/ost_hal_wrapper.c rename to firmware/platform/sipeed-longan-nano/ost_hal_wrapper.c diff --git a/software/platform/sipeed-longan-nano/spi0.c b/firmware/platform/sipeed-longan-nano/spi0.c similarity index 100% rename from software/platform/sipeed-longan-nano/spi0.c rename to firmware/platform/sipeed-longan-nano/spi0.c diff --git a/software/platform/sipeed-longan-nano/spi0.h b/firmware/platform/sipeed-longan-nano/spi0.h similarity index 100% rename from software/platform/sipeed-longan-nano/spi0.h rename to firmware/platform/sipeed-longan-nano/spi0.h diff --git a/software/platform/sipeed-longan-nano/spi1.c b/firmware/platform/sipeed-longan-nano/spi1.c similarity index 100% rename from software/platform/sipeed-longan-nano/spi1.c rename to firmware/platform/sipeed-longan-nano/spi1.c diff --git a/software/platform/sipeed-longan-nano/spi1.h b/firmware/platform/sipeed-longan-nano/spi1.h similarity index 100% rename from software/platform/sipeed-longan-nano/spi1.h rename to firmware/platform/sipeed-longan-nano/spi1.h diff --git a/software/samd21_ozone.jdebug b/firmware/samd21_ozone.jdebug similarity index 100% rename from software/samd21_ozone.jdebug rename to firmware/samd21_ozone.jdebug diff --git a/software/system/audio_player.c b/firmware/system/audio_player.c similarity index 100% rename from software/system/audio_player.c rename to firmware/system/audio_player.c diff --git a/software/system/audio_player.h b/firmware/system/audio_player.h similarity index 100% rename from software/system/audio_player.h rename to firmware/system/audio_player.h diff --git a/software/system/debug.c b/firmware/system/debug.c similarity index 100% rename from software/system/debug.c rename to firmware/system/debug.c diff --git a/software/system/debug.h b/firmware/system/debug.h similarity index 100% rename from software/system/debug.h rename to firmware/system/debug.h diff --git a/software/system/ff/00history.txt b/firmware/system/ff/00history.txt similarity index 100% rename from software/system/ff/00history.txt rename to firmware/system/ff/00history.txt diff --git a/software/system/ff/00readme.txt b/firmware/system/ff/00readme.txt similarity index 100% rename from software/system/ff/00readme.txt rename to firmware/system/ff/00readme.txt diff --git a/software/system/ff/LICENSE.txt b/firmware/system/ff/LICENSE.txt similarity index 100% rename from software/system/ff/LICENSE.txt rename to firmware/system/ff/LICENSE.txt diff --git a/software/system/ff/diskio.c b/firmware/system/ff/diskio.c similarity index 100% rename from software/system/ff/diskio.c rename to firmware/system/ff/diskio.c diff --git a/software/system/ff/diskio.h b/firmware/system/ff/diskio.h similarity index 100% rename from software/system/ff/diskio.h rename to firmware/system/ff/diskio.h diff --git a/software/system/ff/ff.c b/firmware/system/ff/ff.c similarity index 100% rename from software/system/ff/ff.c rename to firmware/system/ff/ff.c diff --git a/software/system/ff/ff.h b/firmware/system/ff/ff.h similarity index 100% rename from software/system/ff/ff.h rename to firmware/system/ff/ff.h diff --git a/software/system/ff/ff_stubs.c b/firmware/system/ff/ff_stubs.c similarity index 100% rename from software/system/ff/ff_stubs.c rename to firmware/system/ff/ff_stubs.c diff --git a/software/system/ff/ffconf.h b/firmware/system/ff/ffconf.h similarity index 100% rename from software/system/ff/ffconf.h rename to firmware/system/ff/ffconf.h diff --git a/software/system/ff/ffsystem.c b/firmware/system/ff/ffsystem.c similarity index 100% rename from software/system/ff/ffsystem.c rename to firmware/system/ff/ffsystem.c diff --git a/software/system/ff/ffunicode.c b/firmware/system/ff/ffunicode.c similarity index 100% rename from software/system/ff/ffunicode.c rename to firmware/system/ff/ffunicode.c diff --git a/software/system/ff/library.json b/firmware/system/ff/library.json similarity index 100% rename from software/system/ff/library.json rename to firmware/system/ff/library.json diff --git a/software/system/ff_diskio_sdcard.c b/firmware/system/ff_diskio_sdcard.c similarity index 100% rename from software/system/ff_diskio_sdcard.c rename to firmware/system/ff_diskio_sdcard.c diff --git a/software/system/filesystem.c b/firmware/system/filesystem.c similarity index 100% rename from software/system/filesystem.c rename to firmware/system/filesystem.c diff --git a/software/system/filesystem.h b/firmware/system/filesystem.h similarity index 100% rename from software/system/filesystem.h rename to firmware/system/filesystem.h diff --git a/software/system/fs_task.c b/firmware/system/fs_task.c similarity index 100% rename from software/system/fs_task.c rename to firmware/system/fs_task.c diff --git a/software/system/fs_task.h b/firmware/system/fs_task.h similarity index 100% rename from software/system/fs_task.h rename to firmware/system/fs_task.h diff --git a/software/system/main.c b/firmware/system/main.c similarity index 100% rename from software/system/main.c rename to firmware/system/main.c diff --git a/software/system/nanoprintf.h b/firmware/system/nanoprintf.h similarity index 100% rename from software/system/nanoprintf.h rename to firmware/system/nanoprintf.h diff --git a/software/system/ost_hal.h b/firmware/system/ost_hal.h similarity index 100% rename from software/system/ost_hal.h rename to firmware/system/ost_hal.h diff --git a/software/system/qor.c b/firmware/system/qor.c similarity index 100% rename from software/system/qor.c rename to firmware/system/qor.c diff --git a/software/system/qor.h b/firmware/system/qor.h similarity index 100% rename from software/system/qor.h rename to firmware/system/qor.h diff --git a/software/system/qor_armv6m.s b/firmware/system/qor_armv6m.s similarity index 100% rename from software/system/qor_armv6m.s rename to firmware/system/qor_armv6m.s diff --git a/software/system/qor_armv7m.s b/firmware/system/qor_armv7m.s similarity index 100% rename from software/system/qor_armv7m.s rename to firmware/system/qor_armv7m.s diff --git a/software/system/rotary-button.c b/firmware/system/rotary-button.c similarity index 100% rename from software/system/rotary-button.c rename to firmware/system/rotary-button.c diff --git a/software/system/rotary-button.h b/firmware/system/rotary-button.h similarity index 100% rename from software/system/rotary-button.h rename to firmware/system/rotary-button.h diff --git a/software/system/sdcard.c b/firmware/system/sdcard.c similarity index 100% rename from software/system/sdcard.c rename to firmware/system/sdcard.c diff --git a/software/system/sdcard.h b/firmware/system/sdcard.h similarity index 100% rename from software/system/sdcard.h rename to firmware/system/sdcard.h diff --git a/software/system/system.h b/firmware/system/system.h similarity index 100% rename from software/system/system.h rename to firmware/system/system.h diff --git a/software/system/time_server.c b/firmware/system/time_server.c similarity index 100% rename from software/system/time_server.c rename to firmware/system/time_server.c diff --git a/software/system/time_server.h b/firmware/system/time_server.h similarity index 100% rename from software/system/time_server.h rename to firmware/system/time_server.h diff --git a/software/system/usb_task.c b/firmware/system/usb_task.c similarity index 100% rename from software/system/usb_task.c rename to firmware/system/usb_task.c diff --git a/software/system/usb_task.h b/firmware/system/usb_task.h similarity index 100% rename from software/system/usb_task.h rename to firmware/system/usb_task.h diff --git a/software/system/vm_task.c b/firmware/system/vm_task.c similarity index 100% rename from software/system/vm_task.c rename to firmware/system/vm_task.c diff --git a/software/system/vm_task.h b/firmware/system/vm_task.h similarity index 100% rename from software/system/vm_task.h rename to firmware/system/vm_task.h diff --git a/software/test/bmp_decoding/0_000_314CBAA1.bmp b/firmware/test/bmp_decoding/0_000_314CBAA1.bmp similarity index 100% rename from software/test/bmp_decoding/0_000_314CBAA1.bmp rename to firmware/test/bmp_decoding/0_000_314CBAA1.bmp diff --git a/software/test/bmp_decoding/CMakeLists.txt b/firmware/test/bmp_decoding/CMakeLists.txt similarity index 100% rename from software/test/bmp_decoding/CMakeLists.txt rename to firmware/test/bmp_decoding/CMakeLists.txt diff --git a/software/test/bmp_decoding/main.cpp b/firmware/test/bmp_decoding/main.cpp similarity index 100% rename from software/test/bmp_decoding/main.cpp rename to firmware/test/bmp_decoding/main.cpp diff --git a/software/test/bmp_decoding/mainwindow.cpp b/firmware/test/bmp_decoding/mainwindow.cpp similarity index 100% rename from software/test/bmp_decoding/mainwindow.cpp rename to firmware/test/bmp_decoding/mainwindow.cpp diff --git a/software/test/bmp_decoding/mainwindow.h b/firmware/test/bmp_decoding/mainwindow.h similarity index 100% rename from software/test/bmp_decoding/mainwindow.h rename to firmware/test/bmp_decoding/mainwindow.h diff --git a/software/test/bmp_decoding/mainwindow.ui b/firmware/test/bmp_decoding/mainwindow.ui similarity index 100% rename from software/test/bmp_decoding/mainwindow.ui rename to firmware/test/bmp_decoding/mainwindow.ui diff --git a/software/test/catch.hpp b/firmware/test/catch.hpp similarity index 100% rename from software/test/catch.hpp rename to firmware/test/catch.hpp diff --git a/software/test/platform_validation.c b/firmware/test/platform_validation.c similarity index 100% rename from software/test/platform_validation.c rename to firmware/test/platform_validation.c diff --git a/shared/audio_player.cpp b/shared/audio_player.cpp new file mode 100644 index 0000000..3088660 --- /dev/null +++ b/shared/audio_player.cpp @@ -0,0 +1,353 @@ +/* +Demonstrates how to load a sound file and play it back using the low-level API. + +The low-level API uses a callback to deliver audio between the application and miniaudio for playback or recording. When +in playback mode, as in this example, the application sends raw audio data to miniaudio which is then played back through +the default playback device as defined by the operating system. + +This example uses the `ma_decoder` API to load a sound and play it back. The decoder is entirely decoupled from the +device and can be used independently of it. This example only plays back a single sound file, but it's possible to play +back multiple files by simple loading multiple decoders and mixing them (do not create multiple devices to do this). See +the simple_mixing example for how best to do this. +*/ + +#define STB_VORBIS_HEADER_ONLY +#include "stb_vorbis.c" + + +#define MINIAUDIO_IMPLEMENTATION +#include "miniaudio.h" + +#include +#include +#include "audio_player.h" + +// #define MA_NO_LIBOPUS +// #include "miniaudio_libvorbis.h" +// #include "miniaudio_libopus.h" + +#include + +#if 0 + +static ma_result ma_decoding_backend_init__libvorbis(void* pUserData, ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_data_source** ppBackend) +{ + ma_result result; + ma_libvorbis* pVorbis; + + (void)pUserData; + + pVorbis = (ma_libvorbis*)ma_malloc(sizeof(*pVorbis), pAllocationCallbacks); + if (pVorbis == NULL) { + return MA_OUT_OF_MEMORY; + } + + result = ma_libvorbis_init(onRead, onSeek, onTell, pReadSeekTellUserData, pConfig, pAllocationCallbacks, pVorbis); + if (result != MA_SUCCESS) { + ma_free(pVorbis, pAllocationCallbacks); + return result; + } + + *ppBackend = pVorbis; + + return MA_SUCCESS; +} + +static ma_result ma_decoding_backend_init_file__libvorbis(void* pUserData, const char* pFilePath, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_data_source** ppBackend) +{ + ma_result result; + ma_libvorbis* pVorbis; + + (void)pUserData; + + pVorbis = (ma_libvorbis*)ma_malloc(sizeof(*pVorbis), pAllocationCallbacks); + if (pVorbis == NULL) { + return MA_OUT_OF_MEMORY; + } + + result = ma_libvorbis_init_file(pFilePath, pConfig, pAllocationCallbacks, pVorbis); + if (result != MA_SUCCESS) { + ma_free(pVorbis, pAllocationCallbacks); + return result; + } + + *ppBackend = pVorbis; + + return MA_SUCCESS; +} + +static void ma_decoding_backend_uninit__libvorbis(void* pUserData, ma_data_source* pBackend, const ma_allocation_callbacks* pAllocationCallbacks) +{ + ma_libvorbis* pVorbis = (ma_libvorbis*)pBackend; + + (void)pUserData; + + ma_libvorbis_uninit(pVorbis, pAllocationCallbacks); + ma_free(pVorbis, pAllocationCallbacks); +} + +static ma_result ma_decoding_backend_get_channel_map__libvorbis(void* pUserData, ma_data_source* pBackend, ma_channel* pChannelMap, size_t channelMapCap) +{ + ma_libvorbis* pVorbis = (ma_libvorbis*)pBackend; + + (void)pUserData; + + return ma_libvorbis_get_data_format(pVorbis, NULL, NULL, NULL, pChannelMap, channelMapCap); +} + +static ma_decoding_backend_vtable g_ma_decoding_backend_vtable_libvorbis = +{ + ma_decoding_backend_init__libvorbis, + ma_decoding_backend_init_file__libvorbis, + NULL, /* onInitFileW() */ + NULL, /* onInitMemory() */ + ma_decoding_backend_uninit__libvorbis +}; + + + +static ma_result ma_decoding_backend_init__libopus(void* pUserData, ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_data_source** ppBackend) +{ + ma_result result; + ma_libopus* pOpus; + + (void)pUserData; + + pOpus = (ma_libopus*)ma_malloc(sizeof(*pOpus), pAllocationCallbacks); + if (pOpus == NULL) { + return MA_OUT_OF_MEMORY; + } + + result = ma_libopus_init(onRead, onSeek, onTell, pReadSeekTellUserData, pConfig, pAllocationCallbacks, pOpus); + if (result != MA_SUCCESS) { + ma_free(pOpus, pAllocationCallbacks); + return result; + } + + *ppBackend = pOpus; + + return MA_SUCCESS; +} + +static ma_result ma_decoding_backend_init_file__libopus(void* pUserData, const char* pFilePath, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_data_source** ppBackend) +{ + ma_result result; + ma_libopus* pOpus; + + (void)pUserData; + + pOpus = (ma_libopus*)ma_malloc(sizeof(*pOpus), pAllocationCallbacks); + if (pOpus == NULL) { + return MA_OUT_OF_MEMORY; + } + + result = ma_libopus_init_file(pFilePath, pConfig, pAllocationCallbacks, pOpus); + if (result != MA_SUCCESS) { + ma_free(pOpus, pAllocationCallbacks); + return result; + } + + *ppBackend = pOpus; + + return MA_SUCCESS; +} + +static void ma_decoding_backend_uninit__libopus(void* pUserData, ma_data_source* pBackend, const ma_allocation_callbacks* pAllocationCallbacks) +{ + ma_libopus* pOpus = (ma_libopus*)pBackend; + + (void)pUserData; + + ma_libopus_uninit(pOpus, pAllocationCallbacks); + ma_free(pOpus, pAllocationCallbacks); +} + +static ma_result ma_decoding_backend_get_channel_map__libopus(void* pUserData, ma_data_source* pBackend, ma_channel* pChannelMap, size_t channelMapCap) +{ + ma_libopus* pOpus = (ma_libopus*)pBackend; + + (void)pUserData; + + return ma_libopus_get_data_format(pOpus, NULL, NULL, NULL, pChannelMap, channelMapCap); +} + +static ma_decoding_backend_vtable g_ma_decoding_backend_vtable_libopus = +{ + ma_decoding_backend_init__libopus, + ma_decoding_backend_init_file__libopus, + NULL, /* onInitFileW() */ + NULL, /* onInitMemory() */ + ma_decoding_backend_uninit__libopus +}; + + +#endif + +// void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount) +// { +// ma_data_source* pDataSource = (ma_data_source*)pDevice->pUserData; +// if (pDataSource == NULL) { +// return; +// } + +// ma_data_source_read_pcm_frames(pDataSource, pOutput, frameCount, NULL); + +// (void)pInput; +// } + + +static ThreadSafeQueue g_audioQueue; +static ma_decoder decoder; +static ma_device device; + +void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount) +{ + ma_decoder* pDecoder = (ma_decoder*)pDevice->pUserData; + if (pDecoder == NULL) { + return; + } + + ma_uint64 framesRead; + ma_result result = ma_decoder_read_pcm_frames(pDecoder, pOutput, frameCount, &framesRead); + + + if (result == MA_AT_END) { + g_audioQueue.push({"end", ""}); + } + // if (framesRead < frameCount) { + // // Reached the end. + // ma_event_signal(&g_stopEvent); + // } + + (void)pInput; +} + + +static int miniaudio_play(const char* filename) +{ + ma_result result; + ma_device_config deviceConfig; + short *output = NULL; + + result = ma_decoder_init_file(filename, NULL, &decoder); + if (result != MA_SUCCESS) + { + printf("Could not load file: %s\n", filename); + + // Try OGG (FIXME: plus tard, utiliser l'extension pour choisir le décodeur) + int channels = 0, sample_rate = 0; + + int sample_count = stb_vorbis_decode_filename("chemin/vers/fichier.ogg", &channels, &sample_rate, &output); + if (sample_count == -1) + { + printf("Erreur de décodage du fichier Vorbis\n"); + return -2; + } + + ma_device_config deviceConfig = ma_device_config_init(ma_device_type_playback); + deviceConfig.playback.format = ma_format_s16; + deviceConfig.playback.channels = channels; + deviceConfig.sampleRate = sample_rate; + deviceConfig.dataCallback = data_callback; + deviceConfig.pUserData = &decoder; + } + else + { + deviceConfig = ma_device_config_init(ma_device_type_playback); + deviceConfig.playback.format = decoder.outputFormat; + deviceConfig.playback.channels = decoder.outputChannels; + deviceConfig.sampleRate = decoder.outputSampleRate; + deviceConfig.dataCallback = data_callback; + deviceConfig.pUserData = &decoder; + } + + if (ma_device_init(NULL, &deviceConfig, &device) != MA_SUCCESS) { + printf("Failed to open playback device.\n"); + ma_decoder_uninit(&decoder); + if (output != NULL) + { + free(output); + } + return -3; + } + + if (ma_device_start(&device) != MA_SUCCESS) { + printf("Failed to start playback device.\n"); + ma_device_uninit(&device); + ma_decoder_uninit(&decoder); + if (output != NULL) + { + free(output); + } + return -4; + } + + if (output != NULL) + { + free(output); + } + + return 0; +} + +AudioPlayer::AudioPlayer(IAudioEvent &event) + : m_event(event) +{ + m_audioThread = std::thread( std::bind(&AudioPlayer::AudioThread, this) ); +} + +void AudioPlayer::Play(const std::string &filename) +{ + g_audioQueue.push({"play", filename}); +} + +AudioPlayer::~AudioPlayer() +{ + // Quit audio thread + g_audioQueue.push({"quit", ""}); + if (m_audioThread.joinable()) + { + m_audioThread.join(); + } +} + +void AudioPlayer::CloseAudio() +{ + ma_device_uninit(&device); + ma_decoder_uninit(&decoder); +} + +#define AUDIO_STATE_WAIT_PLAY 1 +#define AUDIO_STATE_WAIT_END 2 + +void AudioPlayer::AudioThread() +{ + int state = AUDIO_STATE_WAIT_PLAY; + for (;;) + { + auto cmd = g_audioQueue.front(); + g_audioQueue.pop(); + + if (cmd.order == "quit") { + return; + } + else if (cmd.order == "play") + { + if (state == AUDIO_STATE_WAIT_PLAY) + { + state = AUDIO_STATE_WAIT_END; + miniaudio_play(cmd.filename.c_str()); + } + } + else if (cmd.order == "end") + { + if (state == AUDIO_STATE_WAIT_END) + { + state = AUDIO_STATE_WAIT_PLAY; + CloseAudio(); + m_event.EndOfAudio(); + } + } + } +} + diff --git a/software/common/audio_player.h b/shared/audio_player.h similarity index 100% rename from software/common/audio_player.h rename to shared/audio_player.h diff --git a/software/library/library_manager.cpp b/shared/library_manager.cpp similarity index 100% rename from software/library/library_manager.cpp rename to shared/library_manager.cpp diff --git a/software/library/library_manager.h b/shared/library_manager.h similarity index 100% rename from software/library/library_manager.h rename to shared/library_manager.h diff --git a/software/library/miniaudio.h b/shared/miniaudio.h similarity index 100% rename from software/library/miniaudio.h rename to shared/miniaudio.h diff --git a/software/library/resource_manager.cpp b/shared/resource_manager.cpp similarity index 100% rename from software/library/resource_manager.cpp rename to shared/resource_manager.cpp diff --git a/software/library/resource_manager.h b/shared/resource_manager.h similarity index 100% rename from software/library/resource_manager.h rename to shared/resource_manager.h diff --git a/software/library/stb_vorbis.c b/shared/stb_vorbis.c similarity index 100% rename from software/library/stb_vorbis.c rename to shared/stb_vorbis.c diff --git a/software/library/story_project.cpp b/shared/story_project.cpp similarity index 100% rename from software/library/story_project.cpp rename to shared/story_project.cpp diff --git a/software/library/story_project.h b/shared/story_project.h similarity index 100% rename from software/library/story_project.h rename to shared/story_project.h diff --git a/software/library/thread_pool.hpp b/shared/thread_pool.hpp similarity index 100% rename from software/library/thread_pool.hpp rename to shared/thread_pool.hpp diff --git a/software/library/thread_safe_queue.h b/shared/thread_safe_queue.h similarity index 100% rename from software/library/thread_safe_queue.h rename to shared/thread_safe_queue.h diff --git a/software/common/tlv.h b/shared/tlv.h similarity index 100% rename from software/common/tlv.h rename to shared/tlv.h diff --git a/software/library/uuid.h b/shared/uuid.h similarity index 100% rename from software/library/uuid.h rename to shared/uuid.h diff --git a/software/common/audio_player.cpp b/software/common/audio_player.cpp deleted file mode 100644 index e60112d..0000000 --- a/software/common/audio_player.cpp +++ /dev/null @@ -1,142 +0,0 @@ -/* -Demonstrates how to load a sound file and play it back using the low-level API. - -The low-level API uses a callback to deliver audio between the application and miniaudio for playback or recording. When -in playback mode, as in this example, the application sends raw audio data to miniaudio which is then played back through -the default playback device as defined by the operating system. - -This example uses the `ma_decoder` API to load a sound and play it back. The decoder is entirely decoupled from the -device and can be used independently of it. This example only plays back a single sound file, but it's possible to play -back multiple files by simple loading multiple decoders and mixing them (do not create multiple devices to do this). See -the simple_mixing example for how best to do this. -*/ -#define MINIAUDIO_IMPLEMENTATION -#include "miniaudio.h" - -#include -#include -#include "audio_player.h" - - -static ThreadSafeQueue g_audioQueue; -static ma_decoder decoder; -static ma_device device; - -void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount) -{ - ma_decoder* pDecoder = (ma_decoder*)pDevice->pUserData; - if (pDecoder == NULL) { - return; - } - - ma_uint64 framesRead; - ma_result result = ma_decoder_read_pcm_frames(pDecoder, pOutput, frameCount, &framesRead); - - - if (result == MA_AT_END) { - g_audioQueue.push({"end", ""}); - } - // if (framesRead < frameCount) { - // // Reached the end. - // ma_event_signal(&g_stopEvent); - // } - - (void)pInput; -} - - -static int miniaudio_play(const char* filename) -{ - ma_result result; - ma_device_config deviceConfig; - - result = ma_decoder_init_file(filename, NULL, &decoder); - if (result != MA_SUCCESS) { - printf("Could not load file: %s\n", filename); - return -2; - } - - deviceConfig = ma_device_config_init(ma_device_type_playback); - deviceConfig.playback.format = decoder.outputFormat; - deviceConfig.playback.channels = decoder.outputChannels; - deviceConfig.sampleRate = decoder.outputSampleRate; - deviceConfig.dataCallback = data_callback; - deviceConfig.pUserData = &decoder; - - if (ma_device_init(NULL, &deviceConfig, &device) != MA_SUCCESS) { - printf("Failed to open playback device.\n"); - ma_decoder_uninit(&decoder); - return -3; - } - - if (ma_device_start(&device) != MA_SUCCESS) { - printf("Failed to start playback device.\n"); - ma_device_uninit(&device); - ma_decoder_uninit(&decoder); - return -4; - } - - return 0; -} - -AudioPlayer::AudioPlayer(IAudioEvent &event) - : m_event(event) -{ - m_audioThread = std::thread( std::bind(&AudioPlayer::AudioThread, this) ); -} - -void AudioPlayer::Play(const std::string &filename) -{ - g_audioQueue.push({"play", filename}); -} - -AudioPlayer::~AudioPlayer() -{ - // Quit audio thread - g_audioQueue.push({"quit", ""}); - if (m_audioThread.joinable()) - { - m_audioThread.join(); - } -} - -void AudioPlayer::CloseAudio() -{ - ma_device_uninit(&device); - ma_decoder_uninit(&decoder); -} - -#define AUDIO_STATE_WAIT_PLAY 1 -#define AUDIO_STATE_WAIT_END 2 - -void AudioPlayer::AudioThread() -{ - int state = AUDIO_STATE_WAIT_PLAY; - for (;;) - { - auto cmd = g_audioQueue.front(); - g_audioQueue.pop(); - - if (cmd.order == "quit") { - return; - } - else if (cmd.order == "play") - { - if (state == AUDIO_STATE_WAIT_PLAY) - { - state = AUDIO_STATE_WAIT_END; - miniaudio_play(cmd.filename.c_str()); - } - } - else if (cmd.order == "end") - { - if (state == AUDIO_STATE_WAIT_END) - { - state = AUDIO_STATE_WAIT_PLAY; - CloseAudio(); - m_event.EndOfAudio(); - } - } - } -} - diff --git a/software/library/miniaudio_libopus.h b/software/library/miniaudio_libopus.h deleted file mode 100644 index d2c0ee4..0000000 --- a/software/library/miniaudio_libopus.h +++ /dev/null @@ -1,496 +0,0 @@ -/* -This implements a data source that decodes Opus streams via libopus + libopusfile - -This object can be plugged into any `ma_data_source_*()` API and can also be used as a custom -decoding backend. See the custom_decoder example. - -You need to include this file after miniaudio.h. -*/ -#ifndef miniaudio_libopus_h -#define miniaudio_libopus_h - -#ifdef __cplusplus -extern "C" { -#endif - -#if !defined(MA_NO_LIBOPUS) -#include -#endif - -typedef struct -{ - ma_data_source_base ds; /* The libopus decoder can be used independently as a data source. */ - ma_read_proc onRead; - ma_seek_proc onSeek; - ma_tell_proc onTell; - void* pReadSeekTellUserData; - ma_format format; /* Will be either f32 or s16. */ -#if !defined(MA_NO_LIBOPUS) - OggOpusFile* of; -#endif -} ma_libopus; - -MA_API ma_result ma_libopus_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_libopus* pOpus); -MA_API ma_result ma_libopus_init_file(const char* pFilePath, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_libopus* pOpus); -MA_API void ma_libopus_uninit(ma_libopus* pOpus, const ma_allocation_callbacks* pAllocationCallbacks); -MA_API ma_result ma_libopus_read_pcm_frames(ma_libopus* pOpus, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead); -MA_API ma_result ma_libopus_seek_to_pcm_frame(ma_libopus* pOpus, ma_uint64 frameIndex); -MA_API ma_result ma_libopus_get_data_format(ma_libopus* pOpus, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate, ma_channel* pChannelMap, size_t channelMapCap); -MA_API ma_result ma_libopus_get_cursor_in_pcm_frames(ma_libopus* pOpus, ma_uint64* pCursor); -MA_API ma_result ma_libopus_get_length_in_pcm_frames(ma_libopus* pOpus, ma_uint64* pLength); - -#ifdef __cplusplus -} -#endif -#endif - -#if defined(MINIAUDIO_IMPLEMENTATION) || defined(MA_IMPLEMENTATION) - -static ma_result ma_libopus_ds_read(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) -{ - return ma_libopus_read_pcm_frames((ma_libopus*)pDataSource, pFramesOut, frameCount, pFramesRead); -} - -static ma_result ma_libopus_ds_seek(ma_data_source* pDataSource, ma_uint64 frameIndex) -{ - return ma_libopus_seek_to_pcm_frame((ma_libopus*)pDataSource, frameIndex); -} - -static ma_result ma_libopus_ds_get_data_format(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate, ma_channel* pChannelMap, size_t channelMapCap) -{ - return ma_libopus_get_data_format((ma_libopus*)pDataSource, pFormat, pChannels, pSampleRate, pChannelMap, channelMapCap); -} - -static ma_result ma_libopus_ds_get_cursor(ma_data_source* pDataSource, ma_uint64* pCursor) -{ - return ma_libopus_get_cursor_in_pcm_frames((ma_libopus*)pDataSource, pCursor); -} - -static ma_result ma_libopus_ds_get_length(ma_data_source* pDataSource, ma_uint64* pLength) -{ - return ma_libopus_get_length_in_pcm_frames((ma_libopus*)pDataSource, pLength); -} - -static ma_data_source_vtable g_ma_libopus_ds_vtable = -{ - ma_libopus_ds_read, - ma_libopus_ds_seek, - ma_libopus_ds_get_data_format, - ma_libopus_ds_get_cursor, - ma_libopus_ds_get_length -}; - - -#if !defined(MA_NO_LIBOPUS) -static int ma_libopus_of_callback__read(void* pUserData, unsigned char* pBufferOut, int bytesToRead) -{ - ma_libopus* pOpus = (ma_libopus*)pUserData; - ma_result result; - size_t bytesRead; - - result = pOpus->onRead(pOpus->pReadSeekTellUserData, (void*)pBufferOut, bytesToRead, &bytesRead); - - if (result != MA_SUCCESS) { - return -1; - } - - return (int)bytesRead; -} - -static int ma_libopus_of_callback__seek(void* pUserData, ogg_int64_t offset, int whence) -{ - ma_libopus* pOpus = (ma_libopus*)pUserData; - ma_result result; - ma_seek_origin origin; - - if (whence == SEEK_SET) { - origin = ma_seek_origin_start; - } else if (whence == SEEK_END) { - origin = ma_seek_origin_end; - } else { - origin = ma_seek_origin_current; - } - - result = pOpus->onSeek(pOpus->pReadSeekTellUserData, offset, origin); - if (result != MA_SUCCESS) { - return -1; - } - - return 0; -} - -static opus_int64 ma_libopus_of_callback__tell(void* pUserData) -{ - ma_libopus* pOpus = (ma_libopus*)pUserData; - ma_result result; - ma_int64 cursor; - - if (pOpus->onTell == NULL) { - return -1; - } - - result = pOpus->onTell(pOpus->pReadSeekTellUserData, &cursor); - if (result != MA_SUCCESS) { - return -1; - } - - return cursor; -} -#endif - -static ma_result ma_libopus_init_internal(const ma_decoding_backend_config* pConfig, ma_libopus* pOpus) -{ - ma_result result; - ma_data_source_config dataSourceConfig; - - if (pOpus == NULL) { - return MA_INVALID_ARGS; - } - - MA_ZERO_OBJECT(pOpus); - pOpus->format = ma_format_f32; /* f32 by default. */ - - if (pConfig != NULL && (pConfig->preferredFormat == ma_format_f32 || pConfig->preferredFormat == ma_format_s16)) { - pOpus->format = pConfig->preferredFormat; - } else { - /* Getting here means something other than f32 and s16 was specified. Just leave this unset to use the default format. */ - } - - dataSourceConfig = ma_data_source_config_init(); - dataSourceConfig.vtable = &g_ma_libopus_ds_vtable; - - result = ma_data_source_init(&dataSourceConfig, &pOpus->ds); - if (result != MA_SUCCESS) { - return result; /* Failed to initialize the base data source. */ - } - - return MA_SUCCESS; -} - -MA_API ma_result ma_libopus_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_libopus* pOpus) -{ - ma_result result; - - (void)pAllocationCallbacks; /* Can't seem to find a way to configure memory allocations in libopus. */ - - result = ma_libopus_init_internal(pConfig, pOpus); - if (result != MA_SUCCESS) { - return result; - } - - if (onRead == NULL || onSeek == NULL) { - return MA_INVALID_ARGS; /* onRead and onSeek are mandatory. */ - } - - pOpus->onRead = onRead; - pOpus->onSeek = onSeek; - pOpus->onTell = onTell; - pOpus->pReadSeekTellUserData = pReadSeekTellUserData; - - #if !defined(MA_NO_LIBOPUS) - { - int libopusResult; - OpusFileCallbacks libopusCallbacks; - - /* We can now initialize the Opus decoder. This must be done after we've set up the callbacks. */ - libopusCallbacks.read = ma_libopus_of_callback__read; - libopusCallbacks.seek = ma_libopus_of_callback__seek; - libopusCallbacks.close = NULL; - libopusCallbacks.tell = ma_libopus_of_callback__tell; - - pOpus->of = op_open_callbacks(pOpus, &libopusCallbacks, NULL, 0, &libopusResult); - if (pOpus->of == NULL) { - return MA_INVALID_FILE; - } - - return MA_SUCCESS; - } - #else - { - /* libopus is disabled. */ - return MA_NOT_IMPLEMENTED; - } - #endif -} - -MA_API ma_result ma_libopus_init_file(const char* pFilePath, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_libopus* pOpus) -{ - ma_result result; - - (void)pAllocationCallbacks; /* Can't seem to find a way to configure memory allocations in libopus. */ - - result = ma_libopus_init_internal(pConfig, pOpus); - if (result != MA_SUCCESS) { - return result; - } - - #if !defined(MA_NO_LIBOPUS) - { - int libopusResult; - - pOpus->of = op_open_file(pFilePath, &libopusResult); - if (pOpus->of == NULL) { - return MA_INVALID_FILE; - } - - return MA_SUCCESS; - } - #else - { - /* libopus is disabled. */ - (void)pFilePath; - return MA_NOT_IMPLEMENTED; - } - #endif -} - -MA_API void ma_libopus_uninit(ma_libopus* pOpus, const ma_allocation_callbacks* pAllocationCallbacks) -{ - if (pOpus == NULL) { - return; - } - - (void)pAllocationCallbacks; - - #if !defined(MA_NO_LIBOPUS) - { - op_free(pOpus->of); - } - #else - { - /* libopus is disabled. Should never hit this since initialization would have failed. */ - MA_ASSERT(MA_FALSE); - } - #endif - - ma_data_source_uninit(&pOpus->ds); -} - -MA_API ma_result ma_libopus_read_pcm_frames(ma_libopus* pOpus, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) -{ - if (pFramesRead != NULL) { - *pFramesRead = 0; - } - - if (frameCount == 0) { - return MA_INVALID_ARGS; - } - - if (pOpus == NULL) { - return MA_INVALID_ARGS; - } - - #if !defined(MA_NO_LIBOPUS) - { - /* We always use floating point format. */ - ma_result result = MA_SUCCESS; /* Must be initialized to MA_SUCCESS. */ - ma_uint64 totalFramesRead; - ma_format format; - ma_uint32 channels; - - ma_libopus_get_data_format(pOpus, &format, &channels, NULL, NULL, 0); - - totalFramesRead = 0; - while (totalFramesRead < frameCount) { - long libopusResult; - int framesToRead; - ma_uint64 framesRemaining; - - framesRemaining = (frameCount - totalFramesRead); - framesToRead = 1024; - if (framesToRead > framesRemaining) { - framesToRead = (int)framesRemaining; - } - - if (format == ma_format_f32) { - libopusResult = op_read_float(pOpus->of, (float*)ma_offset_pcm_frames_ptr(pFramesOut, totalFramesRead, format, channels), framesToRead * channels, NULL); - } else { - libopusResult = op_read (pOpus->of, (opus_int16*)ma_offset_pcm_frames_ptr(pFramesOut, totalFramesRead, format, channels), framesToRead * channels, NULL); - } - - if (libopusResult < 0) { - result = MA_ERROR; /* Error while decoding. */ - break; - } else { - totalFramesRead += libopusResult; - - if (libopusResult == 0) { - result = MA_AT_END; - break; - } - } - } - - if (pFramesRead != NULL) { - *pFramesRead = totalFramesRead; - } - - if (result == MA_SUCCESS && totalFramesRead == 0) { - result = MA_AT_END; - } - - return result; - } - #else - { - /* libopus is disabled. Should never hit this since initialization would have failed. */ - MA_ASSERT(MA_FALSE); - - (void)pFramesOut; - (void)frameCount; - (void)pFramesRead; - - return MA_NOT_IMPLEMENTED; - } - #endif -} - -MA_API ma_result ma_libopus_seek_to_pcm_frame(ma_libopus* pOpus, ma_uint64 frameIndex) -{ - if (pOpus == NULL) { - return MA_INVALID_ARGS; - } - - #if !defined(MA_NO_LIBOPUS) - { - int libopusResult = op_pcm_seek(pOpus->of, (ogg_int64_t)frameIndex); - if (libopusResult != 0) { - if (libopusResult == OP_ENOSEEK) { - return MA_INVALID_OPERATION; /* Not seekable. */ - } else if (libopusResult == OP_EINVAL) { - return MA_INVALID_ARGS; - } else { - return MA_ERROR; - } - } - - return MA_SUCCESS; - } - #else - { - /* libopus is disabled. Should never hit this since initialization would have failed. */ - MA_ASSERT(MA_FALSE); - - (void)frameIndex; - - return MA_NOT_IMPLEMENTED; - } - #endif -} - -MA_API ma_result ma_libopus_get_data_format(ma_libopus* pOpus, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate, ma_channel* pChannelMap, size_t channelMapCap) -{ - /* Defaults for safety. */ - if (pFormat != NULL) { - *pFormat = ma_format_unknown; - } - if (pChannels != NULL) { - *pChannels = 0; - } - if (pSampleRate != NULL) { - *pSampleRate = 0; - } - if (pChannelMap != NULL) { - MA_ZERO_MEMORY(pChannelMap, sizeof(*pChannelMap) * channelMapCap); - } - - if (pOpus == NULL) { - return MA_INVALID_OPERATION; - } - - if (pFormat != NULL) { - *pFormat = pOpus->format; - } - - #if !defined(MA_NO_LIBOPUS) - { - ma_uint32 channels = op_channel_count(pOpus->of, -1); - - if (pChannels != NULL) { - *pChannels = channels; - } - - if (pSampleRate != NULL) { - *pSampleRate = 48000; - } - - if (pChannelMap != NULL) { - ma_channel_map_init_standard(ma_standard_channel_map_vorbis, pChannelMap, channelMapCap, channels); - } - - return MA_SUCCESS; - } - #else - { - /* libopus is disabled. Should never hit this since initialization would have failed. */ - MA_ASSERT(MA_FALSE); - return MA_NOT_IMPLEMENTED; - } - #endif -} - -MA_API ma_result ma_libopus_get_cursor_in_pcm_frames(ma_libopus* pOpus, ma_uint64* pCursor) -{ - if (pCursor == NULL) { - return MA_INVALID_ARGS; - } - - *pCursor = 0; /* Safety. */ - - if (pOpus == NULL) { - return MA_INVALID_ARGS; - } - - #if !defined(MA_NO_LIBOPUS) - { - ogg_int64_t offset = op_pcm_tell(pOpus->of); - if (offset < 0) { - return MA_INVALID_FILE; - } - - *pCursor = (ma_uint64)offset; - - return MA_SUCCESS; - } - #else - { - /* libopus is disabled. Should never hit this since initialization would have failed. */ - MA_ASSERT(MA_FALSE); - return MA_NOT_IMPLEMENTED; - } - #endif -} - -MA_API ma_result ma_libopus_get_length_in_pcm_frames(ma_libopus* pOpus, ma_uint64* pLength) -{ - if (pLength == NULL) { - return MA_INVALID_ARGS; - } - - *pLength = 0; /* Safety. */ - - if (pOpus == NULL) { - return MA_INVALID_ARGS; - } - - #if !defined(MA_NO_LIBOPUS) - { - ogg_int64_t length = op_pcm_total(pOpus->of, -1); - if (length < 0) { - return MA_ERROR; - } - - *pLength = (ma_uint64)length; - - return MA_SUCCESS; - } - #else - { - /* libopus is disabled. Should never hit this since initialization would have failed. */ - MA_ASSERT(MA_FALSE); - return MA_NOT_IMPLEMENTED; - } - #endif -} - -#endif diff --git a/software/library/miniaudio_libvorbis.h b/software/library/miniaudio_libvorbis.h deleted file mode 100644 index 9a62358..0000000 --- a/software/library/miniaudio_libvorbis.h +++ /dev/null @@ -1,516 +0,0 @@ -/* -This implements a data source that decodes Vorbis streams via libvorbis + libvorbisfile - -This object can be plugged into any `ma_data_source_*()` API and can also be used as a custom -decoding backend. See the custom_decoder example. - -You need to include this file after miniaudio.h. -*/ -#ifndef miniaudio_libvorbis_h -#define miniaudio_libvorbis_h - -#ifdef __cplusplus -extern "C" { -#endif - -#if !defined(MA_NO_LIBVORBIS) -#ifndef OV_EXCLUDE_STATIC_CALLBACKS -#define OV_EXCLUDE_STATIC_CALLBACKS -#endif -#include -#endif - -typedef struct -{ - ma_data_source_base ds; /* The libvorbis decoder can be used independently as a data source. */ - ma_read_proc onRead; - ma_seek_proc onSeek; - ma_tell_proc onTell; - void* pReadSeekTellUserData; - ma_format format; /* Will be either f32 or s16. */ -#if !defined(MA_NO_LIBVORBIS) - OggVorbis_File vf; -#endif -} ma_libvorbis; - -MA_API ma_result ma_libvorbis_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_libvorbis* pVorbis); -MA_API ma_result ma_libvorbis_init_file(const char* pFilePath, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_libvorbis* pVorbis); -MA_API void ma_libvorbis_uninit(ma_libvorbis* pVorbis, const ma_allocation_callbacks* pAllocationCallbacks); -MA_API ma_result ma_libvorbis_read_pcm_frames(ma_libvorbis* pVorbis, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead); -MA_API ma_result ma_libvorbis_seek_to_pcm_frame(ma_libvorbis* pVorbis, ma_uint64 frameIndex); -MA_API ma_result ma_libvorbis_get_data_format(ma_libvorbis* pVorbis, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate, ma_channel* pChannelMap, size_t channelMapCap); -MA_API ma_result ma_libvorbis_get_cursor_in_pcm_frames(ma_libvorbis* pVorbis, ma_uint64* pCursor); -MA_API ma_result ma_libvorbis_get_length_in_pcm_frames(ma_libvorbis* pVorbis, ma_uint64* pLength); - -#ifdef __cplusplus -} -#endif -#endif - -#if defined(MINIAUDIO_IMPLEMENTATION) || defined(MA_IMPLEMENTATION) - -static ma_result ma_libvorbis_ds_read(ma_data_source* pDataSource, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) -{ - return ma_libvorbis_read_pcm_frames((ma_libvorbis*)pDataSource, pFramesOut, frameCount, pFramesRead); -} - -static ma_result ma_libvorbis_ds_seek(ma_data_source* pDataSource, ma_uint64 frameIndex) -{ - return ma_libvorbis_seek_to_pcm_frame((ma_libvorbis*)pDataSource, frameIndex); -} - -static ma_result ma_libvorbis_ds_get_data_format(ma_data_source* pDataSource, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate, ma_channel* pChannelMap, size_t channelMapCap) -{ - return ma_libvorbis_get_data_format((ma_libvorbis*)pDataSource, pFormat, pChannels, pSampleRate, pChannelMap, channelMapCap); -} - -static ma_result ma_libvorbis_ds_get_cursor(ma_data_source* pDataSource, ma_uint64* pCursor) -{ - return ma_libvorbis_get_cursor_in_pcm_frames((ma_libvorbis*)pDataSource, pCursor); -} - -static ma_result ma_libvorbis_ds_get_length(ma_data_source* pDataSource, ma_uint64* pLength) -{ - return ma_libvorbis_get_length_in_pcm_frames((ma_libvorbis*)pDataSource, pLength); -} - -static ma_data_source_vtable g_ma_libvorbis_ds_vtable = -{ - ma_libvorbis_ds_read, - ma_libvorbis_ds_seek, - ma_libvorbis_ds_get_data_format, - ma_libvorbis_ds_get_cursor, - ma_libvorbis_ds_get_length -}; - - -#if !defined(MA_NO_LIBVORBIS) -static size_t ma_libvorbis_vf_callback__read(void* pBufferOut, size_t size, size_t count, void* pUserData) -{ - ma_libvorbis* pVorbis = (ma_libvorbis*)pUserData; - ma_result result; - size_t bytesToRead; - size_t bytesRead; - - /* For consistency with fread(). If `size` of `count` is 0, return 0 immediately without changing anything. */ - if (size == 0 || count == 0) { - return 0; - } - - bytesToRead = size * count; - result = pVorbis->onRead(pVorbis->pReadSeekTellUserData, pBufferOut, bytesToRead, &bytesRead); - if (result != MA_SUCCESS) { - /* Not entirely sure what to return here. What if an error occurs, but some data was read and bytesRead is > 0? */ - return 0; - } - - return bytesRead / size; -} - -static int ma_libvorbis_vf_callback__seek(void* pUserData, ogg_int64_t offset, int whence) -{ - ma_libvorbis* pVorbis = (ma_libvorbis*)pUserData; - ma_result result; - ma_seek_origin origin; - - if (whence == SEEK_SET) { - origin = ma_seek_origin_start; - } else if (whence == SEEK_END) { - origin = ma_seek_origin_end; - } else { - origin = ma_seek_origin_current; - } - - result = pVorbis->onSeek(pVorbis->pReadSeekTellUserData, offset, origin); - if (result != MA_SUCCESS) { - return -1; - } - - return 0; -} - -static long ma_libvorbis_vf_callback__tell(void* pUserData) -{ - ma_libvorbis* pVorbis = (ma_libvorbis*)pUserData; - ma_result result; - ma_int64 cursor; - - result = pVorbis->onTell(pVorbis->pReadSeekTellUserData, &cursor); - if (result != MA_SUCCESS) { - return -1; - } - - return (long)cursor; -} -#endif - -static ma_result ma_libvorbis_init_internal(const ma_decoding_backend_config* pConfig, ma_libvorbis* pVorbis) -{ - ma_result result; - ma_data_source_config dataSourceConfig; - - if (pVorbis == NULL) { - return MA_INVALID_ARGS; - } - - MA_ZERO_OBJECT(pVorbis); - pVorbis->format = ma_format_f32; /* f32 by default. */ - - if (pConfig != NULL && (pConfig->preferredFormat == ma_format_f32 || pConfig->preferredFormat == ma_format_s16)) { - pVorbis->format = pConfig->preferredFormat; - } else { - /* Getting here means something other than f32 and s16 was specified. Just leave this unset to use the default format. */ - } - - dataSourceConfig = ma_data_source_config_init(); - dataSourceConfig.vtable = &g_ma_libvorbis_ds_vtable; - - result = ma_data_source_init(&dataSourceConfig, &pVorbis->ds); - if (result != MA_SUCCESS) { - return result; /* Failed to initialize the base data source. */ - } - - return MA_SUCCESS; -} - -MA_API ma_result ma_libvorbis_init(ma_read_proc onRead, ma_seek_proc onSeek, ma_tell_proc onTell, void* pReadSeekTellUserData, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_libvorbis* pVorbis) -{ - ma_result result; - - (void)pAllocationCallbacks; /* Can't seem to find a way to configure memory allocations in libvorbis. */ - - result = ma_libvorbis_init_internal(pConfig, pVorbis); - if (result != MA_SUCCESS) { - return result; - } - - if (onRead == NULL || onSeek == NULL) { - return MA_INVALID_ARGS; /* onRead and onSeek are mandatory. */ - } - - pVorbis->onRead = onRead; - pVorbis->onSeek = onSeek; - pVorbis->onTell = onTell; - pVorbis->pReadSeekTellUserData = pReadSeekTellUserData; - - #if !defined(MA_NO_LIBVORBIS) - { - int libvorbisResult; - ov_callbacks libvorbisCallbacks; - - /* We can now initialize the vorbis decoder. This must be done after we've set up the callbacks. */ - libvorbisCallbacks.read_func = ma_libvorbis_vf_callback__read; - libvorbisCallbacks.seek_func = ma_libvorbis_vf_callback__seek; - libvorbisCallbacks.close_func = NULL; - libvorbisCallbacks.tell_func = ma_libvorbis_vf_callback__tell; - - libvorbisResult = ov_open_callbacks(pVorbis, &pVorbis->vf, NULL, 0, libvorbisCallbacks); - if (libvorbisResult < 0) { - return MA_INVALID_FILE; - } - - return MA_SUCCESS; - } - #else - { - /* libvorbis is disabled. */ - return MA_NOT_IMPLEMENTED; - } - #endif -} - -MA_API ma_result ma_libvorbis_init_file(const char* pFilePath, const ma_decoding_backend_config* pConfig, const ma_allocation_callbacks* pAllocationCallbacks, ma_libvorbis* pVorbis) -{ - ma_result result; - - (void)pAllocationCallbacks; /* Can't seem to find a way to configure memory allocations in libvorbis. */ - - result = ma_libvorbis_init_internal(pConfig, pVorbis); - if (result != MA_SUCCESS) { - return result; - } - - #if !defined(MA_NO_LIBVORBIS) - { - int libvorbisResult; - - libvorbisResult = ov_fopen(pFilePath, &pVorbis->vf); - if (libvorbisResult < 0) { - return MA_INVALID_FILE; - } - - return MA_SUCCESS; - } - #else - { - /* libvorbis is disabled. */ - (void)pFilePath; - return MA_NOT_IMPLEMENTED; - } - #endif -} - -MA_API void ma_libvorbis_uninit(ma_libvorbis* pVorbis, const ma_allocation_callbacks* pAllocationCallbacks) -{ - if (pVorbis == NULL) { - return; - } - - (void)pAllocationCallbacks; - - #if !defined(MA_NO_LIBVORBIS) - { - ov_clear(&pVorbis->vf); - } - #else - { - /* libvorbis is disabled. Should never hit this since initialization would have failed. */ - MA_ASSERT(MA_FALSE); - } - #endif - - ma_data_source_uninit(&pVorbis->ds); -} - -MA_API ma_result ma_libvorbis_read_pcm_frames(ma_libvorbis* pVorbis, void* pFramesOut, ma_uint64 frameCount, ma_uint64* pFramesRead) -{ - if (pFramesRead != NULL) { - *pFramesRead = 0; - } - - if (frameCount == 0) { - return MA_INVALID_ARGS; - } - - if (pVorbis == NULL) { - return MA_INVALID_ARGS; - } - - #if !defined(MA_NO_LIBVORBIS) - { - /* We always use floating point format. */ - ma_result result = MA_SUCCESS; /* Must be initialized to MA_SUCCESS. */ - ma_uint64 totalFramesRead; - ma_format format; - ma_uint32 channels; - - ma_libvorbis_get_data_format(pVorbis, &format, &channels, NULL, NULL, 0); - - totalFramesRead = 0; - while (totalFramesRead < frameCount) { - long libvorbisResult; - int framesToRead; - ma_uint64 framesRemaining; - - framesRemaining = (frameCount - totalFramesRead); - framesToRead = 1024; - if (framesToRead > framesRemaining) { - framesToRead = (int)framesRemaining; - } - - if (format == ma_format_f32) { - float** ppFramesF32; - - libvorbisResult = ov_read_float(&pVorbis->vf, &ppFramesF32, framesToRead, NULL); - if (libvorbisResult < 0) { - result = MA_ERROR; /* Error while decoding. */ - break; - } else { - /* Frames need to be interleaved. */ - ma_interleave_pcm_frames(format, channels, libvorbisResult, (const void**)ppFramesF32, ma_offset_pcm_frames_ptr(pFramesOut, totalFramesRead, format, channels)); - totalFramesRead += libvorbisResult; - - if (libvorbisResult == 0) { - result = MA_AT_END; - break; - } - } - } else { - libvorbisResult = ov_read(&pVorbis->vf, ma_offset_pcm_frames_ptr(pFramesOut, totalFramesRead, format, channels), framesToRead * ma_get_bytes_per_frame(format, channels), 0, 2, 1, NULL); - if (libvorbisResult < 0) { - result = MA_ERROR; /* Error while decoding. */ - break; - } else { - /* Conveniently, there's no need to interleaving when using ov_read(). I'm not sure why ov_read_float() is different in that regard... */ - totalFramesRead += libvorbisResult / ma_get_bytes_per_frame(format, channels); - - if (libvorbisResult == 0) { - result = MA_AT_END; - break; - } - } - } - } - - if (pFramesRead != NULL) { - *pFramesRead = totalFramesRead; - } - - if (result == MA_SUCCESS && totalFramesRead == 0) { - result = MA_AT_END; - } - - return result; - } - #else - { - /* libvorbis is disabled. Should never hit this since initialization would have failed. */ - MA_ASSERT(MA_FALSE); - - (void)pFramesOut; - (void)frameCount; - (void)pFramesRead; - - return MA_NOT_IMPLEMENTED; - } - #endif -} - -MA_API ma_result ma_libvorbis_seek_to_pcm_frame(ma_libvorbis* pVorbis, ma_uint64 frameIndex) -{ - if (pVorbis == NULL) { - return MA_INVALID_ARGS; - } - - #if !defined(MA_NO_LIBVORBIS) - { - int libvorbisResult = ov_pcm_seek(&pVorbis->vf, (ogg_int64_t)frameIndex); - if (libvorbisResult != 0) { - if (libvorbisResult == OV_ENOSEEK) { - return MA_INVALID_OPERATION; /* Not seekable. */ - } else if (libvorbisResult == OV_EINVAL) { - return MA_INVALID_ARGS; - } else { - return MA_ERROR; - } - } - - return MA_SUCCESS; - } - #else - { - /* libvorbis is disabled. Should never hit this since initialization would have failed. */ - MA_ASSERT(MA_FALSE); - - (void)frameIndex; - - return MA_NOT_IMPLEMENTED; - } - #endif -} - -MA_API ma_result ma_libvorbis_get_data_format(ma_libvorbis* pVorbis, ma_format* pFormat, ma_uint32* pChannels, ma_uint32* pSampleRate, ma_channel* pChannelMap, size_t channelMapCap) -{ - /* Defaults for safety. */ - if (pFormat != NULL) { - *pFormat = ma_format_unknown; - } - if (pChannels != NULL) { - *pChannels = 0; - } - if (pSampleRate != NULL) { - *pSampleRate = 0; - } - if (pChannelMap != NULL) { - MA_ZERO_MEMORY(pChannelMap, sizeof(*pChannelMap) * channelMapCap); - } - - if (pVorbis == NULL) { - return MA_INVALID_OPERATION; - } - - if (pFormat != NULL) { - *pFormat = pVorbis->format; - } - - #if !defined(MA_NO_LIBVORBIS) - { - vorbis_info* pInfo = ov_info(&pVorbis->vf, 0); - if (pInfo == NULL) { - return MA_INVALID_OPERATION; - } - - if (pChannels != NULL) { - *pChannels = pInfo->channels; - } - - if (pSampleRate != NULL) { - *pSampleRate = pInfo->rate; - } - - if (pChannelMap != NULL) { - ma_channel_map_init_standard(ma_standard_channel_map_vorbis, pChannelMap, channelMapCap, pInfo->channels); - } - - return MA_SUCCESS; - } - #else - { - /* libvorbis is disabled. Should never hit this since initialization would have failed. */ - MA_ASSERT(MA_FALSE); - return MA_NOT_IMPLEMENTED; - } - #endif -} - -MA_API ma_result ma_libvorbis_get_cursor_in_pcm_frames(ma_libvorbis* pVorbis, ma_uint64* pCursor) -{ - if (pCursor == NULL) { - return MA_INVALID_ARGS; - } - - *pCursor = 0; /* Safety. */ - - if (pVorbis == NULL) { - return MA_INVALID_ARGS; - } - - #if !defined(MA_NO_LIBVORBIS) - { - ogg_int64_t offset = ov_pcm_tell(&pVorbis->vf); - if (offset < 0) { - return MA_INVALID_FILE; - } - - *pCursor = (ma_uint64)offset; - - return MA_SUCCESS; - } - #else - { - /* libvorbis is disabled. Should never hit this since initialization would have failed. */ - MA_ASSERT(MA_FALSE); - return MA_NOT_IMPLEMENTED; - } - #endif -} - -MA_API ma_result ma_libvorbis_get_length_in_pcm_frames(ma_libvorbis* pVorbis, ma_uint64* pLength) -{ - if (pLength == NULL) { - return MA_INVALID_ARGS; - } - - *pLength = 0; /* Safety. */ - - if (pVorbis == NULL) { - return MA_INVALID_ARGS; - } - - #if !defined(MA_NO_LIBVORBIS) - { - /* I don't know how to reliably retrieve the length in frames using libvorbis, so returning 0 for now. */ - *pLength = 0; - - return MA_SUCCESS; - } - #else - { - /* libvorbis is disabled. Should never hit this since initialization would have failed. */ - MA_ASSERT(MA_FALSE); - return MA_NOT_IMPLEMENTED; - } - #endif -} - -#endif diff --git a/story-editor/CMakeLists.txt b/story-editor/CMakeLists.txt index 343d3e3..5e965ad 100644 --- a/story-editor/CMakeLists.txt +++ b/story-editor/CMakeLists.txt @@ -169,7 +169,6 @@ set(SRCS src/importers/ni_parser.c - libs/ImGuiColorTextEdit/TextEditor.cpp libs/ImGuiColorTextEdit/TextEditor.h libs/imgui-node-editor/imgui_node_editor.cpp @@ -186,25 +185,22 @@ set(SRCS ${imgui_SOURCE_DIR}/imgui_tables.cpp ${imgui_SOURCE_DIR}/imgui_draw.cpp - ../software/chip32/chip32_assembler.cpp - ../software/chip32/chip32_vm.c + ../firmware/chip32/chip32_assembler.cpp + ../firmware/chip32/chip32_vm.c - ../software/common/audio_player.cpp - ../software/common/audio_player.h - ../software/common/tlv.h - - ../software/library/miniaudio.h - ../software/library/uuid.h - ../software/library/resource.h - - ../software/library/resource_manager.h - ../software/library/resource_manager.cpp - - ../software/library/story_project.cpp - ../software/library/story_project.h - ../software/library/thread_safe_queue.h - ../software/library/library_manager.h - ../software/library/library_manager.cpp + ../shared/audio_player.cpp + ../shared/audio_player.h + ../shared/tlv.h + ../shared/miniaudio.h + ../shared/stb_vorbis.c + ../shared/uuid.h + ../shared/resource_manager.h + ../shared/resource_manager.cpp + ../shared/story_project.cpp + ../shared/story_project.h + ../shared/thread_safe_queue.h + ../shared/library_manager.h + ../shared/library_manager.cpp ) if(WIN32) @@ -239,9 +235,10 @@ target_include_directories(${STORY_EDITOR_PROJECT} PUBLIC ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/importers - ../software/library/ - ../software/chip32/ - ../software/common + ../firmware/library + ../firmware/chip32 + ../shared + ) add_definitions(-DIMGUI_USE_WCHAR32 -DVERSION_MAJOR=${PROJECT_VERSION_MAJOR} -DVERSION_MINOR=${PROJECT_VERSION_MINOR} -DVERSION_PATCH=${PROJECT_VERSION_PATCH})