├── .circleci └── config.yml ├── .clang-format ├── .gdbinit ├── .github └── FUNDING.yml ├── .gitignore ├── .vscode ├── c_cpp_properties.json ├── launch.json ├── settings.json └── tasks.json ├── ChibiOS ├── demos.zip ├── doc │ ├── common │ │ └── rsc │ │ │ ├── custom.css │ │ │ ├── footer_chm.html │ │ │ ├── footer_html.html │ │ │ ├── header_chm.html │ │ │ ├── header_html.html │ │ │ └── layout.xml │ ├── hal │ │ ├── Doxyfile_chm │ │ ├── Doxyfile_html │ │ ├── index.html │ │ ├── makechm.bat │ │ ├── makehtml.bat │ │ ├── readme.txt │ │ ├── reports │ │ │ └── misra.txt │ │ ├── rsync_web.sh │ │ └── src │ │ │ └── main.dox │ ├── nil │ │ ├── Doxyfile_chm │ │ ├── Doxyfile_html │ │ ├── index.html │ │ ├── makechm.bat │ │ ├── makehtml.bat │ │ ├── readme.txt │ │ ├── reports │ │ │ ├── SPC560D-48-GCC.txt │ │ │ ├── STM32F303-72-GCC.txt │ │ │ ├── STM32F746-216-GCC.txt │ │ │ └── misra.txt │ │ ├── rsc │ │ │ ├── workspace.eps │ │ │ └── workspace.svg │ │ ├── rsync_web.sh │ │ └── src │ │ │ └── main.dox │ └── rt │ │ ├── Doxyfile_chm │ │ ├── Doxyfile_html │ │ ├── index.html │ │ ├── makechm.bat │ │ ├── makehtml.bat │ │ ├── readme.txt │ │ ├── reports │ │ ├── LPC2148-48-ARM.txt │ │ ├── LPC2148-48-THUMB.txt │ │ ├── SPC560D-48-CW.txt │ │ ├── SPC560D-48-GCC.txt │ │ ├── SPC560P-64-GCC.txt │ │ ├── SPC563M-80-GCC.txt │ │ ├── SPC56EC-120-CW.txt │ │ ├── SPC56EC-120-GCC.txt │ │ ├── SPC56EL-120-GCC.txt │ │ ├── STM32F051-48-GCC.txt │ │ ├── STM32F303-72-GCC-FPU.txt │ │ ├── STM32F303-72-GCC.txt │ │ ├── STM32F303-72-IAR-FPU.txt │ │ ├── STM32F303-72-IAR.txt │ │ ├── STM32F303-72-RVCT-FPU.txt │ │ ├── STM32F303-72-RVCT.txt │ │ ├── STM32F407-168-GCC-FPU.txt │ │ ├── STM32F407-168-GCC.txt │ │ ├── STM32F746-216-GCC-FPU.txt │ │ ├── STM32F746-216-GCC.txt │ │ ├── STM32L053-32-GCC.txt │ │ ├── STM32L152-32-GCC.txt │ │ ├── STM32L476-80-GCC-FPU.txt │ │ ├── STM32L476-80-GCC.txt │ │ └── testbuild.7z │ │ ├── rsc │ │ ├── workspace.eps │ │ └── workspace.svg │ │ ├── rsync_web.sh │ │ └── src │ │ ├── concepts.dox │ │ └── main.dox ├── documentation.html ├── ext │ ├── fatfs-0.10b-patched.7z │ ├── lwip-1.4.1_patched.7z │ └── readme.txt ├── license.txt ├── os │ ├── common │ │ ├── abstractions │ │ │ ├── cmsis_os │ │ │ │ ├── cmsis_os.c │ │ │ │ ├── cmsis_os.h │ │ │ │ └── cmsis_os.mk │ │ │ └── nasa_cfe │ │ │ │ ├── osal │ │ │ │ ├── cfe_osal.mk │ │ │ │ ├── include │ │ │ │ │ ├── common_types.h │ │ │ │ │ ├── osapi-os-core.h │ │ │ │ │ ├── osapi-os-custom.h │ │ │ │ │ ├── osapi-os-filesys.h │ │ │ │ │ ├── osapi-os-loader.h │ │ │ │ │ ├── osapi-os-net.h │ │ │ │ │ ├── osapi-os-timer.h │ │ │ │ │ ├── osapi-version.h │ │ │ │ │ └── osapi.h │ │ │ │ └── src │ │ │ │ │ └── osapi.c │ │ │ │ └── psp │ │ │ │ ├── cfe_psp.mk │ │ │ │ ├── include │ │ │ │ ├── cfe_psp.h │ │ │ │ ├── cfe_psp_config.h │ │ │ │ └── psp_version.h │ │ │ │ └── src │ │ │ │ ├── cfe_psp_exception.c │ │ │ │ ├── cfe_psp_memory.c │ │ │ │ ├── cfe_psp_support.c │ │ │ │ └── cfe_psp_timer.c │ │ ├── ext │ │ │ ├── CMSIS │ │ │ │ ├── ST │ │ │ │ │ ├── STM32F0xx │ │ │ │ │ │ ├── stm32f030x6.h │ │ │ │ │ │ ├── stm32f030x8.h │ │ │ │ │ │ ├── stm32f030xc.h │ │ │ │ │ │ ├── stm32f031x6.h │ │ │ │ │ │ ├── stm32f038xx.h │ │ │ │ │ │ ├── stm32f042x6.h │ │ │ │ │ │ ├── stm32f048xx.h │ │ │ │ │ │ ├── stm32f051x8.h │ │ │ │ │ │ ├── stm32f058xx.h │ │ │ │ │ │ ├── stm32f070x6.h │ │ │ │ │ │ ├── stm32f070xb.h │ │ │ │ │ │ ├── stm32f071xb.h │ │ │ │ │ │ ├── stm32f072xb.h │ │ │ │ │ │ ├── stm32f078xx.h │ │ │ │ │ │ ├── stm32f091xc.h │ │ │ │ │ │ ├── stm32f098xx.h │ │ │ │ │ │ ├── stm32f0xx.h │ │ │ │ │ │ └── system_stm32f0xx.h │ │ │ │ │ ├── STM32F1xx │ │ │ │ │ │ ├── stm32f100xb.h │ │ │ │ │ │ ├── stm32f100xe.h │ │ │ │ │ │ ├── stm32f101x6.h │ │ │ │ │ │ ├── stm32f101xb.h │ │ │ │ │ │ ├── stm32f101xe.h │ │ │ │ │ │ ├── stm32f101xg.h │ │ │ │ │ │ ├── stm32f102x6.h │ │ │ │ │ │ ├── stm32f102xb.h │ │ │ │ │ │ ├── stm32f103x6.h │ │ │ │ │ │ ├── stm32f103xb.h │ │ │ │ │ │ ├── stm32f103xe.h │ │ │ │ │ │ ├── stm32f103xg.h │ │ │ │ │ │ ├── stm32f105xc.h │ │ │ │ │ │ ├── stm32f107xc.h │ │ │ │ │ │ ├── stm32f1xx.h │ │ │ │ │ │ └── system_stm32f1xx.h │ │ │ │ │ ├── STM32F2xx │ │ │ │ │ │ ├── stm32f205xx.h │ │ │ │ │ │ ├── stm32f207xx.h │ │ │ │ │ │ ├── stm32f215xx.h │ │ │ │ │ │ ├── stm32f217xx.h │ │ │ │ │ │ ├── stm32f2xx.h │ │ │ │ │ │ └── system_stm32f2xx.h │ │ │ │ │ ├── STM32F3xx │ │ │ │ │ │ ├── stm32f301x8.h │ │ │ │ │ │ ├── stm32f302x8.h │ │ │ │ │ │ ├── stm32f302xc.h │ │ │ │ │ │ ├── stm32f302xe.h │ │ │ │ │ │ ├── stm32f303x8.h │ │ │ │ │ │ ├── stm32f303xc.h │ │ │ │ │ │ ├── stm32f303xe.h │ │ │ │ │ │ ├── stm32f318xx.h │ │ │ │ │ │ ├── stm32f328xx.h │ │ │ │ │ │ ├── stm32f334x8.h │ │ │ │ │ │ ├── stm32f358xx.h │ │ │ │ │ │ ├── stm32f373xc.h │ │ │ │ │ │ ├── stm32f378xx.h │ │ │ │ │ │ ├── stm32f398xx.h │ │ │ │ │ │ ├── stm32f3xx.h │ │ │ │ │ │ └── system_stm32f3xx.h │ │ │ │ │ ├── STM32F4xx │ │ │ │ │ │ ├── stm32f401xc.h │ │ │ │ │ │ ├── stm32f401xe.h │ │ │ │ │ │ ├── stm32f405xx.h │ │ │ │ │ │ ├── stm32f407xx.h │ │ │ │ │ │ ├── stm32f410cx.h │ │ │ │ │ │ ├── stm32f410rx.h │ │ │ │ │ │ ├── stm32f410tx.h │ │ │ │ │ │ ├── stm32f411xe.h │ │ │ │ │ │ ├── stm32f415xx.h │ │ │ │ │ │ ├── stm32f417xx.h │ │ │ │ │ │ ├── stm32f427xx.h │ │ │ │ │ │ ├── stm32f429xx.h │ │ │ │ │ │ ├── stm32f437xx.h │ │ │ │ │ │ ├── stm32f439xx.h │ │ │ │ │ │ ├── stm32f446xx.h │ │ │ │ │ │ ├── stm32f469xx.h │ │ │ │ │ │ ├── stm32f479xx.h │ │ │ │ │ │ ├── stm32f4xx.h │ │ │ │ │ │ └── system_stm32f4xx.h │ │ │ │ │ ├── STM32F7xx │ │ │ │ │ │ ├── stm32f745xx.h │ │ │ │ │ │ ├── stm32f746xx.h │ │ │ │ │ │ ├── stm32f756xx.h │ │ │ │ │ │ ├── stm32f7xx.h │ │ │ │ │ │ └── system_stm32f7xx.h │ │ │ │ │ ├── STM32L0xx │ │ │ │ │ │ ├── stm32l051xx.h │ │ │ │ │ │ ├── stm32l052xx.h │ │ │ │ │ │ ├── stm32l053xx.h │ │ │ │ │ │ ├── stm32l061xx.h │ │ │ │ │ │ ├── stm32l062xx.h │ │ │ │ │ │ ├── stm32l063xx.h │ │ │ │ │ │ ├── stm32l0xx.h │ │ │ │ │ │ └── system_stm32l0xx.h │ │ │ │ │ ├── STM32L1xx │ │ │ │ │ │ ├── stm32l100xb.h │ │ │ │ │ │ ├── stm32l100xba.h │ │ │ │ │ │ ├── stm32l100xc.h │ │ │ │ │ │ ├── stm32l151xb.h │ │ │ │ │ │ ├── stm32l151xba.h │ │ │ │ │ │ ├── stm32l151xc.h │ │ │ │ │ │ ├── stm32l151xca.h │ │ │ │ │ │ ├── stm32l151xd.h │ │ │ │ │ │ ├── stm32l151xdx.h │ │ │ │ │ │ ├── stm32l151xe.h │ │ │ │ │ │ ├── stm32l152xb.h │ │ │ │ │ │ ├── stm32l152xba.h │ │ │ │ │ │ ├── stm32l152xc.h │ │ │ │ │ │ ├── stm32l152xca.h │ │ │ │ │ │ ├── stm32l152xd.h │ │ │ │ │ │ ├── stm32l152xdx.h │ │ │ │ │ │ ├── stm32l152xe.h │ │ │ │ │ │ ├── stm32l162xc.h │ │ │ │ │ │ ├── stm32l162xca.h │ │ │ │ │ │ ├── stm32l162xd.h │ │ │ │ │ │ ├── stm32l162xdx.h │ │ │ │ │ │ ├── stm32l162xe.h │ │ │ │ │ │ ├── stm32l1xx.h │ │ │ │ │ │ └── system_stm32l1xx.h │ │ │ │ │ └── STM32L4xx │ │ │ │ │ │ ├── stm32l471xx.h │ │ │ │ │ │ ├── stm32l475xx.h │ │ │ │ │ │ ├── stm32l476xx.h │ │ │ │ │ │ ├── stm32l485xx.h │ │ │ │ │ │ ├── stm32l486xx.h │ │ │ │ │ │ ├── stm32l4xx.h │ │ │ │ │ │ └── system_stm32l4xx.h │ │ │ │ ├── include │ │ │ │ │ ├── arm_common_tables.h │ │ │ │ │ ├── arm_const_structs.h │ │ │ │ │ ├── arm_math.h │ │ │ │ │ ├── core_cm0.h │ │ │ │ │ ├── core_cm0plus.h │ │ │ │ │ ├── core_cm3.h │ │ │ │ │ ├── core_cm4.h │ │ │ │ │ ├── core_cm7.h │ │ │ │ │ ├── core_cmFunc.h │ │ │ │ │ ├── core_cmInstr.h │ │ │ │ │ └── core_cmSimd.h │ │ │ │ └── readme.txt │ │ │ └── readme.txt │ │ ├── oslib │ │ │ ├── include │ │ │ │ ├── chbsem.h │ │ │ │ ├── chheap.h │ │ │ │ ├── chmboxes.h │ │ │ │ ├── chmemcore.h │ │ │ │ └── chmempools.h │ │ │ ├── readme.txt │ │ │ └── src │ │ │ │ ├── chheap.c │ │ │ │ ├── chmboxes.c │ │ │ │ ├── chmemcore.c │ │ │ │ └── chmempools.c │ │ ├── ports │ │ │ ├── ARM │ │ │ │ ├── chcore.c │ │ │ │ ├── chcore.h │ │ │ │ ├── chcore_timer.h │ │ │ │ └── compilers │ │ │ │ │ └── GCC │ │ │ │ │ ├── chcoreasm.s │ │ │ │ │ ├── chtypes.h │ │ │ │ │ └── mk │ │ │ │ │ └── port_generic.mk │ │ │ ├── ARMCMx │ │ │ │ ├── chcore.c │ │ │ │ ├── chcore.h │ │ │ │ ├── chcore_timer.h │ │ │ │ ├── chcore_v6m.c │ │ │ │ ├── chcore_v6m.h │ │ │ │ ├── chcore_v7m.c │ │ │ │ ├── chcore_v7m.h │ │ │ │ ├── compilers │ │ │ │ │ ├── GCC │ │ │ │ │ │ ├── chcoreasm_v6m.s │ │ │ │ │ │ ├── chcoreasm_v7m.s │ │ │ │ │ │ ├── chtypes.h │ │ │ │ │ │ └── mk │ │ │ │ │ │ │ ├── port_v6m.mk │ │ │ │ │ │ │ └── port_v7m.mk │ │ │ │ │ ├── IAR │ │ │ │ │ │ ├── chcoreasm_v6m.s │ │ │ │ │ │ ├── chcoreasm_v7m.s │ │ │ │ │ │ └── chtypes.h │ │ │ │ │ └── RVCT │ │ │ │ │ │ ├── chcoreasm_v6m.s │ │ │ │ │ │ ├── chcoreasm_v7m.s │ │ │ │ │ │ └── chtypes.h │ │ │ │ └── mpu.h │ │ │ ├── AVR │ │ │ │ ├── chcore.c │ │ │ │ ├── chcore.h │ │ │ │ ├── chcore_timer.h │ │ │ │ └── compilers │ │ │ │ │ └── GCC │ │ │ │ │ ├── chtypes.h │ │ │ │ │ └── mk │ │ │ │ │ └── port.mk │ │ │ ├── SIMIA32 │ │ │ │ ├── chcore.c │ │ │ │ ├── chcore.h │ │ │ │ └── compilers │ │ │ │ │ └── GCC │ │ │ │ │ ├── chtypes.h │ │ │ │ │ └── port.mk │ │ │ ├── e200 │ │ │ │ ├── chcore.c │ │ │ │ ├── chcore.h │ │ │ │ └── compilers │ │ │ │ │ ├── CW │ │ │ │ │ ├── chcoreasm.s │ │ │ │ │ ├── chtypes.h │ │ │ │ │ └── ivor.s │ │ │ │ │ └── GCC │ │ │ │ │ ├── chcoreasm.s │ │ │ │ │ ├── chtypes.h │ │ │ │ │ ├── ivor.s │ │ │ │ │ └── mk │ │ │ │ │ └── port.mk │ │ │ ├── readme.txt │ │ │ └── templates │ │ │ │ ├── chcore.c │ │ │ │ ├── chcore.h │ │ │ │ └── chtypes.h │ │ └── startup │ │ │ ├── ARM │ │ │ ├── compilers │ │ │ │ └── GCC │ │ │ │ │ ├── crt0.s │ │ │ │ │ ├── crt1.c │ │ │ │ │ ├── ld │ │ │ │ │ └── LPC2148.ld │ │ │ │ │ ├── mk │ │ │ │ │ └── startup_lpc214x.mk │ │ │ │ │ ├── rules.ld │ │ │ │ │ ├── rules.mk │ │ │ │ │ └── vectors.s │ │ │ └── devices │ │ │ │ └── LPC214x │ │ │ │ ├── armparams.h │ │ │ │ └── lpc214x.h │ │ │ ├── ARMCMx │ │ │ ├── compilers │ │ │ │ ├── GCC │ │ │ │ │ ├── crt0_v6m.s │ │ │ │ │ ├── crt0_v7m.s │ │ │ │ │ ├── crt1.c │ │ │ │ │ ├── ld │ │ │ │ │ │ ├── STM32F030x4.ld │ │ │ │ │ │ ├── STM32F030x6.ld │ │ │ │ │ │ ├── STM32F030x8.ld │ │ │ │ │ │ ├── STM32F031x6.ld │ │ │ │ │ │ ├── STM32F042x6.ld │ │ │ │ │ │ ├── STM32F051x8.ld │ │ │ │ │ │ ├── STM32F072xB.ld │ │ │ │ │ │ ├── STM32F091xC.ld │ │ │ │ │ │ ├── STM32F100xB.ld │ │ │ │ │ │ ├── STM32F103x8.ld │ │ │ │ │ │ ├── STM32F103xB.ld │ │ │ │ │ │ ├── STM32F103xB_maplemini_bootloader.ld │ │ │ │ │ │ ├── STM32F103xD.ld │ │ │ │ │ │ ├── STM32F103xE.ld │ │ │ │ │ │ ├── STM32F103xG.ld │ │ │ │ │ │ ├── STM32F107xC.ld │ │ │ │ │ │ ├── STM32F207xG.ld │ │ │ │ │ │ ├── STM32F302x8.ld │ │ │ │ │ │ ├── STM32F303x8.ld │ │ │ │ │ │ ├── STM32F303xC.ld │ │ │ │ │ │ ├── STM32F303xE.ld │ │ │ │ │ │ ├── STM32F334x8.ld │ │ │ │ │ │ ├── STM32F373xC.ld │ │ │ │ │ │ ├── STM32F401xC.ld │ │ │ │ │ │ ├── STM32F401xE.ld │ │ │ │ │ │ ├── STM32F405xG.ld │ │ │ │ │ │ ├── STM32F407xG.ld │ │ │ │ │ │ ├── STM32F411xC.ld │ │ │ │ │ │ ├── STM32F411xE.ld │ │ │ │ │ │ ├── STM32F429xI.ld │ │ │ │ │ │ ├── STM32F446xC.ld │ │ │ │ │ │ ├── STM32F446xE.ld │ │ │ │ │ │ ├── STM32F469xI.ld │ │ │ │ │ │ ├── STM32F746xG.ld │ │ │ │ │ │ ├── STM32F746xG_ETH.ld │ │ │ │ │ │ ├── STM32F746xG_MAX.ld │ │ │ │ │ │ ├── STM32L052x6.ld │ │ │ │ │ │ ├── STM32L052x8.ld │ │ │ │ │ │ ├── STM32L053x6.ld │ │ │ │ │ │ ├── STM32L053x8.ld │ │ │ │ │ │ ├── STM32L151x6.ld │ │ │ │ │ │ ├── STM32L152xB.ld │ │ │ │ │ │ ├── STM32L152xE.ld │ │ │ │ │ │ ├── STM32L476xG.ld │ │ │ │ │ │ ├── rules.ld │ │ │ │ │ │ ├── rules_code.ld │ │ │ │ │ │ ├── rules_data.ld │ │ │ │ │ │ └── rules_stacks.ld │ │ │ │ │ ├── mk │ │ │ │ │ │ ├── startup_stm32f0xx.mk │ │ │ │ │ │ ├── startup_stm32f1xx.mk │ │ │ │ │ │ ├── startup_stm32f2xx.mk │ │ │ │ │ │ ├── startup_stm32f3xx.mk │ │ │ │ │ │ ├── startup_stm32f4xx.mk │ │ │ │ │ │ ├── startup_stm32f7xx.mk │ │ │ │ │ │ ├── startup_stm32l0xx.mk │ │ │ │ │ │ ├── startup_stm32l1xx.mk │ │ │ │ │ │ └── startup_stm32l4xx.mk │ │ │ │ │ ├── rules.mk │ │ │ │ │ ├── vectors.c │ │ │ │ │ └── vectors.h │ │ │ │ ├── IAR │ │ │ │ │ ├── cstartup.s │ │ │ │ │ └── vectors.s │ │ │ │ └── RVCT │ │ │ │ │ ├── cstartup.s │ │ │ │ │ └── vectors.s │ │ │ └── devices │ │ │ │ ├── STM32F0xx │ │ │ │ └── cmparams.h │ │ │ │ ├── STM32F1xx │ │ │ │ └── cmparams.h │ │ │ │ ├── STM32F2xx │ │ │ │ └── cmparams.h │ │ │ │ ├── STM32F3xx │ │ │ │ └── cmparams.h │ │ │ │ ├── STM32F4xx │ │ │ │ └── cmparams.h │ │ │ │ ├── STM32F7xx │ │ │ │ └── cmparams.h │ │ │ │ ├── STM32L0xx │ │ │ │ └── cmparams.h │ │ │ │ ├── STM32L1xx │ │ │ │ └── cmparams.h │ │ │ │ └── STM32L4xx │ │ │ │ └── cmparams.h │ │ │ ├── SIMIA32 │ │ │ └── compilers │ │ │ │ └── GCC │ │ │ │ └── rules.mk │ │ │ └── e200 │ │ │ ├── compilers │ │ │ ├── CW │ │ │ │ ├── crt0.s │ │ │ │ ├── unhandled.s │ │ │ │ ├── vectors.h │ │ │ │ └── vectors.s │ │ │ └── GCC │ │ │ │ ├── crt0.s │ │ │ │ ├── ld │ │ │ │ ├── SPC560B50.ld │ │ │ │ ├── SPC560B60.ld │ │ │ │ ├── SPC560B64.ld │ │ │ │ ├── SPC560D40.ld │ │ │ │ ├── SPC560P50.ld │ │ │ │ ├── SPC563M64.ld │ │ │ │ ├── SPC564A70.ld │ │ │ │ ├── SPC564A80.ld │ │ │ │ ├── SPC56EC74.ld │ │ │ │ ├── SPC56EL54_LSM.ld │ │ │ │ ├── SPC56EL60_LSM.ld │ │ │ │ ├── SPC56EL70_LSM.ld │ │ │ │ ├── SPC57EM80_HSM.ld │ │ │ │ ├── rules_z0.ld │ │ │ │ ├── rules_z3.ld │ │ │ │ └── rules_z4.ld │ │ │ │ ├── mk │ │ │ │ ├── startup_spc560bcxx.mk │ │ │ │ ├── startup_spc560bxx.mk │ │ │ │ ├── startup_spc560dxx.mk │ │ │ │ ├── startup_spc560pxx.mk │ │ │ │ ├── startup_spc563mxx.mk │ │ │ │ ├── startup_spc564axx.mk │ │ │ │ ├── startup_spc56ecxx.mk │ │ │ │ └── startup_spc56elxx.mk │ │ │ │ ├── rules.mk │ │ │ │ ├── vectors.h │ │ │ │ └── vectors.s │ │ │ └── devices │ │ │ ├── SPC560BCxx │ │ │ ├── boot.h │ │ │ ├── boot.s │ │ │ ├── intc.h │ │ │ └── ppcparams.h │ │ │ ├── SPC560Bxx │ │ │ ├── boot.h │ │ │ ├── boot.s │ │ │ ├── intc.h │ │ │ └── ppcparams.h │ │ │ ├── SPC560Dxx │ │ │ ├── boot.h │ │ │ ├── boot.s │ │ │ ├── boot_cw.s │ │ │ ├── intc.h │ │ │ └── ppcparams.h │ │ │ ├── SPC560Pxx │ │ │ ├── boot.h │ │ │ ├── boot.s │ │ │ ├── intc.h │ │ │ └── ppcparams.h │ │ │ ├── SPC563Mxx │ │ │ ├── boot.h │ │ │ ├── boot.s │ │ │ ├── intc.h │ │ │ └── ppcparams.h │ │ │ ├── SPC564Axx │ │ │ ├── boot.h │ │ │ ├── boot.s │ │ │ ├── intc.h │ │ │ └── ppcparams.h │ │ │ ├── SPC56ECxx │ │ │ ├── boot.h │ │ │ ├── boot.s │ │ │ ├── boot_cw.s │ │ │ ├── intc.h │ │ │ └── ppcparams.h │ │ │ ├── SPC56ELxx │ │ │ ├── boot.h │ │ │ ├── boot.s │ │ │ ├── intc.h │ │ │ └── ppcparams.h │ │ │ └── SPC57EMxx_HSM │ │ │ ├── boot.h │ │ │ ├── boot.s │ │ │ ├── intc.h │ │ │ └── ppcparams.h │ ├── ex │ │ └── ST │ │ │ ├── l3gd20.c │ │ │ ├── l3gd20.h │ │ │ ├── l3gd20.mk │ │ │ ├── lsm6ds0.c │ │ │ ├── lsm6ds0.h │ │ │ └── lsm6ds0.mk │ ├── hal │ │ ├── boards │ │ │ ├── ARDUINO_MEGA │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ARDUINO_UNO │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── EA_LPCXPRESSO_11C24 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── EA_LPCXPRESSO_BB_1114 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── EA_LPCXPRESSO_BB_11U14 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── EA_LPCXPRESSO_BB_1343 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── EA_LPCXPRESSO_LPC812 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── MAPLEMINI_STM32_F103 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── MIKROE_CLICKER2_STM32 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── NGX_BB_LPC11U14 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── NONSTANDARD_STM32F4_BARTHESS1 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_AVR_CAN │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_AVR_MT_128 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_LPC_P1227 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_LPC_P1343 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_LPC_P2148 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ ├── buzzer.c │ │ │ │ └── buzzer.h │ │ │ ├── OLIMEX_MSP430_P1611 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_SAM7_EX256 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_SAM7_P256 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_STM32_103STK │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_STM32_E407 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── OLIMEX_STM32_E407_REV_D │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── OLIMEX_STM32_H103 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_STM32_H407 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── OLIMEX_STM32_LCD │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_STM32_P103 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_STM32_P107 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── OLIMEX_STM32_P407 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── RAISONANCE_REVA_STM8S │ │ │ │ ├── board.c │ │ │ │ └── board.h │ │ │ ├── STM32F103C8_MINIMAL │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── STUDIEL_AT91SAM7A3_EK │ │ │ │ ├── board.c │ │ │ │ └── board.h │ │ │ ├── ST_EVALKITST7580_1 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_EVB_SPC560B │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_EVB_SPC560BC │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_EVB_SPC560D │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_EVB_SPC560P │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_EVB_SPC563M │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_EVB_SPC564A │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_EVB_SPC56EC │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_EVB_SPC56EL │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_INEMO_M1_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_NUCLEO144_F303ZE │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO144_F429ZI │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO144_F446ZE │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO144_F746ZG │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO32_F031K6 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO32_F042K6 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO32_F303K8 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO64_F030R8 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO64_F072RB │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO64_F091RC │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO64_F103RB │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_NUCLEO64_F302R8 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO64_F334R8 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO64_F401RE │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO64_F411RE │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO64_L053R8 │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO64_L152RE │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_NUCLEO64_L476RG │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM3210C_EVAL │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_STM3210E_EVAL │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_STM3220G_EVAL │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_STM32373C_EVAL │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32F072B_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32F0_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32F2_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32F334_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32F3_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32F401C_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32F429I_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32F469I_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32F4_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32F746G_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32L053_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32L476_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32L_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ ├── board.mk │ │ │ │ └── cfg │ │ │ │ │ └── board.chcfg │ │ │ ├── ST_STM32VL_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ │ ├── ST_STM8L_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ └── board.h │ │ │ ├── ST_STM8S_DISCOVERY │ │ │ │ ├── board.c │ │ │ │ └── board.h │ │ │ ├── readme.txt │ │ │ └── simulator │ │ │ │ ├── board.c │ │ │ │ ├── board.h │ │ │ │ └── board.mk │ │ ├── dox │ │ │ ├── adc.dox │ │ │ ├── can.dox │ │ │ ├── dac.dox │ │ │ ├── ext.dox │ │ │ ├── gpt.dox │ │ │ ├── hal.dox │ │ │ ├── hal_buffers.dox │ │ │ ├── hal_channels.dox │ │ │ ├── hal_files.dox │ │ │ ├── hal_ioblock.dox │ │ │ ├── hal_queues.dox │ │ │ ├── hal_streams.dox │ │ │ ├── i2c.dox │ │ │ ├── i2s.dox │ │ │ ├── icu.dox │ │ │ ├── mac.dox │ │ │ ├── main.dox │ │ │ ├── mii.dox │ │ │ ├── mmc_spi.dox │ │ │ ├── mmcsd.dox │ │ │ ├── pal.dox │ │ │ ├── pwm.dox │ │ │ ├── rtc.dox │ │ │ ├── sdc.dox │ │ │ ├── serial.dox │ │ │ ├── serial_usb.dox │ │ │ ├── spi.dox │ │ │ ├── st.dox │ │ │ ├── uart.dox │ │ │ ├── usb.dox │ │ │ ├── usb_cdc.dox │ │ │ └── wdg.dox │ │ ├── hal.mk │ │ ├── include │ │ │ ├── hal.h │ │ │ ├── hal_adc.h │ │ │ ├── hal_buffers.h │ │ │ ├── hal_can.h │ │ │ ├── hal_channels.h │ │ │ ├── hal_dac.h │ │ │ ├── hal_ext.h │ │ │ ├── hal_files.h │ │ │ ├── hal_gpt.h │ │ │ ├── hal_i2c.h │ │ │ ├── hal_i2s.h │ │ │ ├── hal_icu.h │ │ │ ├── hal_ioblock.h │ │ │ ├── hal_mac.h │ │ │ ├── hal_mii.h │ │ │ ├── hal_mmc_spi.h │ │ │ ├── hal_mmcsd.h │ │ │ ├── hal_pal.h │ │ │ ├── hal_pwm.h │ │ │ ├── hal_queues.h │ │ │ ├── hal_rtc.h │ │ │ ├── hal_sdc.h │ │ │ ├── hal_serial.h │ │ │ ├── hal_serial_usb.h │ │ │ ├── hal_spi.h │ │ │ ├── hal_st.h │ │ │ ├── hal_streams.h │ │ │ ├── hal_uart.h │ │ │ ├── hal_usb.h │ │ │ ├── hal_usb_cdc.h │ │ │ └── hal_wdg.h │ │ ├── lib │ │ │ ├── peripherals │ │ │ │ ├── displays │ │ │ │ │ └── hal_displays.h │ │ │ │ └── sensors │ │ │ │ │ ├── hal_accelerometer.h │ │ │ │ │ ├── hal_compass.h │ │ │ │ │ ├── hal_gyroscope.h │ │ │ │ │ └── hal_sensors.h │ │ │ └── streams │ │ │ │ ├── chprintf.c │ │ │ │ ├── chprintf.h │ │ │ │ ├── memstreams.c │ │ │ │ ├── memstreams.h │ │ │ │ ├── nullstreams.c │ │ │ │ ├── nullstreams.h │ │ │ │ └── streams.mk │ │ ├── osal │ │ │ ├── nil │ │ │ │ ├── osal.c │ │ │ │ ├── osal.h │ │ │ │ └── osal.mk │ │ │ ├── os-less │ │ │ │ └── ARMCMx │ │ │ │ │ ├── osal.c │ │ │ │ │ ├── osal.h │ │ │ │ │ └── osal.mk │ │ │ └── rt │ │ │ │ ├── osal.c │ │ │ │ ├── osal.h │ │ │ │ └── osal.mk │ │ ├── ports │ │ │ ├── AVR │ │ │ │ ├── avr_pins.h │ │ │ │ ├── avr_timers.h │ │ │ │ ├── hal_adc_lld.c │ │ │ │ ├── hal_adc_lld.h │ │ │ │ ├── hal_gpt_lld.c │ │ │ │ ├── hal_gpt_lld.h │ │ │ │ ├── hal_i2c_lld.c │ │ │ │ ├── hal_i2c_lld.h │ │ │ │ ├── hal_icu_lld.c │ │ │ │ ├── hal_icu_lld.h │ │ │ │ ├── hal_lld.c │ │ │ │ ├── hal_lld.h │ │ │ │ ├── hal_pal_lld.c │ │ │ │ ├── hal_pal_lld.h │ │ │ │ ├── hal_pwm_lld.c │ │ │ │ ├── hal_pwm_lld.h │ │ │ │ ├── hal_serial_lld.c │ │ │ │ ├── hal_serial_lld.h │ │ │ │ ├── hal_spi_lld.c │ │ │ │ ├── hal_spi_lld.h │ │ │ │ ├── hal_st_lld.c │ │ │ │ ├── hal_st_lld.h │ │ │ │ └── platform.mk │ │ │ ├── LPC │ │ │ │ └── LPC214x │ │ │ │ │ ├── hal_lld.c │ │ │ │ │ ├── hal_lld.h │ │ │ │ │ ├── hal_pal_lld.c │ │ │ │ │ ├── hal_pal_lld.h │ │ │ │ │ ├── hal_serial_lld.c │ │ │ │ │ ├── hal_serial_lld.h │ │ │ │ │ ├── hal_spi_lld.c │ │ │ │ │ ├── hal_spi_lld.h │ │ │ │ │ ├── hal_st_lld.c │ │ │ │ │ ├── hal_st_lld.h │ │ │ │ │ ├── platform.mk │ │ │ │ │ ├── vic.c │ │ │ │ │ └── vic.h │ │ │ ├── STM32 │ │ │ │ ├── LLD │ │ │ │ │ ├── ADCv1 │ │ │ │ │ │ ├── hal_adc_lld.c │ │ │ │ │ │ ├── hal_adc_lld.h │ │ │ │ │ │ └── notes.txt │ │ │ │ │ ├── ADCv2 │ │ │ │ │ │ ├── hal_adc_lld.c │ │ │ │ │ │ ├── hal_adc_lld.h │ │ │ │ │ │ └── notes.txt │ │ │ │ │ ├── ADCv3 │ │ │ │ │ │ ├── hal_adc_lld.c │ │ │ │ │ │ ├── hal_adc_lld.h │ │ │ │ │ │ └── notes.txt │ │ │ │ │ ├── CANv1 │ │ │ │ │ │ ├── hal_can_lld.c │ │ │ │ │ │ └── hal_can_lld.h │ │ │ │ │ ├── DACv1 │ │ │ │ │ │ ├── hal_dac_lld.c │ │ │ │ │ │ └── hal_dac_lld.h │ │ │ │ │ ├── DMAv1 │ │ │ │ │ │ ├── notes.txt │ │ │ │ │ │ ├── stm32_dma.c │ │ │ │ │ │ └── stm32_dma.h │ │ │ │ │ ├── DMAv2 │ │ │ │ │ │ ├── notes.txt │ │ │ │ │ │ ├── stm32_dma.c │ │ │ │ │ │ └── stm32_dma.h │ │ │ │ │ ├── EXTIv1 │ │ │ │ │ │ ├── hal_ext_lld.c │ │ │ │ │ │ ├── hal_ext_lld.h │ │ │ │ │ │ └── notes.txt │ │ │ │ │ ├── GPIOv1 │ │ │ │ │ │ ├── hal_pal_lld.c │ │ │ │ │ │ └── hal_pal_lld.h │ │ │ │ │ ├── GPIOv2 │ │ │ │ │ │ ├── hal_pal_lld.c │ │ │ │ │ │ └── hal_pal_lld.h │ │ │ │ │ ├── GPIOv3 │ │ │ │ │ │ ├── hal_pal_lld.c │ │ │ │ │ │ └── hal_pal_lld.h │ │ │ │ │ ├── I2Cv1 │ │ │ │ │ │ ├── hal_i2c_lld.c │ │ │ │ │ │ └── hal_i2c_lld.h │ │ │ │ │ ├── I2Cv2 │ │ │ │ │ │ ├── hal_i2c_lld.c │ │ │ │ │ │ └── hal_i2c_lld.h │ │ │ │ │ ├── MACv1 │ │ │ │ │ │ ├── hal_mac_lld.c │ │ │ │ │ │ └── hal_mac_lld.h │ │ │ │ │ ├── OTGv1 │ │ │ │ │ │ ├── hal_usb_lld.c │ │ │ │ │ │ ├── hal_usb_lld.h │ │ │ │ │ │ └── stm32_otg.h │ │ │ │ │ ├── RTCv1 │ │ │ │ │ │ ├── hal_rtc_lld.c │ │ │ │ │ │ └── hal_rtc_lld.h │ │ │ │ │ ├── RTCv2 │ │ │ │ │ │ ├── hal_rtc_lld.c │ │ │ │ │ │ └── hal_rtc_lld.h │ │ │ │ │ ├── SDIOv1 │ │ │ │ │ │ ├── hal_sdc_lld.c │ │ │ │ │ │ └── hal_sdc_lld.h │ │ │ │ │ ├── SDMMCv1 │ │ │ │ │ │ ├── hal_sdc_lld.c │ │ │ │ │ │ └── hal_sdc_lld.h │ │ │ │ │ ├── SPIv1 │ │ │ │ │ │ ├── hal_i2s_lld.c │ │ │ │ │ │ ├── hal_i2s_lld.h │ │ │ │ │ │ ├── hal_spi_lld.c │ │ │ │ │ │ └── hal_spi_lld.h │ │ │ │ │ ├── SPIv2 │ │ │ │ │ │ ├── hal_i2s_lld.c │ │ │ │ │ │ ├── hal_i2s_lld.h │ │ │ │ │ │ ├── hal_spi_lld.c │ │ │ │ │ │ └── hal_spi_lld.h │ │ │ │ │ ├── TIMv1 │ │ │ │ │ │ ├── hal_gpt_lld.c │ │ │ │ │ │ ├── hal_gpt_lld.h │ │ │ │ │ │ ├── hal_icu_lld.c │ │ │ │ │ │ ├── hal_icu_lld.h │ │ │ │ │ │ ├── hal_pwm_lld.c │ │ │ │ │ │ ├── hal_pwm_lld.h │ │ │ │ │ │ ├── hal_st_lld.c │ │ │ │ │ │ ├── hal_st_lld.h │ │ │ │ │ │ ├── stm32_tim.c │ │ │ │ │ │ ├── stm32_tim.h │ │ │ │ │ │ └── tim_irq_mapping.txt │ │ │ │ │ ├── USARTv1 │ │ │ │ │ │ ├── hal_serial_lld.c │ │ │ │ │ │ ├── hal_serial_lld.h │ │ │ │ │ │ ├── hal_uart_lld.c │ │ │ │ │ │ └── hal_uart_lld.h │ │ │ │ │ ├── USARTv2 │ │ │ │ │ │ ├── hal_serial_lld.c │ │ │ │ │ │ ├── hal_serial_lld.h │ │ │ │ │ │ ├── hal_uart_lld.c │ │ │ │ │ │ └── hal_uart_lld.h │ │ │ │ │ ├── USBv1 │ │ │ │ │ │ ├── hal_usb_lld.c │ │ │ │ │ │ ├── hal_usb_lld.h │ │ │ │ │ │ └── stm32_usb.h │ │ │ │ │ └── xWDGv1 │ │ │ │ │ │ ├── hal_wdg_lld.c │ │ │ │ │ │ └── hal_wdg_lld.h │ │ │ │ ├── STM32F0xx │ │ │ │ │ ├── hal_ext_lld_isr.c │ │ │ │ │ ├── hal_ext_lld_isr.h │ │ │ │ │ ├── hal_lld.c │ │ │ │ │ ├── hal_lld.h │ │ │ │ │ ├── platform.mk │ │ │ │ │ ├── stm32_isr.h │ │ │ │ │ ├── stm32_rcc.h │ │ │ │ │ └── stm32_registry.h │ │ │ │ ├── STM32F1xx │ │ │ │ │ ├── hal_adc_lld.c │ │ │ │ │ ├── hal_adc_lld.h │ │ │ │ │ ├── hal_ext_lld_isr.c │ │ │ │ │ ├── hal_ext_lld_isr.h │ │ │ │ │ ├── hal_lld.c │ │ │ │ │ ├── hal_lld.h │ │ │ │ │ ├── hal_lld_f100.h │ │ │ │ │ ├── hal_lld_f103.h │ │ │ │ │ ├── hal_lld_f105_f107.h │ │ │ │ │ ├── platform.mk │ │ │ │ │ ├── platform_f105_f107.mk │ │ │ │ │ ├── stm32_isr.h │ │ │ │ │ ├── stm32_rcc.h │ │ │ │ │ └── stm32_registry.h │ │ │ │ ├── STM32F37x │ │ │ │ │ ├── hal_adc_lld.c │ │ │ │ │ ├── hal_adc_lld.h │ │ │ │ │ ├── hal_ext_lld_isr.c │ │ │ │ │ ├── hal_ext_lld_isr.h │ │ │ │ │ ├── hal_lld.c │ │ │ │ │ ├── hal_lld.h │ │ │ │ │ ├── platform.mk │ │ │ │ │ ├── stm32_isr.h │ │ │ │ │ ├── stm32_rcc.h │ │ │ │ │ └── stm32_registry.h │ │ │ │ ├── STM32F3xx │ │ │ │ │ ├── hal_ext_lld_isr.c │ │ │ │ │ ├── hal_ext_lld_isr.h │ │ │ │ │ ├── hal_lld.c │ │ │ │ │ ├── hal_lld.h │ │ │ │ │ ├── platform.mk │ │ │ │ │ ├── stm32_isr.h │ │ │ │ │ ├── stm32_rcc.h │ │ │ │ │ └── stm32_registry.h │ │ │ │ ├── STM32F4xx │ │ │ │ │ ├── hal_ext_lld_isr.c │ │ │ │ │ ├── hal_ext_lld_isr.h │ │ │ │ │ ├── hal_lld.c │ │ │ │ │ ├── hal_lld.h │ │ │ │ │ ├── platform.mk │ │ │ │ │ ├── stm32_isr.h │ │ │ │ │ ├── stm32_rcc.h │ │ │ │ │ └── stm32_registry.h │ │ │ │ ├── STM32F7xx │ │ │ │ │ ├── hal_ext_lld_isr.c │ │ │ │ │ ├── hal_ext_lld_isr.h │ │ │ │ │ ├── hal_lld.c │ │ │ │ │ ├── hal_lld.h │ │ │ │ │ ├── platform.mk │ │ │ │ │ ├── stm32_rcc.h │ │ │ │ │ └── stm32_registry.h │ │ │ │ ├── STM32L0xx │ │ │ │ │ ├── hal_ext_lld_isr.c │ │ │ │ │ ├── hal_ext_lld_isr.h │ │ │ │ │ ├── hal_lld.c │ │ │ │ │ ├── hal_lld.h │ │ │ │ │ ├── platform.mk │ │ │ │ │ ├── stm32_rcc.h │ │ │ │ │ └── stm32_registry.h │ │ │ │ ├── STM32L1xx │ │ │ │ │ ├── hal_adc_lld.c │ │ │ │ │ ├── hal_adc_lld.h │ │ │ │ │ ├── hal_ext_lld_isr.c │ │ │ │ │ ├── hal_ext_lld_isr.h │ │ │ │ │ ├── hal_lld.c │ │ │ │ │ ├── hal_lld.h │ │ │ │ │ ├── platform.dox │ │ │ │ │ ├── platform.mk │ │ │ │ │ ├── stm32_isr.h │ │ │ │ │ ├── stm32_rcc.h │ │ │ │ │ └── stm32_registry.h │ │ │ │ ├── STM32L4xx │ │ │ │ │ ├── hal_ext_lld_isr.c │ │ │ │ │ ├── hal_ext_lld_isr.h │ │ │ │ │ ├── hal_lld.c │ │ │ │ │ ├── hal_lld.h │ │ │ │ │ ├── platform.mk │ │ │ │ │ ├── stm32_rcc.h │ │ │ │ │ └── stm32_registry.h │ │ │ │ └── todo.txt │ │ │ ├── common │ │ │ │ ├── ARMCMx │ │ │ │ │ ├── nvic.c │ │ │ │ │ └── nvic.h │ │ │ │ └── platform.mk │ │ │ └── simulator │ │ │ │ ├── console.c │ │ │ │ ├── console.h │ │ │ │ ├── hal_pal_lld.c │ │ │ │ ├── hal_pal_lld.h │ │ │ │ ├── hal_st_lld.c │ │ │ │ ├── hal_st_lld.h │ │ │ │ └── win32 │ │ │ │ ├── hal_lld.c │ │ │ │ ├── hal_lld.h │ │ │ │ ├── hal_serial_lld.c │ │ │ │ ├── hal_serial_lld.h │ │ │ │ └── platform.mk │ │ ├── src │ │ │ ├── hal.c │ │ │ ├── hal_adc.c │ │ │ ├── hal_buffers.c │ │ │ ├── hal_can.c │ │ │ ├── hal_dac.c │ │ │ ├── hal_ext.c │ │ │ ├── hal_gpt.c │ │ │ ├── hal_i2c.c │ │ │ ├── hal_i2s.c │ │ │ ├── hal_icu.c │ │ │ ├── hal_mac.c │ │ │ ├── hal_mmc_spi.c │ │ │ ├── hal_mmcsd.c │ │ │ ├── hal_pal.c │ │ │ ├── hal_pwm.c │ │ │ ├── hal_queues.c │ │ │ ├── hal_rtc.c │ │ │ ├── hal_sdc.c │ │ │ ├── hal_serial.c │ │ │ ├── hal_serial_usb.c │ │ │ ├── hal_spi.c │ │ │ ├── hal_st.c │ │ │ ├── hal_uart.c │ │ │ ├── hal_usb.c │ │ │ └── hal_wdg.c │ │ └── templates │ │ │ ├── board │ │ │ ├── board.c │ │ │ ├── board.h │ │ │ └── board.mk │ │ │ ├── hal_adc_lld.c │ │ │ ├── hal_adc_lld.h │ │ │ ├── hal_can_lld.c │ │ │ ├── hal_can_lld.h │ │ │ ├── hal_dac_lld.c │ │ │ ├── hal_dac_lld.h │ │ │ ├── hal_ext_lld.c │ │ │ ├── hal_ext_lld.h │ │ │ ├── hal_gpt_lld.c │ │ │ ├── hal_gpt_lld.h │ │ │ ├── hal_i2c_lld.c │ │ │ ├── hal_i2c_lld.h │ │ │ ├── hal_i2s_lld.c │ │ │ ├── hal_i2s_lld.h │ │ │ ├── hal_icu_lld.c │ │ │ ├── hal_icu_lld.h │ │ │ ├── hal_lld.c │ │ │ ├── hal_lld.h │ │ │ ├── hal_mac_lld.c │ │ │ ├── hal_mac_lld.h │ │ │ ├── hal_pal_lld.c │ │ │ ├── hal_pal_lld.h │ │ │ ├── hal_pwm_lld.c │ │ │ ├── hal_pwm_lld.h │ │ │ ├── hal_rtc_lld.c │ │ │ ├── hal_rtc_lld.h │ │ │ ├── hal_sdc_lld.c │ │ │ ├── hal_sdc_lld.h │ │ │ ├── hal_serial_lld.c │ │ │ ├── hal_serial_lld.h │ │ │ ├── hal_spi_lld.c │ │ │ ├── hal_spi_lld.h │ │ │ ├── hal_st_lld.c │ │ │ ├── hal_st_lld.h │ │ │ ├── hal_uart_lld.c │ │ │ ├── hal_uart_lld.h │ │ │ ├── hal_usb_lld.c │ │ │ ├── hal_usb_lld.h │ │ │ ├── hal_wdg_lld.c │ │ │ ├── hal_wdg_lld.h │ │ │ ├── halconf.h │ │ │ ├── mcuconf.h │ │ │ └── osal │ │ │ ├── osal.c │ │ │ ├── osal.h │ │ │ └── osal.mk │ ├── license │ │ ├── chcustomer.h │ │ └── chlicense.h │ ├── nil │ │ ├── dox │ │ │ └── nil.dox │ │ ├── include │ │ │ └── ch.h │ │ ├── nil.mk │ │ ├── src │ │ │ └── ch.c │ │ └── templates │ │ │ └── chconf.h │ ├── readme.txt │ ├── rt │ │ ├── dox │ │ │ └── rt.dox │ │ ├── include │ │ │ ├── ch.h │ │ │ ├── chalign.h │ │ │ ├── chchecks.h │ │ │ ├── chcond.h │ │ │ ├── chcustomer.h │ │ │ ├── chdebug.h │ │ │ ├── chdynamic.h │ │ │ ├── chevents.h │ │ │ ├── chmsg.h │ │ │ ├── chmtx.h │ │ │ ├── chregistry.h │ │ │ ├── chschd.h │ │ │ ├── chsem.h │ │ │ ├── chstats.h │ │ │ ├── chsys.h │ │ │ ├── chsystypes.h │ │ │ ├── chthreads.h │ │ │ ├── chtm.h │ │ │ ├── chtrace.h │ │ │ └── chvt.h │ │ ├── rt.mk │ │ ├── src │ │ │ ├── chcond.c │ │ │ ├── chdebug.c │ │ │ ├── chdynamic.c │ │ │ ├── chevents.c │ │ │ ├── chmsg.c │ │ │ ├── chmtx.c │ │ │ ├── chregistry.c │ │ │ ├── chschd.c │ │ │ ├── chsem.c │ │ │ ├── chstats.c │ │ │ ├── chsys.c │ │ │ ├── chthreads.c │ │ │ ├── chtm.c │ │ │ ├── chtrace.c │ │ │ └── chvt.c │ │ └── templates │ │ │ ├── chconf.h │ │ │ └── meta │ │ │ ├── module.c │ │ │ └── module.h │ └── various │ │ ├── cpp_wrappers │ │ ├── ch.cpp │ │ ├── ch.hpp │ │ ├── chcpp.mk │ │ ├── syscalls_cpp.cpp │ │ └── syscalls_cpp.hpp │ │ ├── devices_lib │ │ ├── accel │ │ │ ├── lis302dl.c │ │ │ ├── lis302dl.dox │ │ │ └── lis302dl.h │ │ └── lcd │ │ │ ├── lcd3310.c │ │ │ └── lcd3310.h │ │ ├── evtimer.c │ │ ├── evtimer.h │ │ ├── fatfs_bindings │ │ ├── fatfs.mk │ │ ├── fatfs_diskio.c │ │ ├── fatfs_syscall.c │ │ └── readme.txt │ │ ├── lwip_bindings │ │ ├── arch │ │ │ ├── cc.h │ │ │ ├── perf.h │ │ │ ├── sys_arch.c │ │ │ └── sys_arch.h │ │ ├── lwip.mk │ │ ├── lwipthread.c │ │ ├── lwipthread.h │ │ └── readme.txt │ │ ├── shell │ │ ├── shell.c │ │ ├── shell.h │ │ ├── shell.mk │ │ ├── shell_cmd.c │ │ └── shell_cmd.h │ │ ├── syscalls.c │ │ └── various.dox ├── readme.txt ├── release_note_next.txt ├── testhal.zip └── tools │ ├── stylecheck.pl │ └── test.c ├── FatFs ├── diskio.c ├── diskio.h ├── ff.c ├── ff.h ├── ffconf_072.h ├── ffconf_303.h ├── ffsystem.c ├── ffunicode.c └── integer.h ├── Makefile ├── NANOVNA_STM32_F072 ├── STM32F072xB.ld ├── adc_v1.c ├── board.c ├── board.h ├── board.mk ├── dac_v1.c ├── dma_v1.c ├── exti_v1.c ├── flash.c ├── gpio_v2.c ├── i2c_v2.c ├── i2s.c ├── mcuconf.h └── rtc_v2.c ├── NANOVNA_STM32_F303 ├── STM32F303xC.ld ├── adc_v3.c ├── board.c ├── board.h ├── board.mk ├── board │ └── stm32f3discovery.cfg ├── dac_v1.c ├── debug │ └── STM32F3xx-ADC (OpenOCD, Flash and Run).launch ├── dma_v1.c ├── exti_v1.c ├── flash.c ├── gpio_v2.c ├── i2c_v2.c ├── i2s.c ├── interface │ └── stlink.cfg ├── mcuconf.h ├── rtc_v2.c ├── run_openocd └── target │ ├── stm32f3x.cfg │ └── swj-dp.tcl ├── README.md ├── chconf.h ├── chprintf.c ├── common.c ├── data_storage.c ├── doc ├── nanovna-blockdiagram.png ├── nanovna-pcb-photo.jpg ├── nanovna-sch.pdf └── nanovna.jpg ├── dsp.c ├── dsp.h ├── fonts ├── Font11x14.c ├── Font5x7.c ├── Font6x10.c ├── Font7x11b.c └── numfont16x22.c ├── halconf.h ├── hardware.c ├── hardware.h ├── icons_marker.c ├── icons_menu.c ├── lcd.c ├── main.c ├── mcuconf.h ├── measure.c ├── nanovna.h ├── plot.c ├── prog.sh ├── python ├── NanoVNA-example.ipynb ├── README.md ├── nanovna.py └── requirements.txt ├── si5351.c ├── si5351.h ├── spi.h ├── tlv320aic3204.c ├── ui.c ├── usbcfg.c ├── usbcfg.h ├── vna_math.c ├── vna_math.h └── vna_modules └── vna_browser.c /.circleci/config.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | jobs: 3 | build: 4 | docker: 5 | - image: edy555/arm-embedded:8.2 6 | steps: 7 | - checkout 8 | - run: 9 | name: "Pull Submodules" 10 | command: | 11 | git submodule init 12 | git submodule update --remote 13 | - run: 14 | name: "Build Firmware" 15 | command: make 16 | - run: 17 | name: "Remove obj/lst files" 18 | command: rm -r build/obj build/lst 19 | - store_artifacts: 20 | path: build 21 | destination: build 22 | - persist_to_workspace: 23 | root: . 24 | paths: 25 | - build 26 | publish-github-release: 27 | docker: 28 | - image: circleci/golang:1.10 29 | steps: 30 | - attach_workspace: 31 | at: . 32 | - run: 33 | name: "Publish Release on GitHub" 34 | command: | 35 | go get github.com/tcnksm/ghr 36 | zip nanovna-firmware-${CIRCLE_TAG}.zip build/*.bin build/*.hex build/*.elf 37 | ghr -t ${GITHUB_TOKEN} -u ${CIRCLE_PROJECT_USERNAME} -r ${CIRCLE_PROJECT_REPONAME} -c ${CIRCLE_SHA1} -delete ${CIRCLE_TAG} nanovna-firmware-${CIRCLE_TAG}.zip 38 | workflows: 39 | version: 2 40 | main: 41 | jobs: 42 | - build: 43 | filters: 44 | tags: 45 | # 1.0.0 46 | only: /^\d+\.\d+\.\d+$/ 47 | - publish-github-release: 48 | requires: 49 | - build 50 | filters: 51 | branches: 52 | ignore: /.*/ 53 | tags: 54 | # 1.0.0 55 | only: /^\d+\.\d+\.\d+$/ -------------------------------------------------------------------------------- /.gdbinit: -------------------------------------------------------------------------------- 1 | target extended-remote :4242 2 | b hard_fault_handler_c 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: ['https://paypal.me/DiSlord'] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | .DS_Store 3 | .dep 4 | build* 5 | test 6 | python 7 | *.py 8 | *.ipynb 9 | TAGS 10 | .emacs-dirvars 11 | *png 12 | -------------------------------------------------------------------------------- /.vscode/c_cpp_properties.json: -------------------------------------------------------------------------------- 1 | { 2 | "configurations": [ 3 | { 4 | "name": "Mac", 5 | "includePath": [ 6 | "${workspaceFolder}/ChibiOS/os/hal/ports/STM32/**", 7 | "${workspaceFolder}/ChibiOS/os/common/ext/CMSIS/ST/STM32F0xx/**", 8 | "${workspaceFolder}/ChibiOS/os/common/startup/ARMCMx/**", 9 | "${workspaceFolder}/ChibiOS/os/hal/ports/common/ARMCMx/**", 10 | "${workspaceFolder}/**" 11 | ], 12 | "defines": ["STM32F072xB"], 13 | "macFrameworkPath": [], 14 | "compilerPath": "/usr/local/bin/arm-none-eabi-gcc", 15 | "cStandard": "c11", 16 | "cppStandard": "c++17" 17 | } 18 | ], 19 | "version": 4 20 | } -------------------------------------------------------------------------------- /.vscode/launch.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "0.2.0", 3 | "configurations": [ 4 | { 5 | "name": "OpenOCD-Debug", 6 | "type": "cortex-debug", 7 | "request": "launch", 8 | "servertype": "openocd", 9 | "executable": "build/ch.elf", 10 | "configFiles": [ 11 | "interface/stlink.cfg", 12 | "target/stm32f0x.cfg" 13 | ], 14 | "cwd": "${workspaceRoot}", 15 | "svdFile": "STM32F0x2.svd", 16 | "device": "stm32f0x", 17 | "preLaunchTask": "build", 18 | }, 19 | { 20 | "name": "STLink-Debug", 21 | "type": "cortex-debug", 22 | "request": "launch", 23 | "servertype": "stutil", 24 | "executable": "build/ch.elf", 25 | "cwd": "${workspaceRoot}", 26 | "svdFile": "STM32F0x2.svd", 27 | "device": "stm32f0x", 28 | "preLaunchTask": "build", 29 | } 30 | ] 31 | } -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "C_Cpp.errorSquiggles": "Disabled", 3 | "cpplint.filters": ["-build/include_subdir", "-build/include_order", "-readability/casting", "-whitespace/comments"] 4 | } -------------------------------------------------------------------------------- /.vscode/tasks.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": "2.0.0", 3 | "tasks": [ 4 | { 5 | "label": "build", 6 | "type": "shell", 7 | "command": "make", 8 | "group": { 9 | "kind": "build", 10 | "isDefault": true 11 | } 12 | }, 13 | { 14 | "label": "flash", 15 | "type": "shell", 16 | "command": "make dfu flash", 17 | "group": "build" 18 | } 19 | ] 20 | } -------------------------------------------------------------------------------- /ChibiOS/demos.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/DiSlord/NanoVNA-D/1166b5c24f5fdf1b2362c7583912a3ad14c8dbc9/ChibiOS/demos.zip -------------------------------------------------------------------------------- /ChibiOS/doc/common/rsc/footer_chm.html: -------------------------------------------------------------------------------- 1 |