Full Code of Ralim/IronOS for AI

dev a79791fb9a5c cached
1038 files
25.3 MB
6.7M tokens
10869 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (26,725K chars total). Download the full file to get everything.
Repository: Ralim/IronOS
Branch: dev
Commit: a79791fb9a5c
Files: 1038
Total size: 25.3 MB

Directory structure:
gitextract_r8x0x9vd/

├── .flake8
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── everything-else--questions--notes-etc-.md
│   │   └── feature_request.md
│   ├── dependabot.yml
│   ├── pull_request_template.md
│   ├── security.md
│   └── workflows/
│       ├── docs.yml
│       └── push.yml
├── .gitignore
├── .gitmodules
├── Development Resources/
│   ├── TS100/
│   │   ├── KiCad/
│   │   │   ├── MCU_SubBoard.sch
│   │   │   ├── TS100.pro
│   │   │   └── TS100.sch
│   │   └── TS100.ioc
│   └── TS80/
│       ├── TS80-Bootloader.hex
│       └── TS80.ioc
├── Documentation/
│   ├── Bluetooth.md
│   ├── DebugMenu.md
│   ├── DebuggingPD.md
│   ├── Development.md
│   ├── Flashing/
│   │   ├── MHP30.md
│   │   ├── Pinecil V1.md
│   │   ├── Pinecil V2.md
│   │   ├── TS100.md
│   │   └── TS80(P).md
│   ├── GettingStarted.md
│   ├── HallSensor.md
│   ├── Hardware.md
│   ├── HardwareIssues.md
│   ├── History.md
│   ├── Logo.md
│   ├── Menu.md
│   ├── PortingToNewDevice.md
│   ├── Power.md
│   ├── PowerSources.md
│   ├── README.md
│   ├── Settings.md
│   ├── Temperature.md
│   ├── Translation.md
│   ├── Troubleshooting.md
│   ├── WS2812BModding.md
│   └── index.md
├── Env.yml
├── LICENSE
├── Makefile
├── README.md
├── Translations/
│   ├── BitmapEditor.html
│   ├── README.md
│   ├── brieflz.py
│   ├── brieflz_test.py
│   ├── font_tables.py
│   ├── gen_menu_docs.py
│   ├── make_translation.py
│   ├── make_translation_test.py
│   ├── migrate.py
│   ├── objcopy.py
│   ├── translation_BE.json
│   ├── translation_BG.json
│   ├── translation_CS.json
│   ├── translation_DA.json
│   ├── translation_DE.json
│   ├── translation_EL.json
│   ├── translation_EN.json
│   ├── translation_ES.json
│   ├── translation_ET.json
│   ├── translation_FI.json
│   ├── translation_FR.json
│   ├── translation_HR.json
│   ├── translation_HU.json
│   ├── translation_IT.json
│   ├── translation_JA_JP.json
│   ├── translation_LT.json
│   ├── translation_NB.json
│   ├── translation_NL.json
│   ├── translation_NL_BE.json
│   ├── translation_PL.json
│   ├── translation_PT.json
│   ├── translation_RO.json
│   ├── translation_RU.json
│   ├── translation_SK.json
│   ├── translation_SL.json
│   ├── translation_SR_CYRL.json
│   ├── translation_SR_LATN.json
│   ├── translation_SV.json
│   ├── translation_TR.json
│   ├── translation_UK.json
│   ├── translation_UZ.json
│   ├── translation_VI.json
│   ├── translation_YUE_HK.json
│   ├── translation_ZH_CN.json
│   ├── translation_ZH_TW.json
│   ├── translations_definitions.json
│   └── wqy-bitmapsong/
│       ├── AUTHORS
│       ├── COPYING
│       ├── README.md
│       ├── README_original
│       └── wenquanyi_9pt.bdf
├── scripts/
│   ├── IronOS-mkdocs.yml
│   ├── IronOS.Dockerfile
│   ├── LICENSE_RELEASE.md
│   ├── deploy.sh
│   └── flash_ts10X_linux.sh
└── source/
    ├── .clang-format
    ├── Core/
    │   ├── BSP/
    │   │   ├── BSP.h
    │   │   ├── BSP_Common.c
    │   │   ├── BSP_Flash.h
    │   │   ├── BSP_PD.h
    │   │   ├── BSP_Power.h
    │   │   ├── BSP_QC.h
    │   │   ├── Defines.h
    │   │   ├── MHP30/
    │   │   │   ├── BSP.cpp
    │   │   │   ├── FreeRTOSConfig.h
    │   │   │   ├── IRQ.cpp
    │   │   │   ├── IRQ.h
    │   │   │   ├── Pins.h
    │   │   │   ├── Power.cpp
    │   │   │   ├── QC_GPIO.cpp
    │   │   │   ├── README.md
    │   │   │   ├── Setup.c
    │   │   │   ├── Setup.h
    │   │   │   ├── Software_I2C.h
    │   │   │   ├── Startup/
    │   │   │   │   └── startup_stm32f103t8ux.S
    │   │   │   ├── ThermoModel.cpp
    │   │   │   ├── Vendor/
    │   │   │   │   ├── CMSIS/
    │   │   │   │   │   ├── Device/
    │   │   │   │   │   │   └── ST/
    │   │   │   │   │   │       └── STM32F1xx/
    │   │   │   │   │   │           └── Include/
    │   │   │   │   │   │               ├── stm32f103xb.h
    │   │   │   │   │   │               ├── stm32f1xx.h
    │   │   │   │   │   │               └── system_stm32f1xx.h
    │   │   │   │   │   └── Include/
    │   │   │   │   │       ├── cmsis_armcc.h
    │   │   │   │   │       ├── cmsis_armclang.h
    │   │   │   │   │       ├── cmsis_compiler.h
    │   │   │   │   │       ├── cmsis_gcc.h
    │   │   │   │   │       ├── cmsis_iccarm.h
    │   │   │   │   │       ├── cmsis_version.h
    │   │   │   │   │       ├── core_cm3.h
    │   │   │   │   │       ├── core_sc000.h
    │   │   │   │   │       ├── core_sc300.h
    │   │   │   │   │       └── tz_context.h
    │   │   │   │   └── STM32F1xx_HAL_Driver/
    │   │   │   │       ├── Inc/
    │   │   │   │       │   ├── Legacy/
    │   │   │   │       │   │   └── stm32_hal_legacy.h
    │   │   │   │       │   ├── stm32f1xx_hal.h
    │   │   │   │       │   ├── stm32f1xx_hal_adc.h
    │   │   │   │       │   ├── stm32f1xx_hal_adc_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_cortex.h
    │   │   │   │       │   ├── stm32f1xx_hal_def.h
    │   │   │   │       │   ├── stm32f1xx_hal_dma.h
    │   │   │   │       │   ├── stm32f1xx_hal_dma_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_exti.h
    │   │   │   │       │   ├── stm32f1xx_hal_flash.h
    │   │   │   │       │   ├── stm32f1xx_hal_flash_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_gpio.h
    │   │   │   │       │   ├── stm32f1xx_hal_gpio_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_iwdg.h
    │   │   │   │       │   ├── stm32f1xx_hal_pwr.h
    │   │   │   │       │   ├── stm32f1xx_hal_rcc.h
    │   │   │   │       │   ├── stm32f1xx_hal_rcc_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_tim.h
    │   │   │   │       │   └── stm32f1xx_hal_tim_ex.h
    │   │   │   │       └── Src/
    │   │   │   │           ├── stm32f1xx_hal.c
    │   │   │   │           ├── stm32f1xx_hal_adc.c
    │   │   │   │           ├── stm32f1xx_hal_adc_ex.c
    │   │   │   │           ├── stm32f1xx_hal_cortex.c
    │   │   │   │           ├── stm32f1xx_hal_dma.c
    │   │   │   │           ├── stm32f1xx_hal_exti.c
    │   │   │   │           ├── stm32f1xx_hal_flash.c
    │   │   │   │           ├── stm32f1xx_hal_flash_ex.c
    │   │   │   │           ├── stm32f1xx_hal_gpio.c
    │   │   │   │           ├── stm32f1xx_hal_gpio_ex.c
    │   │   │   │           ├── stm32f1xx_hal_iwdg.c
    │   │   │   │           ├── stm32f1xx_hal_pwr.c
    │   │   │   │           ├── stm32f1xx_hal_rcc.c
    │   │   │   │           ├── stm32f1xx_hal_rcc_ex.c
    │   │   │   │           ├── stm32f1xx_hal_tim.c
    │   │   │   │           └── stm32f1xx_hal_tim_ex.c
    │   │   │   ├── configuration.h
    │   │   │   ├── flash.c
    │   │   │   ├── fusb_user.cpp
    │   │   │   ├── port.c
    │   │   │   ├── portmacro.h
    │   │   │   ├── postRTOS.cpp
    │   │   │   ├── preRTOS.cpp
    │   │   │   ├── stm32f103.ld
    │   │   │   ├── stm32f1xx_hal_msp.c
    │   │   │   ├── stm32f1xx_hal_timebase_TIM.c
    │   │   │   ├── stm32f1xx_it.c
    │   │   │   └── system_stm32f1xx.c
    │   │   ├── Miniware/
    │   │   │   ├── BSP.cpp
    │   │   │   ├── FreeRTOSConfig.h
    │   │   │   ├── IRQ.cpp
    │   │   │   ├── IRQ.h
    │   │   │   ├── Pins.h
    │   │   │   ├── Power.cpp
    │   │   │   ├── QC_GPIO.cpp
    │   │   │   ├── README.md
    │   │   │   ├── Setup.cpp
    │   │   │   ├── Setup.h
    │   │   │   ├── Software_I2C.h
    │   │   │   ├── Startup/
    │   │   │   │   └── startup_stm32f103t8ux.S
    │   │   │   ├── ThermoModel.cpp
    │   │   │   ├── Vendor/
    │   │   │   │   ├── CMSIS/
    │   │   │   │   │   ├── Device/
    │   │   │   │   │   │   └── ST/
    │   │   │   │   │   │       └── STM32F1xx/
    │   │   │   │   │   │           └── Include/
    │   │   │   │   │   │               ├── stm32f103xb.h
    │   │   │   │   │   │               ├── stm32f1xx.h
    │   │   │   │   │   │               └── system_stm32f1xx.h
    │   │   │   │   │   └── Include/
    │   │   │   │   │       ├── arm_common_tables.h
    │   │   │   │   │       ├── arm_const_structs.h
    │   │   │   │   │       ├── arm_math.h
    │   │   │   │   │       ├── cmsis_armcc.h
    │   │   │   │   │       ├── cmsis_armcc_V6.h
    │   │   │   │   │       ├── cmsis_gcc.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
    │   │   │   │   │       ├── core_sc000.h
    │   │   │   │   │       └── core_sc300.h
    │   │   │   │   └── STM32F1xx_HAL_Driver/
    │   │   │   │       ├── Inc/
    │   │   │   │       │   ├── Legacy/
    │   │   │   │       │   │   └── stm32_hal_legacy.h
    │   │   │   │       │   ├── stm32f1xx_hal.h
    │   │   │   │       │   ├── stm32f1xx_hal_adc.h
    │   │   │   │       │   ├── stm32f1xx_hal_adc_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_cortex.h
    │   │   │   │       │   ├── stm32f1xx_hal_def.h
    │   │   │   │       │   ├── stm32f1xx_hal_dma.h
    │   │   │   │       │   ├── stm32f1xx_hal_dma_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_flash.h
    │   │   │   │       │   ├── stm32f1xx_hal_flash_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_gpio.h
    │   │   │   │       │   ├── stm32f1xx_hal_gpio_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_i2c.h
    │   │   │   │       │   ├── stm32f1xx_hal_iwdg.h
    │   │   │   │       │   ├── stm32f1xx_hal_pwr.h
    │   │   │   │       │   ├── stm32f1xx_hal_rcc.h
    │   │   │   │       │   ├── stm32f1xx_hal_rcc_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_tim.h
    │   │   │   │       │   └── stm32f1xx_hal_tim_ex.h
    │   │   │   │       └── Src/
    │   │   │   │           ├── stm32f1xx_hal.c
    │   │   │   │           ├── stm32f1xx_hal_adc.c
    │   │   │   │           ├── stm32f1xx_hal_adc_ex.c
    │   │   │   │           ├── stm32f1xx_hal_cortex.c
    │   │   │   │           ├── stm32f1xx_hal_dma.c
    │   │   │   │           ├── stm32f1xx_hal_flash.c
    │   │   │   │           ├── stm32f1xx_hal_flash_ex.c
    │   │   │   │           ├── stm32f1xx_hal_gpio.c
    │   │   │   │           ├── stm32f1xx_hal_gpio_ex.c
    │   │   │   │           ├── stm32f1xx_hal_iwdg.c
    │   │   │   │           ├── stm32f1xx_hal_pwr.c
    │   │   │   │           ├── stm32f1xx_hal_rcc.c
    │   │   │   │           ├── stm32f1xx_hal_rcc_ex.c
    │   │   │   │           ├── stm32f1xx_hal_tim.c
    │   │   │   │           └── stm32f1xx_hal_tim_ex.c
    │   │   │   ├── configuration.h
    │   │   │   ├── flash.c
    │   │   │   ├── fusb_user.cpp
    │   │   │   ├── port.c
    │   │   │   ├── portmacro.h
    │   │   │   ├── postRTOS.cpp
    │   │   │   ├── preRTOS.cpp
    │   │   │   ├── stm32f103.ld
    │   │   │   ├── stm32f1xx_hal_msp.c
    │   │   │   ├── stm32f1xx_hal_timebase_TIM.c
    │   │   │   ├── stm32f1xx_it.c
    │   │   │   └── system_stm32f1xx.c
    │   │   ├── Pinecil/
    │   │   │   ├── BSP.cpp
    │   │   │   ├── Debug.cpp
    │   │   │   ├── Debug.h
    │   │   │   ├── FreeRTOSConfig.h
    │   │   │   ├── I2C_Wrapper.cpp
    │   │   │   ├── IRQ.cpp
    │   │   │   ├── IRQ.h
    │   │   │   ├── NOTES.md
    │   │   │   ├── Pins.h
    │   │   │   ├── Power.cpp
    │   │   │   ├── QC_GPIO.cpp
    │   │   │   ├── README.md
    │   │   │   ├── Setup.cpp
    │   │   │   ├── Setup.h
    │   │   │   ├── ThermoModel.cpp
    │   │   │   ├── UnitSettings.h
    │   │   │   ├── Vendor/
    │   │   │   │   ├── NMSIS/
    │   │   │   │   │   └── Core/
    │   │   │   │   │       └── Include/
    │   │   │   │   │           ├── core_compatiable.h
    │   │   │   │   │           ├── core_feature_base.h
    │   │   │   │   │           ├── core_feature_cache.h
    │   │   │   │   │           ├── core_feature_dsp.h
    │   │   │   │   │           ├── core_feature_eclic.h
    │   │   │   │   │           ├── core_feature_fpu.h
    │   │   │   │   │           ├── core_feature_pmp.h
    │   │   │   │   │           ├── core_feature_timer.h
    │   │   │   │   │           ├── nmsis_compiler.h
    │   │   │   │   │           ├── nmsis_core.h
    │   │   │   │   │           ├── nmsis_gcc.h
    │   │   │   │   │           ├── nmsis_version.h
    │   │   │   │   │           ├── riscv_bits.h
    │   │   │   │   │           └── riscv_encoding.h
    │   │   │   │   ├── OS/
    │   │   │   │   │   └── FreeRTOS/
    │   │   │   │   │       └── Source/
    │   │   │   │   │           └── portable/
    │   │   │   │   │               └── GCC/
    │   │   │   │   │                   ├── port.c
    │   │   │   │   │                   ├── portasm.S
    │   │   │   │   │                   └── portmacro.h
    │   │   │   │   └── SoC/
    │   │   │   │       └── gd32vf103/
    │   │   │   │           ├── Board/
    │   │   │   │           │   └── pinecil/
    │   │   │   │           │       ├── Source/
    │   │   │   │           │       │   └── GCC/
    │   │   │   │           │       │       └── gcc_gd32vf103_flashxip.ld
    │   │   │   │           │       └── openocd_gd32vf103.cfg
    │   │   │   │           └── Common/
    │   │   │   │               ├── Include/
    │   │   │   │               │   ├── Usb/
    │   │   │   │               │   │   ├── drv_usb_core.h
    │   │   │   │               │   │   ├── drv_usb_dev.h
    │   │   │   │               │   │   ├── drv_usb_host.h
    │   │   │   │               │   │   ├── drv_usb_hw.h
    │   │   │   │               │   │   ├── drv_usb_regs.h
    │   │   │   │               │   │   ├── drv_usbd_int.h
    │   │   │   │               │   │   ├── drv_usbh_int.h
    │   │   │   │               │   │   ├── usb_ch9_std.h
    │   │   │   │               │   │   ├── usb_conf.h
    │   │   │   │               │   │   ├── usbd_conf.h
    │   │   │   │               │   │   ├── usbd_core.h
    │   │   │   │               │   │   ├── usbd_enum.h
    │   │   │   │               │   │   ├── usbd_transc.h
    │   │   │   │               │   │   ├── usbh_conf.h
    │   │   │   │               │   │   ├── usbh_core.h
    │   │   │   │               │   │   ├── usbh_enum.h
    │   │   │   │               │   │   ├── usbh_pipe.h
    │   │   │   │               │   │   └── usbh_transc.h
    │   │   │   │               │   ├── gd32vf103.h
    │   │   │   │               │   ├── gd32vf103_adc.h
    │   │   │   │               │   ├── gd32vf103_bkp.h
    │   │   │   │               │   ├── gd32vf103_crc.h
    │   │   │   │               │   ├── gd32vf103_dac.h
    │   │   │   │               │   ├── gd32vf103_dbg.h
    │   │   │   │               │   ├── gd32vf103_dma.h
    │   │   │   │               │   ├── gd32vf103_eclic.h
    │   │   │   │               │   ├── gd32vf103_exmc.h
    │   │   │   │               │   ├── gd32vf103_exti.h
    │   │   │   │               │   ├── gd32vf103_fmc.h
    │   │   │   │               │   ├── gd32vf103_fwdgt.h
    │   │   │   │               │   ├── gd32vf103_gpio.h
    │   │   │   │               │   ├── gd32vf103_i2c.h
    │   │   │   │               │   ├── gd32vf103_libopt.h
    │   │   │   │               │   ├── gd32vf103_pmu.h
    │   │   │   │               │   ├── gd32vf103_rcu.h
    │   │   │   │               │   ├── gd32vf103_rtc.h
    │   │   │   │               │   ├── gd32vf103_spi.h
    │   │   │   │               │   ├── gd32vf103_timer.h
    │   │   │   │               │   ├── gd32vf103_usart.h
    │   │   │   │               │   ├── gd32vf103_wwdgt.h
    │   │   │   │               │   ├── n200_func.h
    │   │   │   │               │   ├── nuclei_sdk_soc.h
    │   │   │   │               │   └── system_gd32vf103.h
    │   │   │   │               └── Source/
    │   │   │   │                   ├── Drivers/
    │   │   │   │                   │   ├── Usb/
    │   │   │   │                   │   │   ├── drv_usb_core.c
    │   │   │   │                   │   │   ├── drv_usb_dev.c
    │   │   │   │                   │   │   ├── drv_usb_host.c
    │   │   │   │                   │   │   ├── drv_usbd_int.c
    │   │   │   │                   │   │   ├── drv_usbh_int.c
    │   │   │   │                   │   │   ├── gd32vf103_usb_hw.c
    │   │   │   │                   │   │   ├── usbd_core.c
    │   │   │   │                   │   │   ├── usbd_enum.c
    │   │   │   │                   │   │   ├── usbd_transc.c
    │   │   │   │                   │   │   ├── usbh_core.c
    │   │   │   │                   │   │   ├── usbh_enum.c
    │   │   │   │                   │   │   ├── usbh_pipe.c
    │   │   │   │                   │   │   └── usbh_transc.c
    │   │   │   │                   │   ├── gd32vf103_adc.c
    │   │   │   │                   │   ├── gd32vf103_bkp.c
    │   │   │   │                   │   ├── gd32vf103_crc.c
    │   │   │   │                   │   ├── gd32vf103_dac.c
    │   │   │   │                   │   ├── gd32vf103_dbg.c
    │   │   │   │                   │   ├── gd32vf103_dma.c
    │   │   │   │                   │   ├── gd32vf103_eclic.c
    │   │   │   │                   │   ├── gd32vf103_exmc.c
    │   │   │   │                   │   ├── gd32vf103_exti.c
    │   │   │   │                   │   ├── gd32vf103_fmc.c
    │   │   │   │                   │   ├── gd32vf103_fwdgt.c
    │   │   │   │                   │   ├── gd32vf103_gpio.c
    │   │   │   │                   │   ├── gd32vf103_i2c.c
    │   │   │   │                   │   ├── gd32vf103_pmu.c
    │   │   │   │                   │   ├── gd32vf103_rcu.c
    │   │   │   │                   │   ├── gd32vf103_rtc.c
    │   │   │   │                   │   ├── gd32vf103_spi.c
    │   │   │   │                   │   ├── gd32vf103_timer.c
    │   │   │   │                   │   ├── gd32vf103_usart.c
    │   │   │   │                   │   ├── gd32vf103_wwdgt.c
    │   │   │   │                   │   └── n200_func.c
    │   │   │   │                   ├── GCC/
    │   │   │   │                   │   ├── intexc_gd32vf103.S
    │   │   │   │                   │   └── startup_gd32vf103.S
    │   │   │   │                   ├── Stubs/
    │   │   │   │                   │   ├── close.c
    │   │   │   │                   │   ├── fstat.c
    │   │   │   │                   │   ├── gettimeofday.c
    │   │   │   │                   │   ├── isatty.c
    │   │   │   │                   │   ├── lseek.c
    │   │   │   │                   │   ├── read.c
    │   │   │   │                   │   ├── sbrk.c
    │   │   │   │                   │   └── stub.h
    │   │   │   │                   ├── gd32vf103_soc.c
    │   │   │   │                   └── system_gd32vf103.c
    │   │   │   ├── configuration.h
    │   │   │   ├── flash.c
    │   │   │   ├── fusb_user.cpp
    │   │   │   ├── postRTOS.cpp
    │   │   │   └── preRTOS.cpp
    │   │   ├── Pinecilv2/
    │   │   │   ├── BSP.cpp
    │   │   │   ├── Debug.cpp
    │   │   │   ├── Debug.h
    │   │   │   ├── FreeRTOSConfig.h
    │   │   │   ├── I2C_Wrapper.cpp
    │   │   │   ├── IRQ.cpp
    │   │   │   ├── IRQ.h
    │   │   │   ├── MemMang/
    │   │   │   │   └── heap_5.c
    │   │   │   ├── NOTES.md
    │   │   │   ├── Pins.h
    │   │   │   ├── Power.cpp
    │   │   │   ├── QC_GPIO.cpp
    │   │   │   ├── README.md
    │   │   │   ├── Setup.cpp
    │   │   │   ├── Setup.h
    │   │   │   ├── ThermoModel.cpp
    │   │   │   ├── UnitSettings.h
    │   │   │   ├── bl702_config.h
    │   │   │   ├── bl_irq.c
    │   │   │   ├── bl_irq.h
    │   │   │   ├── bl_mcu_sdk/
    │   │   │   │   ├── LICENSE
    │   │   │   │   ├── ReleaseNotes
    │   │   │   │   ├── bsp/
    │   │   │   │   │   └── bsp_common/
    │   │   │   │   │       └── platform/
    │   │   │   │   │           ├── bflb_platform.c
    │   │   │   │   │           ├── bflb_platform.h
    │   │   │   │   │           ├── cpp_new.cpp
    │   │   │   │   │           └── syscalls.c
    │   │   │   │   ├── common/
    │   │   │   │   │   ├── CMakeLists.txt
    │   │   │   │   │   ├── bl_math/
    │   │   │   │   │   │   ├── arm_dsp_wrapper.c
    │   │   │   │   │   │   └── arm_dsp_wrapper.h
    │   │   │   │   │   ├── device/
    │   │   │   │   │   │   ├── drv_device.c
    │   │   │   │   │   │   └── drv_device.h
    │   │   │   │   │   ├── list/
    │   │   │   │   │   │   └── drv_list.h
    │   │   │   │   │   ├── misc/
    │   │   │   │   │   │   ├── compiler/
    │   │   │   │   │   │   │   ├── common.h
    │   │   │   │   │   │   │   └── gcc.h
    │   │   │   │   │   │   ├── misc.c
    │   │   │   │   │   │   └── misc.h
    │   │   │   │   │   ├── partition/
    │   │   │   │   │   │   ├── partition.c
    │   │   │   │   │   │   └── partition.h
    │   │   │   │   │   ├── pid/
    │   │   │   │   │   │   ├── pid.c
    │   │   │   │   │   │   └── pid.h
    │   │   │   │   │   ├── ring_buffer/
    │   │   │   │   │   │   ├── ring_buffer.c
    │   │   │   │   │   │   └── ring_buffer.h
    │   │   │   │   │   ├── soft_crc/
    │   │   │   │   │   │   ├── softcrc.c
    │   │   │   │   │   │   └── softcrc.h
    │   │   │   │   │   └── timestamp/
    │   │   │   │   │       ├── timestamp.c
    │   │   │   │   │       └── timestamp.h
    │   │   │   │   ├── components/
    │   │   │   │   │   ├── ble/
    │   │   │   │   │   │   ├── ble_stack/
    │   │   │   │   │   │   │   ├── bl_hci_wrapper/
    │   │   │   │   │   │   │   │   ├── bl_hci_wrapper.c
    │   │   │   │   │   │   │   │   └── bl_hci_wrapper.h
    │   │   │   │   │   │   │   ├── common/
    │   │   │   │   │   │   │   │   ├── atomic_c.c
    │   │   │   │   │   │   │   │   ├── buf.c
    │   │   │   │   │   │   │   │   ├── dec.c
    │   │   │   │   │   │   │   │   ├── dummy.c
    │   │   │   │   │   │   │   │   ├── hex.c
    │   │   │   │   │   │   │   │   ├── include/
    │   │   │   │   │   │   │   │   │   ├── atomic.h
    │   │   │   │   │   │   │   │   │   ├── errno.h
    │   │   │   │   │   │   │   │   │   ├── misc/
    │   │   │   │   │   │   │   │   │   │   ├── __assert.h
    │   │   │   │   │   │   │   │   │   │   ├── byteorder.h
    │   │   │   │   │   │   │   │   │   │   ├── dlist.h
    │   │   │   │   │   │   │   │   │   │   ├── printk.h
    │   │   │   │   │   │   │   │   │   │   ├── slist.h
    │   │   │   │   │   │   │   │   │   │   ├── stack.h
    │   │   │   │   │   │   │   │   │   │   ├── util.h
    │   │   │   │   │   │   │   │   │   │   └── utils_string.h
    │   │   │   │   │   │   │   │   │   ├── net/
    │   │   │   │   │   │   │   │   │   │   └── buf.h
    │   │   │   │   │   │   │   │   │   ├── toolchain/
    │   │   │   │   │   │   │   │   │   │   ├── common.h
    │   │   │   │   │   │   │   │   │   │   ├── gcc.h
    │   │   │   │   │   │   │   │   │   │   └── xcc.h
    │   │   │   │   │   │   │   │   │   ├── toolchain.h
    │   │   │   │   │   │   │   │   │   ├── work_q.h
    │   │   │   │   │   │   │   │   │   └── zephyr/
    │   │   │   │   │   │   │   │   │       └── types.h
    │   │   │   │   │   │   │   │   ├── log.c
    │   │   │   │   │   │   │   │   ├── log.h
    │   │   │   │   │   │   │   │   ├── poll.c
    │   │   │   │   │   │   │   │   ├── rpa.c
    │   │   │   │   │   │   │   │   ├── rpa.h
    │   │   │   │   │   │   │   │   ├── tinycrypt/
    │   │   │   │   │   │   │   │   │   ├── Kconfig
    │   │   │   │   │   │   │   │   │   ├── README
    │   │   │   │   │   │   │   │   │   ├── include/
    │   │   │   │   │   │   │   │   │   │   └── tinycrypt/
    │   │   │   │   │   │   │   │   │   │       ├── aes.h
    │   │   │   │   │   │   │   │   │   │       ├── cbc_mode.h
    │   │   │   │   │   │   │   │   │   │       ├── ccm_mode.h
    │   │   │   │   │   │   │   │   │   │       ├── cmac_mode.h
    │   │   │   │   │   │   │   │   │   │       ├── constants.h
    │   │   │   │   │   │   │   │   │   │       ├── ctr_mode.h
    │   │   │   │   │   │   │   │   │   │       ├── ctr_prng.h
    │   │   │   │   │   │   │   │   │   │       ├── ecc.h
    │   │   │   │   │   │   │   │   │   │       ├── ecc_dh.h
    │   │   │   │   │   │   │   │   │   │       ├── ecc_dsa.h
    │   │   │   │   │   │   │   │   │   │       ├── ecc_platform_specific.h
    │   │   │   │   │   │   │   │   │   │       ├── hmac.h
    │   │   │   │   │   │   │   │   │   │       ├── hmac_prng.h
    │   │   │   │   │   │   │   │   │   │       ├── sha256.h
    │   │   │   │   │   │   │   │   │   │       └── utils.h
    │   │   │   │   │   │   │   │   │   └── source/
    │   │   │   │   │   │   │   │   │       ├── aes_decrypt.c
    │   │   │   │   │   │   │   │   │       ├── aes_encrypt.c
    │   │   │   │   │   │   │   │   │       ├── cbc_mode.c
    │   │   │   │   │   │   │   │   │       ├── ccm_mode.c
    │   │   │   │   │   │   │   │   │       ├── cmac_mode.c
    │   │   │   │   │   │   │   │   │       ├── ctr_mode.c
    │   │   │   │   │   │   │   │   │       ├── ctr_prng.c
    │   │   │   │   │   │   │   │   │       ├── ecc.c
    │   │   │   │   │   │   │   │   │       ├── ecc_dh.c
    │   │   │   │   │   │   │   │   │       ├── ecc_dsa.c
    │   │   │   │   │   │   │   │   │       ├── ecc_platform_specific.c
    │   │   │   │   │   │   │   │   │       ├── hmac.c
    │   │   │   │   │   │   │   │   │       ├── hmac_prng.c
    │   │   │   │   │   │   │   │   │       ├── sha256.c
    │   │   │   │   │   │   │   │   │       └── utils.c
    │   │   │   │   │   │   │   │   ├── utils.c
    │   │   │   │   │   │   │   │   └── work_q.c
    │   │   │   │   │   │   │   ├── hci_onchip/
    │   │   │   │   │   │   │   │   ├── hci_driver.c
    │   │   │   │   │   │   │   │   └── hci_internal.h
    │   │   │   │   │   │   │   ├── host/
    │   │   │   │   │   │   │   │   ├── at.c
    │   │   │   │   │   │   │   │   ├── at.h
    │   │   │   │   │   │   │   │   ├── att.c
    │   │   │   │   │   │   │   │   ├── att_internal.h
    │   │   │   │   │   │   │   │   ├── avdtp_internal.h
    │   │   │   │   │   │   │   │   ├── conn.c
    │   │   │   │   │   │   │   │   ├── conn_internal.h
    │   │   │   │   │   │   │   │   ├── crypto.c
    │   │   │   │   │   │   │   │   ├── crypto.h
    │   │   │   │   │   │   │   │   ├── ecc.h
    │   │   │   │   │   │   │   │   ├── gatt.c
    │   │   │   │   │   │   │   │   ├── gatt_internal.h
    │   │   │   │   │   │   │   │   ├── hci_core.c
    │   │   │   │   │   │   │   │   ├── hci_core.h
    │   │   │   │   │   │   │   │   ├── hci_ecc.c
    │   │   │   │   │   │   │   │   ├── hci_ecc.h
    │   │   │   │   │   │   │   │   ├── hfp_hf.c
    │   │   │   │   │   │   │   │   ├── hfp_internal.h
    │   │   │   │   │   │   │   │   ├── iso_internal.h
    │   │   │   │   │   │   │   │   ├── keys.c
    │   │   │   │   │   │   │   │   ├── keys.h
    │   │   │   │   │   │   │   │   ├── keys_br.c
    │   │   │   │   │   │   │   │   ├── l2cap.c
    │   │   │   │   │   │   │   │   ├── l2cap_internal.h
    │   │   │   │   │   │   │   │   ├── monitor.c
    │   │   │   │   │   │   │   │   ├── monitor.h
    │   │   │   │   │   │   │   │   ├── multi_adv.c
    │   │   │   │   │   │   │   │   ├── multi_adv.h
    │   │   │   │   │   │   │   │   ├── rfcomm_internal.h
    │   │   │   │   │   │   │   │   ├── sdp.c
    │   │   │   │   │   │   │   │   ├── sdp_internal.h
    │   │   │   │   │   │   │   │   ├── settings.c
    │   │   │   │   │   │   │   │   ├── settings.h
    │   │   │   │   │   │   │   │   ├── smp.h
    │   │   │   │   │   │   │   │   ├── smp_null.c
    │   │   │   │   │   │   │   │   └── uuid.c
    │   │   │   │   │   │   │   ├── include/
    │   │   │   │   │   │   │   │   ├── bluetooth/
    │   │   │   │   │   │   │   │   │   ├── a2dp-codec.h
    │   │   │   │   │   │   │   │   │   ├── a2dp.h
    │   │   │   │   │   │   │   │   │   ├── addr.h
    │   │   │   │   │   │   │   │   │   ├── att.h
    │   │   │   │   │   │   │   │   │   ├── avdtp.h
    │   │   │   │   │   │   │   │   │   ├── bluetooth.h
    │   │   │   │   │   │   │   │   │   ├── buf.h
    │   │   │   │   │   │   │   │   │   ├── conn.h
    │   │   │   │   │   │   │   │   │   ├── crypto.h
    │   │   │   │   │   │   │   │   │   ├── gap.h
    │   │   │   │   │   │   │   │   │   ├── gatt.h
    │   │   │   │   │   │   │   │   │   ├── hci_err.h
    │   │   │   │   │   │   │   │   │   ├── hci_host.h
    │   │   │   │   │   │   │   │   │   ├── hci_raw.h
    │   │   │   │   │   │   │   │   │   ├── hci_vs.h
    │   │   │   │   │   │   │   │   │   ├── hfp_hf.h
    │   │   │   │   │   │   │   │   │   ├── iso.h
    │   │   │   │   │   │   │   │   │   ├── l2cap.h
    │   │   │   │   │   │   │   │   │   ├── rfcomm.h
    │   │   │   │   │   │   │   │   │   ├── sdp.h
    │   │   │   │   │   │   │   │   │   └── uuid.h
    │   │   │   │   │   │   │   │   └── drivers/
    │   │   │   │   │   │   │   │       └── bluetooth/
    │   │   │   │   │   │   │   │           └── hci_driver.h
    │   │   │   │   │   │   │   ├── port/
    │   │   │   │   │   │   │   │   ├── bl_port.c
    │   │   │   │   │   │   │   │   └── include/
    │   │   │   │   │   │   │   │       ├── bl_port.h
    │   │   │   │   │   │   │   │       ├── ble_config.h
    │   │   │   │   │   │   │   │       └── zephyr.h
    │   │   │   │   │   │   │   └── services/
    │   │   │   │   │   │   │       ├── bas.c
    │   │   │   │   │   │   │       ├── bas.h
    │   │   │   │   │   │   │       ├── dis.c
    │   │   │   │   │   │   │       ├── dis.h
    │   │   │   │   │   │   │       ├── hog.c
    │   │   │   │   │   │   │       ├── hog.h
    │   │   │   │   │   │   │       ├── oad/
    │   │   │   │   │   │   │       │   ├── oad.h
    │   │   │   │   │   │   │       │   ├── oad_client.h
    │   │   │   │   │   │   │       │   ├── oad_main.h
    │   │   │   │   │   │   │       │   └── oad_service.h
    │   │   │   │   │   │   │       ├── scps.c
    │   │   │   │   │   │   │       └── scps.h
    │   │   │   │   │   │   └── blecontroller/
    │   │   │   │   │   │       ├── ble_inc/
    │   │   │   │   │   │       │   ├── ble_lib_api.h
    │   │   │   │   │   │       │   └── hci_onchip.h
    │   │   │   │   │   │       └── lib/
    │   │   │   │   │   │           └── README.md
    │   │   │   │   │   ├── freertos/
    │   │   │   │   │   │   └── portable/
    │   │   │   │   │   │       ├── gcc/
    │   │   │   │   │   │       │   └── risc-v/
    │   │   │   │   │   │       │       └── bl702/
    │   │   │   │   │   │       │           ├── freertos_risc_v_chip_specific_extensions.h
    │   │   │   │   │   │       │           ├── port.c
    │   │   │   │   │   │       │           ├── portASM.S
    │   │   │   │   │   │       │           └── portmacro.h
    │   │   │   │   │   │       └── readme.txt
    │   │   │   │   │   └── nmsis/
    │   │   │   │   │       ├── CMakeLists.txt
    │   │   │   │   │       └── core/
    │   │   │   │   │           └── inc/
    │   │   │   │   │               ├── core_compatiable.h
    │   │   │   │   │               ├── core_feature_base.h
    │   │   │   │   │               ├── core_feature_cache.h
    │   │   │   │   │               ├── core_feature_dsp.h
    │   │   │   │   │               ├── core_feature_eclic.h
    │   │   │   │   │               ├── core_feature_fpu.h
    │   │   │   │   │               ├── core_feature_pmp.h
    │   │   │   │   │               ├── core_feature_timer.h
    │   │   │   │   │               ├── nmsis_compiler.h
    │   │   │   │   │               ├── nmsis_core.h
    │   │   │   │   │               ├── nmsis_gcc.h
    │   │   │   │   │               ├── nmsis_version.h
    │   │   │   │   │               ├── riscv_bits.h
    │   │   │   │   │               └── riscv_encoding.h
    │   │   │   │   └── drivers/
    │   │   │   │       └── bl702_driver/
    │   │   │   │           ├── CMakeLists.txt
    │   │   │   │           ├── bl702_flash.ld
    │   │   │   │           ├── cpu_flags.cmake
    │   │   │   │           ├── hal_drv/
    │   │   │   │           │   ├── default_config/
    │   │   │   │           │   │   ├── adc_config.h
    │   │   │   │           │   │   ├── dac_config.h
    │   │   │   │           │   │   ├── i2s_config.h
    │   │   │   │           │   │   └── uart_config.h
    │   │   │   │           │   ├── inc/
    │   │   │   │           │   │   ├── hal_adc.h
    │   │   │   │           │   │   ├── hal_boot2.h
    │   │   │   │           │   │   ├── hal_clock.h
    │   │   │   │           │   │   ├── hal_common.h
    │   │   │   │           │   │   ├── hal_dma.h
    │   │   │   │           │   │   ├── hal_flash.h
    │   │   │   │           │   │   ├── hal_gpio.h
    │   │   │   │           │   │   ├── hal_i2c.h
    │   │   │   │           │   │   ├── hal_mtimer.h
    │   │   │   │           │   │   ├── hal_pm.h
    │   │   │   │           │   │   ├── hal_pm_util.h
    │   │   │   │           │   │   ├── hal_rtc.h
    │   │   │   │           │   │   ├── hal_sec_aes.h
    │   │   │   │           │   │   ├── hal_sec_dsa.h
    │   │   │   │           │   │   ├── hal_sec_ecdsa.h
    │   │   │   │           │   │   ├── hal_sec_hash.h
    │   │   │   │           │   │   ├── hal_uart.h
    │   │   │   │           │   │   ├── hal_usb.h
    │   │   │   │           │   │   └── hal_wdt.h
    │   │   │   │           │   └── src/
    │   │   │   │           │       ├── hal_boot2.c
    │   │   │   │           │       ├── hal_clock.c
    │   │   │   │           │       ├── hal_common.c
    │   │   │   │           │       ├── hal_dma.c
    │   │   │   │           │       ├── hal_flash.c
    │   │   │   │           │       ├── hal_gpio.c
    │   │   │   │           │       ├── hal_i2c.c
    │   │   │   │           │       ├── hal_mtimer.c
    │   │   │   │           │       ├── hal_pm.c
    │   │   │   │           │       ├── hal_pm_util.c
    │   │   │   │           │       ├── hal_rtc.c
    │   │   │   │           │       ├── hal_sec_aes.c
    │   │   │   │           │       ├── hal_sec_dsa.c
    │   │   │   │           │       ├── hal_sec_ecdsa.c
    │   │   │   │           │       ├── hal_sec_hash.c
    │   │   │   │           │       ├── hal_uart.c
    │   │   │   │           │       ├── hal_usb.c
    │   │   │   │           │       └── hal_wdt.c
    │   │   │   │           ├── regs/
    │   │   │   │           │   ├── aon_reg.h
    │   │   │   │           │   ├── bl702.h
    │   │   │   │           │   ├── bl70x_reg.svc
    │   │   │   │           │   ├── cam_reg.h
    │   │   │   │           │   ├── cci_reg.h
    │   │   │   │           │   ├── cks_reg.h
    │   │   │   │           │   ├── dma_reg.h
    │   │   │   │           │   ├── ef_ctrl_reg.h
    │   │   │   │           │   ├── ef_data_0_reg.h
    │   │   │   │           │   ├── emac_reg.h
    │   │   │   │           │   ├── glb_reg.h
    │   │   │   │           │   ├── gpip_reg.h
    │   │   │   │           │   ├── hbn_reg.h
    │   │   │   │           │   ├── i2c_reg.h
    │   │   │   │           │   ├── i2s_reg.h
    │   │   │   │           │   ├── ir_reg.h
    │   │   │   │           │   ├── kys_reg.h
    │   │   │   │           │   ├── l1c_reg.h
    │   │   │   │           │   ├── mjpeg_reg.h
    │   │   │   │           │   ├── pdm_reg.h
    │   │   │   │           │   ├── pds_reg.h
    │   │   │   │           │   ├── pwm_reg.h
    │   │   │   │           │   ├── qdec_reg.h
    │   │   │   │           │   ├── sec_dbg_reg.h
    │   │   │   │           │   ├── sec_eng_reg.h
    │   │   │   │           │   ├── sf_ctrl_reg.h
    │   │   │   │           │   ├── soc702_reg.svd
    │   │   │   │           │   ├── spi_reg.h
    │   │   │   │           │   ├── timer_reg.h
    │   │   │   │           │   ├── tzc_sec_reg.h
    │   │   │   │           │   ├── uart_reg.h
    │   │   │   │           │   └── usb_reg.h
    │   │   │   │           ├── risc-v/
    │   │   │   │           │   └── Core/
    │   │   │   │           │       └── Include/
    │   │   │   │           │           ├── clic.h
    │   │   │   │           │           ├── riscv_bits.h
    │   │   │   │           │           ├── riscv_const.h
    │   │   │   │           │           └── riscv_encoding.h
    │   │   │   │           ├── startup/
    │   │   │   │           │   ├── GCC/
    │   │   │   │           │   │   ├── entry.S
    │   │   │   │           │   │   └── start_load.c
    │   │   │   │           │   ├── drv_mmheap.c
    │   │   │   │           │   ├── drv_mmheap.h
    │   │   │   │           │   ├── interrupt.c
    │   │   │   │           │   ├── system_bl702.c
    │   │   │   │           │   └── system_bl702.h
    │   │   │   │           └── std_drv/
    │   │   │   │               ├── inc/
    │   │   │   │               │   ├── bl702_acomp.h
    │   │   │   │               │   ├── bl702_adc.h
    │   │   │   │               │   ├── bl702_aon.h
    │   │   │   │               │   ├── bl702_cam.h
    │   │   │   │               │   ├── bl702_clock.h
    │   │   │   │               │   ├── bl702_common.h
    │   │   │   │               │   ├── bl702_dac.h
    │   │   │   │               │   ├── bl702_dma.h
    │   │   │   │               │   ├── bl702_ef_ctrl.h
    │   │   │   │               │   ├── bl702_emac.h
    │   │   │   │               │   ├── bl702_glb.h
    │   │   │   │               │   ├── bl702_gpio.h
    │   │   │   │               │   ├── bl702_hbn.h
    │   │   │   │               │   ├── bl702_i2c.h
    │   │   │   │               │   ├── bl702_i2c_gpio_sim.h
    │   │   │   │               │   ├── bl702_i2s.h
    │   │   │   │               │   ├── bl702_ir.h
    │   │   │   │               │   ├── bl702_kys.h
    │   │   │   │               │   ├── bl702_l1c.h
    │   │   │   │               │   ├── bl702_mjpeg.h
    │   │   │   │               │   ├── bl702_nf_cfg.h
    │   │   │   │               │   ├── bl702_nflash.h
    │   │   │   │               │   ├── bl702_pds.h
    │   │   │   │               │   ├── bl702_psram.h
    │   │   │   │               │   ├── bl702_pwm.h
    │   │   │   │               │   ├── bl702_qdec.h
    │   │   │   │               │   ├── bl702_romdriver.h
    │   │   │   │               │   ├── bl702_sec_dbg.h
    │   │   │   │               │   ├── bl702_sec_eng.h
    │   │   │   │               │   ├── bl702_sf_cfg.h
    │   │   │   │               │   ├── bl702_sf_cfg_ext.h
    │   │   │   │               │   ├── bl702_sf_ctrl.h
    │   │   │   │               │   ├── bl702_sflash.h
    │   │   │   │               │   ├── bl702_sflash_ext.h
    │   │   │   │               │   ├── bl702_spi.h
    │   │   │   │               │   ├── bl702_timer.h
    │   │   │   │               │   ├── bl702_uart.h
    │   │   │   │               │   ├── bl702_usb.h
    │   │   │   │               │   ├── bl702_xip_sflash.h
    │   │   │   │               │   └── bl702_xip_sflash_ext.h
    │   │   │   │               └── src/
    │   │   │   │                   ├── bl702_acomp.c
    │   │   │   │                   ├── bl702_adc.c
    │   │   │   │                   ├── bl702_aon.c
    │   │   │   │                   ├── bl702_cam.c
    │   │   │   │                   ├── bl702_clock.c
    │   │   │   │                   ├── bl702_common.c
    │   │   │   │                   ├── bl702_dac.c
    │   │   │   │                   ├── bl702_dma.c
    │   │   │   │                   ├── bl702_ef_ctrl.c
    │   │   │   │                   ├── bl702_emac.c
    │   │   │   │                   ├── bl702_glb.c
    │   │   │   │                   ├── bl702_hbn.c
    │   │   │   │                   ├── bl702_i2c.c
    │   │   │   │                   ├── bl702_i2c_gpio_sim.c
    │   │   │   │                   ├── bl702_i2s.c
    │   │   │   │                   ├── bl702_ir.c
    │   │   │   │                   ├── bl702_kys.c
    │   │   │   │                   ├── bl702_l1c.c
    │   │   │   │                   ├── bl702_mjpeg.c
    │   │   │   │                   ├── bl702_pds.c
    │   │   │   │                   ├── bl702_psram.c
    │   │   │   │                   ├── bl702_pwm.c
    │   │   │   │                   ├── bl702_qdec.c
    │   │   │   │                   ├── bl702_romapi.c
    │   │   │   │                   ├── bl702_romdriver.c
    │   │   │   │                   ├── bl702_sec_dbg.c
    │   │   │   │                   ├── bl702_sec_eng.c
    │   │   │   │                   ├── bl702_sf_cfg.c
    │   │   │   │                   ├── bl702_sf_cfg_ext.c
    │   │   │   │                   ├── bl702_sf_ctrl.c
    │   │   │   │                   ├── bl702_sflash.c
    │   │   │   │                   ├── bl702_sflash_ext.c
    │   │   │   │                   ├── bl702_spi.c
    │   │   │   │                   ├── bl702_timer.c
    │   │   │   │                   ├── bl702_uart.c
    │   │   │   │                   ├── bl702_usb.c
    │   │   │   │                   ├── bl702_xip_sflash.c
    │   │   │   │                   └── bl702_xip_sflash_ext.c
    │   │   │   ├── ble.c
    │   │   │   ├── ble.h
    │   │   │   ├── ble_characteristics.h
    │   │   │   ├── ble_handlers.cpp
    │   │   │   ├── ble_handlers.h
    │   │   │   ├── ble_peripheral.c
    │   │   │   ├── ble_peripheral.h
    │   │   │   ├── board.c
    │   │   │   ├── clock_config.h
    │   │   │   ├── configuration.h
    │   │   │   ├── crc32.h
    │   │   │   ├── flash.c
    │   │   │   ├── fusb_user.cpp
    │   │   │   ├── peripheral_config.h
    │   │   │   ├── pinmux_config.h
    │   │   │   ├── postRTOS.cpp
    │   │   │   └── preRTOS.cpp
    │   │   └── Sequre/
    │   │       ├── BSP.cpp
    │   │       ├── FreeRTOSConfig.h
    │   │       ├── IRQ.cpp
    │   │       ├── IRQ.h
    │   │       ├── Pins.h
    │   │       ├── Power.cpp
    │   │       ├── README.md
    │   │       ├── Setup.cpp
    │   │       ├── Setup.h
    │   │       ├── Software_I2C.h
    │   │       ├── Startup/
    │   │       │   └── startup_stm32f103t8ux.S
    │   │       ├── ThermoModel.cpp
    │   │       ├── Vendor/
    │   │       │   ├── CMSIS/
    │   │       │   │   ├── Device/
    │   │       │   │   │   └── ST/
    │   │       │   │   │       └── STM32F1xx/
    │   │       │   │   │           └── Include/
    │   │       │   │   │               ├── stm32f103xb.h
    │   │       │   │   │               ├── stm32f1xx.h
    │   │       │   │   │               └── system_stm32f1xx.h
    │   │       │   │   └── Include/
    │   │       │   │       ├── arm_common_tables.h
    │   │       │   │       ├── arm_const_structs.h
    │   │       │   │       ├── arm_math.h
    │   │       │   │       ├── cmsis_armcc.h
    │   │       │   │       ├── cmsis_armcc_V6.h
    │   │       │   │       ├── cmsis_gcc.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
    │   │       │   │       ├── core_sc000.h
    │   │       │   │       └── core_sc300.h
    │   │       │   └── STM32F1xx_HAL_Driver/
    │   │       │       ├── Inc/
    │   │       │       │   ├── Legacy/
    │   │       │       │   │   └── stm32_hal_legacy.h
    │   │       │       │   ├── stm32f1xx_hal.h
    │   │       │       │   ├── stm32f1xx_hal_adc.h
    │   │       │       │   ├── stm32f1xx_hal_adc_ex.h
    │   │       │       │   ├── stm32f1xx_hal_cortex.h
    │   │       │       │   ├── stm32f1xx_hal_def.h
    │   │       │       │   ├── stm32f1xx_hal_dma.h
    │   │       │       │   ├── stm32f1xx_hal_dma_ex.h
    │   │       │       │   ├── stm32f1xx_hal_flash.h
    │   │       │       │   ├── stm32f1xx_hal_flash_ex.h
    │   │       │       │   ├── stm32f1xx_hal_gpio.h
    │   │       │       │   ├── stm32f1xx_hal_gpio_ex.h
    │   │       │       │   ├── stm32f1xx_hal_i2c.h
    │   │       │       │   ├── stm32f1xx_hal_iwdg.h
    │   │       │       │   ├── stm32f1xx_hal_pwr.h
    │   │       │       │   ├── stm32f1xx_hal_rcc.h
    │   │       │       │   ├── stm32f1xx_hal_rcc_ex.h
    │   │       │       │   ├── stm32f1xx_hal_tim.h
    │   │       │       │   └── stm32f1xx_hal_tim_ex.h
    │   │       │       └── Src/
    │   │       │           ├── stm32f1xx_hal.c
    │   │       │           ├── stm32f1xx_hal_adc.c
    │   │       │           ├── stm32f1xx_hal_adc_ex.c
    │   │       │           ├── stm32f1xx_hal_cortex.c
    │   │       │           ├── stm32f1xx_hal_dma.c
    │   │       │           ├── stm32f1xx_hal_flash.c
    │   │       │           ├── stm32f1xx_hal_flash_ex.c
    │   │       │           ├── stm32f1xx_hal_gpio.c
    │   │       │           ├── stm32f1xx_hal_gpio_ex.c
    │   │       │           ├── stm32f1xx_hal_i2c.c
    │   │       │           ├── stm32f1xx_hal_iwdg.c
    │   │       │           ├── stm32f1xx_hal_pwr.c
    │   │       │           ├── stm32f1xx_hal_rcc.c
    │   │       │           ├── stm32f1xx_hal_rcc_ex.c
    │   │       │           ├── stm32f1xx_hal_tim.c
    │   │       │           └── stm32f1xx_hal_tim_ex.c
    │   │       ├── configuration.h
    │   │       ├── flash.c
    │   │       ├── port.c
    │   │       ├── portmacro.h
    │   │       ├── postRTOS.cpp
    │   │       ├── preRTOS.cpp
    │   │       ├── stm32f103.ld
    │   │       ├── stm32f1xx_hal_msp.c
    │   │       ├── stm32f1xx_hal_timebase_TIM.c
    │   │       ├── stm32f1xx_it.c
    │   │       └── system_stm32f1xx.c
    │   ├── Drivers/
    │   │   ├── BMA223.cpp
    │   │   ├── BMA223.hpp
    │   │   ├── BMA223_defines.h
    │   │   ├── BootLogo.cpp
    │   │   ├── BootLogo.h
    │   │   ├── Buttons.cpp
    │   │   ├── Buttons.hpp
    │   │   ├── FS2711.cpp
    │   │   ├── FS2711.hpp
    │   │   ├── FS2711_defines.h
    │   │   ├── Font.h
    │   │   ├── HUB238.cpp
    │   │   ├── HUB238.hpp
    │   │   ├── I2CBB1.cpp
    │   │   ├── I2CBB1.hpp
    │   │   ├── I2CBB2.cpp
    │   │   ├── I2CBB2.hpp
    │   │   ├── I2C_Wrapper.hpp
    │   │   ├── LIS2DH12.cpp
    │   │   ├── LIS2DH12.hpp
    │   │   ├── LIS2DH12_defines.hpp
    │   │   ├── MMA8652FC.cpp
    │   │   ├── MMA8652FC.hpp
    │   │   ├── MMA8652FC_defines.h
    │   │   ├── MSA301.cpp
    │   │   ├── MSA301.h
    │   │   ├── MSA301_defines.h
    │   │   ├── OLED.cpp
    │   │   ├── OLED.hpp
    │   │   ├── README.md
    │   │   ├── SC7A20.cpp
    │   │   ├── SC7A20.hpp
    │   │   ├── SC7A20_defines.h
    │   │   ├── Si7210.cpp
    │   │   ├── Si7210.h
    │   │   ├── Si7210_defines.h
    │   │   ├── TipThermoModel.cpp
    │   │   ├── TipThermoModel.h
    │   │   ├── USBPD.cpp
    │   │   ├── USBPD.h
    │   │   ├── Utils.cpp
    │   │   ├── Utils.hpp
    │   │   ├── WS2812.h
    │   │   ├── WS2812B.h
    │   │   └── accelerometers_common.h
    │   ├── Inc/
    │   │   ├── FreeRTOSHooks.h
    │   │   ├── QC3.h
    │   │   ├── ScrollMessage.hpp
    │   │   ├── Settings.h
    │   │   ├── Translation.h
    │   │   ├── Translation_multi.h
    │   │   ├── Types.h
    │   │   ├── expMovingAverage.h
    │   │   ├── history.hpp
    │   │   ├── main.hpp
    │   │   ├── power.hpp
    │   │   ├── settingsGUI.hpp
    │   │   ├── stm32f1xx_hal_conf.h
    │   │   └── stm32f1xx_it.h
    │   ├── LangSupport/
    │   │   ├── lang_multi.cpp
    │   │   └── lang_single.cpp
    │   ├── Src/
    │   │   ├── FreeRTOSHooks.c
    │   │   ├── QC3.cpp
    │   │   ├── ScrollMessage.cpp
    │   │   ├── Settings.cpp
    │   │   ├── Translation.cpp
    │   │   ├── freertos.c
    │   │   ├── main.cpp
    │   │   ├── power.cpp
    │   │   ├── settingsGUI.cpp
    │   │   └── syscalls.c
    │   ├── Threads/
    │   │   ├── GUIRendering.md
    │   │   ├── GUIThread.cpp
    │   │   ├── MOVThread.cpp
    │   │   ├── PIDThread.cpp
    │   │   ├── POWThread.cpp
    │   │   └── UI/
    │   │       ├── README.md
    │   │       ├── drawing/
    │   │       │   ├── mono_128x32/
    │   │       │   │   ├── draw_cjc_sampling.cpp
    │   │       │   │   ├── draw_debug_menu.cpp
    │   │       │   │   ├── draw_homescreen_detailed.cpp
    │   │       │   │   ├── draw_homescreen_simplified.cpp
    │   │       │   │   ├── draw_power_source_icon.cpp
    │   │       │   │   ├── draw_profile_advanced.cpp
    │   │       │   │   ├── draw_soldering_basic_status.cpp
    │   │       │   │   ├── draw_soldering_power_status.cpp
    │   │       │   │   ├── draw_soldering_sleep_mode.cpp
    │   │       │   │   ├── draw_temperature_change.cpp
    │   │       │   │   ├── draw_tip_temperature.cpp
    │   │       │   │   ├── draw_usb_pd_debug.cpp
    │   │       │   │   ├── draw_warning_undervoltage.cpp
    │   │       │   │   ├── pre_render_assets.cpp
    │   │       │   │   ├── printSleepCountdown.cpp
    │   │       │   │   ├── print_voltage.cpp
    │   │       │   │   └── show_warning.cpp
    │   │       │   ├── mono_96x16/
    │   │       │   │   ├── draw_cjc_sampling.cpp
    │   │       │   │   ├── draw_debug_menu.cpp
    │   │       │   │   ├── draw_homescreen_detailed.cpp
    │   │       │   │   ├── draw_homescreen_simplified.cpp
    │   │       │   │   ├── draw_power_source_icon.cpp
    │   │       │   │   ├── draw_profile_advanced.cpp
    │   │       │   │   ├── draw_soldering_basic_status.cpp
    │   │       │   │   ├── draw_soldering_power_status.cpp
    │   │       │   │   ├── draw_soldering_sleep_mode.cpp
    │   │       │   │   ├── draw_temperature_change.cpp
    │   │       │   │   ├── draw_tip_temperature.cpp
    │   │       │   │   ├── draw_usb_pd_debug.cpp
    │   │       │   │   ├── draw_warning_undervoltage.cpp
    │   │       │   │   ├── pre_render_assets.cpp
    │   │       │   │   ├── printSleepCountdown.cpp
    │   │       │   │   ├── print_voltage.cpp
    │   │       │   │   └── show_warning.cpp
    │   │       │   └── ui_drawing.hpp
    │   │       └── logic/
    │   │           ├── CJC.cpp
    │   │           ├── DebugMenu.cpp
    │   │           ├── HomeScreen.cpp
    │   │           ├── OperatingModes.cpp
    │   │           ├── OperatingModes.h
    │   │           ├── SettingsMenu.cpp
    │   │           ├── ShowStartupWarnings.cpp
    │   │           ├── Sleep.cpp
    │   │           ├── Soldering.cpp
    │   │           ├── SolderingProfile.cpp
    │   │           ├── TemperatureAdjust.cpp
    │   │           ├── USBPDDebug_FS2711.cpp
    │   │           ├── USBPDDebug_FUSB.cpp
    │   │           ├── USBPDDebug_HUSB238.cpp
    │   │           └── utils/
    │   │               ├── GUIDelay.cpp
    │   │               ├── OperatingModeUtilities.h
    │   │               ├── SolderingCommon.cpp
    │   │               ├── SolderingCommon.h
    │   │               ├── checkUndervoltage.cpp
    │   │               ├── getHallEffectSleepTimeout.cpp
    │   │               ├── getSleepTimeout.cpp
    │   │               ├── min.cpp
    │   │               ├── shouldDeviceShutdown.cpp
    │   │               └── shouldDeviceSleep.cpp
    │   └── brieflz/
    │       ├── README.md
    │       ├── brieflz.c
    │       ├── brieflz.h
    │       ├── brieflz_btparse.h
    │       ├── brieflz_hashbucket.h
    │       ├── brieflz_lazy.h
    │       ├── brieflz_leparse.h
    │       └── depack.c
    ├── Makefile
    ├── Middlewares/
    │   └── Third_Party/
    │       └── FreeRTOS/
    │           └── Source/
    │               ├── CMSIS_RTOS/
    │               │   ├── cmsis_os.c
    │               │   └── cmsis_os.h
    │               ├── croutine.c
    │               ├── event_groups.c
    │               ├── include/
    │               │   ├── FreeRTOS.h
    │               │   ├── StackMacros.h
    │               │   ├── atomic.h
    │               │   ├── croutine.h
    │               │   ├── event_groups.h
    │               │   ├── list.h
    │               │   ├── message_buffer.h
    │               │   ├── mpu_prototypes.h
    │               │   ├── mpu_syscall_numbers.h
    │               │   ├── mpu_wrappers.h
    │               │   ├── newlib-freertos.h
    │               │   ├── picolibc-freertos.h
    │               │   ├── portable.h
    │               │   ├── projdefs.h
    │               │   ├── queue.h
    │               │   ├── semphr.h
    │               │   ├── stack_macros.h
    │               │   ├── stream_buffer.h
    │               │   ├── task.h
    │               │   └── timers.h
    │               ├── list.c
    │               ├── queue.c
    │               ├── stream_buffer.c
    │               ├── tasks.c
    │               └── timers.c
    ├── build.sh
    ├── dfuse-pack.py
    ├── metadata.py
    └── version.h

================================================
FILE CONTENTS
================================================

================================================
FILE: .flake8
================================================
[flake8]
ignore = E203, E266, E501, W503, F403, F401
max-line-length = 200


================================================
FILE: .gitattributes
================================================
# Ignore all differences in line endings
*        -crlf

================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms

ko_fi: ralim
custom: https://paypal.me/RalimTek


================================================
FILE: .github/ISSUE_TEMPLATE/bug_report.md
================================================
---
name: Bug report
about: Create a report to help us improve
title: ''
labels: ''
assignees: Ralim

---

**Describe the bug**
<!-- A clear and concise description of what the bug is. -->

**To Reproduce**
<!-- Steps to reproduce the behavior:
1. Go to '...'
2. Click on '...'
3. Scroll down to '...'
4. See error -->

**Expected behavior**
<!-- A clear and concise description of what you expected to happen. -->


**Details of your device:**
 <!-- You can get these from the debug menu by holding the rear button down and then using the front one to cycle through -->
 - Device: [e.g. TS80/Pinecil etc]
 - Release: [eg 2.15.40087E6]
 - Power adapter being used:
 - If this is an accelerometer related issue, please include its model number here:

**Additional context**
<!-- Add any other context about the problem here. -->


================================================
FILE: .github/ISSUE_TEMPLATE/everything-else--questions--notes-etc-.md
================================================
---
name: Everything else (Questions, notes etc)
about: For remarking questions or notes
title: ''
labels: ''
assignees: ''

---

<!-- **Questions are preferred to be kept to the discussions tab where possible, but otherwise go for it. be polite and as clear as possible.** -->


================================================
FILE: .github/ISSUE_TEMPLATE/feature_request.md
================================================
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: enhancement
assignees: Ralim

---

**Is your feature request related to a problem? Please describe.**
<!-- A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] -->

**Describe the solution you'd like**
<!-- A clear and concise description of what you want to happen. -->

**Describe alternatives you've considered**
<!-- A clear and concise description of any alternative solutions or features you've considered. -->

**Additional context**
<!-- Add any other context or screenshots about the feature request here. -->


================================================
FILE: .github/dependabot.yml
================================================
version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      # Check for updates to GitHub Actions every weekday
      interval: "weekly"
    open-pull-requests-limit: 10
    commit-message:
      prefix: chore
      include: scope


================================================
FILE: .github/pull_request_template.md
================================================

<!-- Please try and fill out this template where possible, not all fields are required and can be removed. -->

* **Please check if the PR fulfills these requirements**
- [] The changes have been tested locally
- [] There are no breaking changes

* **What kind of change does this PR introduce?**
<!-- (Bug fix, feature, docs update, ...) -->



* **What is the current behavior?**
<!-- (You can also just link to an open issue here) -->

* **What is the new behavior (if this is a feature change)?**

* **Other information**:


================================================
FILE: .github/security.md
================================================
# Security Policy

## Supported Versions

Use this section to tell people about which versions of your project are
currently being supported with security updates.

| Version | Supported          |
| ------- | ------------------ |
| Latest Release   | :white_check_mark: |
| master   | :white_check_mark:                |

## Reporting a Vulnerability

1. Report in an issue please and tag @ralim
2. All issues are read within 1 working week in general; often within 24 hours
3. Issue shall recieve a comment within 14 days; but goal is < 2.
4. Issue will be open until the vulnerability is closed in all supported versions


================================================
FILE: .github/workflows/docs.yml
================================================
name: Docs

# Controls when the workflow will run
on:
  # Triggers the workflow on push or pull request
  push:
    branches: [dev, docs]

  # Allows you to run this workflow manually from the Actions tab
  workflow_dispatch:

# Allow one concurrent deployment
concurrency:
  group: "pages"
  cancel-in-progress: true

jobs:
  deploy-docs:
    # The type of runner that the job will run on
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0
      - uses: actions/setup-python@v6
        with:
          python-version: '3.12.3'

      - run: |
          pip install --upgrade pip &&
          pip install mkdocs mkdocs-gen-files pymdown-extensions \
              mkdocs-git-revision-date-plugin mkdocs-autolinks-plugin \
              mkdocs-awesome-pages-plugin

      - run: git config user.name 'github-actions[bot]' && git config user.email 'github-actions[bot]@users.noreply.github.com'

      - name: Publish docs
        run: mkdocs gh-deploy -f scripts/IronOS-mkdocs.yml -d ../site


================================================
FILE: .github/workflows/push.yml
================================================
name: CI

on:
  push:
  pull_request:
    branches:
      - master
      - dev
      - main

jobs:
  build:
    runs-on: ubuntu-24.04
    container:
      image: alpine:3.21
    strategy:
      matrix:
        model:
          [
            "TS100",
            "TS80",
            "TS80P",
            "Pinecil",
            "MHP30",
            "Pinecilv2",
            "S60",
            "S60P",
            "T55",
            "TS101",
          ]
      fail-fast: true

    steps:
      - name: Install dependencies (apk)
        run: apk add --no-cache gcc-riscv-none-elf g++-riscv-none-elf gcc-arm-none-eabi g++-arm-none-eabi newlib-riscv-none-elf newlib-arm-none-eabi findutils python3 py3-pip make git bash

      - name: Install dependencies (python)
        run: python3 -m pip install --break-system-packages bdflib

      - uses: actions/checkout@v6
        with:
          submodules: true

      - name: Git ownership exception
        run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"

      - name: Git meta info
        run: echo "GITHUB_CI_PR_SHA=${{github.event.pull_request.head.sha}}" >> "${GITHUB_ENV}"

      - name: Build ${{ matrix.model }}
        run: cd source && ./build.sh -m ${{ matrix.model }}

      - name: Copy license files
        run: cp LICENSE scripts/LICENSE_RELEASE.md  source/Hexfile/

      - name: Generate json index file
        run: ./source/metadata.py ${{ matrix.model }}.json

      - name: Archive ${{ matrix.model }} artifacts
        uses: actions/upload-artifact@v5
        with:
          name: ${{ matrix.model }}
          path: |
            source/Hexfile/${{ matrix.model }}_*.hex
            source/Hexfile/${{ matrix.model }}_*.dfu
            source/Hexfile/${{ matrix.model }}_*.bin
            source/Hexfile/${{ matrix.model }}.json
            source/Hexfile/LICENSE
            source/Hexfile/LICENSE_RELEASE.md
          if-no-files-found: error

  build_multi-lang:
    runs-on: ubuntu-24.04
    container:
      image: alpine:3.21
    strategy:
      matrix:
        model: ["Pinecil", "Pinecilv2"]
      fail-fast: true

    steps:
      - name: Install dependencies (apk)
        run: apk add --no-cache gcc-riscv-none-elf g++-riscv-none-elf gcc-arm-none-eabi g++-arm-none-eabi newlib-riscv-none-elf newlib-arm-none-eabi findutils python3 py3-pip make git bash musl-dev
      - name: Install dependencies (python)
        run: python3 -m pip install --break-system-packages bdflib

      - uses: actions/checkout@v6
        with:
          submodules: true

      - name: Git ownership exception
        run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"

      - name: Git meta info
        run: echo "GITHUB_CI_PR_SHA=${{github.event.pull_request.head.sha}}" >> "${GITHUB_ENV}"

      - name: Build ${{ matrix.model }}
        run: make -C source/ -j$(nproc) model="${{ matrix.model }}" firmware-multi_compressed_European firmware-multi_compressed_Belarusian+Bulgarian+Russian+Serbian+Ukrainian firmware-multi_Chinese+Japanese

      - name: Copy license files
        run: cp LICENSE scripts/LICENSE_RELEASE.md  source/Hexfile/

      - name: Generate json index file
        run: ./source/metadata.py ${{ matrix.model }}_multi-lang.json

      - name: Archive ${{ matrix.model }} artifacts
        uses: actions/upload-artifact@v5
        with:
          name: ${{ matrix.model }}_multi-lang
          path: |
            source/Hexfile/${{ matrix.model }}_*.hex
            source/Hexfile/${{ matrix.model }}_*.dfu
            source/Hexfile/${{ matrix.model }}_*.bin
            source/Hexfile/${{ matrix.model }}_multi-lang.json
            source/Hexfile/LICENSE
            source/Hexfile/LICENSE_RELEASE.md
          if-no-files-found: error

  upload_metadata:
    needs: [build, build_multi-lang]
    runs-on: ubuntu-24.04

    steps:
      - name: Download all prebuilts
        uses: actions/download-artifact@v6
        with:
          path: source/Hexfile/
          merge-multiple: true
      - run: ls -R source/Hexfile

      - name: Upload JSONs in bulk as metadata
        uses: actions/upload-artifact@v5
        with:
          name: metadata
          path: source/Hexfile/*.json
          if-no-files-found: error

  tests:
    runs-on: ubuntu-24.04
    container:
      image: alpine:3.21

    steps:
      - name: Install dependencies (apk)
        run: apk add --no-cache python3 py3-pip make git bash findutils gcc musl-dev

      - uses: actions/checkout@v6
        with:
          submodules: true

      - name: Install dependencies (python)
        run: python3 -m pip install --break-system-packages bdflib

      - name: Run python tests
        run: ./Translations/make_translation_test.py

      - name: Run BriefLZ tests
        run: make  -C source/  Objects/host/brieflz/libbrieflz.so && ./Translations/brieflz_test.py

  check_c-cpp:
    runs-on: ubuntu-24.04
    container:
      image: alpine:3.21

    steps:
      - name: Install dependencies (apk)
        run: apk add --no-cache make git diffutils findutils clang-extra-tools bash

      - uses: actions/checkout@v6
        with:
          submodules: true

      - name: Check format style with clang-format
        run: make  clean  check-style

  check-settings-docs:
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v6
      - name: Run the menu docs generator
        run: python Translations/gen_menu_docs.py
      - name: Check that Documentation/Settings.md didn't change
        run: git diff --exit-code

  check_python:
    runs-on: ubuntu-24.04
    container:
      image: alpine:3.21

    steps:
      - name: Install dependencies (apk)
        run: apk add --no-cache python3 py3-pip make git black

      - uses: actions/checkout@v6
        with:
          submodules: true

      - name: Install dependencies (python)
        run: python3 -m pip install --break-system-packages bdflib flake8

      - name: Check python formatting with black
        run: black --diff --check Translations

      - name: Check python with flake8
        run: flake8 Translations

  check_shell:
    name: check_shell
    runs-on: ubuntu-24.04
    steps:
      - uses: actions/checkout@v6
      - name: shellcheck
        uses: reviewdog/action-shellcheck@v1
        with:
          github_token: ${{ secrets.github_token }}
          reporter: github-pr-review # Change reporter.
          exclude: "./.git/*" # Optional.
          check_all_files_with_shebangs: "false" # Optional.

  check_docs:
    runs-on: ubuntu-24.04
    container:
      image: alpine:3.21

    steps:
      - name: Install dependencies (apk)
        run: apk add --no-cache git bash grep

      - uses: actions/checkout@v6
        with:
          submodules: true
          fetch-tags: true
          fetch-depth: 0

      - name: Git ownership exception
        run: git config --global --add safe.directory /__w/IronOS/IronOS && git config --global safe.directory "$GITHUB_WORKSPACE"

      - name: Check and verify documentation
        run: ./scripts/deploy.sh docs


================================================
FILE: .gitignore
================================================
#### Generic ####

# Object files
*.o
*.ko
*.obj
*.elf
*.d
*.DS_Store

# Precompiled Headers
*.gch
*.pch

# Libraries
*.lib
*.a
*.la
*.lo

# Shared objects (inc. Windows DLLs)
*.dll
*.so
*.so.*
*.dylib

# Executables
*.exe
*.out
*.app
*.i*86
*.x86_64

# Debug files
*.dSYM/
*.su

# Custom scripts & misc. files
*.pyc
*.lst
*.mk
*.list

# Auto generated files
*.cache
codeship.aes
CoreCompileInputs.cache

# IDE configs
.vs/*
.settings/*
.cproject.swp

# Visual Studios
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
.vscode/settings.json

# Eclipse
.metadata
bin/
tmp/
*.tmp
*.bak
*.swp
*~.nib
local.properties
.settings/
.loadpath
.recommenders

# External tool builders
.externalToolBuilders/

# Locally stored "Eclipse launch configurations"
*.launch

# PyDev specific (Python IDE for Eclipse)
*.pydevproject

# CDT- autotools
.autotools

# Java annotation processor (APT)
.factorypath

# PDT-specific (PHP Development Tools)
.buildpath

# sbteclipse plugin
.target

# Tern plugin
.tern-project

# TeXlipse plugin
.texlipse

# STS (Spring Tool Suite)
.springBeans

# Code Recommenders
.recommenders/

# Annotation Processing
.apt_generated/

# Scala IDE specific (Scala & Java development for Eclipse)
.cache-main
.scala_dependencies
.worksheet

# source code tagging systems (GNU Global, ctags, cscope)
GPATH
GRTAGS
GTAGS
*tags
*tags/
.*tags
.*tags/
cscope.*
cscope/
.cscope/


#### Jetbrains: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm ####
# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839

# User-specific stuff
.idea/
.idea/**/workspace.xml
.idea/**/tasks.xml
.idea/**/usage.statistics.xml
.idea/**/dictionaries
.idea/**/shelf

# Sensitive or high-churn files
.idea/**/dataSources/
.idea/**/dataSources.ids
.idea/**/dataSources.local.xml
.idea/**/sqlDataSources.xml
.idea/**/dynamic.xml
.idea/**/uiDesigner.xml
.idea/**/dbnavigator.xml

# Gradle
.idea/**/gradle.xml
.idea/**/libraries

# CMake
cmake-build-*/

# Mongo Explorer plugin
.idea/**/mongoSettings.xml

# File-based project format
*.iws

# IntelliJ
out/

# mpeltonen/sbt-idea plugin
.idea_modules/

# JIRA plugin
atlassian-ide-plugin.xml

# Cursive Clojure plugin
.idea/replstate.xml

# Crashlytics plugin (for Android Studio and IntelliJ)
com_crashlytics_export_strings.xml
crashlytics.properties
crashlytics-build.properties
fabric.properties

# Editor-based Rest Client
.idea/httpRequests


#### IronOS project specific files ####

# Binaries
source/Hexfile/
source/Objects/
BUILDS/

# Autogenerated
source/Core/Gen/
source/Core/Inc/unit.h

# Deploy
scripts/ci/artefacts/
scripts/ci/secrets/unencrypted/

# Generated static local docs
site/

# Translations
Translations/__pycache__/
Translation Editor/__pycache__/
Translation Editor/.vscode/

# misc.
source/compile_commands.json
source/.metadata/*

# TS100 related
TS100/KiCad/TS100.bak
Logo GUI/TS100 Logo Editor/TS100 Logo Editor/obj/
Logo GUI/TS100 Logo Editor/TS100 Logo Editor/bin/

# Tests/linters/sanitizers
source/check-style.log
.ash_history


================================================
FILE: .gitmodules
================================================
[submodule "source/Core/Drivers/usb-pd"]
	path = source/Core/Drivers/usb-pd
	url = https://github.com/Ralim/usb-pd.git


================================================
FILE: Development Resources/TS100/KiCad/MCU_SubBoard.sch
================================================
EESchema Schematic File Version 2
LIBS:power
LIBS:device
LIBS:transistors
LIBS:conn
LIBS:linear
LIBS:regul
LIBS:74xx
LIBS:cmos4000
LIBS:adc-dac
LIBS:memory
LIBS:xilinx
LIBS:microcontrollers
LIBS:dsp
LIBS:microchip
LIBS:analog_switches
LIBS:motorola
LIBS:texas
LIBS:intel
LIBS:audio
LIBS:interface
LIBS:digital-audio
LIBS:philips
LIBS:display
LIBS:cypress
LIBS:siliconi
LIBS:opto
LIBS:atmel
LIBS:contrib
LIBS:valves
LIBS:stm32
LIBS:mma8652fc
LIBS:switches
LIBS:TS100-cache
EELAYER 25 0
EELAYER END
$Descr A4 11693 8268
encoding utf-8
Sheet 2 2
Title "TS100 Soldering Iron Schematic"
Date ""
Rev "2.46"
Comp ""
Comment1 ""
Comment2 ""
Comment3 "Converted by Ben V. Brown"
Comment4 "KiCad port of published schematic"
$EndDescr
$Comp
L STM32F103T8Ux U4
U 1 1 591D59BB
P 5600 3550
F 0 "U4" H 3200 4675 50  0000 L BNN
F 1 "STM32F103T8Ux" H 8000 4675 50  0000 R BNN
F 2 "Housings_DFN_QFN:QFN-36-1EP_6x6mm_Pitch0.5mm" H 8000 4625 50  0001 R TNN
F 3 "" H 5600 3550 50  0001 C CNN
F 4 "-" H 5600 3550 60  0001 C CNN "bom_partno"
	1    5600 3550
	1    0    0    -1  
$EndComp
$Comp
L GND #PWR206
U 1 1 591D5AD3
P 5600 4850
F 0 "#PWR206" H 5600 4600 50  0001 C CNN
F 1 "GND" H 5600 4700 50  0000 C CNN
F 2 "" H 5600 4850 50  0001 C CNN
F 3 "" H 5600 4850 50  0001 C CNN
	1    5600 4850
	1    0    0    -1  
$EndComp
$Comp
L C C30
U 1 1 591D5BA8
P 1450 4700
F 0 "C30" H 1475 4800 50  0000 L CNN
F 1 "103" H 1475 4600 50  0000 L CNN
F 2 "" H 1488 4550 50  0001 C CNN
F 3 "" H 1450 4700 50  0001 C CNN
	1    1450 4700
	1    0    0    -1  
$EndComp
$Comp
L R R23
U 1 1 591D5BDF
P 1700 4700
F 0 "R23" V 1780 4700 50  0000 C CNN
F 1 "15K" V 1700 4700 50  0000 C CNN
F 2 "" V 1630 4700 50  0001 C CNN
F 3 "" H 1700 4700 50  0001 C CNN
	1    1700 4700
	1    0    0    -1  
$EndComp
Wire Wire Line
	5800 4850 5800 4650
Wire Wire Line
	5600 4850 5600 4650
Wire Wire Line
	5700 4650 5700 4850
Connection ~ 5700 4850
Wire Wire Line
	5500 4850 5500 4650
Connection ~ 5600 4850
Wire Wire Line
	5400 4850 5400 4650
Connection ~ 5500 4850
Wire Wire Line
	3100 2950 1350 2950
Wire Wire Line
	1350 2950 1350 4850
Connection ~ 5400 4850
Wire Wire Line
	1450 4550 1450 3550
Wire Wire Line
	1450 3550 3100 3550
Wire Wire Line
	1350 4850 9000 4850
Connection ~ 1450 4850
Text HLabel 8100 4050 2    60   Input ~ 0
SWDIO
Text HLabel 8100 4150 2    60   Input ~ 0
SWCLK
Text HLabel 8100 3850 2    60   Input ~ 0
USB_D-
Text HLabel 8100 3950 2    60   Input ~ 0
USB_D+
Wire Wire Line
	1700 4550 1700 3750
Wire Wire Line
	1700 3750 3100 3750
Connection ~ 1700 4850
Text HLabel 8100 3650 2    60   Input ~ 0
K1
Text HLabel 8100 3550 2    60   Input ~ 0
nCR
Text HLabel 9000 3450 2    60   Input ~ 0
TMP36
Wire Wire Line
	5400 2350 5700 2350
Connection ~ 5500 2350
Connection ~ 5600 2350
$Comp
L VDD #PWR205
U 1 1 591D5F85
P 5550 2350
F 0 "#PWR205" H 5550 2200 50  0001 C CNN
F 1 "VDD" H 5550 2500 50  0000 C CNN
F 2 "" H 5550 2350 50  0001 C CNN
F 3 "" H 5550 2350 50  0001 C CNN
	1    5550 2350
	1    0    0    -1  
$EndComp
Connection ~ 5550 2350
Text HLabel 8100 3350 2    60   Input ~ 0
K2
$Comp
L C C29
U 1 1 591D61F5
P 9000 4700
F 0 "C29" H 9025 4800 50  0000 L CNN
F 1 "103" H 9025 4600 50  0000 L CNN
F 2 "" H 9038 4550 50  0001 C CNN
F 3 "" H 9000 4700 50  0001 C CNN
	1    9000 4700
	1    0    0    -1  
$EndComp
Connection ~ 5800 4850
Wire Wire Line
	9000 4550 9000 3450
Wire Wire Line
	9000 3450 8100 3450
Text HLabel 3100 4150 0    60   Input ~ 0
SCL
Text HLabel 3100 4250 0    60   Input ~ 0
SDA
Text HLabel 3100 3950 0    60   Input ~ 0
Po
Text HLabel 3100 3650 0    60   Input ~ 0
Vb
$Comp
L R R25
U 1 1 591D65E3
P 1950 2600
F 0 "R25" V 2030 2600 50  0000 C CNN
F 1 "15K" V 1950 2600 50  0000 C CNN
F 2 "" V 1880 2600 50  0001 C CNN
F 3 "" H 1950 2600 50  0001 C CNN
	1    1950 2600
	1    0    0    -1  
$EndComp
$Comp
L C C17
U 1 1 591D663E
P 1950 4700
F 0 "C17" H 1975 4800 50  0000 L CNN
F 1 "105" H 1975 4600 50  0000 L CNN
F 2 "" H 1988 4550 50  0001 C CNN
F 3 "" H 1950 4700 50  0001 C CNN
	1    1950 4700
	1    0    0    -1  
$EndComp
Wire Wire Line
	1950 4550 1950 2750
Wire Wire Line
	1950 2750 3100 2750
$Comp
L VDD #PWR201
U 1 1 591D66BF
P 1950 2450
F 0 "#PWR201" H 1950 2300 50  0001 C CNN
F 1 "VDD" H 1950 2600 50  0000 C CNN
F 2 "" H 1950 2450 50  0001 C CNN
F 3 "" H 1950 2450 50  0001 C CNN
	1    1950 2450
	1    0    0    -1  
$EndComp
$Comp
L MMA8652FC U3
U 1 1 591D6A94
P 3750 6350
F 0 "U3" H 3400 5950 60  0000 C CNN
F 1 "MMA8652FC" H 3950 5950 60  0000 C CNN
F 2 "" H 3550 6100 60  0001 C CNN
F 3 "" H 3550 6100 60  0000 C CNN
	1    3750 6350
	1    0    0    -1  
$EndComp
$Comp
L GND #PWR204
U 1 1 591D6B9E
P 4650 6700
F 0 "#PWR204" H 4650 6450 50  0001 C CNN
F 1 "GND" H 4650 6550 50  0000 C CNN
F 2 "" H 4650 6700 50  0001 C CNN
F 3 "" H 4650 6700 50  0001 C CNN
	1    4650 6700
	1    0    0    -1  
$EndComp
Wire Wire Line
	4500 6600 4650 6600
Wire Wire Line
	4650 6400 4650 6700
Wire Wire Line
	4500 6400 4650 6400
Connection ~ 4650 6600
Wire Wire Line
	4500 6500 4650 6500
Connection ~ 4650 6500
$Comp
L VDD #PWR203
U 1 1 591D6DA1
P 4650 5900
F 0 "#PWR203" H 4650 5750 50  0001 C CNN
F 1 "VDD" H 4650 6050 50  0000 C CNN
F 2 "" H 4650 5900 50  0001 C CNN
F 3 "" H 4650 5900 50  0001 C CNN
	1    4650 5900
	1    0    0    -1  
$EndComp
Wire Wire Line
	4650 5900 4650 6200
Wire Wire Line
	4650 6100 4500 6100
Wire Wire Line
	4650 6200 4500 6200
Connection ~ 4650 6100
$Comp
L C C22
U 1 1 591D70DB
P 2250 6550
F 0 "C22" H 2275 6650 50  0000 L CNN
F 1 "104" H 2275 6450 50  0000 L CNN
F 2 "" H 2288 6400 50  0001 C CNN
F 3 "" H 2250 6550 50  0001 C CNN
	1    2250 6550
	1    0    0    -1  
$EndComp
Text HLabel 3050 6350 0    60   Input ~ 0
SDA
Text HLabel 3050 6250 0    60   Input ~ 0
SCL
Wire Wire Line
	2250 6400 2250 6100
Wire Wire Line
	2250 6100 3050 6100
$Comp
L GND #PWR202
U 1 1 591D735E
P 2250 6700
F 0 "#PWR202" H 2250 6450 50  0001 C CNN
F 1 "GND" H 2250 6550 50  0000 C CNN
F 2 "" H 2250 6700 50  0001 C CNN
F 3 "" H 2250 6700 50  0001 C CNN
	1    2250 6700
	1    0    0    -1  
$EndComp
$Comp
L C C18
U 1 1 591D7528
P 8200 5800
F 0 "C18" H 8225 5900 50  0000 L CNN
F 1 "105" H 8225 5700 50  0000 L CNN
F 2 "" H 8238 5650 50  0001 C CNN
F 3 "" H 8200 5800 50  0001 C CNN
	1    8200 5800
	1    0    0    -1  
$EndComp
$Comp
L C C19
U 1 1 591D75B9
P 8500 5800
F 0 "C19" H 8525 5900 50  0000 L CNN
F 1 "105" H 8525 5700 50  0000 L CNN
F 2 "" H 8538 5650 50  0001 C CNN
F 3 "" H 8500 5800 50  0001 C CNN
	1    8500 5800
	1    0    0    -1  
$EndComp
$Comp
L C C20
U 1 1 591D75EF
P 8800 5800
F 0 "C20" H 8825 5900 50  0000 L CNN
F 1 "105" H 8825 5700 50  0000 L CNN
F 2 "" H 8838 5650 50  0001 C CNN
F 3 "" H 8800 5800 50  0001 C CNN
	1    8800 5800
	1    0    0    -1  
$EndComp
$Comp
L C C25
U 1 1 591D7626
P 9100 5800
F 0 "C25" H 9125 5900 50  0000 L CNN
F 1 "104" H 9125 5700 50  0000 L CNN
F 2 "" H 9138 5650 50  0001 C CNN
F 3 "" H 9100 5800 50  0001 C CNN
	1    9100 5800
	1    0    0    -1  
$EndComp
$Comp
L C C21
U 1 1 591D7668
P 9400 5800
F 0 "C21" H 9425 5900 50  0000 L CNN
F 1 "105" H 9425 5700 50  0000 L CNN
F 2 "" H 9438 5650 50  0001 C CNN
F 3 "" H 9400 5800 50  0001 C CNN
	1    9400 5800
	1    0    0    -1  
$EndComp
Wire Wire Line
	8200 5950 9400 5950
Connection ~ 8500 5950
Connection ~ 8800 5950
Connection ~ 9100 5950
Wire Wire Line
	8200 5650 9400 5650
Connection ~ 9100 5650
Connection ~ 8800 5650
Connection ~ 8500 5650
$Comp
L GND #PWR208
U 1 1 591D78AD
P 8800 5950
F 0 "#PWR208" H 8800 5700 50  0001 C CNN
F 1 "GND" H 8800 5800 50  0000 C CNN
F 2 "" H 8800 5950 50  0001 C CNN
F 3 "" H 8800 5950 50  0001 C CNN
	1    8800 5950
	1    0    0    -1  
$EndComp
$Comp
L VDD #PWR207
U 1 1 591D78DF
P 8800 5650
F 0 "#PWR207" H 8800 5500 50  0001 C CNN
F 1 "VDD" H 8800 5800 50  0000 C CNN
F 2 "" H 8800 5650 50  0001 C CNN
F 3 "" H 8800 5650 50  0001 C CNN
	1    8800 5650
	1    0    0    -1  
$EndComp
Text Label 3050 6600 2    60   ~ 0
ACC_INT2
Text Label 3050 6500 2    60   ~ 0
ACC_INT1
Text Label 3100 3850 2    60   ~ 0
ACC_INT2
Text Label 3100 4050 2    60   ~ 0
ACC_INT1
$EndSCHEMATC


================================================
FILE: Development Resources/TS100/KiCad/TS100.pro
================================================
update=18/05/2017 9:29:06 PM
version=1
last_client=kicad
[pcbnew]
version=1
LastNetListRead=
UseCmpFile=1
PadDrill=0.600000000000
PadDrillOvalY=0.600000000000
PadSizeH=1.500000000000
PadSizeV=1.500000000000
PcbTextSizeV=1.500000000000
PcbTextSizeH=1.500000000000
PcbTextThickness=0.300000000000
ModuleTextSizeV=1.000000000000
ModuleTextSizeH=1.000000000000
ModuleTextSizeThickness=0.150000000000
SolderMaskClearance=0.000000000000
SolderMaskMinWidth=0.000000000000
DrawSegmentWidth=0.200000000000
BoardOutlineThickness=0.100000000000
ModuleOutlineThickness=0.150000000000
[cvpcb]
version=1
NetIExt=net
[general]
version=1
[eeschema]
version=1
LibDir=
[eeschema/libraries]
LibName1=power
LibName2=device
LibName3=transistors
LibName4=conn
LibName5=linear
LibName6=regul
LibName7=74xx
LibName8=cmos4000
LibName9=adc-dac
LibName10=memory
LibName11=xilinx
LibName12=microcontrollers
LibName13=dsp
LibName14=microchip
LibName15=analog_switches
LibName16=motorola
LibName17=texas
LibName18=intel
LibName19=audio
LibName20=interface
LibName21=digital-audio
LibName22=philips
LibName23=display
LibName24=cypress
LibName25=siliconi
LibName26=opto
LibName27=atmel
LibName28=contrib
LibName29=valves
LibName30=stm32
LibName31=mma8652fc
LibName32=switches


================================================
FILE: Development Resources/TS100/KiCad/TS100.sch
================================================
EESchema Schematic File Version 2
LIBS:power
LIBS:device
LIBS:transistors
LIBS:conn
LIBS:linear
LIBS:regul
LIBS:74xx
LIBS:cmos4000
LIBS:adc-dac
LIBS:memory
LIBS:xilinx
LIBS:microcontrollers
LIBS:dsp
LIBS:microchip
LIBS:analog_switches
LIBS:motorola
LIBS:texas
LIBS:intel
LIBS:audio
LIBS:interface
LIBS:digital-audio
LIBS:philips
LIBS:display
LIBS:cypress
LIBS:siliconi
LIBS:opto
LIBS:atmel
LIBS:contrib
LIBS:valves
LIBS:stm32
LIBS:mma8652fc
LIBS:switches
LIBS:TS100-cache
EELAYER 25 0
EELAYER END
$Descr A4 11693 8268
encoding utf-8
Sheet 1 2
Title "TS100 Soldering Iron Schematic"
Date "2017-05-18"
Rev "2.46"
Comp ""
Comment1 ""
Comment2 ""
Comment3 "Converted by Ben V. Brown"
Comment4 "KiCad port of published schematic"
$EndDescr
$Sheet
S 1450 1000 1450 1850
U 591D5966
F0 "STM32 & Accel Sub Board" 60
F1 "MCU_SubBoard.sch" 60
F2 "SWDIO" I R 2900 1100 60 
F3 "SWCLK" I R 2900 1200 60 
F4 "USB_D-" I R 2900 1350 60 
F5 "USB_D+" I R 2900 1450 60 
F6 "K1" I R 2900 1650 60 
F7 "nCR" I R 2900 2150 60 
F8 "TMP36" I R 2900 2250 60 
F9 "K2" I R 2900 1750 60 
F10 "SCL" I R 2900 2550 60 
F11 "SDA" I R 2900 2650 60 
F12 "Po" I R 2900 2050 60 
F13 "Vb" I R 2900 1950 60 
$EndSheet
$Comp
L BARREL_JACK J101
U 1 1 591D8B75
P 1600 3600
F 0 "J101" H 1600 3795 50  0000 C CNN
F 1 "BARREL_JACK" H 1600 3445 50  0000 C CNN
F 2 "" H 1600 3600 50  0001 C CNN
F 3 "" H 1600 3600 50  0001 C CNN
	1    1600 3600
	1    0    0    -1  
$EndComp
Text Label 1900 3500 0    60   ~ 0
VIN
$Comp
L GND #PWR103
U 1 1 591D8F24
P 2000 3800
F 0 "#PWR103" H 2000 3550 50  0001 C CNN
F 1 "GND" H 2000 3650 50  0000 C CNN
F 2 "" H 2000 3800 50  0001 C CNN
F 3 "" H 2000 3800 50  0001 C CNN
	1    2000 3800
	1    0    0    -1  
$EndComp
Wire Wire Line
	1900 3600 2000 3600
Wire Wire Line
	2000 3600 2000 3800
Wire Wire Line
	1900 3700 2000 3700
Connection ~ 2000 3700
$Comp
L SW_Push SW1
U 1 1 591D9BC6
P 1400 4550
F 0 "SW1" H 1450 4650 50  0000 L CNN
F 1 "SW_Push" H 1400 4490 50  0000 C CNN
F 2 "" H 1400 4750 50  0001 C CNN
F 3 "" H 1400 4750 50  0001 C CNN
F 4 "-" H 1400 4550 60  0001 C CNN "bom_partno"
	1    1400 4550
	0    1    1    0   
$EndComp
$Comp
L SW_Push SW101
U 1 1 591DA371
P 1700 4550
F 0 "SW101" H 1750 4650 50  0000 L CNN
F 1 "SW_Push" H 1700 4490 50  0000 C CNN
F 2 "" H 1700 4750 50  0001 C CNN
F 3 "" H 1700 4750 50  0001 C CNN
	1    1700 4550
	0    1    1    0   
$EndComp
$Comp
L GND #PWR102
U 1 1 591DA3DA
P 1700 4750
F 0 "#PWR102" H 1700 4500 50  0001 C CNN
F 1 "GND" H 1700 4600 50  0000 C CNN
F 2 "" H 1700 4750 50  0001 C CNN
F 3 "" H 1700 4750 50  0001 C CNN
	1    1700 4750
	1    0    0    -1  
$EndComp
$Comp
L GND #PWR101
U 1 1 591DA436
P 1400 4750
F 0 "#PWR101" H 1400 4500 50  0001 C CNN
F 1 "GND" H 1400 4600 50  0000 C CNN
F 2 "" H 1400 4750 50  0001 C CNN
F 3 "" H 1400 4750 50  0001 C CNN
	1    1400 4750
	1    0    0    -1  
$EndComp
Text Label 1400 4350 0    60   ~ 0
K1
Text Label 1700 4350 0    60   ~ 0
K2
Text Label 2900 1750 0    60   ~ 0
K2
Text Label 2900 1650 0    60   ~ 0
K1
$EndSCHEMATC


================================================
FILE: Development Resources/TS100/TS100.ioc
================================================
#MicroXplorer Configuration settings - do not modify
ADC1.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_7
ADC1.Channel-1\#ChannelRegularConversion=ADC_CHANNEL_9
ADC1.Channel-2\#ChannelInjectedConversion=ADC_CHANNEL_8
ADC1.Channel-3\#ChannelInjectedConversion=ADC_CHANNEL_8
ADC1.Channel-4\#ChannelInjectedConversion=ADC_CHANNEL_8
ADC1.Channel-5\#ChannelInjectedConversion=ADC_CHANNEL_8
ADC1.ContinuousConvMode=ENABLE
ADC1.DataAlign=ADC_DATAALIGN_RIGHT
ADC1.DiscontinuousConvMode=DISABLE
ADC1.EnableAnalogWatchDog=false
ADC1.EnableRegularConversion=ENABLE
ADC1.ExternalTrigConv=ADC_SOFTWARE_START
ADC1.ExternalTrigInjecConv=ADC_EXTERNALTRIGINJECCONV_T2_CC1
ADC1.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,NbrOfConversionFlag,DataAlign,ScanConvMode,ContinuousConvMode,DiscontinuousConvMode,EnableRegularConversion,NbrOfConversion,ExternalTrigConv,InjNumberOfConversion,EnableAnalogWatchDog,Rank-1\#ChannelRegularConversion,Channel-1\#ChannelRegularConversion,SamplingTime-1\#ChannelRegularConversion,master,Rank-2\#ChannelInjectedConversion,Channel-2\#ChannelInjectedConversion,SamplingTime-2\#ChannelInjectedConversion,InjectedOffset-2\#ChannelInjectedConversion,Rank-3\#ChannelInjectedConversion,Channel-3\#ChannelInjectedConversion,SamplingTime-3\#ChannelInjectedConversion,InjectedOffset-3\#ChannelInjectedConversion,Rank-4\#ChannelInjectedConversion,Channel-4\#ChannelInjectedConversion,SamplingTime-4\#ChannelInjectedConversion,InjectedOffset-4\#ChannelInjectedConversion,Rank-5\#ChannelInjectedConversion,Channel-5\#ChannelInjectedConversion,SamplingTime-5\#ChannelInjectedConversion,InjectedOffset-5\#ChannelInjectedConversion,ExternalTrigInjecConv,InjectedConvMode,Mode
ADC1.InjNumberOfConversion=4
ADC1.InjectedConvMode=None
ADC1.InjectedOffset-2\#ChannelInjectedConversion=0
ADC1.InjectedOffset-3\#ChannelInjectedConversion=0
ADC1.InjectedOffset-4\#ChannelInjectedConversion=0
ADC1.InjectedOffset-5\#ChannelInjectedConversion=0
ADC1.Mode=ADC_DUALMODE_REGSIMULT_INJECSIMULT
ADC1.NbrOfConversion=2
ADC1.NbrOfConversionFlag=1
ADC1.Rank-0\#ChannelRegularConversion=1
ADC1.Rank-1\#ChannelRegularConversion=2
ADC1.Rank-2\#ChannelInjectedConversion=1
ADC1.Rank-3\#ChannelInjectedConversion=2
ADC1.Rank-4\#ChannelInjectedConversion=3
ADC1.Rank-5\#ChannelInjectedConversion=4
ADC1.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_239CYCLES_5
ADC1.SamplingTime-1\#ChannelRegularConversion=ADC_SAMPLETIME_239CYCLES_5
ADC1.SamplingTime-2\#ChannelInjectedConversion=ADC_SAMPLETIME_239CYCLES_5
ADC1.SamplingTime-3\#ChannelInjectedConversion=ADC_SAMPLETIME_71CYCLES_5
ADC1.SamplingTime-4\#ChannelInjectedConversion=ADC_SAMPLETIME_239CYCLES_5
ADC1.SamplingTime-5\#ChannelInjectedConversion=ADC_SAMPLETIME_71CYCLES_5
ADC1.ScanConvMode=ADC_SCAN_ENABLE
ADC1.master=1
ADC2.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_8
ADC2.Channel-1\#ChannelInjectedConversion=ADC_CHANNEL_8
ADC2.Channel-2\#ChannelInjectedConversion=ADC_CHANNEL_8
ADC2.Channel-3\#ChannelInjectedConversion=ADC_CHANNEL_8
ADC2.Channel-4\#ChannelInjectedConversion=ADC_CHANNEL_8
ADC2.ContinuousConvMode=DISABLE
ADC2.DataAlign=ADC_DATAALIGN_RIGHT
ADC2.DiscontinuousConvMode=DISABLE
ADC2.EnableAnalogWatchDog=false
ADC2.EnableRegularConversion=ENABLE
ADC2.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,NbrOfConversionFlag,Rank-1\#ChannelInjectedConversion,Channel-1\#ChannelInjectedConversion,SamplingTime-1\#ChannelInjectedConversion,InjectedOffset-1\#ChannelInjectedConversion,Rank-2\#ChannelInjectedConversion,Channel-2\#ChannelInjectedConversion,SamplingTime-2\#ChannelInjectedConversion,InjectedOffset-2\#ChannelInjectedConversion,Rank-3\#ChannelInjectedConversion,Channel-3\#ChannelInjectedConversion,SamplingTime-3\#ChannelInjectedConversion,InjectedOffset-3\#ChannelInjectedConversion,Rank-4\#ChannelInjectedConversion,Channel-4\#ChannelInjectedConversion,SamplingTime-4\#ChannelInjectedConversion,InjectedOffset-4\#ChannelInjectedConversion,InjNumberOfConversion,Mode,DataAlign,ScanConvMode,ContinuousConvMode,DiscontinuousConvMode,EnableRegularConversion,NbrOfConversion,InjectedConvMode,EnableAnalogWatchDog
ADC2.InjNumberOfConversion=4
ADC2.InjectedConvMode=None
ADC2.InjectedOffset-1\#ChannelInjectedConversion=0
ADC2.InjectedOffset-2\#ChannelInjectedConversion=0
ADC2.InjectedOffset-3\#ChannelInjectedConversion=0
ADC2.InjectedOffset-4\#ChannelInjectedConversion=0
ADC2.Mode=ADC_DUALMODE_REGSIMULT_INJECSIMULT
ADC2.NbrOfConversion=1
ADC2.NbrOfConversionFlag=1
ADC2.Rank-0\#ChannelRegularConversion=1
ADC2.Rank-1\#ChannelInjectedConversion=1
ADC2.Rank-2\#ChannelInjectedConversion=2
ADC2.Rank-3\#ChannelInjectedConversion=3
ADC2.Rank-4\#ChannelInjectedConversion=4
ADC2.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_1CYCLE_5
ADC2.SamplingTime-1\#ChannelInjectedConversion=ADC_SAMPLETIME_1CYCLE_5
ADC2.SamplingTime-2\#ChannelInjectedConversion=ADC_SAMPLETIME_1CYCLE_5
ADC2.SamplingTime-3\#ChannelInjectedConversion=ADC_SAMPLETIME_1CYCLE_5
ADC2.SamplingTime-4\#ChannelInjectedConversion=ADC_SAMPLETIME_1CYCLE_5
ADC2.ScanConvMode=ADC_SCAN_ENABLE
Dma.ADC1.2.Direction=DMA_PERIPH_TO_MEMORY
Dma.ADC1.2.Instance=DMA1_Channel1
Dma.ADC1.2.MemDataAlignment=DMA_MDATAALIGN_HALFWORD
Dma.ADC1.2.MemInc=DMA_MINC_ENABLE
Dma.ADC1.2.Mode=DMA_CIRCULAR
Dma.ADC1.2.PeriphDataAlignment=DMA_PDATAALIGN_HALFWORD
Dma.ADC1.2.PeriphInc=DMA_PINC_DISABLE
Dma.ADC1.2.Priority=DMA_PRIORITY_VERY_HIGH
Dma.ADC1.2.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
Dma.I2C1_RX.0.Direction=DMA_PERIPH_TO_MEMORY
Dma.I2C1_RX.0.Instance=DMA1_Channel7
Dma.I2C1_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.I2C1_RX.0.MemInc=DMA_MINC_ENABLE
Dma.I2C1_RX.0.Mode=DMA_NORMAL
Dma.I2C1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.I2C1_RX.0.PeriphInc=DMA_PINC_DISABLE
Dma.I2C1_RX.0.Priority=DMA_PRIORITY_MEDIUM
Dma.I2C1_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
Dma.I2C1_TX.1.Direction=DMA_MEMORY_TO_PERIPH
Dma.I2C1_TX.1.Instance=DMA1_Channel6
Dma.I2C1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.I2C1_TX.1.MemInc=DMA_MINC_ENABLE
Dma.I2C1_TX.1.Mode=DMA_NORMAL
Dma.I2C1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.I2C1_TX.1.PeriphInc=DMA_PINC_DISABLE
Dma.I2C1_TX.1.Priority=DMA_PRIORITY_MEDIUM
Dma.I2C1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
Dma.Request0=I2C1_RX
Dma.Request1=I2C1_TX
Dma.Request2=ADC1
Dma.RequestsNb=3
FREERTOS.FootprintOK=true
FREERTOS.INCLUDE_vTaskDelete=0
FREERTOS.IPParameters=Tasks01,configTICK_RATE_HZ,configMAX_PRIORITIES,configMINIMAL_STACK_SIZE,configTOTAL_HEAP_SIZE,INCLUDE_vTaskDelete,FootprintOK
FREERTOS.Tasks01=GUITask,0,512,StartGUITask,Default,NULL,Dynamic,NULL,NULL;PIDTask,0,256,StartPIDTask,Default,NULL,Dynamic,NULL,NULL;ROTTask,-2,256,StartRotationTask,Default,NULL,Dynamic,NULL,NULL
FREERTOS.configMAX_PRIORITIES=4
FREERTOS.configMINIMAL_STACK_SIZE=256
FREERTOS.configTICK_RATE_HZ=100
FREERTOS.configTOTAL_HEAP_SIZE=10240
File.Version=6
I2C1.DutyCycle=I2C_DUTYCYCLE_2
I2C1.I2C_Mode=I2C_Fast
I2C1.IPParameters=I2C_Mode,DutyCycle
IWDG.IPParameters=Prescaler
IWDG.Prescaler=IWDG_PRESCALER_256
KeepUserPlacement=false
Mcu.Family=STM32F1
Mcu.IP0=ADC1
Mcu.IP1=ADC2
Mcu.IP10=TIM3
Mcu.IP2=DMA
Mcu.IP3=FREERTOS
Mcu.IP4=I2C1
Mcu.IP5=IWDG
Mcu.IP6=NVIC
Mcu.IP7=RCC
Mcu.IP8=SYS
Mcu.IP9=TIM2
Mcu.IPNb=11
Mcu.Name=STM32F103T(8-B)Ux
Mcu.Package=VFQFPN36
Mcu.Pin0=PA6
Mcu.Pin1=PA7
Mcu.Pin10=PB5
Mcu.Pin11=PB6
Mcu.Pin12=PB7
Mcu.Pin13=VP_FREERTOS_VS_ENABLE
Mcu.Pin14=VP_IWDG_VS_IWDG
Mcu.Pin15=VP_SYS_VS_tim1
Mcu.Pin16=VP_TIM2_VS_ClockSourceINT
Mcu.Pin17=VP_TIM2_VS_no_output1
Mcu.Pin18=VP_TIM2_VS_no_output3
Mcu.Pin19=VP_TIM3_VS_ClockSourceINT
Mcu.Pin2=PB0
Mcu.Pin20=VP_TIM3_VS_no_output4
Mcu.Pin3=PB1
Mcu.Pin4=PA8
Mcu.Pin5=PA9
Mcu.Pin6=PA13
Mcu.Pin7=PA14
Mcu.Pin8=PB3
Mcu.Pin9=PB4
Mcu.PinsNb=21
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F103T8Ux
MxCube.Version=4.26.0
MxDb.Version=DB.4.0.260
NVIC.ADC1_2_IRQn=true\:5\:0\:false\:false\:true\:true\:true
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.DMA1_Channel1_IRQn=true\:5\:0\:false\:false\:true\:true\:true
NVIC.DMA1_Channel6_IRQn=true\:5\:0\:false\:false\:true\:true\:true
NVIC.DMA1_Channel7_IRQn=true\:5\:0\:false\:false\:true\:true\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.I2C1_ER_IRQn=true\:5\:0\:false\:false\:true\:true\:true
NVIC.I2C1_EV_IRQn=true\:5\:0\:false\:false\:true\:true\:true
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:true
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:true
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:true\:true
NVIC.TIM1_UP_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.TimeBase=TIM1_UP_IRQn
NVIC.TimeBaseIP=TIM1
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true
PA13.Locked=true
PA13.Mode=Serial_Wire
PA13.Signal=SYS_JTMS-SWDIO
PA14.Locked=true
PA14.Mode=Serial_Wire
PA14.Signal=SYS_JTCK-SWCLK
PA6.GPIOParameters=GPIO_Label
PA6.GPIO_Label=KEY_B
PA6.Locked=true
PA6.Signal=GPIO_Input
PA7.GPIOParameters=GPIO_Label
PA7.GPIO_Label=TMP36_INPUT
PA7.Locked=true
PA7.Signal=ADCx_IN7
PA8.GPIOParameters=GPIO_Label
PA8.GPIO_Label=OLED_RESET
PA8.Locked=true
PA8.Signal=GPIO_Output
PA9.GPIOParameters=GPIO_Label
PA9.GPIO_Label=KEY_A
PA9.Locked=true
PA9.Signal=GPIO_Input
PB0.GPIOParameters=GPIO_Label
PB0.GPIO_Label=TIP_TEMP
PB0.Locked=true
PB0.Signal=ADCx_IN8
PB1.GPIOParameters=GPIO_Label
PB1.GPIO_Label=VIN
PB1.Locked=true
PB1.Signal=ADCx_IN9
PB3.GPIOParameters=GPIO_Label
PB3.GPIO_Label=INT_Orientation
PB3.Locked=true
PB3.Signal=GPXTI3
PB4.GPIOParameters=GPIO_Label
PB4.GPIO_Label=PWM Out
PB4.Locked=true
PB4.Signal=S_TIM3_CH1
PB5.GPIOParameters=GPIO_Label
PB5.GPIO_Label=INT_Movement
PB5.Locked=true
PB5.Signal=GPXTI5
PB6.GPIOParameters=GPIO_Label
PB6.GPIO_Label=SCL
PB6.Mode=I2C
PB6.Signal=I2C1_SCL
PB7.GPIOParameters=GPIO_Label
PB7.GPIO_Label=SDA
PB7.Mode=I2C
PB7.Signal=I2C1_SDA
PCC.Checker=false
PCC.Line=STM32F103
PCC.MCU=STM32F103T(8-B)Ux
PCC.PartNumber=STM32F103T8Ux
PCC.Seq0=0
PCC.Series=STM32F1
PCC.Temperature=25
PCC.Vdd=3.3
PinOutPanel.RotationAngle=0
ProjectManager.AskForMigrate=true
ProjectManager.BackupPrevious=false
ProjectManager.CompilerOptimize=3
ProjectManager.ComputerToolchain=false
ProjectManager.CoupleFile=false
ProjectManager.CustomerFirmwarePackage=
ProjectManager.DefaultFWLocation=true
ProjectManager.DeletePrevious=true
ProjectManager.DeviceId=STM32F103T8Ux
ProjectManager.FirmwarePackage=STM32Cube FW_F1 V1.6.1
ProjectManager.FreePins=true
ProjectManager.HalAssertFull=false
ProjectManager.HeapSize=0x200
ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=1
ProjectManager.MainLocation=Src
ProjectManager.PreviousToolchain=TrueSTUDIO
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=TS100.ioc
ProjectManager.ProjectName=TS100
ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=TrueSTUDIO
ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=true
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-MX_I2C1_Init-I2C1-false-HAL-true,4-MX_ADC1_Init-ADC1-false-HAL-true,5-SystemClock_Config-RCC-false-HAL-true,6-MX_TIM3_Init-TIM3-false-HAL-true,7-MX_IWDG_Init-IWDG-false-HAL-true,8-MX_TIM2_Init-TIM2-false-HAL-true,9-MX_ADC2_Init-ADC2-false-HAL-true
RCC.ADCFreqValue=8000000
RCC.ADCPresc=RCC_ADCPCLK2_DIV8
RCC.AHBFreq_Value=64000000
RCC.APB1CLKDivider=RCC_HCLK_DIV16
RCC.APB1Freq_Value=4000000
RCC.APB1TimFreq_Value=8000000
RCC.APB2Freq_Value=64000000
RCC.APB2TimFreq_Value=64000000
RCC.FCLKCortexFreq_Value=64000000
RCC.FamilyName=M
RCC.HCLKFreq_Value=64000000
RCC.IPParameters=ADCFreqValue,ADCPresc,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,MCOFreq_Value,PLLCLKFreq_Value,PLLMCOFreq_Value,PLLMUL,PLLSourceVirtual,SYSCLKFreq_VALUE,SYSCLKSource,TimSysFreq_Value,USBFreq_Value,USBPrescaler
RCC.MCOFreq_Value=64000000
RCC.PLLCLKFreq_Value=64000000
RCC.PLLMCOFreq_Value=32000000
RCC.PLLMUL=RCC_PLL_MUL16
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSI_DIV2
RCC.SYSCLKFreq_VALUE=64000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.TimSysFreq_Value=64000000
RCC.USBFreq_Value=42666666.666666664
RCC.USBPrescaler=RCC_USBCLKSOURCE_PLL_DIV1_5
SH.ADCx_IN7.0=ADC1_IN7,IN7
SH.ADCx_IN7.ConfNb=1
SH.ADCx_IN8.0=ADC1_IN8,IN8
SH.ADCx_IN8.1=ADC2_IN8,IN8
SH.ADCx_IN8.ConfNb=2
SH.ADCx_IN9.0=ADC2_IN9
SH.ADCx_IN9.1=ADC1_IN9,IN9
SH.ADCx_IN9.ConfNb=2
SH.GPXTI3.0=GPIO_EXTI3
SH.GPXTI3.ConfNb=1
SH.GPXTI5.0=GPIO_EXTI5
SH.GPXTI5.ConfNb=1
SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1
SH.S_TIM3_CH1.ConfNb=1
TIM2.Channel-PWM\ Generation1\ No\ Output=TIM_CHANNEL_1
TIM2.Channel-PWM\ Generation3\ No\ Output=TIM_CHANNEL_3
TIM2.IPParameters=Channel-PWM Generation1 No Output,Channel-PWM Generation3 No Output
TIM3.Channel-Output\ Compare4\ No\ Output=TIM_CHANNEL_4
TIM3.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
TIM3.ClockDivision=TIM_CLOCKDIVISION_DIV4
TIM3.IPParameters=Channel-PWM Generation1 CH1,OCFastMode_PWM-PWM Generation1 CH1,ClockDivision,Prescaler,Period,Channel-Output Compare4 No Output,OCMode_4,Pulse-Output Compare4 No Output
TIM3.OCFastMode_PWM-PWM\ Generation1\ CH1=TIM_OCFAST_ENABLE
TIM3.OCMode_4=TIM_OCMODE_ACTIVE
TIM3.Period=65535
TIM3.Prescaler=2000
TIM3.Pulse-Output\ Compare4\ No\ Output=65000
VP_FREERTOS_VS_ENABLE.Mode=Enabled
VP_FREERTOS_VS_ENABLE.Signal=FREERTOS_VS_ENABLE
VP_IWDG_VS_IWDG.Mode=IWDG_Activate
VP_IWDG_VS_IWDG.Signal=IWDG_VS_IWDG
VP_SYS_VS_tim1.Mode=TIM1
VP_SYS_VS_tim1.Signal=SYS_VS_tim1
VP_TIM2_VS_ClockSourceINT.Mode=Internal
VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT
VP_TIM2_VS_no_output1.Mode=PWM Generation1 No Output
VP_TIM2_VS_no_output1.Signal=TIM2_VS_no_output1
VP_TIM2_VS_no_output3.Mode=PWM Generation3 No Output
VP_TIM2_VS_no_output3.Signal=TIM2_VS_no_output3
VP_TIM3_VS_ClockSourceINT.Mode=Internal
VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT
VP_TIM3_VS_no_output4.Mode=Output Compare4 No Output
VP_TIM3_VS_no_output4.Signal=TIM3_VS_no_output4
board=TS100


================================================
FILE: Development Resources/TS80/TS80-Bootloader.hex
================================================
:020000040800F2
:2000000020310020E52E00088D2E00088F2E0008912E0008932E0008952E00080000000071
:20002000000000000000000000000000972E0008992E0008000000009B2E00089D2E000880
:20004000252F0008292F00082D2F0008312F0008352F0008392F00083D2F0008412F000850
:20006000452F0008492F00084D2F0008512F0008552F0008592F00085D2F0008612F000830
:20008000652F0008692F00086D2F0008712F00089F2E0008792F00087D2F0008812F0008E7
:2000A000852F0008892F00088D2F0008912F0008952F0008992F00089D2F0008A12F0008F0
:2000C000A52F0008A92F0008AD2F0008B12F0008B52F0008B92F0008BD2F0008C12F0008D0
:2000E000C52F0008C92F0008CD2F0008D12F0008D52F0008D92F0008DD2F0008E12F0008B0
:20010000E52F0008E92F0008ED2F0008F12F0008F52F0008F92F0008FD2F0008013000088E
:2001200005300008093000080D3000081130000870B500F08FFEDFF8144804F510553C350F
:200140000146284600F016FC4FF40051204600F0D1FE04F200464FF4B0720FF650213046A2
:2001600000F0F2FE0B222946304600F0EDFE0FF6CC4518222946204600F0E6FE1822294610
:2001800004F5007000F0E0FEDFF8C407C4F81604A0220FF6783104F5C06000F0D5FE5022F2
:2001A0000FF6084104F5006000F0CEFE40220FF64C4104F5206000F0C7FE42F20C20011940
:2001C0000022CA760A774A7602518A600A61CA6070BD70B50C46DFF87467B4F5805F03D1F8
:2001E00000F044F830460EE0B4F5205F04D100F03DF806F5007006E0B4F5804F07D100F0BC
:2002000035F806F58060BDE8704000F08DBEB4F51A4F2AD300F02AF806F5C06000F084FE98
:200220004FF40072314606F508503C3000F08CFE42F2272085196978B9B9DFF81817098856
:20024000825D32B9B4F52A4F00D271B100F0A2F90AE0012A09D111B1B4F51C4F02D2B4F5F1
:200260002C4F02D300F08BFA687070BD4FF400720146704710B50446080004D14FF4007260
:200280000FF228713DE0DFF8C416B0F5805F08BF4FF4007235D0B0F5205F04D14FF4007243
:2002A00001F500712DE0B0F5804F04D14FF4007201F5806125E0B0F5004F05D100F02DF811
:2002C000A0220FF648211CE0B0F5024F05D100F024F850220FF6D42113E06FF402421218EA
:2002E00041F2FF739A4205D200F017F840220FF60C3106E0B0F51A4F08D34FF4007201F589
:20030000C0612046BDE8104000F00EBE4FF400712046BDE8104000F053BE4FF4007120467B
:2003200000F04EBE2DE9F84F4FF02008DFF81C5642F227277C194FF4085908EB050000F20F
:200340000046002030733078E52818BF002800F0E580F07A202840F0E180307A482826D137
:20036000707A452804BFB07A582840F0D08000F0DDF800207855607820B102280DD00428AB
:2003800006D010E05220307244207072592009E0452030725220707204E04E2030724F201D
:2003A00070725420B072F07D401CF075B4E041285AD1707A442804BFB07A52285BD100F096
:2003C000B5F800207855607049F805004FF0020A95F80006302804BF95F8010678281ED151
:2003E0000AEB050090F80006A0F13001C9B20A2922BFA0F14101C9B2062922BFA0F16101D3
:20040000C9B206290BD259F805104FEA011B49F805B000F0DAF9584449F8050003E0607844
:2004200040F0040060700AF1010ABAF10A0FCFDB6078A0B959F80500DFF81C15884202D316
:2004400000F00FFD18B94E2030724F2004E001207855532030724520707254205BE045200E
:2004600030725220707256E0422820D1707A492804BFB07A4E284AD100F058F8785D28B926
:200480004E2030724F207072542004E052203072442070725920B072785D022804BF0020CC
:2004A0007855785D012837D10220785534E053280DD1707A452804BFB07A542827D1785D80
:2004C00060BB5520307253207072452023E0522805D1707A44281AD1B07A59280EE0552886
:2004E00005D1707A532812D1B07A452806E0452806D1707A52280AD1B07A522807D10DE075
:200500004E2801BF707A4F28B07A542806D04520307252207072B0720320607008F1200837
:20052000B8F5007FFFF609AFBDE8F18FB07EF17E00EB01200005000DDFF8181408804FF434
:200540007A7000F041BD70B542F20C25DFF8FC63AC19207F03281BD100F0F5FD0028FBD1B2
:2005600000F03FFD4FF4C87000F02EFD012000F038FD00F0F5FD002020776076A060A8510B
:20058000DFF8D00300210180E07E022808BFE17670BD00002DE9F04742F20424DFF8AC53BD
:2005A00066190020F060306900EB0509F068401942F2242A0AEB050742F2292879780E29D9
:2005C00056D8DFE801F0080C131B1F2C324146595F757B838A0090F800063A2874E000F006
:2005E000CBF80001B0770020306173E096F81E8000F0C2F84044B077B07F5DE000F0BCF87B
:2006000000010AE054F8058000F0B6F8404460516059F17F4118F177000260515AE000F084
:20062000ABF800010AF8050054E01AF8058000F0A3F840440AF8050060591AF8051008182E
:200640006051F07F081837E000F096F80001707740E096F81D8000F08FF840447077F07F41
:20066000717F0818F0777878401C7870B07F002876D17878801C72E000F07EF8000108F8EC
:20068000090027E018F809A000F076F8504408F809003069F17F421918F802205118F1772F
:2006A000401C3061B17F884214D27878401E56E000F060F808EB0010F0770BE000F05AF80A
:2006C0004044F077F07F002846D103E090F800060D2841D17878401C41E090F800060A289C
:2006E0003AD10020F870707F042805D17879B979090401EB00607060707F012837D068BBE8
:2007000060597168081860519349884201D202202EE0002001E03069801C30613069B17F3D
:2007200088421BD26159401800F03BFD31694A1960590818491CB37F994218F8021008BF97
:2007400041F47F4104D04244527801EB022189B200F016FD0428DED0042009E00020787044
:20076000F068401CF060B0F5007FFFF41CAF0020BDE8F08796F81F8090F8000625E0F8B5EA
:200780000024724D05F508564FF408577859F168081800F006FD601990F8001690F8010699
:2007A00001EB002189B27859F268101800F0E8FCF168891CF160042801D00420F2BDA41CEB
:2007C000B4F5007FE2D30020F2BD10B585B0044600A80FF2C411112200F0B6FBA4F16100E1
:2007E000C0B21A2838BF203C002000A9415CE4B2A14204D0401CC0B21028F6D3002005B09B
:2008000010BD2DE9F04142F21824504D6619534F327A2AB940023860480278600120307248
:20082000307A012831D1605978B905F5005839684046FFF71FFD40229821404600F0C6FC1B
:200840004FF4E070605140200CE040229821B868401900F5005000F0B9FC605940386051A8
:20086000B8684030B8604021012000F05AFD3021012000F0E0FC38684030386078684038C9
:2008800078603748816840398160786838B96051B860386033480321017000203072BDE815
:2008A000F0812DE9F04142F21C24284D6259403266192D4F33792BB94002386048027860E3
:2008C00001203071307901282FD1002027490AE05B1903F5005310F801C083F800C0401CEB
:2008E00063595B1C635163599342F1D3DFF88080B8F800003968411839607A68101A7860BE
:20090000C00507D100206051A1F5007105F50050FFF75FFC12488168B8F80020891A816030
:200920004FF44051022000F097FC786800281EBF0C480078042806D100206051012100F0A7
:2009400057FE00203071BDE8F0810000EC010020188DDD40102D002000400008D82C0020D3
:20096000C82C0020942C0020E42C0020342C0020962C00201C2221FA02F303F00F030A2B69
:20098000ACBF3733303300F8013B121F53B2002BF1D50021017070473031323334353637DF
:2009A000383941424344454600000000EB3C904D53444F53352E3000020108000200020052
:2009C00010F80C00010001000000000000000000000029A298E46C4E4F204E414D45202030
:2009E0002020464154313220202033C98ED1BCF07B8ED9B800208EC0FCBD007C384E247DAE
:200A0000248BC199E83C01721C83EB3A66A11C7C26663B07268A57FC750680CA028856025B
:200A200080C31073EB33C98A461098F7661603461C13561E03460E13D18B7611608946FCBA
:200A40008956FEB82000F7E68B5E0B03C348F7F30146FC114EFE61BF0000E8E600723926B9
:200A6000382D741760B10BBEA17DF3A66174324E740983C7203BFB72E6EBDCA0FB7DB47D1B
:200A80008BF0AC9840740C487413B40EBB0700CD10EBEFA0FD7DEBE6A0FC7DEBE1CD16CD4D
:200AA00019268B551A52B001BB0000E83B0072E85B8A5624BE0B7C8BFCC746F03D7DC746D3
:200AC000F4297D8CD9894EF2894EF6C606967DCBEA030000200FB6C8668B46F86603461C43
:200AE000668BD066C1EA10EB5E0FB6C84A4A8A460D32E4F7E20346FC1356FEEB4A52500655
:200B0000536A016A10918B4618969233D2F7F691F7F64287CAF7761A8AF28AE8C0CC020AEB
:200B2000CCB80102807E020E7504B4428BF48A5624CD136161720B40750142035E0B4975ED
:200B400006F8C341BB000060666A00EBB04E544C44522020202020200D0A52656D6F766544
:200B6000206469736B73206F72206F74686572206D656469612EFF0D0A4469736B2065720E
:200B8000726F72FF0D0A507265737320616E79206B657920746F20726573746172740D0ACF
:200BA00000000000000000ACCBD855AA4446552056335F34325F44080000000000000000EF
:200BC00000008A5A794500000000000042200049006E0066006F000F007272006D006100C4
:200BE000740069006F0000006E00000001530079007300740065000F00726D0020005600BE
:200C00006F006C00750000006D00650053595354454D7E3120202016005E63705D455D4533
:200C2000000064705D45020000000000412E005F002E00540072000F007F610073006800B0
:200C40006500730000000000FFFFFFFF7E3120202020202054524122004A8A5A794579459E
:200C600000008A5A7945050000100000E552415348457E3145464D1200478A5A7945794525
:200C800000008A5A7945040000000000412E0054007200610073000F002568006500730031
:200CA0000000FFFFFFFF0000FFFFFFFF5452415348457E312020201200478A5A79457945AD
:200CC00000008A5A7945040000000000412E0066007300650076000F00DA65006E0074001B
:200CE0007300640000000000FFFFFFFF46534556454E7E3120202012004D8A5A794579458C
:200D000000008A5A79450D00000000002E2020202020202020202010005E63705D455D4531
:200D2000000064705D450200000000002E2E20202020202020202010005E63705D455D453A
:200D4000000064705D4500000000000042470075006900640000000F00FFFFFFFFFFFFFF4A
:200D6000FFFFFFFFFFFF0000FFFFFFFF0149006E006400650078000F00FF65007200560049
:200D80006F006C00750000006D006500494E444558457E3120202020007263705D455D45BC
:200DA000000064705D4503004C0000007B00380031004200320031003700330033002D001B
:200DC00036003800440039002D0034003000350039002D0041003500370033002D004500AA
:200DE000410030004400320033003200450039003300320031007D00000000002E20202088
:200E0000202020202020203200478A5A7945794500008A5A79450400000000002E2E2020D7
:200E2000202020202020201000478A5A7945794500008A5A7945000000000000F8FFFFFF84
:200E4000FFFFFF6F0007800009A0000BC000FFFFFFFF0F00234801684268511880684018F9
:200E6000704710B5FFF7F6FF1F490C6800F006F8844201D1012010BD002010BD0A231B4A3C
:200E800001461B48FFE7F0B503F11506C3F14304C3F151050A330EE0C0EB40105F1003EB86
:200EA00097774FEAA70CA3EB8C07FF0021FA07F7FFB238185B1C1BB2B342EDDB0DE0C0EB65
:200EC0004010631004EB93739B10A4EB8301C90022FA01F1C9B20818641C24B2AC42EEDB1D
:200EE000F0BD0000E8F7FF1FFC3F0008011020D502DEC0DE002200F0BDBB10B450F8041BCC
:200F000081B102681218001D50F8043BDC0744BFA9F10104E31852F8044B43F8044B091F9C
:200F2000F9D1EBE710BC704762B38B0708D0521E11F8013B00F8013B00F024808B07F6D13D
:200F4000830740F0208000BF103A07D330B4B1E83810103AA0E83810F9D230BC530724BF81
:200F6000B1E80810A0E8081044BF51F8043B40F8043BD20724BF31F8022B20F8022B44BFC4
:200F80000B7803707047083A07D3B1E80810083A40F8043B40F804CBF7D25307E4E750F8E1
:200FA000041B61B150F8042BD30744BFA9F101039A18002342F8043B091FFAD1EFE7704740
:200FC000002200F071BB000000214FF6FF7302E04D4A1360491C40F2DC5242439142F7D328
:200FE00070474A494FF400620A614FF480520A61002808680AD120F4404040F440500860E4
:20100000086820F4402040F4403009E020F4804040F430400860086820F4802040F43020D7
:201020000860704780F308887047704738B500F06BFB102000F0E0FB354C207820B10220D6
:2010400000F0D4FB082502E000F0D0FB002531484168314A11434160016841F08071016064
:20106000012000F06AFB012000F06AFB392000F094FB0028FAD0207800B1022000F063FB01
:2010800000F068FBA842FBD10121142000F06AFB012140F20C6000F06EFB01214FF400001E
:2010A00000F072FB207820B10120BDE8324000F056BB31BD80B501464FF0006000F047FCF5
:2010C0004FF4A06000F012FC14208DF8000002208DF8010000208DF8020001208DF803001E
:2010E00000A800F008FC01BD0C484FF6FF71C1600B4A02600B4A42600B48C1600B49016095
:201100004FF08831416070470C10014004080140E8010020001002400A846800000801403B
:201120008888880884B4BB8B000C0140884883440948012101600021016041604FF4E05142
:20114000064A118005E0044801210160002141600321016000207047405C0040142D00209F
:201160000448C0610221017203490162034A426208680047A02C0020D800002030010020E0
:2011800038B504460D46104800F0A0FB05281CBF342000F07AFB29462046BDE8344000F043
:2011A0005BBB10B50446A0050CD1074800F08EFB05281CBF342000F068FB2046BDE81040B6
:2011C00000F02EBB10BD0000A086010010B5490001F1804101F5C041521C521009E010F8C9
:2011E000013B10F8014B43EA042321F8023B891C521EF4D110BD490001F1804101F5C0411B
:20120000521C521004E051F8043B20F8023B521EF9D170474FF6F8710840DFF89011086076
:20122000704710B5DFF8882152F8203048F68F142340194324E010B5DFF8742152F82030A9
:2012400048F6BF742340CC0648BF83F01003890648BF83F020030FE010B5DFF8542152F8E5
:2012600020304BF68F742340CC0448BF83F48053890448BF83F4005343F4004141F08001CE
:2012800042F8201010BDDFF8281151F820204BF68F731A4082F4405242F4004209E0DFF8A1
:2012A000101151F8202048F68F631A4042F40042FFE742F0800241F820207047DFF8F010E1
:2012C00051F8202052040AD551F8202048F68F731A4042F4404242F0800241F82020704791
:2012E000334951F8202052060AD551F8202048F68F731A4042F4004242F0C00241F82020AA
:20130000704738E0294A126892B202EBC000294A37E03BE02549096889B201EBC000254947
:201320003AE0224A126892B202EBC000224A2AE01E4A126892B202EBC000204A02EB4000DC
:201340003F2909D34A091F23194208BF521E1204910941F4004105E04A08C90748BF521C80
:2013600012049109016070471049096889B201EBC000124914E00D4A126892B202EBC000E3
:201380000F4A4908490042F8101070470749096889B201EBC0000A4951F8100080B270470C
:2013A00051F810008005800D70470000505C0040005C004008600040046000400C6000408B
:2013C000006000400106090C41EA10207047000080B5964890F82010022909D018D3042958
:2013E00002D00ED3052913D1002180F820100CE0C17B28290CD1816A406ABDE8044000F09B
:20140000FEBA0121002000F0F3F84FF440512BE101BD38B5854CE57B0220FFF7A5FF60849B
:201420000246D8218248FFF7E6FE94F8200010B1012803D00AE0BDE8314013E02A2D06D13D
:20144000A16A606ABDE8344000F003BB022000F0F9F82421052000F0CDFA00210220BDE8E4
:201460003440C5E010B5714C628C1AB170492046FFF76AFD6F4861684160A1688160608CA5
:201480001F2806D0022000F0DDF8002020601A218DE0E27B282A18BF2A2A0FD1607CA17C4D
:2014A000090441EA0060E17C40EA0120217D08436062A07DE17D41EA0020A06220685E494A
:2014C000884270D15D480068617B884204D3A07B401EC0B2102804D3022000F0B3F824217B
:2014E00065E0606AA16A002A49D0032A2BD0082A18BF0A2A53D0122A29D0152A4FD01A2A30
:201500002DD01B2A27D01D2A49D01E2A23D0232A2DD0252A2FD0282A35D02A2A37D02F2A54
:2015200039D0552A3BD05A2A1DD0882A18BF8A2A35D08F2A18BF9E2A31D0A82A1CBFAA2A8B
:20154000AF2A2CD02FE0BDE8104000F04BBABDE8104000F011BABDE8104000F04FBABDE87A
:20156000104000F037BABDE8104000F037BABDE8104000F010BABDE8104000F01BBABDE856
:20158000104000F0A5BABDE8104000F038BABDE8104000F05EBABDE8104000F083BABDE811
:2015A000104000F09ABA022000F04CF82021052000F020FA00210120BDE8104018E010B5DD
:2015C0000C4622469821FFF701FE21460120FFF7A8FE30210120FFF72EFE1448032180F8F3
:2015E000201014488168091B81600021017310BD10B50C460F4B1249196018730D22982157
:201600001846FFF7E3FD0D210120FFF78AFE0748052180F8201044B1042180F82010302199
:201620000120BDE81040FFF706BE10BD742C0020342C0020C82C002055534243002D00203F
:201640005553425380B518B1022807D00AD301BD10210120BDE80440FFF7EDBD1021012086
:20166000FFF7E9FD4FF480510220BDE80440FFF7F3BD000000B500BF130096469446103943
:2016800028BFA0E80C50FAD85FEA417C28BF0CC048BF40F8042BC90728BF20F8022B48BF83
:2016A00000F8012B00BD0000401810F0030308D0C91A1FD3DB0748BF00F8012D28BF20F830
:2016C000022D130030B414461546103928BF20E93C00FAD8490728BF20E90C0048BF40F85D
:2016E000042D890028BF20F8022D48BF00F8012D30BC7047C91818BF00F8012DCB0728BF9B
:2017000000F8012D704700002E48016841F00101016041682C4A1140416001682B4A114039
:201720000160016821F480210160416821F4FE0141604FF41F0181607047254908607047E2
:2017400025490860704723490A68920850EA8200086070471F48006800F00C0070471F49BF
:20176000086070471E4A0029116814BF084321EA0000106070471B4A0029116814BF0843CB
:2017800021EA000010607047174A0029116814BF084321EA00001060704700214209094B04
:2017A000012A08BF1A6803D0022A0CBF1A6A5A6A012300F01F0003FA00F0024218BF012146
:2017C00008467047001002400000FFF8FFFFF6FE000042420410024060004242D8004242AF
:2017E00014100240181002401C100240DFF8C4100A6802F0380206E0DFF8B8100A6822F059
:2018000010020A600A68104308607047FFE7DFF8A800DFF8A8100160DFF8A4100160704770
:2018200038B5054600F015F804280DD1DFF89440206840F002002060656000F006F8216848
:2018400041F6FD721140216032BD206840F0400020604FF4302039E070B504460D4600F04B
:2018600011F804280CD1174E306840F001003060258000F007F8316841F6FE7211403160E2
:2018800070BD08804FF4005020E00F490860704704200D490A68D20701D5012070470A68A4
:2018A000520701D5022070470968C90648BF03207047000000200240042002402301674567
:2018C000AB89EFCD102002400C20024010B5FFE70446FFF7DDFF03E02CB1FFF7D9FF641E61
:2018E0000128F9D004B9052010BD00001B4908431B490860704770B503781A460121C478B7
:20190000ECB1174B1B6803F4E063C3F5E0631B0A4478C3F10405AC4085780F2626FA03F33E
:201920002B4023431B010F4C1355007842110E4B00F01F0001FA00F043F8220070BD5011EE
:201940000A4A03F01F03994042F8201070BD084A1140084307490860704700000000FA0552
:201960000CED00E000E400E000E100E080E100E080FFFF1F08ED00E07449087CC00702D577
:201980007348052105E00FF2E410C97C252928BF2421FFF714BE6F48002181800221817117
:2019A0000021C1714172022181720021C1720C21FFF705BE6848002101800F218170FF213E
:2019C000C17000218180022181710021C1710821FFF7F5BD04216148FFF7F1BD0821604838
:2019E000FFF7EDBD5948C17C132928BF12215D48FFF7E5BD5B4A90701173704769E070B588
:201A000004460D46584E3078C0B92A462146282000F076F8C8B14D48007B000603D502205C
:201A2000307029460CE00220FFF70CFE00F00EF801210120BDE87040FFF7DABD022804D16F
:201A40002046BDE87040FEF7DCBE70BD24210520D0E710B5444C2278EAB90A4601462A207B
:201A600000F04EF8E8B13948007B000608D4012020704FF440510220BDE81040FFF7ECBB80
:201A80000020FFF7DFFDFFF7E1FF00210120BDE81040FFF7ADBD012A04BFBDE81040FEF70F
:201AA00000BF10BD80B52948816829B9007C400702D40121002006E00220FFF7C3FDFFF79A
:201AC000C5FF00210120FFE7BDE80440FFF790BD00BF01210020FFF78BBD80B51B4881682E
:201AE00009B9002004E0007B00064CBF00200220FFF7A8FD2021FFF7AAFF00210120E3E7CB
:201B000080B55118B1F5805F09D92A2804BF0220FFF798FD0020FFF795FD21210BE00B49D5
:201B20008968B1EB422F0ED02A280CBF02200020FFF788FD2421FFF78AFF00210120FFF7F3
:201B400057FD002002BD012002BD0000742C0020EC2C0020BC010020F42C0020E401002058
:201B6000D8010020A8010020942C002000800202200000005669727475616C204446552019
:201B80004469736B20202020202020202020202010B5DFF8884700B92BE000F096F8006825
:201BA000804720680A3010BD80B5DFF870070068C178DFF86C2752788A420CD38278002AA8
:201BC00004BF8288002A06D1817200F07EF840688047002002BD022002BD10B5DFF83C4790
:201BE00000B906E000F071F88068804720680C3010BD206801210182002010BD10B5DFF8F7
:201C00001C472068C1784079DFF8182712689269904721688A7A92B1002804BF0879002821
:201C20000DD1887858B900F050F8C068804720684179C1722068C1780173002010BD0220D5
:201C400010BD1CB5DFF8D416096810B90220088239E0DFF8D44600202080087800227F2331
:201C6000184215D1487A81064CBF42F0020102F0FD0121702178400654BF01F0FE0041F008
:201C80000100207000F021F800698047204616BD00F07F03012BF9D000F07F00022812D15E
:201CA000487900F00F0142F0010200F088FA05D500F030001028E5D12270E3E700F44050F4
:201CC000B0F5805FF7E7002016BDDFF8600600687047F8B5DFF844060068017811F07F0123
:201CE00004D1417A01F0DF0141724FE0022901BF41880029017900294AD1417921F08005B6
:201D0000DFF82C460A0654F825204CBF02F0300202F44052DFF808361B789D4238D2002A67
:201D20001CBF807A002833D0080654F825000BD500F03000102825D12846FFF7D1FA302176
:201D40002846FFF778FA1DE000F44050B0F5805F18D148F280064BF68F7745B900F0BDFA13
:201D60002068384080F44050304320600AE02846FFF7A4FA54F82500384080F44050304320
:201D800044F82500FFF7A1FF406980470020F2BD0220F2BD38B5DFF884050268537923F0A6
:201DA0008000DFF88C151C0651F820404CBF04F0300404F44054DFF868552D78A84206D2A6
:201DC000558825B9002C1CBF927A002A01D1022032BD48F280021B0651F8203005D548F69A
:201DE000BF74234083F0100304E04BF68F74234083F480531A4341F82020FFF766FF8069D8
:201E00008047002032BD80B5DFF810050068417A41F020014172FFF758FFC0698047002046
:201E200002BDDFF8F8241268538A20B98888C01A108200207047086818187047F8B5DFF892
:201E4000DC54286800F110042688A168080018BF002E14D0A088864288BF0646304688474D
:201E600007462088801B20806088301860800020FFF750FA324601463846FFF7BCF9DFF803
:201E8000B464208850B1DFF8B0044FF44051018000210020FFF745FA3020308028682188F2
:201EA000A288914228BF032101D211B105210172F1BD06210172DFF88404006880B2DFF8D4
:201EC0008014002241F8102030203080F1BD2DE9F843DFF84844206800F110063188DFF862
:201EE0005454002904BF007A042816D1DFF85404017801290DD1DFF84414096889B2DFF85F
:201F00004024002342F8113030212980042703702CE007271020288028E0B6F8048088450E
:201F200005D30427414588BF4146884600E002274046B168884781460020FFF7EAF94246BD
:201F400001464846FFF742F941460020FFF7E9F93088A0EB08003080708840447080302045
:201F60002880DFF8D4034FF44051018020680772BDE8F18338B5DFF8A44320684578017833
:201F80007F22114238D1092D02D1FFF70DFE47E0052D1BD1C17880294FD28178002901BF10
:201FA00081880029807A002847D10620DFF88C13096889B2DFF88823002342F81130DFF876
:201FC000741330220A802168087231BD032D08D1C178012904BF8088002823D1FFF713FF52
:201FE0001EE0012D04BFC17801291BD18188C9B9407A80060DD415E001F07F00012804D194
:020000040800F2
:202000000B2D0FD1FFF7FAFD0AE002280AD1012D02D1FFF75EFE03E0032D03D1FFF7BAFEE4
:202020000028C2D02846BF49096849698847032808BF0920C7D00028B7D00820C3E738B55E
:20204000B64D28684178B74C062913D101787F2211422AD18078012802D12068C16968E0C8
:20206000022802D12068016A63E003281DD12068416A5EE000293DD14188002904BFC1886E
:20208000022912D1017981B901787F22114204BF8288002A2CD001F07F02012A10D100F0B0
:2020A00089F810B92868807A10BB28684078216809698847032845D128680921017231BD13
:2020C00001F07F010229F0D1407900F00F0100F0700200F074F84CBF00F0300000F440507D
:2020E0008F4B1B789942E0D2002ADED10028DCD095491EE0082905D100787F210842D4D14F
:20210000924916E00A2902BF017801F07F010129CBD1817A0029C8D04188002901BF017962
:202120000029C1880129C0D100F044F80028BCD187490800B9D028680022428281610020B8
:202140008847002029680A8A4FF6FF739A4208BF092004D0022818BF002A02D10820087274
:2021600031BD087800061ED5C88800902368009C944202D2009808820FE082420DD293F808
:202180002C00704C824238BF002005D392FBF0F500FB152008B90120207093F82C008882CF
:2021A000BDE8314093E60320087263484FF44051018031BD002140792268926910475C4BA8
:2021C000000653F82100704738B55C48006880B2604931F81000400000F1804000F5C040E3
:2021E0004E4C21680A7A092A14D010F8012B0A70216810F8012B4A70851C35F8040BFFF729
:20220000E1F8216848802888FFF7DCF821688880A888C8802068012101722068C08810B95B
:20222000FFF7A8FE01E0FFF70AFFBDE831403EE010B53A4C2068017A022918BF042904D19C
:20224000FFF745FE2068007A14E0062911D14178052902BF01787F22114206D1C07800F02A
:2022600042F8FFF732FD006A80472E48006880688047082017E010B5284C2068007A0228BD
:2022800018BF04280ED0032818BF052804D1FFF7D5FD2068007A06E0072803D121480068D5
:2022A000C0688047082021680872BDE8104080B500F013F819480068017A082906D11E492C
:2022C0004FF480520A801B4910220A80007A092801D1012002BD002002BD1F4890F82C10D8
:2022E0000020FFF725B870B50D4909780022104B48F68F760BE0D4B253F824503540254322
:2023000045F4004545F0800543F82450521C8A42F1D340F080001149086070BDBC2C002031
:20232000E0010020C02C0020082D0020C42C0020005C00400E2D00200C2D0020505C0040EF
:2023400004600040172D0020431C0008911B0008DB1B000808600040D80000204C5C0040D4
:2023600070470000F8B58478303CE4B20A2C38BF2246C478303CE4B20A2C38BF234600781A
:202380003038C0B20A2838BF01460024534818250FF2A016271805FB014C1CF806C087F85B
:2023A00060C005FB024C1CF806C087F890C005FB034C1CF806C087F8A8C0641C182CE9DB6E
:2023C00000240C2201460C206043C0B200F004F8641C082CF5DBF1BD70B504460D461646E7
:2023E000002100F04BF8761C2946F0B200F035F805460121204600F041F82946F0B2BDE817
:2024000070402AE03749086037483C2202700968C9B2334800F09AB910B58CB000A80FF277
:20242000DC013022FEF790FD2E2200F03CF82F4C4FF48071204600F006FA0220FEF7C4FD9A
:202440004FF48071204600F0FCF90220FEF7BCFD2E20FFF7D7FF0CB010BD10B50C4620490A
:2024600040220A70012203E014F8013B5354521C8242F9DBFFF7C6FF204610BD30B583B07F
:2024800000AA0FF2A80330CB30C28DF80500012904BFB1208DF80100082200F004F80820ED
:2024A000FFF7B0FF37BD00A90D48FEF73DBD10B500212020FFF7E2FF094C00F019F88020A3
:2024C000FFF7A0FF01212020FFF7D8FF00F010F88020BDE8104095E700000000000000200F
:2024E00034260020FC2C0020162D002000080140402020707F21601CFEF762BD80AE80D5CB
:20250000805280A8800F80C880D38000804080A1808D801480DA8002808180E080D980F18E
:2025200080DB803080A480A680AF000080B080218020807F00E010080810E00000000000B7
:20254000000F102020100F0000000000001010F800000000000000000020203F2020000026
:2025600000000000007008080888700000000000003028242221300000000000003008882C
:2025800088483000000000000018202020110E00000000000000C02010F8000000000000BC
:2025A00000070424243F24000000000000F8088888080800000000000019212020110E00AC
:2025C0000000000000E010888818000000000000000F112020110E0000000000003808081C
:2025E000C8380800000000000000003F000000000000000000708808088870000000000094
:20260000001C222121221C000000000000E010080810E000000000000000312222110F0077
:20262000000000000000000000000000000000000030300000000000000000007047424AF7
:20264000012903D10146104600F0FBB819B90146104600F0F8B8704780B501210820FFF701
:202660008AF8C020ADF8000014208DF8030003208DF8020000A9344800F07EF800F00EF86C
:2026800000F055F800F056F800F057F8002100F04FF800F052F800F001F801BD00214020C6
:2026A000CDE780B5FFF7FAFF002100F041F800F044F800F03FF800F040F800F038F800F06D
:2026C0003CF8FFF7EBFF0520BDE80240B6E738B50446082508E000F02BF800F02EF800F0D8
:2026E00029F800F02AF864002846451EC0B230B1FFF7D4FF20064CBF01210021EBE7FFF71A
:20270000CDFF00F014F8FF2400F017F800F017F848B900F00FF800F010F8FFF7BFFF00F03C
:202720000CF8012032BD641EEED1002032BD0121802084E70121402081E705207EE78021F3
:20274000014800F077B80000000C014070B504460D461646FFF780FF7000C0B201E014F862
:20276000010BFFF7B4FF2846451EC0B20028F6D1BDE8704095E700002DE9F0410022CC78F4
:2027800004F00F03E40644BF8C7823430C8801250F26E7B217B3D0F800C005FA02F7BE4606
:2027A0000EEA0408F04514D14FEA820E06FA0EF82CEA080C03FA0EFE4EEA0C0C91F803E03D
:2027C000BEF1280F08BF476103D0BEF1480F08BF0761521C082AE0D3C0F800C0B4F5807F29
:2027E00026D3D0F804C0002202F1080705FA07F7BE460EEA0408F04515D14FEA820E06FA47
:202800000EF82CEA080C03FA0EFE4EEA0C0C91F803E0BEF1280F08BF476191F803E0BEF153
:20282000480F08BF0761521C082ADDD3C0F804C0BDE8F08100228068084218BF012210468C
:2028400070470161704741617047000080B500F0F8F88B48006800218172FEF769FC8948C0
:20286000002141604FF40441874A1180016087480021016001BD10B58548002181728048CE
:2028800000688449C97941720020FEF7C3FC4FF400710020FEF7C5FC20210020FEF7CBFC93
:2028A00018210020FEF72EFD7B4C00F042F858210020FEF726FD0020FEF7F1FC0020FEF7E6
:2028C000E2FC00210120FEF7ACFC98210120FEF718FD20210120FEF7AEFC00210120FEF71F
:2028E000BBFC00210220FEF79CFCD8210220FEF709FD94F82C100220FEF71AFD4FF4405171
:202900000220FEF7A9FC00210220FEF794FC00F010F80020FEF7B7FC0020FFF7E4FC5B48DA
:20292000012101605D485E4901605E480021017010BD94F82C100020FEF7FABC50480068CF
:20294000807A00B9704780B55048052101600120FEF7C6FC0220FEF7B1FC524800210170F1
:2029600001BD4E4800684E4988421CBF0220FEF769BE704745480421016070477047704732
:2029800080B53F4909680A7802F07F02212A08BFFE280BD14888002801BF88880028C888C0
:2029A000012803D10FF28900020001D1022002BD88610020488200F03BF8002002BD80B5D1
:2029C0002F4909680A7802F07F02212A08BFFF2815D14888002804BF888800280FD1C888D7
:2029E00068B90120FEF77CFC0220FEF767FC2B482B4901602B4800210170002002BD022060
:202A000002BD00290CBF0028022070472649FFF708BA2649FFF705BA19490968C978062974
:202A200001DB00207047224A02EBC101FFF7F9B928B91348006801210182002070471D489B
:202A400070471D4801684268806801B9704710B51A4B99700C0A1C710C0C9C71090E197251
:202A60009A72110A1973110C9973110E19749874010A1975010C9975000E187610BD0000A5
:202A8000BC2C0020405C0040142D0020042D0020A02C0020E42C0008D8000020742C0020E4
:202AA00055534243942C0020C8010020D001002008010020002D0020E8F7FF1F5401002047
:202AC0002DE9F84F0020ADF8000040F68F7848F60F7B48F28006444F444CDFF81491DFF899
:202AE00014A14BF6BF7525E054F82010ADF80010BDF8001009040BD554F8201008EA010154
:202B000044F820103C4901EB800050F8040C8047BDF8000000060DD599F8000054F820108F
:202B20000BEA010144F82010344901EB800050F8040C8047606CAAF80000000452D5BAF8DF
:202B4000000010F00F0089F80000CDD120683880388800F030007880388800F44050388033
:202B60002068284080F4005080F0200030432060BAF80000C006206805D40BEA00002060D0
:202B8000FFF756FB16E0ADF80000BDF80000000506D5206808EA00002060FFF715FB09E0D5
:202BA000BDF800000004C5D5206808EA00002060FFF761FB206828403988C90448BF80F47D
:202BC00080503988890448BF80F400507988C90648BF80F010007988890648BF80F020008E
:202BE00030432060BDE8F18F0C2D0020005C0040182D0020122D00208C01002070010020C6
:202C00002E48016841F00101016041682C4A1140416001682B4A11400160016821F4802181
:202C20000160416821F4FE0141604FF41F0181600021026842F4803202600268491C920358
:202C400002D4B1F5A06FF8D10168890330D51E490A6842F010020A600A68920892000A6097
:202C60000A6842F002020A604168416041684160416841F480614160416821F47C11416062
:202C8000416841F4E8114160016841F08071016001688901FCD541688908890041604168FF
:202CA00041F002014160416801F00C010829FAD106484FF000610160704700000010024044
:202CC0000000FFF8FFFFF6FE0020024008ED00E0120100020000004083042057000201027C
:202CE0000301000009022000010100C0320904000002080650040705810240000007050263
:202D000002400000040309042603530054004D006900630072006F0065006C0065006300FA
:202D2000740072006F006E0069006300730000002603530054004D003300320020004D00A2
:202D40006100730073002000530074006F007200610067006500000010035300540020005D
:202D60004D00610073007300FEF760F9FEF7BCF91A48006880070ED5FEF773F8184801686A
:202D8000184A1140B1F1005F04D144680068FEF749F9A047FEE70A20FEF716F90020FEF750
:202DA00020F9C820FEF710F90120FEF71AF90020FEF780F9FEF7D4F9FDF7BAF9FFF72CFBD7
:202DC000FFF775FB0FF22000FFF7CCFAFEF71EFDFDF7A8FAFDF7B7FBF8E70000080C014030
:202DE000004000080000FF2F332E34350000000070B50D4C0D4D286820800D4E20883188CF
:202E00000840400505D50B48406880474FF6FF302860208831880840000444BFBDE8704088
:202E2000FFF74EBE70BD0000122D0020445C0040142D0020D8000020FEF7CABAFEF7E9BABA
:202E400010B5074979441831064C7C44163404E0081D0A68511888470146A142F8D110BD88
:202E6000080000002800000037E1FFFF302B0000EC0100200000000083E0FFFFEC01000056
:202E80009401000000000020000000007047FEE7FEE7FEE7FEE77047704770477047FFF760
:202EA000A7BF000000F009F8002801D0FFF7C8FF0020FFF759FF00F002F80120704700F0E5
:202EC00001B800000746384600F002F8FBE70000C046C046024A11001820ABBEFBE700BFF7
:202EE000260002000148804701480047012C0008F52E0008C046C046C046C046FFF7D2FFCB
:202F0000FFF7C4BFFFF7C3BFFFF7C2BFFFF7C1BFFFF7C0BFFFF7BFBFFFF7BEBFFFF7BDBF05
:202F2000FFF7BCBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF3B
:202F4000FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFD9
:202F6000FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF793BFFFF7FEBFFFF7FEBF24
:202F8000FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF99
:202FA000FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF79
:202FC000FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF59
:202FE000FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF39
:20300000FFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBFFFF7FEBF04FC040404040C0810E000001D
:20302000407F404040406020180F000004FC8484848484E40C100000407F40000000000394
:203040000000000004FC04000000000004FC0400001F204040404040201F000000000000AA
:20306000606000000000000000000000606000000000000000780404040404887800000044
:20308000006050484442414070000000000000000000000000000000006060000000000001
:2030A0000000000000E018080404040818E00000000F302040404020300F0000000000087E
:2030C00008FC00000000000000000040407F4040400000000000000000000000000000002D
:2030E0000000000000000000000000004D280008772800087D2900087F290008812900089C
:20310000BF290008032A00080D2A0008132A0008192A00080000000040000000042D000842
:2031200004000000082D000826000000302D000826000000540100201A000000582D000881
:2031400010000000612300083D2900086123000861230008612300086329000861230008A1
:2031600061230008752900081A03530054004D003300320031003000000000000000000046
:2031800000000000392E000861230008612300086123000861230008612300086123000878
:2031A000612300083D2E0008612300086123000861230008612300086123000870000000E4
:2031C0000000000A000000000000000000000000000000080000000002000000D02C0008D7
:2031E00012000000E42C000820000000000600000000000003010000030000000100000077
:20320000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCE
:20322000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAE
:20324000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8E
:20326000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6E
:20328000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4E
:2032A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E
:2032C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E
:2032E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEE
:20330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD
:20332000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAD
:20334000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8D
:20336000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
:20338000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4D
:2033A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2D
:2033C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0D
:2033E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFED
:20340000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCC
:20342000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAC
:20344000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C
:20346000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6C
:20348000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4C
:2034A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C
:2034C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0C
:2034E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEC
:20350000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCB
:20352000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAB
:20354000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8B
:20356000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B
:20358000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4B
:2035A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2B
:2035C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0B
:2035E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEB
:20360000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA
:20362000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA
:20364000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8A
:20366000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6A
:20368000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4A
:2036A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A
:2036C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0A
:2036E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA
:20370000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC9
:20372000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA9
:20374000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89
:20376000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF69
:20378000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF49
:2037A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF29
:2037C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF09
:2037E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9
:20380000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC8
:20382000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8
:20384000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF88
:20386000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF68
:20388000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF48
:2038A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF28
:2038C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF08
:2038E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8
:20390000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC7
:20392000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA7
:20394000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF87
:20396000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF67
:20398000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF47
:2039A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF27
:2039C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF07
:2039E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7
:203A0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC6
:203A2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA6
:203A4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF86
:203A6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF66
:203A8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF46
:203AA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF26
:203AC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF06
:203AE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE6
:203B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC5
:203B2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5
:203B4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF85
:203B6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF65
:203B8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF45
:203BA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF25
:203BC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF05
:203BE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5
:203C0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC4
:203C2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA4
:203C4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF84
:203C6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF64
:203C8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF44
:203CA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF24
:203CC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04
:203CE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE4
:203D0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3
:203D2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA3
:203D4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF83
:203D6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF63
:203D8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF43
:203DA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF23
:203DC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF03
:203DE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE3
:203E0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC2
:203E2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA2
:203E4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF82
:203E6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF62
:203E8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF42
:203EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22
:203EC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF02
:203EE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE2
:203F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC1
:203F2000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1
:203F4000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF81
:203F6000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61
:203F8000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41
:203FA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF21
:203FC000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF01
:203FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE1
:00000001FF


================================================
FILE: Development Resources/TS80/TS80.ioc
================================================
#MicroXplorer Configuration settings - do not modify
ADC1.Channel-31\#ChannelRegularConversion=ADC_CHANNEL_4
ADC1.Channel-32\#ChannelInjectedConversion=ADC_CHANNEL_2
ADC1.Channel-33\#ChannelInjectedConversion=ADC_CHANNEL_2
ADC1.Channel-34\#ChannelInjectedConversion=ADC_CHANNEL_2
ADC1.Channel-35\#ChannelInjectedConversion=ADC_CHANNEL_2
ADC1.ContinuousConvMode=DISABLE
ADC1.DataAlign=ADC_DATAALIGN_RIGHT
ADC1.DiscontinuousConvMode=DISABLE
ADC1.EnableAnalogWatchDog=false
ADC1.EnableRegularConversion=ENABLE
ADC1.ExternalTrigConv=ADC_SOFTWARE_START
ADC1.ExternalTrigInjecConv=ADC_INJECTED_SOFTWARE_START
ADC1.IPParameters=Rank-31\#ChannelRegularConversion,Channel-31\#ChannelRegularConversion,SamplingTime-31\#ChannelRegularConversion,NbrOfConversionFlag,master,Rank-32\#ChannelInjectedConversion,Channel-32\#ChannelInjectedConversion,SamplingTime-32\#ChannelInjectedConversion,InjectedOffset-32\#ChannelInjectedConversion,Rank-33\#ChannelInjectedConversion,Channel-33\#ChannelInjectedConversion,SamplingTime-33\#ChannelInjectedConversion,InjectedOffset-33\#ChannelInjectedConversion,Rank-34\#ChannelInjectedConversion,Channel-34\#ChannelInjectedConversion,SamplingTime-34\#ChannelInjectedConversion,InjectedOffset-34\#ChannelInjectedConversion,Rank-35\#ChannelInjectedConversion,Channel-35\#ChannelInjectedConversion,SamplingTime-35\#ChannelInjectedConversion,InjectedOffset-35\#ChannelInjectedConversion,InjNumberOfConversion,DataAlign,ScanConvMode,ContinuousConvMode,DiscontinuousConvMode,EnableRegularConversion,NbrOfConversion,ExternalTrigConv,ExternalTrigInjecConv,InjectedConvMode,EnableAnalogWatchDog
ADC1.InjNumberOfConversion=4
ADC1.InjectedConvMode=None
ADC1.InjectedOffset-32\#ChannelInjectedConversion=0
ADC1.InjectedOffset-33\#ChannelInjectedConversion=0
ADC1.InjectedOffset-34\#ChannelInjectedConversion=0
ADC1.InjectedOffset-35\#ChannelInjectedConversion=0
ADC1.NbrOfConversion=1
ADC1.NbrOfConversionFlag=1
ADC1.Rank-31\#ChannelRegularConversion=1
ADC1.Rank-32\#ChannelInjectedConversion=1
ADC1.Rank-33\#ChannelInjectedConversion=2
ADC1.Rank-34\#ChannelInjectedConversion=3
ADC1.Rank-35\#ChannelInjectedConversion=4
ADC1.SamplingTime-31\#ChannelRegularConversion=ADC_SAMPLETIME_1CYCLE_5
ADC1.SamplingTime-32\#ChannelInjectedConversion=ADC_SAMPLETIME_1CYCLE_5
ADC1.SamplingTime-33\#ChannelInjectedConversion=ADC_SAMPLETIME_1CYCLE_5
ADC1.SamplingTime-34\#ChannelInjectedConversion=ADC_SAMPLETIME_1CYCLE_5
ADC1.SamplingTime-35\#ChannelInjectedConversion=ADC_SAMPLETIME_1CYCLE_5
ADC1.ScanConvMode=ADC_SCAN_ENABLE
ADC1.master=1
ADC2.Channel-0\#ChannelRegularConversion=ADC_CHANNEL_3
ADC2.Channel-1\#ChannelInjectedConversion=ADC_CHANNEL_3
ADC2.Channel-2\#ChannelInjectedConversion=ADC_CHANNEL_3
ADC2.Channel-3\#ChannelInjectedConversion=ADC_CHANNEL_3
ADC2.Channel-4\#ChannelInjectedConversion=ADC_CHANNEL_3
ADC2.ContinuousConvMode=DISABLE
ADC2.DataAlign=ADC_DATAALIGN_RIGHT
ADC2.DiscontinuousConvMode=DISABLE
ADC2.EnableAnalogWatchDog=false
ADC2.EnableRegularConversion=ENABLE
ADC2.ExternalTrigConv=ADC_SOFTWARE_START
ADC2.IPParameters=Rank-0\#ChannelRegularConversion,Channel-0\#ChannelRegularConversion,SamplingTime-0\#ChannelRegularConversion,NbrOfConversionFlag,Rank-1\#ChannelInjectedConversion,Channel-1\#ChannelInjectedConversion,SamplingTime-1\#ChannelInjectedConversion,InjectedOffset-1\#ChannelInjectedConversion,Rank-2\#ChannelInjectedConversion,Channel-2\#ChannelInjectedConversion,SamplingTime-2\#ChannelInjectedConversion,InjectedOffset-2\#ChannelInjectedConversion,Rank-3\#ChannelInjectedConversion,Channel-3\#ChannelInjectedConversion,SamplingTime-3\#ChannelInjectedConversion,InjectedOffset-3\#ChannelInjectedConversion,Rank-4\#ChannelInjectedConversion,Channel-4\#ChannelInjectedConversion,SamplingTime-4\#ChannelInjectedConversion,InjectedOffset-4\#ChannelInjectedConversion,InjNumberOfConversion,DataAlign,ScanConvMode,ContinuousConvMode,DiscontinuousConvMode,EnableRegularConversion,NbrOfConversion,ExternalTrigConv,EnableAnalogWatchDog
ADC2.InjNumberOfConversion=0
ADC2.InjectedOffset-1\#ChannelInjectedConversion=0
ADC2.InjectedOffset-2\#ChannelInjectedConversion=0
ADC2.InjectedOffset-3\#ChannelInjectedConversion=0
ADC2.InjectedOffset-4\#ChannelInjectedConversion=0
ADC2.NbrOfConversion=1
ADC2.NbrOfConversionFlag=1
ADC2.Rank-0\#ChannelRegularConversion=1
ADC2.Rank-1\#ChannelInjectedConversion=1
ADC2.Rank-2\#ChannelInjectedConversion=2
ADC2.Rank-3\#ChannelInjectedConversion=3
ADC2.Rank-4\#ChannelInjectedConversion=4
ADC2.SamplingTime-0\#ChannelRegularConversion=ADC_SAMPLETIME_1CYCLE_5
ADC2.SamplingTime-1\#ChannelInjectedConversion=ADC_SAMPLETIME_1CYCLE_5
ADC2.SamplingTime-2\#ChannelInjectedConversion=ADC_SAMPLETIME_1CYCLE_5
ADC2.SamplingTime-3\#ChannelInjectedConversion=ADC_SAMPLETIME_1CYCLE_5
ADC2.SamplingTime-4\#ChannelInjectedConversion=ADC_SAMPLETIME_1CYCLE_5
ADC2.ScanConvMode=ADC_SCAN_DISABLE
Dma.I2C1_RX.0.Direction=DMA_PERIPH_TO_MEMORY
Dma.I2C1_RX.0.Instance=DMA1_Channel7
Dma.I2C1_RX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.I2C1_RX.0.MemInc=DMA_MINC_ENABLE
Dma.I2C1_RX.0.Mode=DMA_NORMAL
Dma.I2C1_RX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.I2C1_RX.0.PeriphInc=DMA_PINC_DISABLE
Dma.I2C1_RX.0.Priority=DMA_PRIORITY_MEDIUM
Dma.I2C1_RX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
Dma.I2C1_TX.1.Direction=DMA_MEMORY_TO_PERIPH
Dma.I2C1_TX.1.Instance=DMA1_Channel6
Dma.I2C1_TX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.I2C1_TX.1.MemInc=DMA_MINC_ENABLE
Dma.I2C1_TX.1.Mode=DMA_NORMAL
Dma.I2C1_TX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.I2C1_TX.1.PeriphInc=DMA_PINC_DISABLE
Dma.I2C1_TX.1.Priority=DMA_PRIORITY_MEDIUM
Dma.I2C1_TX.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority
Dma.Request0=I2C1_RX
Dma.Request1=I2C1_TX
Dma.RequestsNb=2
FREERTOS.FootprintOK=true
FREERTOS.INCLUDE_vTaskDelete=0
FREERTOS.IPParameters=Tasks01,configTICK_RATE_HZ,configMAX_PRIORITIES,configMINIMAL_STACK_SIZE,configTOTAL_HEAP_SIZE,INCLUDE_vTaskDelete,FootprintOK
FREERTOS.Tasks01=GUITask,0,512,StartGUITask,Default,NULL,Dynamic,NULL,NULL;PIDTask,0,256,StartPIDTask,Default,NULL,Dynamic,NULL,NULL;ROTTask,-2,256,StartRotationTask,Default,NULL,Dynamic,NULL,NULL
FREERTOS.configMAX_PRIORITIES=4
FREERTOS.configMINIMAL_STACK_SIZE=256
FREERTOS.configTICK_RATE_HZ=100
FREERTOS.configTOTAL_HEAP_SIZE=10240
File.Version=6
I2C1.DutyCycle=I2C_DUTYCYCLE_2
I2C1.I2C_Mode=I2C_Fast
I2C1.IPParameters=I2C_Mode,DutyCycle
IWDG.IPParameters=Prescaler
IWDG.Prescaler=IWDG_PRESCALER_256
KeepUserPlacement=false
Mcu.Family=STM32F1
Mcu.IP0=ADC1
Mcu.IP1=ADC2
Mcu.IP10=TIM3
Mcu.IP2=DMA
Mcu.IP3=FREERTOS
Mcu.IP4=I2C1
Mcu.IP5=IWDG
Mcu.IP6=NVIC
Mcu.IP7=RCC
Mcu.IP8=SYS
Mcu.IP9=TIM2
Mcu.IPNb=11
Mcu.Name=STM32F103T(8-B)Ux
Mcu.Package=VFQFPN36
Mcu.Pin0=PA0-WKUP
Mcu.Pin1=PA2
Mcu.Pin10=PA11
Mcu.Pin11=PA12
Mcu.Pin12=PA13
Mcu.Pin13=PA14
Mcu.Pin14=PA15
Mcu.Pin15=PB3
Mcu.Pin16=PB4
Mcu.Pin17=PB5
Mcu.Pin18=PB6
Mcu.Pin19=PB7
Mcu.Pin2=PA3
Mcu.Pin20=VP_FREERTOS_VS_ENABLE
Mcu.Pin21=VP_IWDG_VS_IWDG
Mcu.Pin22=VP_SYS_VS_ND
Mcu.Pin23=VP_SYS_VS_tim1
Mcu.Pin24=VP_TIM2_VS_ClockSourceINT
Mcu.Pin25=VP_TIM2_VS_no_output1
Mcu.Pin26=VP_TIM2_VS_no_output3
Mcu.Pin27=VP_TIM3_VS_ClockSourceINT
Mcu.Pin28=VP_TIM3_VS_no_output4
Mcu.Pin3=PA4
Mcu.Pin4=PA6
Mcu.Pin5=PB0
Mcu.Pin6=PB1
Mcu.Pin7=PA8
Mcu.Pin8=PA9
Mcu.Pin9=PA10
Mcu.PinsNb=29
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32F103T8Ux
MxCube.Version=4.26.0
MxDb.Version=DB.4.0.260
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.DMA1_Channel6_IRQn=true\:5\:0\:false\:false\:true\:true\:true
NVIC.DMA1_Channel7_IRQn=true\:5\:0\:false\:false\:true\:true\:true
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.I2C1_ER_IRQn=true\:5\:0\:false\:false\:true\:true\:true
NVIC.I2C1_EV_IRQn=true\:5\:0\:false\:false\:true\:true\:true
NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.PendSV_IRQn=true\:15\:0\:false\:false\:false\:true\:true
NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:false\:false\:true
NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:true\:true
NVIC.TIM1_UP_IRQn=true\:0\:0\:false\:false\:true\:false\:true
NVIC.TimeBase=TIM1_UP_IRQn
NVIC.TimeBaseIP=TIM1
NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:true
PA0-WKUP.GPIOParameters=GPIO_Label
PA0-WKUP.GPIO_Label=RM
PA0-WKUP.Locked=true
PA0-WKUP.Signal=GPIO_Output
PA10.GPIOParameters=GPIO_Label
PA10.GPIO_Label=QC_DM_11K
PA10.Locked=true
PA10.Signal=GPIO_Output
PA11.GPIOParameters=GPIO_Label
PA11.GPIO_Label=USB_DM
PA11.Locked=true
PA11.Signal=GPIO_Analog
PA12.GPIOParameters=GPIO_Label
PA12.GPIO_Label=USB_DP
PA12.Locked=true
PA12.Signal=GPIO_Analog
PA13.GPIOParameters=GPIO_Label
PA13.GPIO_Label=QC_DP_SENSE
PA13.Locked=true
PA13.Signal=GPIO_Input
PA14.GPIOParameters=GPIO_Label
PA14.GPIO_Label=QC_DM_SENSE
PA14.Locked=true
PA14.Signal=GPIO_Input
PA15.GPIOParameters=GPIO_Label
PA15.GPIO_Label=OLED_RESET
PA15.Locked=true
PA15.Signal=GPIO_Output
PA2.GPIOParameters=GPIO_Label
PA2.GPIO_Label=ADC_VIN
PA2.Locked=true
PA2.Signal=ADCx_IN2
PA3.GPIOParameters=GPIO_Label
PA3.GPIO_Label=ADC_TIP
PA3.Locked=true
PA3.Signal=ADCx_IN3
PA4.GPIOParameters=GPIO_Label
PA4.GPIO_Label=ADC_TMP36
PA4.Locked=true
PA4.Signal=ADCx_IN4
PA6.GPIOParameters=GPIO_Label
PA6.GPIO_Label=PWM Out
PA6.Locked=true
PA6.Signal=S_TIM3_CH1
PA8.GPIOParameters=GPIO_Label
PA8.GPIO_Label=QC_DM_3K
PA8.Locked=true
PA8.Signal=GPIO_Output
PA9.GPIOParameters=GPIO_Label
PA9.GPIO_Label=MODEL_SEL
PA9.Locked=true
PA9.Signal=GPIO_Input
PB0.GPIOParameters=GPIO_Label
PB0.GPIO_Label=KEY_A
PB0.Locked=true
PB0.Signal=GPIO_Input
PB1.GPIOParameters=GPIO_Label
PB1.GPIO_Label=KEY_B
PB1.Locked=true
PB1.Signal=GPIO_Input
PB3.GPIOParameters=GPIO_Label
PB3.GPIO_Label=QC_DP_3K
PB3.Locked=true
PB3.Signal=GPIO_Output
PB4.GPIOParameters=GPIO_Label
PB4.GPIO_Label=IMU_INT2
PB4.Locked=true
PB4.Signal=GPXTI4
PB5.GPIOParameters=GPIO_Label
PB5.GPIO_Label=IMU_INT1
PB5.Locked=true
PB5.Signal=GPXTI5
PB6.GPIOParameters=GPIO_Label
PB6.GPIO_Label=SCL
PB6.Mode=I2C
PB6.Signal=I2C1_SCL
PB7.GPIOParameters=GPIO_Label
PB7.GPIO_Label=SDA
PB7.Mode=I2C
PB7.Signal=I2C1_SDA
PCC.Checker=false
PCC.Line=STM32F103
PCC.MCU=STM32F103T(8-B)Ux
PCC.PartNumber=STM32F103T8Ux
PCC.Seq0=0
PCC.Series=STM32F1
PCC.Temperature=25
PCC.Vdd=3.3
PinOutPanel.RotationAngle=0
ProjectManager.AskForMigrate=true
ProjectManager.BackupPrevious=false
ProjectManager.CompilerOptimize=3
ProjectManager.ComputerToolchain=false
ProjectManager.CoupleFile=false
ProjectManager.CustomerFirmwarePackage=
ProjectManager.DefaultFWLocation=true
ProjectManager.DeletePrevious=true
ProjectManager.DeviceId=STM32F103T8Ux
ProjectManager.FirmwarePackage=STM32Cube FW_F1 V1.6.1
ProjectManager.FreePins=true
ProjectManager.HalAssertFull=false
ProjectManager.HeapSize=0x200
ProjectManager.KeepUserCode=true
ProjectManager.LastFirmware=true
ProjectManager.LibraryCopy=1
ProjectManager.MainLocation=Src
ProjectManager.PreviousToolchain=SW4STM32
ProjectManager.ProjectBuild=false
ProjectManager.ProjectFileName=TS80.ioc
ProjectManager.ProjectName=TS80
ProjectManager.StackSize=0x400
ProjectManager.TargetToolchain=SW4STM32
ProjectManager.ToolChainLocation=
ProjectManager.UnderRoot=false
ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-MX_I2C1_Init-I2C1-false-HAL-true,4-SystemClock_Config-RCC-false-HAL-true,5-MX_TIM3_Init-TIM3-false-HAL-true,6-MX_IWDG_Init-IWDG-false-HAL-true,7-MX_TIM2_Init-TIM2-false-HAL-true,8-MX_ADC1_Init-ADC1-false-HAL-true,9-MX_ADC2_Init-ADC2-false-HAL-true
RCC.ADCFreqValue=8000000
RCC.ADCPresc=RCC_ADCPCLK2_DIV8
RCC.AHBFreq_Value=64000000
RCC.APB1CLKDivider=RCC_HCLK_DIV16
RCC.APB1Freq_Value=4000000
RCC.APB1TimFreq_Value=8000000
RCC.APB2Freq_Value=64000000
RCC.APB2TimFreq_Value=64000000
RCC.FCLKCortexFreq_Value=64000000
RCC.FamilyName=M
RCC.HCLKFreq_Value=64000000
RCC.IPParameters=ADCFreqValue,ADCPresc,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,MCOFreq_Value,PLLCLKFreq_Value,PLLMCOFreq_Value,PLLMUL,PLLSourceVirtual,SYSCLKFreq_VALUE,SYSCLKSource,TimSysFreq_Value,USBFreq_Value,USBPrescaler
RCC.MCOFreq_Value=64000000
RCC.PLLCLKFreq_Value=64000000
RCC.PLLMCOFreq_Value=32000000
RCC.PLLMUL=RCC_PLL_MUL16
RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSI_DIV2
RCC.SYSCLKFreq_VALUE=64000000
RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
RCC.TimSysFreq_Value=64000000
RCC.USBFreq_Value=42666666.666666664
RCC.USBPrescaler=RCC_USBCLKSOURCE_PLL_DIV1_5
SH.ADCx_IN2.0=ADC1_IN2,IN2
SH.ADCx_IN2.ConfNb=1
SH.ADCx_IN3.0=ADC1_IN3,IN3
SH.ADCx_IN3.1=ADC2_IN3,IN3
SH.ADCx_IN3.ConfNb=2
SH.ADCx_IN4.0=ADC1_IN4,IN4
SH.ADCx_IN4.ConfNb=1
SH.GPXTI4.0=GPIO_EXTI4
SH.GPXTI4.ConfNb=1
SH.GPXTI5.0=GPIO_EXTI5
SH.GPXTI5.ConfNb=1
SH.S_TIM3_CH1.0=TIM3_CH1,PWM Generation1 CH1
SH.S_TIM3_CH1.ConfNb=1
TIM2.Channel-PWM\ Generation1\ No\ Output=TIM_CHANNEL_1
TIM2.Channel-PWM\ Generation3\ No\ Output=TIM_CHANNEL_3
TIM2.IPParameters=Channel-PWM Generation1 No Output,Channel-PWM Generation3 No Output
TIM3.Channel-Output\ Compare4\ No\ Output=TIM_CHANNEL_4
TIM3.Channel-PWM\ Generation1\ CH1=TIM_CHANNEL_1
TIM3.ClockDivision=TIM_CLOCKDIVISION_DIV4
TIM3.IPParameters=Channel-PWM Generation1 CH1,OCFastMode_PWM-PWM Generation1 CH1,ClockDivision,Prescaler,Period,Channel-Output Compare4 No Output,OCMode_4,Pulse-Output Compare4 No Output
TIM3.OCFastMode_PWM-PWM\ Generation1\ CH1=TIM_OCFAST_ENABLE
TIM3.OCMode_4=TIM_OCMODE_ACTIVE
TIM3.Period=65535
TIM3.Prescaler=2000
TIM3.Pulse-Output\ Compare4\ No\ Output=65000
VP_FREERTOS_VS_ENABLE.Mode=Enabled
VP_FREERTOS_VS_ENABLE.Signal=FREERTOS_VS_ENABLE
VP_IWDG_VS_IWDG.Mode=IWDG_Activate
VP_IWDG_VS_IWDG.Signal=IWDG_VS_IWDG
VP_SYS_VS_ND.Mode=No_Debug
VP_SYS_VS_ND.Signal=SYS_VS_ND
VP_SYS_VS_tim1.Mode=TIM1
VP_SYS_VS_tim1.Signal=SYS_VS_tim1
VP_TIM2_VS_ClockSourceINT.Mode=Internal
VP_TIM2_VS_ClockSourceINT.Signal=TIM2_VS_ClockSourceINT
VP_TIM2_VS_no_output1.Mode=PWM Generation1 No Output
VP_TIM2_VS_no_output1.Signal=TIM2_VS_no_output1
VP_TIM2_VS_no_output3.Mode=PWM Generation3 No Output
VP_TIM2_VS_no_output3.Signal=TIM2_VS_no_output3
VP_TIM3_VS_ClockSourceINT.Mode=Internal
VP_TIM3_VS_ClockSourceINT.Signal=TIM3_VS_ClockSourceINT
VP_TIM3_VS_no_output4.Mode=Output Compare4 No Output
VP_TIM3_VS_no_output4.Signal=TIM3_VS_no_output4
board=TS100


================================================
FILE: Documentation/Bluetooth.md
================================================
# Bluetooth Low Energy

The Pinecilv2 has hardware support for Bluetooth Low Energy (BLE). This protocol allows reading and writing of parameters to the Pinecil during runtime.

The BLE interface advertises three services, these provide access to live telemetry as well as the ability to read/write settings.
These are outlined in more detail below.

Pinecil devices advertise themselves on BLE as `Pinecil-XXXXXXX`.
They also include the UUID `9eae1000-9d0d-48c5-AA55-33e27f9bc533` in the advertisement packet to allow for filtering.

Unless otherwise noted, all data is sent and received as Little-Endian.

As of the time of writing this, notifications are not fully implemented so data will need to be polled. Notification/Indication support will come when there is time to implement it.

## Using the BLE Interface

It is advised to follow the below points when first implementing a BLE integration. Of course once the integration is working feel free to deviate from these. These are just _suggested_ ideas to help kickstart.

1. When filtering for devices, its preferable to filter by the UUID `9eae1000-9d0d-48c5-AA55-33e27f9bc533`, rather than by the device name if possible.
2. Upon first collection check if the three expected services exist; if they don't the user may have selected an incorrect device.
3. It's best to read the live bulk endpoint over the live service when its easy to do so (one read vs ~15).
   1. However if you are just updating one or two line items it may be more efficient to just read these on the live service.
   2. Feel free to test both and decide.
4. When reading settings from the device; the association of number <-> setting is fixed, but you may see settings you don't yet know about, make sure you can handle these.
5. You probably don't want to show unknown setting's to the user though.
6. Read the device firmware revision and ensure you can decode it. If BLE is revised it may be essential for handling versions cleanly.
7. It's advisable to keep an eye on the IronOS repository or at least setup the Github watch for release notifications.
   1. Future releases may revise some BLE aspects or add new settings for example.

## Services

Below is a description of each service. Note that the exact settings are not listed for brevity; it's best to refer to [the uuid lists](https://github.com/Ralim/IronOS/blob/dev/source/Core/BSP/Pinecilv2/ble_characteristics.h) and the [handlers](https://github.com/Ralim/IronOS/blob/dev/source/Core/BSP/Pinecilv2/ble_handlers.cpp) alongside this.

### Live

`UUID: d85ef000-168e-4a71-AA55-33e27f9bc533`

The live services has one characteristic per reading. The readings (in order) are:
When implementing these; the ones that are not obvious are generally found in the debugging menu. Values are encoded as an unsigned 32 bit number for all results.

1. Live temperature (In C)
2. Live set point
3. DC input voltage
4. Handle temperature (In C)
5. Power level
6. Power source
7. Tip resistance
8. uptime
9. Time of last movement
10. Maximum temperature settable
11. Raw tip reading
12. Hall sensor
13. Operating mode
14. Estimated wattage

### Settings

`UUID: f6d80000-5a10-4eba-AA55-33e27f9bc533`

The settings service has two special entries; for saving and resetting settings.
Otherwise all settings are enumerated using UUID's of the format : `f6d7ZZZZ-5a10-4eba-AA55-33e27f9bc533))` where `ZZZZ` is the setting number as matched from [Settings.h](https://github.com/Ralim/IronOS/blob/dev/source/Core/Inc/Settings.h#L16).

All data is read and written in fixed unsigned 16 bit numbers.

#### Settings save

To save the settings write a `0x0001` to `f6d7FFFF-5a10-4eba-AA55-33e27f9bc533`.
Its advised to not save settings on each change but instead to give the user a save button _or_ save after a timeout. This is just to reduce write cycles on the internal flash.

#### Settings reset

To reset all settings to defaults; write a `0x0001` to  `f6d7FFFE-5a10-4eba-AA55-33e27f9bc533`.
This will reset settings immediately.

### Bulk

`UUID: 9eae1000-9d0d-48c5-AA55-33e27f9bc533`

The bulk endpoint is where extra data is located with varying read sizes.

#### Live data

The bulk live data endpoint provides all of the data provided in the live endpoint, as one large single-read binary blob. This is designed for applications that are showing large amounts of data as this is more efficient for reading.

#### Accelerometer Name

_Not yet implemented_

#### Build ID

This encodes the current build ID to allow viewing and handling when the BLE format changes.

#### Device Serial Number

This is generally the device CPU serial number. For most devices this can be used as an ID. On PinecilV2 its the MAC address.

#### Device Unique ID

This is only relevant on the PinecilV2. This is a random ID that is burned in at the factory. This is used by the online authenticity checker tool.


================================================
FILE: Documentation/DebugMenu.md
================================================
# Debugging Menu

In this firmware there is extra debugging information in a hidden sub-menu.
This menu is meant to be simple, so it has no fancy GUI animations.

- Access it by pressing and holding the rear button (`-/B`) on the iron while it is on the home screen.
- Use the front button (`+/A`) to scroll through the menu.
- To exit, use the rear button (`-/B`) again.

## Menu items

Items are shown in the menu on a single line, so they use short codes.

### Version

There is a static line on top which is presented on every sub-screen and reflects exact version of firmware. Version line on top has the following format - `vX.YYN.[ZZZZZZZZ]`:

- X: major version
- Y: minor version
- N: build type:
  - R - git-related **r**elease tag vXX.YY
  - T - git-related release **t**ag but version is not vXX.YY !
  - D - git-related **d**ev branch
  - B - git-related custom **b**ranch
  - E - git-related from d**e**tached commit
  - G - neither above but **g**it-related
  - C - build from github **C**I during _pull request_
  - H - build outside of a git tree (i.e. release tarball or **h**omebrew customization without git)
  - S - something **s**pecial[^ERR]
  - V - something **v**ery special[^ERR]
[^ERR]: `S` and `V` are reserved letters for cases when source of firmware is having very unique origin & configuration
- Z: short commit ID hash with 8 digits generated automatically from git (for git-related build types only)

I.e.:
- `v2.22H` means firmware built locally from tarball with release version of `2.22`
- `v2.22D.1A2B3C4D` means firmware with development version of `2.22` from git `dev` branch & with commit ID `1A2B3C4D` (so it can be traced for debug purposes)
- `v2.22R.5E6F7G8H` means firmware with official release version of `2.22` and it's properly tagged with `v2.22` git tag & with commit ID `5E6F7G8H`'

---

**Additional scroll-able items appear in this order**:

### Timestamp

- This is a timestamp of firmware compilation and it has the following format: `YYYYMMDD HHMMSS` (i.e., `20230701 213456` means it has been built in July, 1st, 2023 at 9:34:56 pm)

### ID

- This is used by Irons that have an ID and serial number to help check if the iron is authentic. All Pinecil V1 show the same ID number as this is the number programmed into the MCU.
- The new Pinecil V2 released Aug. 2, 2022 now uses MCU BL706, which enables generating a unique ID/Serial number to every iron. This can be used to verify your [Pinecil authenticity here](https://pinecil.pine64.org/).

### ACC

This indicates the accelerometer that is fitted inside the unit.

- MMA8652
- LIS2DH12
- BMA223
- MSA301
- SC7A20
- None -> running in fallback without movement detection
- Scanning -> Still searching I2C for one

### PWR

This indicates the current power source for the iron.
This may change during power up as the sources are negotiated in turn.

- **DC** input (dumb)
- **QC** input (We used QC2/3 negotiation for current supply)
- **PD W. VBus** input (PD subsystem is used to negotiate for current supply); and VBus is connected to your input power source
- **PD No VBus** input (PD subsystem is used to negotiate for current supply); and VBus is **NOT** connected to your input power source. If it is Not required or possible to do a special mod of your PCB (i.e. late model V1, some early Green PCB models) then [PD No VBus] displays on-screen ([see details and PD Debug section below](https://ralim.github.io/IronOS/DebugMenu/#pd-debug-menu)).

### Vin

The input voltage as read by the internal ADC. Can be used to sanity check it is being read correctly.

### Tip C

This is the tip temperature in °C.
This can be used with RTip for assessing temperature processing performance.

### Han C

This is the handle temperature or more accurately the reading of the Cold Junction Compensation (CJC) temperature sensor. This is expressed in °C. Range of 20-40 °C is normal depending on how hot/cold the room is and how long power has been plugged in which warms the PCB further.
This is used for CJC of the tip temperature.
 > If CHan is extremely high, this indicates the temperature sensor isn't reading correctly ([see Troubleshooting](https://ralim.github.io/IronOS/Troubleshooting/))

### Max C

This indicates the max temperature in °C that the system estimates it can measure the tip reliably to.
This is dependent on a few factors including the handle temperature so it can move around during use. As you use the iron, the Max increases to a point.

### UpTime

This shows how many deciseconds the unit has been powered for (600 ds = 1 minute).

### Move

This is the last timestamp of movement. When the iron is moved, this should update to match the Time field (previous menu item).
This can be used for checking performance of the movement detection code.

### Tip Res

This indicates the tip resistance that the device is currently using. For devices with multiple possible values to choose from (Pinecil V2), the appropriate value is automatically detected at every boot-up. Tip should be installed before boot-up or reading can not be done.

### Tip R

This is the raw tip reading in μV. Tip must be installed or reading will be high/inaccurate. At cool, the range of 700-1000 is normal for larger tips and ~1500 for smaller tips (TS80). This is used to evaluate the calibration routines.

### Tip O

This is the offset resulting from the *'Cold Junction Compensation Calibration'*.

### HW G

This indicates the high water mark for the stack for the GUI thread. The smaller this number is, the less headroom we have in the stack.
As this is a high-water mater, you should only trust this once you have walked through all GUI options to "hit" the worst one.

### HW M

This indicates the high-water mark for the stack for the movement detection thread. The smaller this number is, the less headroom we have in the stack.

### HW P

This indicates the high-water mark for the stack for the PID thread. The smaller this number is, the less headroom we have in the stack.

### Hall

This appears if your device is capable of having a hall effect sensor installed (Pinecil).
This shows the current magnetic field strength reading from the sensor. It is used to check if the sensor is operational, and for diagnostics and optimal placement of magnets on a stand (higher number is better/stronger). [See Hall Sensor for details](https://ralim.github.io/IronOS/HallSensor/). 

# PD Debug menu

On the Pinecil; if the iron is booted up while long holding the front button (`+`); it will show an extra hidden menu for inspecting USB-PD power adapters. We can also connect to any PD USB power to check Vbus status, even some cell phones with a USB-C port will work if it is PD. It will not show PD messages when Pinecil is powered by DC port, QC, or USB 5V (non-PD). For example, if you connect to a QC charger, you may simply see "PD State 6" which indicates "waiting for source" as no PD messages will be ever be sent and you will not be able to use (`+`) to scroll through PD negotiated messages.

Pressing (`+`) cycles through elements, and (`-`) or unplugging will exit the menu.

The first page shows the PD negotiation stage number; which can be used for diagnosing if PD is not working. Once negotiation is complete; use (`+`) button to advance to other screens which show the different proposals advertised for voltage and current (State 12 means all is good with the PD charger).

#### Below is a method for user modification to convert some early models of Pinecil V1 to safely support 24V on the DC5525 barrel.

⚠️ Warning: do this at your own risk, read everything in this document, and go to the [Pine64 community chat](https://wiki.pine64.org/wiki/Pinecil#Community_links) if you desire advice. An incorrect cut of the trace could render the Pinecil non-working.

Background: a simple user modification to the PCB on _some models_ of original V1 allows it to safely use DC barrel 24V by cutting a trace line to the Vbus which held it back to 21V. You can check whether your Pinecil V1 needs the update or can benefit from it by using a hidden trick in the PD debug menu.

- Follow instructions above to enter the PD Debug menu.
- After a few seconds or after PD negotiates (state above 5) it will show `[PD No VBus]` if it is not needed (i.e., late model V1). Alternately, if it shows `[VBus]`, then the mod has not been done and there is still a connection to the Vbus (the Vbus connection limits you to 21V until you do the mod).
- If you need to do the mod, then follow the instructions/links below which have photos. Careful to only cut the trace and nothing else.
- Then use the PD debug menu again to check for `[PD No Vbus]` before attaching any 24V PSU to the DC barrel. If you do not get the message, then try cutting the trace a little deeper or using alcohol to clear the gap of copper dust. Then check PD messages again. If you need advice/tips, join the Pine64 chat room. 

The mod method is shown in the [February 2022 PINE64 community updates](https://www.pine64.org/2022/02/15/february-update-chat-with-the-machine/). Early Pinecil V1 models required cutting a trace to achieve 24V safety with DC barrel PSU. Late model V1 made sometime in 2022 came with `[No Vbus]` already displayed, and no mod is required.

| Pinecil V2 model released Aug. 2, 2022 is an overhaul of the PCB with all relevant components capable of 28V. V2 requires no mods to support the use of 24V DC Barrel jack charger. |
:--------





================================================
FILE: Documentation/DebuggingPD.md
================================================
# Debugging PD

When using many of these soldering irons, the recommended power source is to use a USB-PD power supply.

Occasionally, issues are run into where the iron reboots or appears to not boot when connected to this supply.

There are generally a few different reasons for this to occur, the first is of course a bug or incompatibility in the IronOS PD-stack / firmware, but there are also power adapters that either have issues or try to be _smart_ to the detriment of compatibility.

It also helps to remember that driving a soldering iron is not like a normal load that these power supplies are designed for. Normally a laptop or phone will gently ramp the power draw up and down. Where as the soldering iron will rapidly go from 0 to full power, and then back to 0 again. This can cause issues with some power supplies tripping out.

In general, a normal, boring 60-100W PD supply is recommended. Watch out for adapters with multiple ports that are used by marketing to advertise a higher number. It's somewhat common to see 65W adapters being pushed that have two ports, one of which is 45W and one that is 20W. These cannot support 65W output on one typically.

Smarter chargers that try to implement every known protocol can come with quirks. Often slight shortcuts are taken in the PD implementation that can cause hard to debug issues.


## If the unit doesn't power up at all

This can be the most frustrating one to diagnose.

First, test the device powers up when powered by a USB-A -> USB-C cable. Or a DC power supply. This can rule out other issues that cause the device to appear off (bad flashing).

### No power
If your device won't power up on any other supply type, look into if you can boot into the bootloader. This is usually done by holding down a button while connecting it to a computer and then checking if it's detected.

If the device shows up to a computer, but doesn't operate when powered up normally, the two most likely causes are a bad flash/firmware OR a non-functioning display.

Testing alternative firmware builds or trying to heat the unit (pressing the front button) can be ways to test this.

### Powers up on other supplies

If the device powers up on other supplies, but not on the USB-PD supply, it could be a problem with the USB-PD supply itself. Try using a different USB-PD supply to see if the issue persists.

If the unit does not power on any PD supplies it could be damage to the PD PHY or the USB connector. USB-PD uses the CC pins on the connector, which are not used for normal data so a USB-A adapter for example doesn't use these at all.

## If the unit powers up but keeps rebooting

There are two causes of this:
1. If the reboot occurs when the unit starts to heat up, then it is the power supply being unable to supply the power requested.
2. The unit reboots frequently even without any buttons being pressed.

If this is the issue that you are seeing, then the problem is that something during the PD initialisation is failing.

The _best_ way to resolve this is to be able to capture the USB PD traffic. This is the only way to know what is **really** going on and why the two devices can't negotiate.

To capture PD traffic requires a device that can capture this data. A logic analyser can be used on the CC pins, though note that the signalling voltage is < 3.3V so it will require a logic analyser that can handle this or buffering.

Alternatively, a lot of the higher-end USB power meter units can capture the packets. It doesn't matter if it only shows these on screen or if it can save these out to a file (ideally a file though).

**Without a traffic capture, all debugging is guessing**

On firmwares 2.23+ there is a toggle in advanced settings to change the PD mode. This will adjust how the firmware negotiates with the PD supply slightly. This can enable/disable the PPS and EPR modes (dynamic voltage negotiation).

PPS is known to be incorrectly implemented on some supplies, so turning off these features can improve compatibility.

If the device is _sometimes_ stable, you can on Pinecil devices boot while holding the front button to enter the PD debug menu. This will show what voltages & power levels are being advertised by the device. This can be used to cross-check with what is printed on the adapter. Take into consideration that non e-marked cables will be limited to 3A and that EPR requires specifically marked cables.

If you take the tip out of the iron, it will result in most devices not negotiating a PD profile (the irons wait to know what kind of tip is installed). This can be used to stop the failing negotiations in some situations to allow viewing this menu.


Before filing a support request, please try testing other power adapters & cables to try and narrow down the possibilities of the issue being a one-off.
If you have the capability to capture the PD traffic, that makes the problem exponentially easier to rectify.


================================================
FILE: Documentation/Development.md
================================================
# Development

Building this software can be performed two ways: using the STM32CubeIDE or using command line tools.

## STM32CubeIDE

The easiest way to start working with the STM32CubeIDE is to create a new project for the STM32F103RCTx.
Once this is created, remove the auto-generated source code.
Next, drag the contents of the `source` folder into the project and choose to link to files.
You will need to update the build settings for include paths and point to the new `.ld` linker file.

## Command line tools and building a release

In the `source` folder there is a `Makefile` that can be used to build the repository using command line tools.
When running the `make` command, specify which model of the device and the language(s) you would like to use.

### Windows (MSYS2 environment)

1. Download `msys2` install package from the [official website](https://msys2.org) and install it according to the instruction there;
2. Install requried packages (here and for the future commands use **`mingw64.exe`** terminal):
```
$ pacman -S mingw-w64-x86_64-arm-none-eabi-gcc mingw-w64-x86_64-libwinpthread-git python3 python3-pip make unzip git
```
3. Download _3rd party RISC-V toolchain_ `xpack-riscv-none-elf-gcc-...-win32-x64.zip` from [this repository](https://github.com/xpack-dev-tools/riscv-none-elf-gcc-xpack/releases);
4. Move downloaded `xpack-riscv-none-elf-gcc-...-win32-x64.zip` to `msys64` _Windows_ directory (e.g., `C:\msys64\`);
5. Extract files from `xpack-riscv-none-elf-gcc-...-win32-x64.zip` and go back to _home_ directory:
```
$ cd /
$ unzip xpack-riscv-none-elf-gcc-...-win32-x64.zip
$ cd ~
```
6. Permanently set `PATH` environment variable, so all required toolchains could be available for `make` and for other build scripts:
```
$ echo 'export PATH=/xpack-riscv-none-elf-gcc-.../bin:${PATH}' >> ~/.bashrc
$ source ~/.bashrc
```
7. Additionally, `OpenOCD` and/or `ST-Link` can be installed as well to help with flashing:
```
$ pacman -S mingw-w64-x86_64-openocd
$ pacman -S mingw-w64-x86_64-stlink
```
8. Clone _IronOS_ repo:
```
$ git clone --recursive https://github.com/Ralim/IronOS.git
$ cd IronOS
```
9. Follow steps _4-8_ from [macOS section](#macos);
10. `pip` can be updated inside `venv` only:
```
$ python3 -m pip install --upgrade pip
```

### macOS

Use the following steps to set up a build environment for IronOS on the command line (in Terminal).

1. [Follow steps 1 – 3 here to install the toolchain](https://github.com/glegrain/STM32-with-macOS#0---installing-the-toolchain) needed to compile for STM32 microcontrollers.
2. Install `python`:

```
brew install python
```

3. (Optional) Update `pip` so it doesn't warn you about being out-of-date:

```
python3 -m pip install --upgrade pip
```

4. Change to the `source` directory:

```
cd source
```

5. Create a Python virtual environment for IronOS named `ironos-venv` to keep your Python installation clean:

```
python3 -m venv ironos-venv
```

6. Activate the Python virtual environment:

```
source ironos-venv/bin/activate
```

7. Install the dependencies required to run `make-translation.py`:

```
pip install bdflib
```

8. All done! See some examples below for how you can build your own IronOS.

### Examples

To build a single language Simplified Chinese firmware for the TS80P with 8 simultaneous jobs:

```
make -j8 model=TS80P firmware-ZH_CN
```

To build a European multi-language firmware for the Pinecil with as many simultaneous jobs as there are logical processors on Linux:

```
make -j$(nproc) model=Pinecil firmware-multi_European
```

To build a Cyrillic compressed multi-language firmware for the Pinecil with as many simultaneous jobs as there are logical processors on macOS:

```
make -j$(sysctl -n hw.logicalcpu) model=Pinecil firmware-multi_compressed_Belarusian+Bulgarian+Russian+Serbian+Ukrainian
```

To build a custom multi-language firmware including English and Simplified Chinese for the TS80:

```
make -j8 model=TS80 custom_multi_langs="EN ZH_CN" firmware-multi_Custom
```

To build a custom compressed multi-language firmware including German, Spanish, and French for the TS100 (note if `model` is unspecified, it will default to `TS100`):

```
make -j8 custom_multi_langs="DE ES FR" firmware-multi_compressed_Custom
```

To build a release instead, run the `build.sh` script. This will update translations and also build every language for all device models. For macOS users, replace `make -j$(nproc)` in the script with `make -j$(sysctl -n hw.logicalcpu)` before running.

## Updating languages

To update the language translation files and their associated font maps, execute the `make_translation.py` code from the `Translations` directory.
If you edit the translation definitions or the English translation, please also run `gen_menu_docs.py` to update the settings menu documentation automatically.

## Building Pinecil V1

I highly recommend using the command line tools and using Docker to run the compiler.
It's a bit fussier on setup than the STM tooling, and this is by far the easiest way.
If you _need_ an IDE I have used [Nuclei's IDE](https://nucleisys.com/download.php).
Follow the same idea as the STM Cube IDE notes above.

## Building Pinecil V2

To build the Pinecil V2 firmware, you can use a Docker container that provides a consistent development environment across different operating systems, including Windows with WSL2. Here's how to do it:

### Prerequisites

Docker Desktop: Install the latest version of Docker Desktop for your operating system from the official website.

On Windows follow the instructions on the official documentation to install 'Windows Subsystem for Linux' (WSL2).

### Building Steps

1. Clone the repository, initialize and update submodules:

    ```sh
    git clone --recurse-submodules https://github.com/Ralim/IronOS.git
    ```

2. Start the Docker container with the development environment:

    ```sh
    cd IronOS
    ./scripts/deploy.sh
    ```

    This script will build a Docker image and run a container with the necessary tools to build the firmware.

3. Build the firmware for Pinecil V2:

    ```sh
    cd source/
    ./build.sh -l EN -m Pinecilv2
    ```

    This command will compile the firmware with English language support for Pinecil V2 board.

4. Find the firmware artifacts:
    After the build completes successfully, you can find the firmware artifacts in the `source/Hexfile` directory.


================================================
FILE: Documentation/Flashing/MHP30.md
================================================
# Flashing / Upgrading your iron

## Downloading source file

In the development of this firmware, there are three _types_ of firmware released.
These are the "Main" stable releases, which generally have high confidence in being bug free.
Release candidates are released slightly more often, and these are generally perfectly fine for everyday use. These are released early to allow for translation checking and for wonderful people to help spot bugs and regressions.
Finally, there are the "mainline" builds, which are built from the main git branch.
These are built on every change and can be found on the Actions tab (see below).

### Main release

Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases).
Download the zip file that matches your model of soldering iron and extract it.
Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`.
Flash according to details below

### Bleeding edge / latest

For the _latest_ code, you will need to download the zip file from the artifacts page on the build for what you want.
Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch you would like.
In general you probably want `master`.

Once you click on a run, scroll down to the "Artifacts" section and then click on your model to download a zip file.
Then this works the same as a production release (use the correct file).

# MHP30

This is completely safe, but if it goes wrong just put the corresponding `.hex` file from [the official website](https://e-design.com.cn/en/NewsDetail/4203645.html) ([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)) onto the unit and you're back to the old firmware. Downloads for the `.hex` files to flash are available on the [releases page.](https://github.com/Ralim/IronOS/releases) The file you want is called MHP30.zip. Inside the zip file (make sure to extract the file before flashing with it) will be a file called `MHP30_{Language-Code}.hex`.

Officially the bootloader on the devices only works under Windows (use the built-in File Explorer, as alternative file managers or copy handlers like Teracopy will fail). However, users have reported that it does work under [Mac](#mac), and can be made to work under [Linux](#linux) _sometimes_ (look for details below).

1. Hold the button closest to the tip (MHP30 the left button on the back), and plug in the USB to the computer.
2. The unit will appear as a USB drive. (Screen will say `DFU` on it.)
3. Drag the `.hex` file onto the USB drive.
4. The unit will disconnect and reconnect.
5. The filename will have changed to end in _.RDY_ or _.ERR_
6. If it ends with _.RDY_ you're done! Otherwise, something went wrong.
7. If it didn't work the first time, try copying the file again without disconnecting the device, often it will work on the second shot.
8. Disconnect the USB and power up the device. You're good to go.

For the more adventurous out there, you can also load this firmware onto the device using an SWD programmer, for easier installation follow the guide at the end of this document.

On the USB-C port, `USB_D+` is shorted to `SWDIO` and `USB_D-` is shorted to `SWCLK` so debugging works without disassembly (attach while staying in the bootloader). Installing [IronOS-dfu](https://github.com/Ralim/IronOS-dfu) is recommended as it allows reliable flashing of binary files with [dfu-util](http://dfu-util.sourceforge.net/).

Noting that for the MHP30 the stock firmware checks a checksum at the end of the first 8k that has to be valid or else it goes into "demo mode".

## Mac

sgr1ff1n (Shane) commented in [issue 11](https://github.com/Ralim/IronOS/issues/11) that upgrading worked on their Mac as per normal:

> I just wanted to say that I was able to update the firmware on my ts100 from the stock version to 1.08 found in this repository using my Mac. I simply followed the same steps however through Finder. I have a MacBook Pro (13-inch, Mid 2012) running Sierra 10.12.4 (16E195).

## Linux

While in the past there were reports of unreliable upgrades, the consensus in [issue 11](https://github.com/Ralim/IronOS/issues/11) is that things work mostly as expected in Linux.

@awigen has contributed a script [flash_ts100_linux.sh](https://raw.githubusercontent.com/Ralim/IronOS/dev/scripts/flash_ts100_linux.sh) that works on Ubuntu 16.04 as well as other distros.

If you want to do it manually (or if the script does not work for some reason) the general procedure is the same as for Windows, the differences are in the way to mount the unit and copy the firmware.
Remember that after flashing, the firmware filename will have changed to end in `.RDY` or `.ERR` or `.NOT` and only `.RDY` means the flashing was successful!

- The unit has to be mounted as `msdos` type (thanks @balrog-kun for having spotted it). You may disable automount, but unmounting the automounted drive and remounting as `msdos` works fine. You do not need to turn off automounting, but you do need to unmount the device with `umount`.
- It is recommended to use an all-caps filename for the firmware, even if successful flashing were done with lower case names.
- Avoid USB hubs, plug directly in your computer.
- If it fails, try again several times without unplugging. Just let it remount.

Example, to be run as root, once the unit has been plugged in DFU mode and auto-mounted:

```bash
FW=ts100.hex
unset NAME
eval $(lsblk -P -p -d --output NAME,MODEL|grep "DFU[ _]Disk")
[ -z ${NAME+x} ] && exit 1  # Could not find DFU device
umount "$NAME"
mkdir /tmp/mntdfu
mount -t msdos "$NAME" /tmp/mntdfu
cp "$FW" "/tmp/mntdfu/$(basename $FW|tr a-z A-Z)"
sync
umount /tmp/mntdfu
rmdir /tmp/mntdfu
```

Device will reboot and automount will rerun if not disabled.
Check the extension of your firmware, it should be `.RDY` now.

## FAQ

#### The file is showing up with the extension `.ERR`

This can occur during the programming process if any of the checks in the bootloader fail. This is often triggered by anti-virus software or using a non-Windows host OS.

First, try just copying the file a second time.

1. Attach the iron in DFU mode.
2. Copy the `.hex` file to the device.
3. The device disconnects and connects with the `.ERR` file.
4. Copy the same `.hex` file again **⛔ DO NOT TRY AND DELETE THE OLD ONE ⛔**.
5. The device will disconnect and reconnect again.
6. The device _should_ now have the `.RDY` file.
7. You're done.

If this fails and you are on Mac or Linux reading the wiki page about programming can help. There is also a very long issue thread going through all of the different attempts around this too.

If you are on Windows, it's often best to try another computer (friends, work, partners etc.).

#### Device randomly disconnects or does not show up in DFU mode

1. Check if the USB cable you are using has the data pins; test it on another device. There are a surprisingly large number of micro-USB cables that are power _only_.

2. Try other USB ports. Often different USB controllers will interact with the units differently due to design quirks in the Miniware design.

### Alternative bootloader

If you are an advanced user, and you have used `usb-dfu` tools before, or you would like to learn; there is an alternative bootloader for these irons.
This will **NOT** show up as a USB storage drive, but instead show up using a standard DFU protocol device. You can then use dfu tools or GUIs to upgrade the iron using the `.bin` files that are posted to the releases page.

To install this alternative bootloader, follow the instructions [here](https://github.com/Ralim/IronOS-dfu/blob/mainline/docs/Bootloader.md).

Note that this is only recommended for users who know what they are doing. If you don't understand how this works, please don't flash this.


================================================
FILE: Documentation/Flashing/Pinecil V1.md
================================================
# Flashing / Upgrading your iron

## Downloading source file

In the development of this firmware, there are three _types_ of firmware released.
These are the "Main" stable releases, which generally have high confidence in being bug free.
Release candidates are released slightly more often, and these are generally perfectly fine for everyday use. These are released early to allow for translation checking and for wonderful people to help spot bugs and regressions.
Finally, there are the "mainline" builds, which are built from the main git branch.
These are built on every change and can be found on the Actions tab (see below).

### Main release

Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases).
Download the zip file that matches your model of soldering iron and extract it.
Select the appropriate file type for your unit, in general Miniware devices need `.hex`, Pinecil V1 needs `.dfu`, and Pinecil V2 needs `.bin`.
Flash according to details below.

### Bleeding edge / latest

For the _latest_ code, you will need to download the zip file from the artifacts page on the build for what you want.
Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch you would like.
In general you probably want `master`.

Once you click on a run, scroll down to the "Artifacts" section and then click on your model to download a zip file.
Then this works the same as a production release (use the correct file).

# Pinecil V1

- The MCU used in Pinecil supports usb-dfu. Reference [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil) for hardware and firmware instructions.
- Recommended Updater for Windows/MacOS: [Pine64 Updater](https://github.com/pine64/pine64_updater) is an easy-to-use GUI app. It is fast and automatically fetches the newest stable version of IronOS from GitHub. It can also be used to load custom boot logo art.
- Recommended Updater for Linux/MacOS: [PineFlash](https://github.com/Spagett1/PineFlash) is an easy-to-use GUI app. It is fast and automatically fetches the newest stable version of IronOS from Github. It can also be used to load custom boot logo art.

- Troubleshooting: if you have issues using the Pine64 Updater or your install fails, please go to troubleshooting tips below.
- The [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil) is a great resource for all things Pinecil.
- Community chat: if troubleshooting doesn't work, then join the Pine64 > Pinecil channel [here](https://wiki.pine64.org/wiki/Pinecil#Live_Community_Chat). There are knowledgeable members in Discord/Telegram/Matrix. Discord has a bridge bot connection to Telegram and Matrix so that all pine64 volunteers/members can see advice for Pinecil and related items or just get tips on which power supply to purchase.
- One advantage of Pinecil is that you cannot permanently damage it doing a firmware update (because DFU is in ROM); an update could render Pinecil temporarily inoperable if you flash an invalid firmware. But no worries, simply re-flashing with a working firmware copy will fix everything.
- USB-C cable is required to do an update. Generally, all USB controllers work, but some hubs have issues, so it is preferred to avoid USB hubs for updates.
- Alternate Update Methods: if your OS is not currently supported by the [Pine64 Updater](https://github.com/pine64/pine64_updater) or it does not meet your needs, i.e., you want to install a beta version, the below manual methods may be used.

## Linux and Mac

### Steps

⛔ Do not use the DC barrel jack while updating firmware or you may destroy your PC. ⛔

1. Highly recommend updating `dfu-util` to the newest version before starting.
2. Download and extract the firmware package from GitHub [IronOS Releases](https://github.com/Ralim/IronOS/releases).
3. Enter DFU mode: press and hold (`-`) button at the back of the iron before you connect the USB-C cable.
4. Connect USB to PC, and USB-C to back of Pinecil, keep holding (`-`) button down.
5. Once the USB cable is connected at two ends, wait ~10 seconds more, then release the (`-`) button.
6. The screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal.
7. Using `dfu-util` you can flash the firmware using a command line like this:

```
dfu-util -D Pinecil_EN.dfu
```

Choose the file name from the folder with the appropriate 2-letter country code for your chosen language (i.e., EN = English).

### Troubleshooting:

- If you get a message stating that `More than one DFU capable USB device found!` when running the above command you probably have an old version of `dfu-util` installed. Might be worth updating. You can still install on the old version, but you will have to specify which DFU interface to flash to. Running the command `dfu-util -l` will show you if there are several DFU devices detected. Example:

```
Found DFU: [28e9:0189] ver=0100, devnum=48, cfg=1, intf=0, path="1-1", alt=1, name="@Option Bytes  /0x1FFFF800/01*016Be", serial="??"
Found DFU: [28e9:0189] ver=0100, devnum=48, cfg=1, intf=0, path="1-1", alt=0, name="@Internal Flash  /0x08000000/128*001Kg", serial="??"
```

In this example we see that more than one part of the Pinecil is detected as a DFU interface and we need to specify which one we want to flash to. We want the `Internal Flash` so in this case we can use `alt=0` to identify which interface to target. The command would then look like this:

```
dfu-util -D Pinecil_EN.dfu -a 0
```

- Note: if you use an older release of `dfu-util` and do not see `alt=0, name="@Internal Flash /0x08000000/128*001Kg"` when running `dfu-util -l` you likely will not be able to update without first updating 'dfu-util'.
- If your update is crashing part-way into the update, there is sometimes an issue with older/fussy USB controllers (they can show up/disappear/then show up again)
  - Try a direct connection to the USB port, do not use a USB hub, and use shorter cable. If possible, pick a port connected to the main board.
  - Switch to a different PC/Laptop and use different ports. USB-C ports are recommended but some have also reported having a fussy C port.
  - Hold down the (-) button for the entire firmware update, do not release until near the end.
- `DC Low` message: a pc/laptop cannot fully power Pinecil, it generally can only get 5 V (non-PD) to communicate for firmware updates and Pinecil will report 'DC Low'. This is normal.
- If `dfu-util` aborts with an error like
  ```
  dfu-util: Cannot open DFU device 28e9:0189 found on devnum 42 (LIBUSB_ERROR_IO)
  ```
  and `dmesg` reports USB errors like these
  ```
  kernel: usb 1-1: reset full-speed USB device number 42 using xhci_hcd
  kernel: usb 1-1: device descriptor read/64, error -71
  kernel: usb 1-1: device descriptor read/64, error -71
  kernel: usb 1-1: reset full-speed USB device number 42 using xhci_hcd
  kernel: usb 1-1: device descriptor read/64, error -71
  kernel: usb 1-1: device descriptor read/64, error -71
  kernel: usb 1-1: reset full-speed USB device number 42 using xhci_hcd
  kernel: usb 1-1: Device not responding to setup address.
  kernel: usb 1-1: Device not responding to setup address.
  kernel: usb 1-1: device not accepting address 42, error -71
  ```
  then try to disable USB autosuspend.
  This can be done with a set of udev rules specifically for the Pinecil:
  ```udev
  SUBSYSTEM=="usb", ATTR{idVendor}=="28e9", ATTR{idProduct}=="0189", MODE:="0660"
  SUBSYSTEM=="usb", ATTR{idVendor}=="28e9", ATTR{idProduct}=="0189", GROUP="plugdev"
  SUBSYSTEM=="usb", ATTR{idVendor}=="28e9", ATTR{idProduct}=="0189", TEST=="power/control", ATTR{power/control}="on"
  ```

## Windows

Two Options for Windows

### Option 1: use command line

### Steps

⛔ Do not use the DC barrel jack while updating firmware or you may destroy your PC. ⛔

1. Using command line `dfu-util` is similar to above for Linux / Mac.
2. Highly recommend updating `dfu-util` to the newest version.
3. Download and extract the firmware package from GitHub [IronOS Releases](https://github.com/Ralim/IronOS/releases).
4. Enter DFU mode: press and hold (-) button at the back of the iron (do not release).
5. Connect USB to PC, and USB-C to the back of Pinecil, keep holding (-) button down.
6. Screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal.
7. After the USB cable is connected at both ends, wait ~10 seconds more, then release the (-) button.
8. Open PowerShell or Command window.
9. Change to the directory of the unzipped firmware files
10. Using `dfu-util,` flash the firmware using a command like this:

```
dfu-util -D Pinecil_EN.dfu
```

- If you have errors, see Troubleshooting above.

### Option 2: use the GUI tool from chip vendor

### Steps

⛔ Do not use the DC barrel jack while updating firmware or you may destroy your PC. ⛔

1. If you are uncomfortable with the command line, then this chip vendor supplied GUI tool/drivers is an option.
2. Download and extract the firmware package from GitHub [IronOS Releases](https://github.com/Ralim/IronOS/releases).
3. Download both the `GD32 MCU DFU TOOL` and the `GD32 Dfu Drivers`.
   - GD32 DFU Tool [here](http://www.gd32mcu.com/en/download?kw=GD32+MCU+Dfu+Tool&lan=en). If the link breaks, search for "GD32 MCU Dfu Tool" at this [link](http://www.gd32mcu.com/en/download/).
   - GD32 DFU Drivers [here](http://www.gd32mcu.com/en/download?kw=GD32+Dfu+Drivers&lan=en). If the link breaks, search for "GD32 Dfu Drivers" at this [link](http://www.gd32mcu.com/en/download/).
   - Check properties of both downloads, tick Unblock if needed, then Unzip
4. Install the drivers and the GD32 DFU tool (ignore prompts to update the tool).
5. Enter DFU mode: press and hold (`-`) button at the back of Pinecil (do not release).
6. Connect Pinecil to a PC via USB cable (do not release the (`-`) yet).
7. Screen will stay **black/off** to indicate the Pinecil is in DFU mode. This is normal.
8. You may hear a beep from Windows as it connects to Pinecil in DFU mode.
9. If you see windows notification that it `does not recognize USB device`, then you didn't connect, repeat step 3-8.
10. Open the GD32 DFU Tool (ignore prompts to update tool).
11. At the top of the DFU tool, you should see `GD DFU DEVICE 1` appear if you successfully connected Pinecil.
12. If DFU Device box at top is blank, then Pinecil is not connected in DFU mode, repeat steps 3-11.
13. If it has been more than 10 seconds since you connected the USB cable, Release the (`-`) button. (don't use Upload from Device section)
14. Select `Download to device` > Open > Browse to folder you unzipped in step 2.
15. Select the `hex` file for language. English is Pinecil_EN.hex , tick `Verify after download`.
16. Click `OK` at bottom. After a few minutes you will see 0-100%, Download successfully! Click `Leave DFU` at the top.
17. Disconnect Pinecil cable from PC, plug it into a power supply.
18. Do not need to press any buttons, a new screen should appear.
19. To confirm upgrade, hold the minus (`-`) button down for a few seconds, it then shows new firmware version v2.xx.x....date

- If you have errors, see Troubleshooting above.


================================================
FILE: Documentation/Flashing/Pinecil V2.md
================================================
# Flashing / Upgrading your iron

## Downloading source file

In the development of this firmware, there are three _types_ of firmware released.
These are the "Main" stable releases, which generally have high confidence in being bug free.
Release candidates are released slightly more often, and these are generally perfectly fine for everyday use. These are released early to allow for translation checking and for wonderful people to help spot bugs and regressions.
Finally, there are the "mainline" builds, which are built from the main git branch.
These are built on every change and can be found on the Actions tab (see below).

### Main release

Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases).
Download the zip file that matches your model of soldering iron and extract it.
Select the appropriate file type for your unit, in general Miniware devices need `.hex`, Pinecil V1 needs `.dfu`, and Pinecil V2 needs `.bin`.
Flash according to details below.

### Bleeding edge / latest

For the _latest_ code, you need to download the zip file from the artifacts page for the build that you want.
Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch and beta you would like.
In general you probably want `master`.

Once you click on a run, scroll down to the "Artifacts" section and then click on your device model name to download a zip file.
Then this works the same as a production release (use the correct file).

## Pinecil V2

- The MCU in Pinecil V2 is Bouffalo BL706 and does _not_ use usb-dfu for flashing as the previous Pinecil V1 MCU did.
- See the Pinecil Wiki page [here](https://wiki.pine64.org/wiki/Pinecil#Firmware_&_Updates) for instructions.
- The V2 uses the [BLISP flasher](https://github.com/pine64/blisp) to upload the firmware to the MCU.
- The [Pinecil Wiki](https://wiki.pine64.org/wiki/Pinecil) is a great resource for all things Pinecil.
- Community chat: if there are issues updating, then join the Pine64 > Pinecil channel [here](https://wiki.pine64.org/wiki/Pinecil#Live_Community_Chat). There are knowledgeable members in Discord/Telegram/Matrix. Discord has a bridge bot connection to Telegram and Matrix so that all pine64 volunteers/members can see advice for Pinecil and related items or just get tips on which power supply to purchase.
- One advantage of Pinecil is that you cannot permanently damage it doing a firmware update (because BIN is in ROM); an update could render Pinecil temporarily inoperable if you flash an invalid firmware. But no worries, simply re-flashing with a working firmware copy will fix everything.
- USB-C cable is required to do an update. Generally, all USB controllers work, but some hubs have issues, so it is preferred to avoid USB hubs for updates.
- Background on the [BL706 chipset](https://lupyuen.github.io/articles/bl706)

### Troubleshooting

If you are running into issues such as timeouts during the programming or bootloader errors, the BL702 has a not-amazing USB PHY built in. This can cause problems on cheap cables (especially "thin" ones that tend not to have shielding). One of the authors (Ralim) has found this especially common on the cables supplied with Apple chargers when used with newer Ryzen processor ports.

It is _strongly_ reccomended to use a good quality cable, ideally _short_.
Also try other USB ports, as on some devices they can use different hub's or lengths of signalling, and this can fix the issue.

By the PinecilV2's design, by default some of the internal buses are exposed on the USB3 pins, to enable hacking/debugging/mods. This is suspected it _may_ play poorly on some chipsets. Try using a USB2.0 cable. Others have had luck with chaining USB-C->USB-A->USB-C. This may be due to this, as a lot of these adaptors are USB2 or only USB3 5gbps (half USB3 pins).

Another workaround is to put a USB hub somewhere in the chain, as these will re-form the signal and can work around the issue.

_Finally_, some users have reported issues under Windows that were fixed by changing OS (Typically to a Linux live cd).


================================================
FILE: Documentation/Flashing/TS100.md
================================================
# Flashing / Upgrading your iron

## Downloading source file

In the development of this firmware, there are three _types_ of firmware released.
These are the "Main" stable releases, which generally have high confidence in being bug free.
Release candidates are released slightly more often, and these are generally perfectly fine for everyday use. These are released early to allow for translation checking and for wonderful people to help spot bugs and regressions.
Finally, there are the "mainline" builds, which are built from the main git branch.
These are built on every change and can be found on the Actions tab (see below).

### Main release

Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases).
Download the zip file that matches your model of soldering iron and extract it.
Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`.
Flash according to details below

### Bleeding edge / latest

For the _latest_ code, you will need to download the zip file from the artifacts page on the build for what you want.
Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch you would like.
In general you probably want `master`.

Once you click on a run, scroll down to the "Artifacts" section and then click on your model to download a zip file.
Then this works the same as a production release (use the correct file).

# TS100

This is completely safe, but if it goes wrong just put the corresponding `.hex` file from [the official website](https://e-design.com.cn/en/NewsDetail/4203645.html) ([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)) onto the unit and you're back to the old firmware. Downloads for the `.hex` files to flash are available on the [releases page.](https://github.com/Ralim/IronOS/releases) The file you want is called TS100.zip. Inside the zip file (make sure to extract the file before flashing with it) will be a file called `TS100_{Language-Code}.hex`.

Officially the bootloader on the devices only works under Windows (use the built-in File Explorer, as alternative file managers or copy handlers like Teracopy will fail). However, users have reported that it does work under [Mac](#mac), and can be made to work under [Linux](#linux) _sometimes_ (look for details below).

1. Hold the button closest to the tip (MHP30 the left button on the back), and plug in the USB to the computer.
2. The unit will appear as a USB drive. (Screen will say `DFU` on it.)
3. Drag the `.hex` file onto the USB drive.
4. The unit will disconnect and reconnect.
5. The filename will have changed to end in _.RDY_ or _.ERR_
6. If it ends with _.RDY_ you're done! Otherwise, something went wrong.
7. If it didn't work the first time, try copying the file again without disconnecting the device, often it will work on the second shot.
8. Disconnect the USB and power up the device. You're good to go.

For the more adventurous out there, you can also load this firmware onto the device using an SWD programmer, for easier installation follow the guide at the end of this document.

On the bottom of the MCU riser PCB, there are 4 pads for programming. On v2.51A PCB revision `USB_D+` is shorted to `SWDIO` and `USB_D-` is shorted to `SWCLK` so debugging works without disassembly (attach while staying in the bootloader). Installing [IronOS-dfu](https://github.com/Ralim/IronOS-dfu) is recommended as it allows reliable flashing of binary files with [dfu-util](http://dfu-util.sourceforge.net/).

On some newer TS100 units, the SWD pins are wired up to the USB pins, on older ones they are not sadly.

## Mac

sgr1ff1n (Shane) commented in [issue 11](https://github.com/Ralim/IronOS/issues/11) that upgrading worked on their Mac as per normal:

> I just wanted to say that I was able to update the firmware on my ts100 from the stock version to 1.08 found in this repository using my Mac. I simply followed the same steps however through Finder. I have a MacBook Pro (13-inch, Mid 2012) running Sierra 10.12.4 (16E195).

## Linux

While in the past there were reports of unreliable upgrades, the consensus in [issue 11](https://github.com/Ralim/IronOS/issues/11) is that things work mostly as expected in Linux.

@awigen has contributed a script [flash_ts10X_linux.sh](https://raw.githubusercontent.com/Ralim/IronOS/dev/scripts/flash_ts10X_linux.sh) that works on Ubuntu 16.04 as well as other distros.

If you want to do it manually (or if the script does not work for some reason) the general procedure is the same as for Windows, the differences are in the way to mount the unit and copy the firmware.
Remember that after flashing, the firmware filename will have changed to end in `.RDY` or `.ERR` or `.NOT` and only `.RDY` means the flashing was successful!

- The unit has to be mounted as `msdos` type (thanks @balrog-kun for having spotted it). You may disable automount, but unmounting the automounted drive and remounting as `msdos` works fine. You do not need to turn off automounting, but you do need to unmount the device with `umount`.
- It is recommended to use an all-caps filename for the firmware, even if successful flashing were done with lower case names.
- Avoid USB hubs, plug directly in your computer.
- If it fails, try again several times without unplugging. Just let it remount.

Example, to be run as root, once the unit has been plugged in DFU mode and auto-mounted:

```bash
FW=ts100.hex
unset NAME
eval $(lsblk -P -p -d --output NAME,MODEL|grep "DFU[ _]Disk")
[ -z ${NAME+x} ] && exit 1  # Could not find DFU device
umount "$NAME"
mkdir /tmp/mntdfu
mount -t msdos "$NAME" /tmp/mntdfu
cp "$FW" "/tmp/mntdfu/$(basename $FW|tr a-z A-Z)"
sync
umount /tmp/mntdfu
rmdir /tmp/mntdfu
```

Device will reboot and automount will rerun if not disabled.
Check the extension of your firmware, it should be `.RDY` now.

## FAQ

#### The file is showing up with the extension `.ERR`

This can occur during the programming process if any of the checks in the bootloader fail. This is often triggered by anti-virus software or using a non-Windows host OS.

First, try just copying the file a second time.

1. Attach the iron in DFU mode.
2. Copy the `.hex` file to the device.
3. The device disconnects and connects with the `.ERR` file.
4. Copy the same `.hex` file again **⛔ DO NOT TRY AND DELETE THE OLD ONE ⛔**.
5. The device will disconnect and reconnect again.
6. The device _should_ now have the `.RDY` file.
7. You're done.

If this fails and you are on Mac or Linux reading the wiki page about programming can help. There is also a very long issue thread going through all of the different attempts around this too.

If you are on Windows, it's often best to try another computer (friends, work, partners etc.).

#### Device randomly disconnects or does not show up in DFU mode

1. Check if the USB cable you are using has the data pins; test it on another device. There are a surprisingly large number of micro-USB cables that are power _only_.

2. Try other USB ports. Often different USB controllers will interact with the units differently due to design quirks in the Miniware design.

### Alternative bootloader

If you are an advanced user, and you have used `usb-dfu` tools before, or you would like to learn; there is an alternative bootloader for these irons.
This will **NOT** show up as a USB storage drive, but instead show up using a standard DFU protocol device. You can then use dfu tools or GUIs to upgrade the iron using the `.bin` files that are posted to the releases page.

To install this alternative bootloader, follow the instructions [here](https://github.com/Ralim/IronOS-dfu/blob/mainline/docs/Bootloader.md).

Note that this is only recommended for users who know what they are doing. If you don't understand how this works, please don't flash this.


================================================
FILE: Documentation/Flashing/TS80(P).md
================================================
# Flashing / Upgrading your iron

## Downloading source file

In the development of this firmware, there are three _types_ of firmware released.
These are the "Main" stable releases, which generally have high confidence in being bug free.
Release candidates are released slightly more often, and these are generally perfectly fine for everyday use. These are released early to allow for translation checking and for wonderful people to help spot bugs and regressions.
Finally, there are the "mainline" builds, which are built from the main git branch.
These are built on every change and can be found on the Actions tab (see below).

### Main release

Main releases are made to the [releases page](https://github.com/Ralim/IronOS/releases).
Download the zip file that matches your model of soldering iron and extract it.
Select the appropriate file type for your unit, in general Miniware devices need `.hex` and Pinecil needs `.dfu`.
Flash according to details below

### Bleeding edge / latest

For the _latest_ code, you will need to download the zip file from the artifacts page on the build for what you want.
Head to the [Actions](https://github.com/Ralim/IronOS/actions) page and then select the run for the appropriate branch you would like.
In general you probably want `master`.

Once you click on a run, scroll down to the "Artifacts" section and then click on your model to download a zip file.
Then this works the same as a production release (use the correct file).

# TS80 / TS80P

This is completely safe, but if it goes wrong just put the corresponding `.hex` file from [the official website](https://e-design.com.cn/en/NewsDetail/4203645.html) ([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)) onto the unit and you're back to the old firmware. Downloads for the `.hex` files to flash are available on the [releases page.](https://github.com/Ralim/IronOS/releases) The file you want is called TS80.zip or TS80P.zip. Inside the zip file (make sure to extract the file before flashing with it) will be a file called `TS80_{Language-Code}.hex`/`TS80P_{Language-Code}.hex`.

Officially the bootloader on the devices only works under Windows (use the built-in File Explorer, as alternative file managers or copy handlers like Teracopy will fail). However, users have reported that it does work under [Mac](#mac), and can be made to work under [Linux](#linux) _sometimes_ (look for details below).

1. Hold the button closest to the tip (MHP30 the left button on the back), and plug in the USB to the computer.
2. The unit will appear as a USB drive. (Screen will say `DFU` on it.)
3. Drag the `.hex` file onto the USB drive.
4. The unit will disconnect and reconnect.
5. The filename will have changed to end in _.RDY_ or _.ERR_
6. If it ends with _.RDY_ you're done! Otherwise, something went wrong.
7. If it didn't work the first time, try copying the file again without disconnecting the device, often it will work on the second shot.
8. Disconnect the USB and power up the device. You're good to go.

If you get a message when copying: "Are you sure you want to move this file without its properties?" then this can cause an issue where the iron thinks that the file has finished copying before it actually has and can cause a .ERR file. Since this dialog prompt is caused by copying a file from NTFS to FAT (the iron's filesystem) in windows, you can fix this by formatting a thumbdrive as FAT32 and then storing the hex file on that before copying the file to the iron. As there will be no NTFS properties on the file when stored on a FAT32 filesystem, there will be no prompt, and the copy will then proceed normally.

For the more adventurous out there, you can also load this firmware onto the device using an SWD programmer, for easier installation follow the guide at the end of this document.

On the USB port, `USB_D+` is shorted to `SWDIO` and `USB_D-` is shorted to `SWCLK` so debugging works without disassembly (attach while staying in the bootloader). Installing [IronOS-dfu](https://github.com/Ralim/IronOS-dfu) is recommended as it allows reliable flashing of binary files with [dfu-util](http://dfu-util.sourceforge.net/).

## Mac

sgr1ff1n (Shane) commented in [issue 11](https://github.com/Ralim/IronOS/issues/11) that upgrading worked on their Mac as per normal:

> I just wanted to say that I was able to update the firmware on my TS100 from the stock version to 1.08 found in this repository using my Mac. I simply followed the same steps however through Finder. I have a MacBook Pro (13-inch, Mid 2012) running Sierra 10.12.4 (16E195).

## Linux

While in the past there were reports of unreliable upgrades, the consensus in [issue 11](https://github.com/Ralim/IronOS/issues/11) is that things work mostly as expected in Linux.

@awigen has contributed a script [flash_TS100_linux.sh](https://raw.githubusercontent.com/Ralim/IronOS/master/Flashing/flash_TS100_linux.sh) that works on Ubuntu 16.04 as well as other distros.

If you want to do it manually (or if the script does not work for some reason) the general procedure is the same as for Windows, the differences are in the way to mount the unit and copy the firmware.
Remember that after flashing, the firmware filename will have changed to end in `.RDY` or `.ERR` or `.NOT` and only `.RDY` means the flashing was successful!

- The unit has to be mounted as `msdos` type (thanks @balrog-kun for having spotted it). You may disable automount, but unmounting the automounted drive and remounting as `msdos` works fine. You do not need to turn off automounting, but you do need to unmount the device with `umount`.
- It is recommended to use an all-caps filename for the firmware, even if successful flashing were done with lower case names.
- Avoid USB hubs, plug directly in your computer.
- If it fails, try again several times without unplugging. Just let it remount.

Example, to be run as root, once the unit has been plugged in DFU mode and auto-mounted:

```bash
FW=TS80.hex
unset NAME
eval $(lsblk -P -p -d --output NAME,MODEL|grep "DFU[ _]Disk")
[ -z ${NAME+x} ] && exit 1  # Could not find DFU device
umount "$NAME"
mkdir /tmp/mntdfu
mount -t msdos "$NAME" /tmp/mntdfu
cp "$FW" "/tmp/mntdfu/$(basename $FW|tr a-z A-Z)"
sync
umount /tmp/mntdfu
rmdir /tmp/mntdfu
```

Device will reboot and automount will rerun if not disabled.
Check the extension of your firmware, it should be `.RDY` now.

## FAQ

#### The file is showing up with the extension `.ERR`

This can occur during the programming process if any of the checks in the bootloader fail. This is often triggered by anti-virus software or using a non-Windows host OS.

First, try just copying the file a second time.

1. Attach the iron in DFU mode.
2. Copy the `.hex` file to the device.
3. The device disconnects and connects with the `.ERR` file.
4. Copy the same `.hex` file again **⛔ DO NOT TRY AND DELETE THE OLD ONE ⛔**.
5. The device will disconnect and reconnect again.
6. The device _should_ now have the `.RDY` file.
7. You're done.

If this fails and you are on Mac or Linux reading the wiki page about programming can help. There is also a very long issue thread going through all of the different attempts around this too.

If you are on Windows, it's often best to try another computer (friends, work, partners etc.).

#### Device randomly disconnects or does not show up in DFU mode

1. Check if the USB cable you are using has the data pins; test it on another device. There are a surprisingly large number of micro-USB cables that are power _only_.

2. Try other USB ports. Often different USB controllers will interact with the units differently due to design quirks in the Miniware design.

### Alternative bootloader

If you are an advanced user, and you have used `usb-dfu` tools before, or you would like to learn; there is an alternative bootloader for these irons.
This will **NOT** show up as a USB storage drive, but instead show up using a standard DFU protocol device. You can then use dfu tools or GUIs to upgrade the iron using the `.bin` files that are posted to the releases page.

To install this alternative bootloader, follow the instructions [here](https://github.com/Ralim/IronOS-dfu/blob/mainline/docs/Bootloader.md).

Note that this is only recommended for users who know what they are doing. If you don't understand how this works, please don't flash this.


================================================
FILE: Documentation/GettingStarted.md
================================================
# Getting Started

Getting started with IronOS on your Pinecil/TS80/TS80P/TS100.
If your device did not come with IronOS already installed, or if you need to update to the latest version; please see the flashing guide for your device:

- [MHP30](https://ralim.github.io/IronOS/Flashing/MHP30)
- [Pinecil V1](https://ralim.github.io/IronOS/Flashing/Pinecil%20V1/)
- [Pinecil V2](https://ralim.github.io/IronOS/Flashing/Pinecil%20V2/)
- [TS80 / TS80P](https://ralim.github.io/IronOS/Flashing/TS80%28P%29/)
- [TS100](https://ralim.github.io/IronOS/Flashing/TS100)

It is recommended to update to the newest stable release when you first receive your device to ensure you are up to date.

Once your Iron has been flashed, on first power on it _may_ warn you about the system settings being reset.
_Do not panic_; this is 100% completely normal. This is here to note to you that they have been reset to handle the internal structure changing.

If you receive a warning about the accelerometer or USB-PD not being detected, please see [here](https://ralim.github.io/IronOS/HardwareIssues/).

## The Home screen (or idle screen)

This is the landing page of the firmware, from here you can choose to either go into the [settings menu](#Settings-Menu) or go into [soldering mode](#Soldering-Mode).

By default this will show a screen similar to the one below:

![Home Screen](https://raw.githubusercontent.com/Ralim/IronOS/dev/Documentation/images/HomeScreen.png)

Note that this may be drawn mirrored depending on the orientation of your screen (detailed mode shows a different home screen).

The soldering iron symbol on the screen will appear near the tip. This is here to indicate that pressing the button closest to the front of the iron will enter soldering mode.

And naturally, the slider controls icon (or spanner icon in older versions) represents that pressing the button near the rear of the soldering iron will enter the settings menu.

In the settings, you can turn on a detailed idle screen instead. The buttons still function the same, however, the image will be swapped for a text telling you the current status of the iron with extra details.

Depending on how your device is being powered, at right side of the screen, the firmware will either show the voltage your unit is being provided with, a battery icon (if battery mode is enabled) or a power plug icon.

If you see an (**X**) where the soldering iron should be, this indicates that the firmware can't see the tip connected. This could indicate a problem with the iron or tip. First, try removing the tip screw and tip and gently reinstalling both; ensure that the tip is seated all the way back. If the issue persists please see the [hardware issues section](https://ralim.github.io/IronOS/HardwareIssues/).

This OLED screen features burn-in protection; if no buttons or movement have been detected for a while it will automatically blank the screen to reduce burn-in when the iron is left unattended. Any movement or button press will wake the screen.

### Hidden Extras

Additionally to the two icons shown, there are two "hidden" actions that can be performed on this menu.

On devices that do not support profile mode, if you press and hold the button near the tip (`+/A`), this enters the temperature adjustment screen. Normally this is not required; but if you would like to adjust the set temperature _before_ the tip starts to heat, this can be useful.

If you press and hold the button near the rear of the iron (`-/B`), it will take you into the [debug menu](https://ralim.github.io/IronOS/DebugMenu/).

## Soldering Mode

When you press the button to enter the soldering mode, the iron will instantly start to heat up the tip.

The firmware defaults to 320 °C as the set point for the soldering mode, however on this screen you can enter into the adjustment screen by pressing either button.

Pressing and holding the button near the tip will enter **Boost** mode. This allows a temporary override of the set temperature to a higher (or lower) value. This can be useful as a way to force the tip to a higher temperature to drive more wattage into a large joint when the thermal connection is not ideal.

Pressing and holding the rear button will exit soldering mode and land you back at the home screen. You can also do this by pressing both buttons at once and this will also work, this is a bit harder to do but is kept for compatibility with the Miniware firmware.

Pressing and holding **both** buttons at once will enter locked mode, which will prevent the buttons from doing anything. You can in the settings allow boost mode in locked mode optionally. This can be useful if you find yourself hitting the buttons and entering into the temperature adjustment screen by accident.

### Idle Sleep

If the iron detects a period of time without any significant movement, it will enter sleep mode. This is indicated with a screen graphic similar to Zzzz (or text in detailed mode).

In Sleep mode, the temperature of the iron automatically lowers to 150 °C (default), which is just below the melting point of the solder. This helps reduce rate of oxidation and damage to the iron tip. In general, when not using the iron, unplug it or let it sleep to increase the longevity of replaceable tips. The default sleep temperature can be customized.

Simply picking up or moving the iron will wake it back up into soldering mode. You can also press any button and this will also wake the iron up.

#### Optional Hall Effect Feature (Pinecil only):

Pinecil has an unpopulated footprint (U14) for a hall effect sensor (Si7210-B-00-IV). Adding the sensor and placing a neodymium magnet on the holder stand will trigger Pinecil to sleep after it enters the stand, and Zzzz will appear on-screen. The magnet is positioned on the stand in proximity to the sensor/handle which then activates one of 10 user defined settings (0=off, 1=lowest sensitivity, 9=highest sensitivity). Read the Hall Sensor document for [details on installation](https://ralim.github.io/IronOS/HallSensor/).

### Idle Shutdown

If, after entering sleep mode, the iron still does not see movement for a much longer time (default=10 minutes); it will shut down and return to the home screen.

## Profile Mode (MHP30 only)

On devices that support it, a long press on `(+/A)` takes you into profile mode, which initiates the profile selected in the relevant settings.

Profile mode plays out as follows:

1. Check if the temperature is below 55C. If not, you will get a warning and cannot enter profile mode.
2. Preheat by raising the target temperature to the configured preheat temperature with the configured preheat speed.
3. Wait for the device to reach the preheat temperature.
4. Gradually move the target temperature to the configured end temperature of the first phase over the configured duration. 
5. Wait for the device to reach the end temperature. 
6. Repeat steps 4 and 5 for the next phases until there are no more phases configured.
7. Cool down by lowering the target temperature to 0 with the configured cooldown speed. 
8. Once the temperature is below 55C, sound the buzzer (if available) and exit profile mode. 

You can manually exit profile mode manually in the same way as the soldering mode, by pressing and holding the rear button or pressing both buttons at once.

## Settings Menu

The settings menu is the most evolving aspect of the firmware, so each option is not documented here. However, do not panic, as every menu option has an on-screen description so you don't _need_ to come back here to figure them all out.

To navigate the menu, the two buttons act separately.
The rear button (`-/B`) is pressed to enter the menu and scrolls down the main options, and the other front button (`+/A`) will enter and change the current option.

To see a description of an option, just wait, and after a few seconds, it will scroll across the screen.

The menu is comprised of a 'main menu' of categories and then sub-items that allow you to adjust parameters.

You can long hold buttons to change through options faster, and there is some acceleration when holding the buttons.

There is a small scrollbar that appears along the right edge of the screen to indicate how far through the current list you are (looks like a dot).

Additionally, this scrollbar will blink rapidly when you are on the last value in a range of a sub-menu. For example, if you are in Motion Sensitivity, which has a range of 0 - 9, it will blink when you are at 9.

I highly recommend taking a few minutes to go through all of the options in the menu to get a feel for what you can change, almost every aspect of the internal system is adjustable to suit your needs.

If you want to start over, simply go to Advanced settings > Restore default settings, confirm using the front (`+/A`) button. This sets all menu items to defaults, and keeps the same version firmware.


================================================
FILE: Documentation/HallSensor.md
================================================
# Hall Effect Sensor

## Sleep Mode Menu

In sleep mode, the iron automatically lowers the temperature to 150°C (default). This default setting was chosen as it is just below the melting point of a wide range of solders. A lower standby temperature helps reduce the oxidation rate and prevent damage to the soldering tips. As a general rule, when not in use, unplug the unit or let it go into sleep mode to extend the life of the replaceable tips. The default sleep temperature can be adjusted to your preference.

Simply moving the iron or pressing any button will wake it back up into soldering mode. The sensitivity is adjustable. It is recommended to adjust this to suit your environment so that it reliably stays in sleep mode when not in use, but does not go into sleep mode when in use. (This may vary depending on the amount of movement during soldering.)

### Optional Hall Effect Feature (Pinecil (v1/v2) only):

Inside the [Sleep Menu](https://ralim.github.io/IronOS/Settings/#setting-sleep-temp) is an additional type of sleep setting. Pinecil has an unpopulated footprint (**U14**) for a hall effect sensor, Silicon Labs **Si7210-B-00-IV**. After installing the hall effect sensor (HES), it is possible to auto-trigger Pinecil to enter sleep mode when it enters the stand, and _Zzzz_ will appear (or text in detailed mode). This could be a fun enhancement for any Pinecil and adds a feature typically only found in more expensive high-end irons. The HES is available at many electronic stores for ~$2-$6.

After installing the HES on the PCB, place a magnet on the stand close enough to the sensor to activate one of ten user selectable settings.

- 0=off, 1=1000, 2=750, 3=500, 4=250, 5=150, 6=100, 7=75, 8=50, 9=25 (9 has the highest sensitivity to magnets)
- Setting of 1 might be used if you solder on PCBs with magnets and do not wish Pinecil to auto-sleep constantly. A very strong/large magnet would be required on the stand to activate the sleep mode if you use setting 1.
- Setting of 9 would be useful if you only had a small magnet and are not concerned about Pinecil falsely triggering sleep mode near magnetized items/tools.
- Actively watch the _hall_ number change while you slowly move the magnet around to seek the best locations & whether you have too many or too few magnets. Position the magnet(s) where you have the highest hall number will ensure consistent sleep mode when you place the iron in the stand. This requires some experimenting.
- [See debug menu for how to display the _Hall_ number](https://ralim.github.io/IronOS/DebugMenu/)
- Note that the sensor is physically located near the copper contacts for the tip at the front of the handle. [Reference Schematics U14](https://files.pine64.org/doc/Pinecil/Pinecil_schematic_v1.0a_20201120.pdf).
- Neodymium magnets are recommended. If using small magnets, 2-3 may be required, but too many could also be detrimental.
- Positioning/type/quantity of magnets is important for best results. Sometimes too many magnets breaks the effect by distorting the magnetic field **[as seen in this demo video](https://www.youtube.com/shorts/afkqKwCX00I)**. The video shows magnets at the top of the stand, and the pinecil goes correctly into Zzzz with _only_ those magnets. When more magnets are added at the side, the Pinecil did not go to sleep, which is contrary to the goal. See the PDF below for details on magnetic fields with SI7210-B.
- Orientation of North and South faces of magnets is important to increase reaction of the hall sensor [see data sheet SI7210-B-00-IV](https://www.silabs.com/documents/public/application-notes/an1018-si72xx-sensors.pdf).


================================================
FILE: Documentation/Hardware.md
================================================
## Notes on the various supported hardware

Below are short summaries / notes around the hardware. This is not an in-depth comparison of the features of the units. Please do your own research before purchasing.

Due to descisions out of our control, Miniware no longer provides source-code/schematics/support for any open source firmware on their devices. This does mean that only (TS100/TS80/TS80P) are "open" to any extent. TS80P is pushing that as it was never open at all but just happens to be very close to the TS80. While this generally shouldn't affect the performance of the device, it does mean that their newer products can be slow to be supported or some issues are harder to resolve.

Sequre has so far been supportive of the S60 by providing schematics.

The Pine64 units (Pinecil) are schematics-available (i.e you can download them on the Pine64 Wiki). They are currently the only vendor that has provided financial support of the project. They are also the only vendor that allows contact directly to the engineering teams for hardware issues. This results in generally better support for these devices. It does **not** mean that this firmware is designed around them, but it does help however that they are designed with this firmware in mind as Ralim talks to them. Where possible features are designed to work across all devices but the time for support may vary depending on the hardware and its quirks.


## A quick note on power supplies

For all devices listed **except** the MHP30:

These soldering irons do *NOT* contain DC/DC converters.
This means that your power at the tip is a function of the supplied voltage. Just because the iron "supports" running at a wide range of voltages, you should always use a voltage near the upper limit where possible.
It is highly recommended to use a PD adapter where possible as this allows the iron to _know_ the limitations of your supply.
The marked irons can only turn the tip on and off in software, this means that they can't control the maximum power drawn from the supply. This is why when using PD the iron may select a lower voltage than your power supplies maximum. This is to prevent your power supply failing from over current. For more information about power management underhood, please, [see the related documentation section](https://ralim.github.io/IronOS/Power/).

For the MHP30, it contains a buck DC/DC, which means it can utilise most power supplies fairly well, but you should still aim for highest voltage that is reasonable to use.


### TS100

The TS100 was the first supported soldering iron, and is generally a very capable device.
Its now generally not reccomended to buy new as other devices have all of its features and more, and can often be the same price or cheaper. It's still fully supported though, nothing will be taken away from it.

- can run from 9-25V DC;
- provides a power range that is determined by the input voltage;
- voltages below 12V don't overly work well for any substantial mass;
- the original firmware can be found [here](https://e-design.com.cn/en/NewsDetail/4203645.html)([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)).

![](https://brushlesswhoop.com/images/ts100-og.jpg)

### TS101

The TS101 is the direct replacement of the TS100 with the same tip compatibility.
It adds a spring pressure tip holding mechanism instead of using a screw so tips are easier to swap on the fly (But are held less securely and can pull out depending on the use case). It adds USB-C PD support and the hardware is compatible with 28V EPR power supplies (under both IronOS and official firmware).

It unfortunately uses an STM32 clone MCU with quirks, so performance of the screen isn't as good as it could be but its perfectly usable. The bootloader for programming is the biggest weakness of this device and programming can be a pain. Fortunately, IronOS is relatively stable feature wise, so you shouldn't need to update the device often.

The Miniware bootup logo is burned into their bootloader, so IronOS cant remove this. IronOS can show your own logo when it starts however. There are quirks to loading a logo on this device, so be sure to read the documentation if you are coming from other devices.

### TS80

TS80 is a successor to TS100, it moves to custom smaller tips that perform better at lower wattages. It is optimised for a 9V/2A Quick Charge 3.0 power supply. This is commonly found on older power banks on the USB-A port.
It does **not** support USB-PD and will not work when powered from a USB-C power supply in most cases.

- uses _Quick Charge 3.0_ / _QC3_ capable charger only (18W max);
- doesn't support PD as it is not designed on the hardware level;
- the original firmware can be found [here](https://e-design.com.cn/en/NewsDetail/4203645.html)([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)).

![Image of TS80](https://core-electronics.com.au/media/catalog/product/4/2/4244-01.jpg)


### TS80P

The TS80P is the direct successor to the TS80 and essentially what the TS80 should have been from its debut. It is nearly identical except it adds USB-PD support for far better compatibility with modern power banks as well as a faster tip removal method.

- supports _Quick Charge 3.0_ (_QC3_: 9V/2A,12V/1.5A 18W max);
- supports _Power Delivery_ (_PD_: 9V/3A & 12V/3A, 30W max)\*\*;
- the original firmware can be found [here](https://e-design.com.cn/en/NewsDetail/4203645.html)([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)).

\*\*: use valid PD device that supports 12V/3A as power source to get full 30W potential, otherwise the iron will fall back to 9V/18W power mode.

![](https://static.eleshop.nl/mage/media/catalog/product/cache/10/image/800x/040ec09b1e35df139433887a97daa66f/s/-/s-l1600_5.jpg)


### MHP30

MHP30 is a **M**ini **H**ot **P**late:

- accelerometer is the MSA301, this is mounted roughly in the middle of the unit;
- USB-PD is using the FUSB302;
- the hardware I2C bus on PB6/7 is used for the MSA301 and FUSB302;
- the OLED is the same SSD1306 as everything else, but it’s on a bit-banged bus;
- the original firmware can be found [here](https://e-design.com.cn/en/NewsDetail/4203645.html)([mirror backup](https://github.com/Ralim/IronOS-Meta/tree/main/Firmware/Miniware)).


### Pinecil

Pincecil:

- first model of soldering iron from PINE64;
- the default firmware can be found [here](https://files.pine64.org/os/Pinecil/Pinecil_firmware_20201115.zip).

![](https://pine64.com/wp-content/uploads/2020/11/pinecil-bb2-04.jpg?v=0446c16e2e66)




================================================
FILE: Documentation/HardwareIssues.md
================================================
# Hardware Issues

While we would love everything to work perfectly, sometimes that just doesn't happen.
Please do not email maintainers directly, these will generally be ignored.
Keep issue discussions to GitHub issues or the discussions page so that the whole community can help and work together.

## No Accelerometer detected

If your iron was previously working, this could be a bug (and we are very sorry). Please check the currently open and recently closed issues to check if anyone else has run into this. You can try going back to a release on the firmware to test if this is a new issue before opening an issue.

If this is a new iron, also feel free to open an issue if you don't see any; a vendor _could_ have changed the model of the accelerometer on us without warning _again_. In which case, support should come shortly.

If your iron is new, there is a slim chance your accelerometer may be DOA and need replacement.

**Note this warning will only be shown the first few times until settings are reset**

## No USB-PD IC detected

Generally, this means either something went very awry in the firmware, or the chip is not answering as would normally be expected. Try rolling back to an earlier release to confirm if the issue still persists then the device may need repair. If you have some form of seller protection/support, you most likely want to reach out to this to be safe. If you don't, you can always attempt to replace the IC yourself. As of writing both the TS80P and Pinecil use the FUSB302.

**Note this warning will only be shown the first few times until settings are reset**

## No tip detected

If your tip is not being detected, the most likely cause is that the heater element inside the tip has been damaged from over-temperature, being dropped or bad luck. As the heater coil is part of the temperature measurement circuit neither will work if it's damaged.

The best way to see if this is the case is to measure the resistance across the contacts to the tip using a multimeter.
you are expecting to see measurements in the range of 4-10 ohms. Anything higher than 10 ohms is _generally_ an issue.

## Iron will not heat up and displays a high temperature
Check the Rtip and CHan numbers ([see debug menu](https://ralim.github.io/IronOS/DebugMenu/)). Extremly high CHan is suspect to a problem with the cold junction compensation temperature sensor.

For Pinecil V1, inspect near U10 which is the TMP36 sensor ([see issue here](https://github.com/Ralim/IronOS/issues/1234)). You may be able to reflow/resolder the TMP36 chip at U10 to correct a weak solder joint.

If it worked on older firmware, but not on 2.16+, weak solder joints are suspect. The newer firmware runs the ADC a bit faster to keep tighter control of the tip temperature. Normally this wont cause an issue as the output from the TMP36 is powerful enough to keep up without any issue. But if you have a weak or cold solder joint this could cause issues.

If the CHan is extremely high, and reflowing the temperature sensor does not resolve the issue; inspect the pins in the main MCU, possibly try giving them a light squeeze to the board while watching CHan.

If you have a different device, follow the same logic and locate the temperature sensor on your device.


================================================
FILE: Documentation/History.md
================================================
# Version Changes

## v2.23


### High level changes

- Miniware I2C changed to bit-bang for improved compatibility with newer devices with STM32 clone IC's
- Looping Boot Logo option (loops until button press)
- More fixes for GD32 clones with Miniware devices
- Bluetooth BLE is off by default (security)
- Large internal code refactoring to make the screen drawing more flexible for larger OLEDs
- Further improvements to drawing on larger screen resolutions
- 4 Ohm tip support on Pinecil 1/2 + TS10x (Note this is at your own risk, not all hardware is designed for this)
- Fixes for PPS mode on some USB-PD supplies
- Rework of thermal runaway detection
- Fixes to the ID numbers used for operating modes over BLE
- Rework of the I2C on PinecilV2 to remove issues with temperature regulation and screen glitching
- Default for USB-PD negotiation changed to use "safe" profile, to be conservative in selecting voltages.
- Fixes for USB-PD to implement device capabilites. This should fix unit reboot issues with some laptops
- Looots of translation & documentation updates ❤️
- Fixes for RTOS issues / updated FreeRTOS version
- Multiple fixes for _MHP30_ to help with clone STM32's
- Share missing settings over _BLE_ for _Pinecil V2_
- Add code for `ws2812b` LED mod for _Pinecil V2_ (Must be hand compiled).
- Add option to swap A/B buttons in Settings menu
- Disable _"double slide"_ animation between home and soldering screens if detailed view is set for both modes.


## v2.22

### New Hardware Support

#### Sequre S60

The [Sequre S60](https://sequremall.com/products/sequre-s60-nano-electric-soldering-iron-support-pd-qc-power-supply-compatible-with-c210-soldering-iron-tips-precision-electronic-mobile-phone-repair-tool-anti-static-soldering-pen?variant=42361945096380) uses JBC tips, which makes it quite useful for the smaller tip types and extra options available.

#### TS101

The TS101 is the evolution of the TS100, picking up USB-PD.
It has otherwise similar tip support to the TS100/Pinecil/PinecilV2.

Absolutely massive kudos goes to @VioletEternity for her work on the reverse engineering of this. If you at all are helped by IronOS running on this device more credit goes to her than to I. Also big thanks to @whitequark for organising + supporting + magic.

### Features & changes

#### PinecilV2 notes

1. BLE is fixed on all devices.
2. Bootup Logo support is finalised and working.
3. Improved the tip control, improving accuracy and remove most oscillations.

#### Profile heating mode for MHP30

This lets you define a heat profile and run this profile akin to a proper reflow device.
This can be used on the MHP30 by long-holding the A button (aka start button).
Profile can be edited in settings.

#### Note on newer OLED's

To prevent this release being held up forever, the TS101 and S60 are being released with a limitation on the OLED screen.
The current code will only draw to the upper left corner of the screen.
Assets have been made for rendering this at full size, but the code is not complete yet.

#### Smaller updates

- Filtering added to MHP tilt-exit to make it less sensitive
- Warning if a tip is detected to be shorted (TS101 + PinecilV2)
- Translation updates ❤️
- Documentation updates
- Lots of tooling and code cleanups


## v2.21

### Features & changes

- Bluetooth Low Energy support for PinecilV2
- Large cleanup of translation files; and refactor of how we handle fonts for translations
- Fixes for I2C corruption on PinecilV2
- Option for using adjustable profiles on USB-PD or not
- Cleanups and improvements to the generated [documents website](https://ralim.github.io/IronOS)

### PinecilV2 notes

For Pinecil V2 users blisp is currently my recommended CLI tool for updating the device. It is built for all main OS's automatically. This does not apply to V1 devices. If your iron came with a blue grip, its a V1 and update the same as always. If your device came with a green silicone grip its a V2 device.

Alternatively you can use Spagett1's PineFlash tool that should provide a GUI interface for PinecilV1 & PinecilV2.

For a small number of V2 Pinecil devices there appears to be an interference issue between the Bluetooth Low Energy and some devices; more information here. If this occurs to you, please let us know in the issue and rollback to 2.20 for now.


## v2.20

- First "full" release for PinecilV2
- Loots of documentation updates
- Documentation is [now nicely readable as a site](https://ralim.github.io/IronOS/GettingStarted)
- A fair collection of bugfixes for PinecilV2
- Cold Junction Calibration was reworked and now occurs _at next boot_ to make it easier to perform when the device is cold


## v2.19

- Bug-fix Infinite Boot Logo
- Shutdown settings for MHP30
- Accelerometer sensitivity for MHP30
- Allow showing unique device ID
- Bug-fix chance of a power pulse at device boot
- Updated translations
- Improved documents, added features table


## v2.18

- Support for animated bootup logo's
- Bootup logo's moved to their own IronOS-Meta repo
- New Vietnamese translation (limited due to screen size)
- Fixes for SC7A20 in TS80(P)
- Updated translations
- Better Instructions/documents


## v2.17

### Features & changes

- Indicate status of VBus for modding Pinecil (debug menu)
- Better hall effect sensor sensitivity adjustment (larger range with more steps)
- Temperature increment will "round" to nearest multiple of increase amount
- Build setup migrated to Alpine (You can now build in docker easily, and on PinePhone/PinePhonePro)
- -> Removed proprietary compiler for Pinecil RISCV now all uses normal gcc
- -> Removed using the arm specific build of gcc for the one that alpine ships (Miniware devices)
- Logo generator python script creates `.dfu` files for ease of use with Pinecil
- Upgrades to translations
- Support for new GD32103 based TS100 units turning up on the market
- Raw hall effect reading now shows in the Pinecil debug menu
- Fixed automatic orientation for newer TS80P's with the SC7 accelerometer
- User interface slight changes
- New `metadata.zip` file to allow the Pine Updater to automatically fetch information on releases

### Notes

- VBus mod detection may not play well with all PPS chargers. If your iron reboots when you view this in the debug menu its not a fault. ([#1226](https://github.com/Ralim/IronOS/issues/1226))
- `metadata.zip` is only designed for use by automatic software, ignore it for normal use
- More details on Pinecil VBus mod coming via other channels.
- Hall effect sensor is not fitted to Pinecil's by default, you have to fit this yourself if you want the feature
- Tweaks to the Accelerometer code means the drivers are slightly more fussy. If you run into any issues let us know in the discussion or issues.
- -> Release has been updated to build `e065be3` after one bug with the BMA223 was found.


## v2.16

- Overhaul of the Timer+ADC setup with help from @sandmanRO
- Overhaul of the PID with help from @sandmanRO
- Settings _should_ now upgrade in place to future versions, with resets only happening to new/changed settings
- Shows error if tip runaway (failed temperature sensor) is detected
- USB-PD now has a timeout, to allow forcing QC3 negotiation to start faster
- QC3 Voltages are now adjustable to user desired setpoint
- Added a small tolerance to allow "overvoltage" on QC3 above unit specifications.
    - Please note: Doing this is entirely at your own risk!
- New Advanced view that is much nicer to use and a very good daily driver option from @Mel-kior
- OLED brightness and contrast thanks to @alvinhochun
- Scrollbar is fixed so it doesnt jump around when menus are shown/hidden
- Moved to `.dfu` files from `.bin` to make flashing commands easier
- Every language had translation updates I believe
- Romanian language added


## v2.15

### Features & changes

- MHP30 support
- Multi-lingual firmware combinations now exist for Pinecil
- More fine grained voltage controlled options
- USB-PD improvements (version one and two)
- More configuration options for power pulse
- All font / character encoding has been very reworked
- More translation updates than one can count
- More languages 😱

### MHP30 support

The MHP30 is a small reflow station from Miniware.
Thanks to a massive amount of help from @g3gg0 this firmware brings the beginnings of support for this unit.
Also kudo's to @Vinigas  and @GoJian for helping with testing.
This is not a _final_ version I'm sure, but this is a working, usable version of firmware support.
Programs the same as any one Miniware unit using drag and drop.
**Note: The boot logo scripts will need updates for this unit, so not supported yet.**

The flood doors are now open for feature requests for this unit :)


## v2.14

- Fixing auto rotation bug in the LIS accelerometer in the TS80/TS80P
- Adds support for two new accelerometers
  -- SC7A20 (Future Pinecil batch) #786
  -- MSA301 (Newer TS80P) #761
- Add warnings if accelerometer or USB-PD IC's are not detected #752
  -- Only shows for first few boots, to help catch unsupported models
- Fixed cooling down blink to be sane speed #769
- Cleanup of threads and slightly faster power negotiation #790

- Updates to flashing scripts #775
- Documentation updates all over the place (and the wiki was given a cleanup)|
- Updates to makefile #792 #787
- Cleanup the folder name of the source code #800
- clang-format spec setup #801


## v2.13

- First _official_ Pinecil release
- All of the wire for Pinecil releases added
- Updated Translations
- Delay accelerometer to help with entering sleep on startup
- Dual speed PWM to help with power limit control
- Improve heat up time
- Adds locking mode
- Improved docs all over the place
- Repo rename occured TS100 -> IronOS
- Hall effect sensor support added (not fitted in Pinecil but optional)
- QC 20V support for Pinecil
- CI upgrades for faster builds
- Fixed bug with accelerometer model on Pinecil
- Rework of all of the temperature curves for better accuracy


## v2.12

- Only released as pre-release
- [TS80P] Improvements to the PD negotiation to handle a few more adapters cleanly
- Pause on the last item in a list
- Clean up the menu (removed both enables and settings, so that you can turn things off easier)
- Removing the very old single line menu style.


## v2.11

- First TS80P support
- Added in a USB-PD driver stack for the FUSB302
- Fixed some graphical glitches


## v2.10

- GUI polish (animations and scroll bars)
- Power pulse to keep power supplies alive
- Adjustable tip response gain


## v2.09

- Adjustable steps in temperature adjustment
- Git hash now in build string
- Adjustable language to set if US units are available or not
- Some minor QC3 improvements


## v2.08

- Fixes auto start in sleep mode
- Power limiters


## v2.07

- QC fixes
- Cosmetic fixes for leading 0's


## v2.06

- Warning on settings reset
- Temp temp re-write
- Display calibration offset
- Hide some leading 0's
- Menu timeouts


## v2.05

- Language updates


## v2.04

- GUI updates


## v2.03

- Support for new accelerometers


## v2.02

- Adds small font


## v2.01

- Newer settings menu


## v2.00

- Complete re-write of the low layer system to use the STM32 HAL for easier development
- This allowed easier setup for the new ADC auto measuring system
- Better tip PWM control
- Moved to FreeRTOS for scheduling
- Complete re-write from blank
- Added detailed screen views
- Added smaller font for said screen views


## v1.17

- Added blinking cooldown display
- Allowed smaller sleep timeout values
- New font!
- Automatic startup option


## v1.16

- Added automatic rotation support
- Added power display graph


## v1.15

- Added support for a custom bootup logo to be programmed via the DFU bootloader


## v1.14

- Changed input voltage cutoff to be based on cell count rather than voltage


## v1.13

- Swapped buttons for menu to prevent accidentally changing first menu item
- Added auto key repeat


## v1.12

- Increases sensitivity options to be 1\*9 with 0 off state
- Fixes issue where going from COOL \*> soldering can leave screen off


## v1.11

- Boost mode
- Change sensitivity options to be 1\*8


## v1.10

- Adds help text to settings
- Improves settings for the display update rate


## v1.09

- Adds display modes, for slowing down or simplifying the display


## v1.08

- Fix settings menu not showing flip display


## v1.07
Download .txt
gitextract_r8x0x9vd/

├── .flake8
├── .gitattributes
├── .github/
│   ├── FUNDING.yml
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   ├── everything-else--questions--notes-etc-.md
│   │   └── feature_request.md
│   ├── dependabot.yml
│   ├── pull_request_template.md
│   ├── security.md
│   └── workflows/
│       ├── docs.yml
│       └── push.yml
├── .gitignore
├── .gitmodules
├── Development Resources/
│   ├── TS100/
│   │   ├── KiCad/
│   │   │   ├── MCU_SubBoard.sch
│   │   │   ├── TS100.pro
│   │   │   └── TS100.sch
│   │   └── TS100.ioc
│   └── TS80/
│       ├── TS80-Bootloader.hex
│       └── TS80.ioc
├── Documentation/
│   ├── Bluetooth.md
│   ├── DebugMenu.md
│   ├── DebuggingPD.md
│   ├── Development.md
│   ├── Flashing/
│   │   ├── MHP30.md
│   │   ├── Pinecil V1.md
│   │   ├── Pinecil V2.md
│   │   ├── TS100.md
│   │   └── TS80(P).md
│   ├── GettingStarted.md
│   ├── HallSensor.md
│   ├── Hardware.md
│   ├── HardwareIssues.md
│   ├── History.md
│   ├── Logo.md
│   ├── Menu.md
│   ├── PortingToNewDevice.md
│   ├── Power.md
│   ├── PowerSources.md
│   ├── README.md
│   ├── Settings.md
│   ├── Temperature.md
│   ├── Translation.md
│   ├── Troubleshooting.md
│   ├── WS2812BModding.md
│   └── index.md
├── Env.yml
├── LICENSE
├── Makefile
├── README.md
├── Translations/
│   ├── BitmapEditor.html
│   ├── README.md
│   ├── brieflz.py
│   ├── brieflz_test.py
│   ├── font_tables.py
│   ├── gen_menu_docs.py
│   ├── make_translation.py
│   ├── make_translation_test.py
│   ├── migrate.py
│   ├── objcopy.py
│   ├── translation_BE.json
│   ├── translation_BG.json
│   ├── translation_CS.json
│   ├── translation_DA.json
│   ├── translation_DE.json
│   ├── translation_EL.json
│   ├── translation_EN.json
│   ├── translation_ES.json
│   ├── translation_ET.json
│   ├── translation_FI.json
│   ├── translation_FR.json
│   ├── translation_HR.json
│   ├── translation_HU.json
│   ├── translation_IT.json
│   ├── translation_JA_JP.json
│   ├── translation_LT.json
│   ├── translation_NB.json
│   ├── translation_NL.json
│   ├── translation_NL_BE.json
│   ├── translation_PL.json
│   ├── translation_PT.json
│   ├── translation_RO.json
│   ├── translation_RU.json
│   ├── translation_SK.json
│   ├── translation_SL.json
│   ├── translation_SR_CYRL.json
│   ├── translation_SR_LATN.json
│   ├── translation_SV.json
│   ├── translation_TR.json
│   ├── translation_UK.json
│   ├── translation_UZ.json
│   ├── translation_VI.json
│   ├── translation_YUE_HK.json
│   ├── translation_ZH_CN.json
│   ├── translation_ZH_TW.json
│   ├── translations_definitions.json
│   └── wqy-bitmapsong/
│       ├── AUTHORS
│       ├── COPYING
│       ├── README.md
│       ├── README_original
│       └── wenquanyi_9pt.bdf
├── scripts/
│   ├── IronOS-mkdocs.yml
│   ├── IronOS.Dockerfile
│   ├── LICENSE_RELEASE.md
│   ├── deploy.sh
│   └── flash_ts10X_linux.sh
└── source/
    ├── .clang-format
    ├── Core/
    │   ├── BSP/
    │   │   ├── BSP.h
    │   │   ├── BSP_Common.c
    │   │   ├── BSP_Flash.h
    │   │   ├── BSP_PD.h
    │   │   ├── BSP_Power.h
    │   │   ├── BSP_QC.h
    │   │   ├── Defines.h
    │   │   ├── MHP30/
    │   │   │   ├── BSP.cpp
    │   │   │   ├── FreeRTOSConfig.h
    │   │   │   ├── IRQ.cpp
    │   │   │   ├── IRQ.h
    │   │   │   ├── Pins.h
    │   │   │   ├── Power.cpp
    │   │   │   ├── QC_GPIO.cpp
    │   │   │   ├── README.md
    │   │   │   ├── Setup.c
    │   │   │   ├── Setup.h
    │   │   │   ├── Software_I2C.h
    │   │   │   ├── Startup/
    │   │   │   │   └── startup_stm32f103t8ux.S
    │   │   │   ├── ThermoModel.cpp
    │   │   │   ├── Vendor/
    │   │   │   │   ├── CMSIS/
    │   │   │   │   │   ├── Device/
    │   │   │   │   │   │   └── ST/
    │   │   │   │   │   │       └── STM32F1xx/
    │   │   │   │   │   │           └── Include/
    │   │   │   │   │   │               ├── stm32f103xb.h
    │   │   │   │   │   │               ├── stm32f1xx.h
    │   │   │   │   │   │               └── system_stm32f1xx.h
    │   │   │   │   │   └── Include/
    │   │   │   │   │       ├── cmsis_armcc.h
    │   │   │   │   │       ├── cmsis_armclang.h
    │   │   │   │   │       ├── cmsis_compiler.h
    │   │   │   │   │       ├── cmsis_gcc.h
    │   │   │   │   │       ├── cmsis_iccarm.h
    │   │   │   │   │       ├── cmsis_version.h
    │   │   │   │   │       ├── core_cm3.h
    │   │   │   │   │       ├── core_sc000.h
    │   │   │   │   │       ├── core_sc300.h
    │   │   │   │   │       └── tz_context.h
    │   │   │   │   └── STM32F1xx_HAL_Driver/
    │   │   │   │       ├── Inc/
    │   │   │   │       │   ├── Legacy/
    │   │   │   │       │   │   └── stm32_hal_legacy.h
    │   │   │   │       │   ├── stm32f1xx_hal.h
    │   │   │   │       │   ├── stm32f1xx_hal_adc.h
    │   │   │   │       │   ├── stm32f1xx_hal_adc_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_cortex.h
    │   │   │   │       │   ├── stm32f1xx_hal_def.h
    │   │   │   │       │   ├── stm32f1xx_hal_dma.h
    │   │   │   │       │   ├── stm32f1xx_hal_dma_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_exti.h
    │   │   │   │       │   ├── stm32f1xx_hal_flash.h
    │   │   │   │       │   ├── stm32f1xx_hal_flash_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_gpio.h
    │   │   │   │       │   ├── stm32f1xx_hal_gpio_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_iwdg.h
    │   │   │   │       │   ├── stm32f1xx_hal_pwr.h
    │   │   │   │       │   ├── stm32f1xx_hal_rcc.h
    │   │   │   │       │   ├── stm32f1xx_hal_rcc_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_tim.h
    │   │   │   │       │   └── stm32f1xx_hal_tim_ex.h
    │   │   │   │       └── Src/
    │   │   │   │           ├── stm32f1xx_hal.c
    │   │   │   │           ├── stm32f1xx_hal_adc.c
    │   │   │   │           ├── stm32f1xx_hal_adc_ex.c
    │   │   │   │           ├── stm32f1xx_hal_cortex.c
    │   │   │   │           ├── stm32f1xx_hal_dma.c
    │   │   │   │           ├── stm32f1xx_hal_exti.c
    │   │   │   │           ├── stm32f1xx_hal_flash.c
    │   │   │   │           ├── stm32f1xx_hal_flash_ex.c
    │   │   │   │           ├── stm32f1xx_hal_gpio.c
    │   │   │   │           ├── stm32f1xx_hal_gpio_ex.c
    │   │   │   │           ├── stm32f1xx_hal_iwdg.c
    │   │   │   │           ├── stm32f1xx_hal_pwr.c
    │   │   │   │           ├── stm32f1xx_hal_rcc.c
    │   │   │   │           ├── stm32f1xx_hal_rcc_ex.c
    │   │   │   │           ├── stm32f1xx_hal_tim.c
    │   │   │   │           └── stm32f1xx_hal_tim_ex.c
    │   │   │   ├── configuration.h
    │   │   │   ├── flash.c
    │   │   │   ├── fusb_user.cpp
    │   │   │   ├── port.c
    │   │   │   ├── portmacro.h
    │   │   │   ├── postRTOS.cpp
    │   │   │   ├── preRTOS.cpp
    │   │   │   ├── stm32f103.ld
    │   │   │   ├── stm32f1xx_hal_msp.c
    │   │   │   ├── stm32f1xx_hal_timebase_TIM.c
    │   │   │   ├── stm32f1xx_it.c
    │   │   │   └── system_stm32f1xx.c
    │   │   ├── Miniware/
    │   │   │   ├── BSP.cpp
    │   │   │   ├── FreeRTOSConfig.h
    │   │   │   ├── IRQ.cpp
    │   │   │   ├── IRQ.h
    │   │   │   ├── Pins.h
    │   │   │   ├── Power.cpp
    │   │   │   ├── QC_GPIO.cpp
    │   │   │   ├── README.md
    │   │   │   ├── Setup.cpp
    │   │   │   ├── Setup.h
    │   │   │   ├── Software_I2C.h
    │   │   │   ├── Startup/
    │   │   │   │   └── startup_stm32f103t8ux.S
    │   │   │   ├── ThermoModel.cpp
    │   │   │   ├── Vendor/
    │   │   │   │   ├── CMSIS/
    │   │   │   │   │   ├── Device/
    │   │   │   │   │   │   └── ST/
    │   │   │   │   │   │       └── STM32F1xx/
    │   │   │   │   │   │           └── Include/
    │   │   │   │   │   │               ├── stm32f103xb.h
    │   │   │   │   │   │               ├── stm32f1xx.h
    │   │   │   │   │   │               └── system_stm32f1xx.h
    │   │   │   │   │   └── Include/
    │   │   │   │   │       ├── arm_common_tables.h
    │   │   │   │   │       ├── arm_const_structs.h
    │   │   │   │   │       ├── arm_math.h
    │   │   │   │   │       ├── cmsis_armcc.h
    │   │   │   │   │       ├── cmsis_armcc_V6.h
    │   │   │   │   │       ├── cmsis_gcc.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
    │   │   │   │   │       ├── core_sc000.h
    │   │   │   │   │       └── core_sc300.h
    │   │   │   │   └── STM32F1xx_HAL_Driver/
    │   │   │   │       ├── Inc/
    │   │   │   │       │   ├── Legacy/
    │   │   │   │       │   │   └── stm32_hal_legacy.h
    │   │   │   │       │   ├── stm32f1xx_hal.h
    │   │   │   │       │   ├── stm32f1xx_hal_adc.h
    │   │   │   │       │   ├── stm32f1xx_hal_adc_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_cortex.h
    │   │   │   │       │   ├── stm32f1xx_hal_def.h
    │   │   │   │       │   ├── stm32f1xx_hal_dma.h
    │   │   │   │       │   ├── stm32f1xx_hal_dma_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_flash.h
    │   │   │   │       │   ├── stm32f1xx_hal_flash_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_gpio.h
    │   │   │   │       │   ├── stm32f1xx_hal_gpio_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_i2c.h
    │   │   │   │       │   ├── stm32f1xx_hal_iwdg.h
    │   │   │   │       │   ├── stm32f1xx_hal_pwr.h
    │   │   │   │       │   ├── stm32f1xx_hal_rcc.h
    │   │   │   │       │   ├── stm32f1xx_hal_rcc_ex.h
    │   │   │   │       │   ├── stm32f1xx_hal_tim.h
    │   │   │   │       │   └── stm32f1xx_hal_tim_ex.h
    │   │   │   │       └── Src/
    │   │   │   │           ├── stm32f1xx_hal.c
    │   │   │   │           ├── stm32f1xx_hal_adc.c
    │   │   │   │           ├── stm32f1xx_hal_adc_ex.c
    │   │   │   │           ├── stm32f1xx_hal_cortex.c
    │   │   │   │           ├── stm32f1xx_hal_dma.c
    │   │   │   │           ├── stm32f1xx_hal_flash.c
    │   │   │   │           ├── stm32f1xx_hal_flash_ex.c
    │   │   │   │           ├── stm32f1xx_hal_gpio.c
    │   │   │   │           ├── stm32f1xx_hal_gpio_ex.c
    │   │   │   │           ├── stm32f1xx_hal_iwdg.c
    │   │   │   │           ├── stm32f1xx_hal_pwr.c
    │   │   │   │           ├── stm32f1xx_hal_rcc.c
    │   │   │   │           ├── stm32f1xx_hal_rcc_ex.c
    │   │   │   │           ├── stm32f1xx_hal_tim.c
    │   │   │   │           └── stm32f1xx_hal_tim_ex.c
    │   │   │   ├── configuration.h
    │   │   │   ├── flash.c
    │   │   │   ├── fusb_user.cpp
    │   │   │   ├── port.c
    │   │   │   ├── portmacro.h
    │   │   │   ├── postRTOS.cpp
    │   │   │   ├── preRTOS.cpp
    │   │   │   ├── stm32f103.ld
    │   │   │   ├── stm32f1xx_hal_msp.c
    │   │   │   ├── stm32f1xx_hal_timebase_TIM.c
    │   │   │   ├── stm32f1xx_it.c
    │   │   │   └── system_stm32f1xx.c
    │   │   ├── Pinecil/
    │   │   │   ├── BSP.cpp
    │   │   │   ├── Debug.cpp
    │   │   │   ├── Debug.h
    │   │   │   ├── FreeRTOSConfig.h
    │   │   │   ├── I2C_Wrapper.cpp
    │   │   │   ├── IRQ.cpp
    │   │   │   ├── IRQ.h
    │   │   │   ├── NOTES.md
    │   │   │   ├── Pins.h
    │   │   │   ├── Power.cpp
    │   │   │   ├── QC_GPIO.cpp
    │   │   │   ├── README.md
    │   │   │   ├── Setup.cpp
    │   │   │   ├── Setup.h
    │   │   │   ├── ThermoModel.cpp
    │   │   │   ├── UnitSettings.h
    │   │   │   ├── Vendor/
    │   │   │   │   ├── NMSIS/
    │   │   │   │   │   └── Core/
    │   │   │   │   │       └── Include/
    │   │   │   │   │           ├── core_compatiable.h
    │   │   │   │   │           ├── core_feature_base.h
    │   │   │   │   │           ├── core_feature_cache.h
    │   │   │   │   │           ├── core_feature_dsp.h
    │   │   │   │   │           ├── core_feature_eclic.h
    │   │   │   │   │           ├── core_feature_fpu.h
    │   │   │   │   │           ├── core_feature_pmp.h
    │   │   │   │   │           ├── core_feature_timer.h
    │   │   │   │   │           ├── nmsis_compiler.h
    │   │   │   │   │           ├── nmsis_core.h
    │   │   │   │   │           ├── nmsis_gcc.h
    │   │   │   │   │           ├── nmsis_version.h
    │   │   │   │   │           ├── riscv_bits.h
    │   │   │   │   │           └── riscv_encoding.h
    │   │   │   │   ├── OS/
    │   │   │   │   │   └── FreeRTOS/
    │   │   │   │   │       └── Source/
    │   │   │   │   │           └── portable/
    │   │   │   │   │               └── GCC/
    │   │   │   │   │                   ├── port.c
    │   │   │   │   │                   ├── portasm.S
    │   │   │   │   │                   └── portmacro.h
    │   │   │   │   └── SoC/
    │   │   │   │       └── gd32vf103/
    │   │   │   │           ├── Board/
    │   │   │   │           │   └── pinecil/
    │   │   │   │           │       ├── Source/
    │   │   │   │           │       │   └── GCC/
    │   │   │   │           │       │       └── gcc_gd32vf103_flashxip.ld
    │   │   │   │           │       └── openocd_gd32vf103.cfg
    │   │   │   │           └── Common/
    │   │   │   │               ├── Include/
    │   │   │   │               │   ├── Usb/
    │   │   │   │               │   │   ├── drv_usb_core.h
    │   │   │   │               │   │   ├── drv_usb_dev.h
    │   │   │   │               │   │   ├── drv_usb_host.h
    │   │   │   │               │   │   ├── drv_usb_hw.h
    │   │   │   │               │   │   ├── drv_usb_regs.h
    │   │   │   │               │   │   ├── drv_usbd_int.h
    │   │   │   │               │   │   ├── drv_usbh_int.h
    │   │   │   │               │   │   ├── usb_ch9_std.h
    │   │   │   │               │   │   ├── usb_conf.h
    │   │   │   │               │   │   ├── usbd_conf.h
    │   │   │   │               │   │   ├── usbd_core.h
    │   │   │   │               │   │   ├── usbd_enum.h
    │   │   │   │               │   │   ├── usbd_transc.h
    │   │   │   │               │   │   ├── usbh_conf.h
    │   │   │   │               │   │   ├── usbh_core.h
    │   │   │   │               │   │   ├── usbh_enum.h
    │   │   │   │               │   │   ├── usbh_pipe.h
    │   │   │   │               │   │   └── usbh_transc.h
    │   │   │   │               │   ├── gd32vf103.h
    │   │   │   │               │   ├── gd32vf103_adc.h
    │   │   │   │               │   ├── gd32vf103_bkp.h
    │   │   │   │               │   ├── gd32vf103_crc.h
    │   │   │   │               │   ├── gd32vf103_dac.h
    │   │   │   │               │   ├── gd32vf103_dbg.h
    │   │   │   │               │   ├── gd32vf103_dma.h
    │   │   │   │               │   ├── gd32vf103_eclic.h
    │   │   │   │               │   ├── gd32vf103_exmc.h
    │   │   │   │               │   ├── gd32vf103_exti.h
    │   │   │   │               │   ├── gd32vf103_fmc.h
    │   │   │   │               │   ├── gd32vf103_fwdgt.h
    │   │   │   │               │   ├── gd32vf103_gpio.h
    │   │   │   │               │   ├── gd32vf103_i2c.h
    │   │   │   │               │   ├── gd32vf103_libopt.h
    │   │   │   │               │   ├── gd32vf103_pmu.h
    │   │   │   │               │   ├── gd32vf103_rcu.h
    │   │   │   │               │   ├── gd32vf103_rtc.h
    │   │   │   │               │   ├── gd32vf103_spi.h
    │   │   │   │               │   ├── gd32vf103_timer.h
    │   │   │   │               │   ├── gd32vf103_usart.h
    │   │   │   │               │   ├── gd32vf103_wwdgt.h
    │   │   │   │               │   ├── n200_func.h
    │   │   │   │               │   ├── nuclei_sdk_soc.h
    │   │   │   │               │   └── system_gd32vf103.h
    │   │   │   │               └── Source/
    │   │   │   │                   ├── Drivers/
    │   │   │   │                   │   ├── Usb/
    │   │   │   │                   │   │   ├── drv_usb_core.c
    │   │   │   │                   │   │   ├── drv_usb_dev.c
    │   │   │   │                   │   │   ├── drv_usb_host.c
    │   │   │   │                   │   │   ├── drv_usbd_int.c
    │   │   │   │                   │   │   ├── drv_usbh_int.c
    │   │   │   │                   │   │   ├── gd32vf103_usb_hw.c
    │   │   │   │                   │   │   ├── usbd_core.c
    │   │   │   │                   │   │   ├── usbd_enum.c
    │   │   │   │                   │   │   ├── usbd_transc.c
    │   │   │   │                   │   │   ├── usbh_core.c
    │   │   │   │                   │   │   ├── usbh_enum.c
    │   │   │   │                   │   │   ├── usbh_pipe.c
    │   │   │   │                   │   │   └── usbh_transc.c
    │   │   │   │                   │   ├── gd32vf103_adc.c
    │   │   │   │                   │   ├── gd32vf103_bkp.c
    │   │   │   │                   │   ├── gd32vf103_crc.c
    │   │   │   │                   │   ├── gd32vf103_dac.c
    │   │   │   │                   │   ├── gd32vf103_dbg.c
    │   │   │   │                   │   ├── gd32vf103_dma.c
    │   │   │   │                   │   ├── gd32vf103_eclic.c
    │   │   │   │                   │   ├── gd32vf103_exmc.c
    │   │   │   │                   │   ├── gd32vf103_exti.c
    │   │   │   │                   │   ├── gd32vf103_fmc.c
    │   │   │   │                   │   ├── gd32vf103_fwdgt.c
    │   │   │   │                   │   ├── gd32vf103_gpio.c
    │   │   │   │                   │   ├── gd32vf103_i2c.c
    │   │   │   │                   │   ├── gd32vf103_pmu.c
    │   │   │   │                   │   ├── gd32vf103_rcu.c
    │   │   │   │                   │   ├── gd32vf103_rtc.c
    │   │   │   │                   │   ├── gd32vf103_spi.c
    │   │   │   │                   │   ├── gd32vf103_timer.c
    │   │   │   │                   │   ├── gd32vf103_usart.c
    │   │   │   │                   │   ├── gd32vf103_wwdgt.c
    │   │   │   │                   │   └── n200_func.c
    │   │   │   │                   ├── GCC/
    │   │   │   │                   │   ├── intexc_gd32vf103.S
    │   │   │   │                   │   └── startup_gd32vf103.S
    │   │   │   │                   ├── Stubs/
    │   │   │   │                   │   ├── close.c
    │   │   │   │                   │   ├── fstat.c
    │   │   │   │                   │   ├── gettimeofday.c
    │   │   │   │                   │   ├── isatty.c
    │   │   │   │                   │   ├── lseek.c
    │   │   │   │                   │   ├── read.c
    │   │   │   │                   │   ├── sbrk.c
    │   │   │   │                   │   └── stub.h
    │   │   │   │                   ├── gd32vf103_soc.c
    │   │   │   │                   └── system_gd32vf103.c
    │   │   │   ├── configuration.h
    │   │   │   ├── flash.c
    │   │   │   ├── fusb_user.cpp
    │   │   │   ├── postRTOS.cpp
    │   │   │   └── preRTOS.cpp
    │   │   ├── Pinecilv2/
    │   │   │   ├── BSP.cpp
    │   │   │   ├── Debug.cpp
    │   │   │   ├── Debug.h
    │   │   │   ├── FreeRTOSConfig.h
    │   │   │   ├── I2C_Wrapper.cpp
    │   │   │   ├── IRQ.cpp
    │   │   │   ├── IRQ.h
    │   │   │   ├── MemMang/
    │   │   │   │   └── heap_5.c
    │   │   │   ├── NOTES.md
    │   │   │   ├── Pins.h
    │   │   │   ├── Power.cpp
    │   │   │   ├── QC_GPIO.cpp
    │   │   │   ├── README.md
    │   │   │   ├── Setup.cpp
    │   │   │   ├── Setup.h
    │   │   │   ├── ThermoModel.cpp
    │   │   │   ├── UnitSettings.h
    │   │   │   ├── bl702_config.h
    │   │   │   ├── bl_irq.c
    │   │   │   ├── bl_irq.h
    │   │   │   ├── bl_mcu_sdk/
    │   │   │   │   ├── LICENSE
    │   │   │   │   ├── ReleaseNotes
    │   │   │   │   ├── bsp/
    │   │   │   │   │   └── bsp_common/
    │   │   │   │   │       └── platform/
    │   │   │   │   │           ├── bflb_platform.c
    │   │   │   │   │           ├── bflb_platform.h
    │   │   │   │   │           ├── cpp_new.cpp
    │   │   │   │   │           └── syscalls.c
    │   │   │   │   ├── common/
    │   │   │   │   │   ├── CMakeLists.txt
    │   │   │   │   │   ├── bl_math/
    │   │   │   │   │   │   ├── arm_dsp_wrapper.c
    │   │   │   │   │   │   └── arm_dsp_wrapper.h
    │   │   │   │   │   ├── device/
    │   │   │   │   │   │   ├── drv_device.c
    │   │   │   │   │   │   └── drv_device.h
    │   │   │   │   │   ├── list/
    │   │   │   │   │   │   └── drv_list.h
    │   │   │   │   │   ├── misc/
    │   │   │   │   │   │   ├── compiler/
    │   │   │   │   │   │   │   ├── common.h
    │   │   │   │   │   │   │   └── gcc.h
    │   │   │   │   │   │   ├── misc.c
    │   │   │   │   │   │   └── misc.h
    │   │   │   │   │   ├── partition/
    │   │   │   │   │   │   ├── partition.c
    │   │   │   │   │   │   └── partition.h
    │   │   │   │   │   ├── pid/
    │   │   │   │   │   │   ├── pid.c
    │   │   │   │   │   │   └── pid.h
    │   │   │   │   │   ├── ring_buffer/
    │   │   │   │   │   │   ├── ring_buffer.c
    │   │   │   │   │   │   └── ring_buffer.h
    │   │   │   │   │   ├── soft_crc/
    │   │   │   │   │   │   ├── softcrc.c
    │   │   │   │   │   │   └── softcrc.h
    │   │   │   │   │   └── timestamp/
    │   │   │   │   │       ├── timestamp.c
    │   │   │   │   │       └── timestamp.h
    │   │   │   │   ├── components/
    │   │   │   │   │   ├── ble/
    │   │   │   │   │   │   ├── ble_stack/
    │   │   │   │   │   │   │   ├── bl_hci_wrapper/
    │   │   │   │   │   │   │   │   ├── bl_hci_wrapper.c
    │   │   │   │   │   │   │   │   └── bl_hci_wrapper.h
    │   │   │   │   │   │   │   ├── common/
    │   │   │   │   │   │   │   │   ├── atomic_c.c
    │   │   │   │   │   │   │   │   ├── buf.c
    │   │   │   │   │   │   │   │   ├── dec.c
    │   │   │   │   │   │   │   │   ├── dummy.c
    │   │   │   │   │   │   │   │   ├── hex.c
    │   │   │   │   │   │   │   │   ├── include/
    │   │   │   │   │   │   │   │   │   ├── atomic.h
    │   │   │   │   │   │   │   │   │   ├── errno.h
    │   │   │   │   │   │   │   │   │   ├── misc/
    │   │   │   │   │   │   │   │   │   │   ├── __assert.h
    │   │   │   │   │   │   │   │   │   │   ├── byteorder.h
    │   │   │   │   │   │   │   │   │   │   ├── dlist.h
    │   │   │   │   │   │   │   │   │   │   ├── printk.h
    │   │   │   │   │   │   │   │   │   │   ├── slist.h
    │   │   │   │   │   │   │   │   │   │   ├── stack.h
    │   │   │   │   │   │   │   │   │   │   ├── util.h
    │   │   │   │   │   │   │   │   │   │   └── utils_string.h
    │   │   │   │   │   │   │   │   │   ├── net/
    │   │   │   │   │   │   │   │   │   │   └── buf.h
    │   │   │   │   │   │   │   │   │   ├── toolchain/
    │   │   │   │   │   │   │   │   │   │   ├── common.h
    │   │   │   │   │   │   │   │   │   │   ├── gcc.h
    │   │   │   │   │   │   │   │   │   │   └── xcc.h
    │   │   │   │   │   │   │   │   │   ├── toolchain.h
    │   │   │   │   │   │   │   │   │   ├── work_q.h
    │   │   │   │   │   │   │   │   │   └── zephyr/
    │   │   │   │   │   │   │   │   │       └── types.h
    │   │   │   │   │   │   │   │   ├── log.c
    │   │   │   │   │   │   │   │   ├── log.h
    │   │   │   │   │   │   │   │   ├── poll.c
    │   │   │   │   │   │   │   │   ├── rpa.c
    │   │   │   │   │   │   │   │   ├── rpa.h
    │   │   │   │   │   │   │   │   ├── tinycrypt/
    │   │   │   │   │   │   │   │   │   ├── Kconfig
    │   │   │   │   │   │   │   │   │   ├── README
    │   │   │   │   │   │   │   │   │   ├── include/
    │   │   │   │   │   │   │   │   │   │   └── tinycrypt/
    │   │   │   │   │   │   │   │   │   │       ├── aes.h
    │   │   │   │   │   │   │   │   │   │       ├── cbc_mode.h
    │   │   │   │   │   │   │   │   │   │       ├── ccm_mode.h
    │   │   │   │   │   │   │   │   │   │       ├── cmac_mode.h
    │   │   │   │   │   │   │   │   │   │       ├── constants.h
    │   │   │   │   │   │   │   │   │   │       ├── ctr_mode.h
    │   │   │   │   │   │   │   │   │   │       ├── ctr_prng.h
    │   │   │   │   │   │   │   │   │   │       ├── ecc.h
    │   │   │   │   │   │   │   │   │   │       ├── ecc_dh.h
    │   │   │   │   │   │   │   │   │   │       ├── ecc_dsa.h
    │   │   │   │   │   │   │   │   │   │       ├── ecc_platform_specific.h
    │   │   │   │   │   │   │   │   │   │       ├── hmac.h
    │   │   │   │   │   │   │   │   │   │       ├── hmac_prng.h
    │   │   │   │   │   │   │   │   │   │       ├── sha256.h
    │   │   │   │   │   │   │   │   │   │       └── utils.h
    │   │   │   │   │   │   │   │   │   └── source/
    │   │   │   │   │   │   │   │   │       ├── aes_decrypt.c
    │   │   │   │   │   │   │   │   │       ├── aes_encrypt.c
    │   │   │   │   │   │   │   │   │       ├── cbc_mode.c
    │   │   │   │   │   │   │   │   │       ├── ccm_mode.c
    │   │   │   │   │   │   │   │   │       ├── cmac_mode.c
    │   │   │   │   │   │   │   │   │       ├── ctr_mode.c
    │   │   │   │   │   │   │   │   │       ├── ctr_prng.c
    │   │   │   │   │   │   │   │   │       ├── ecc.c
    │   │   │   │   │   │   │   │   │       ├── ecc_dh.c
    │   │   │   │   │   │   │   │   │       ├── ecc_dsa.c
    │   │   │   │   │   │   │   │   │       ├── ecc_platform_specific.c
    │   │   │   │   │   │   │   │   │       ├── hmac.c
    │   │   │   │   │   │   │   │   │       ├── hmac_prng.c
    │   │   │   │   │   │   │   │   │       ├── sha256.c
    │   │   │   │   │   │   │   │   │       └── utils.c
    │   │   │   │   │   │   │   │   ├── utils.c
    │   │   │   │   │   │   │   │   └── work_q.c
    │   │   │   │   │   │   │   ├── hci_onchip/
    │   │   │   │   │   │   │   │   ├── hci_driver.c
    │   │   │   │   │   │   │   │   └── hci_internal.h
    │   │   │   │   │   │   │   ├── host/
    │   │   │   │   │   │   │   │   ├── at.c
    │   │   │   │   │   │   │   │   ├── at.h
    │   │   │   │   │   │   │   │   ├── att.c
    │   │   │   │   │   │   │   │   ├── att_internal.h
    │   │   │   │   │   │   │   │   ├── avdtp_internal.h
    │   │   │   │   │   │   │   │   ├── conn.c
    │   │   │   │   │   │   │   │   ├── conn_internal.h
    │   │   │   │   │   │   │   │   ├── crypto.c
    │   │   │   │   │   │   │   │   ├── crypto.h
    │   │   │   │   │   │   │   │   ├── ecc.h
    │   │   │   │   │   │   │   │   ├── gatt.c
    │   │   │   │   │   │   │   │   ├── gatt_internal.h
    │   │   │   │   │   │   │   │   ├── hci_core.c
    │   │   │   │   │   │   │   │   ├── hci_core.h
    │   │   │   │   │   │   │   │   ├── hci_ecc.c
    │   │   │   │   │   │   │   │   ├── hci_ecc.h
    │   │   │   │   │   │   │   │   ├── hfp_hf.c
    │   │   │   │   │   │   │   │   ├── hfp_internal.h
    │   │   │   │   │   │   │   │   ├── iso_internal.h
    │   │   │   │   │   │   │   │   ├── keys.c
    │   │   │   │   │   │   │   │   ├── keys.h
    │   │   │   │   │   │   │   │   ├── keys_br.c
    │   │   │   │   │   │   │   │   ├── l2cap.c
    │   │   │   │   │   │   │   │   ├── l2cap_internal.h
    │   │   │   │   │   │   │   │   ├── monitor.c
    │   │   │   │   │   │   │   │   ├── monitor.h
    │   │   │   │   │   │   │   │   ├── multi_adv.c
    │   │   │   │   │   │   │   │   ├── multi_adv.h
    │   │   │   │   │   │   │   │   ├── rfcomm_internal.h
    │   │   │   │   │   │   │   │   ├── sdp.c
    │   │   │   │   │   │   │   │   ├── sdp_internal.h
    │   │   │   │   │   │   │   │   ├── settings.c
    │   │   │   │   │   │   │   │   ├── settings.h
    │   │   │   │   │   │   │   │   ├── smp.h
    │   │   │   │   │   │   │   │   ├── smp_null.c
    │   │   │   │   │   │   │   │   └── uuid.c
    │   │   │   │   │   │   │   ├── include/
    │   │   │   │   │   │   │   │   ├── bluetooth/
    │   │   │   │   │   │   │   │   │   ├── a2dp-codec.h
    │   │   │   │   │   │   │   │   │   ├── a2dp.h
    │   │   │   │   │   │   │   │   │   ├── addr.h
    │   │   │   │   │   │   │   │   │   ├── att.h
    │   │   │   │   │   │   │   │   │   ├── avdtp.h
    │   │   │   │   │   │   │   │   │   ├── bluetooth.h
    │   │   │   │   │   │   │   │   │   ├── buf.h
    │   │   │   │   │   │   │   │   │   ├── conn.h
    │   │   │   │   │   │   │   │   │   ├── crypto.h
    │   │   │   │   │   │   │   │   │   ├── gap.h
    │   │   │   │   │   │   │   │   │   ├── gatt.h
    │   │   │   │   │   │   │   │   │   ├── hci_err.h
    │   │   │   │   │   │   │   │   │   ├── hci_host.h
    │   │   │   │   │   │   │   │   │   ├── hci_raw.h
    │   │   │   │   │   │   │   │   │   ├── hci_vs.h
    │   │   │   │   │   │   │   │   │   ├── hfp_hf.h
    │   │   │   │   │   │   │   │   │   ├── iso.h
    │   │   │   │   │   │   │   │   │   ├── l2cap.h
    │   │   │   │   │   │   │   │   │   ├── rfcomm.h
    │   │   │   │   │   │   │   │   │   ├── sdp.h
    │   │   │   │   │   │   │   │   │   └── uuid.h
    │   │   │   │   │   │   │   │   └── drivers/
    │   │   │   │   │   │   │   │       └── bluetooth/
    │   │   │   │   │   │   │   │           └── hci_driver.h
    │   │   │   │   │   │   │   ├── port/
    │   │   │   │   │   │   │   │   ├── bl_port.c
    │   │   │   │   │   │   │   │   └── include/
    │   │   │   │   │   │   │   │       ├── bl_port.h
    │   │   │   │   │   │   │   │       ├── ble_config.h
    │   │   │   │   │   │   │   │       └── zephyr.h
    │   │   │   │   │   │   │   └── services/
    │   │   │   │   │   │   │       ├── bas.c
    │   │   │   │   │   │   │       ├── bas.h
    │   │   │   │   │   │   │       ├── dis.c
    │   │   │   │   │   │   │       ├── dis.h
    │   │   │   │   │   │   │       ├── hog.c
    │   │   │   │   │   │   │       ├── hog.h
    │   │   │   │   │   │   │       ├── oad/
    │   │   │   │   │   │   │       │   ├── oad.h
    │   │   │   │   │   │   │       │   ├── oad_client.h
    │   │   │   │   │   │   │       │   ├── oad_main.h
    │   │   │   │   │   │   │       │   └── oad_service.h
    │   │   │   │   │   │   │       ├── scps.c
    │   │   │   │   │   │   │       └── scps.h
    │   │   │   │   │   │   └── blecontroller/
    │   │   │   │   │   │       ├── ble_inc/
    │   │   │   │   │   │       │   ├── ble_lib_api.h
    │   │   │   │   │   │       │   └── hci_onchip.h
    │   │   │   │   │   │       └── lib/
    │   │   │   │   │   │           └── README.md
    │   │   │   │   │   ├── freertos/
    │   │   │   │   │   │   └── portable/
    │   │   │   │   │   │       ├── gcc/
    │   │   │   │   │   │       │   └── risc-v/
    │   │   │   │   │   │       │       └── bl702/
    │   │   │   │   │   │       │           ├── freertos_risc_v_chip_specific_extensions.h
    │   │   │   │   │   │       │           ├── port.c
    │   │   │   │   │   │       │           ├── portASM.S
    │   │   │   │   │   │       │           └── portmacro.h
    │   │   │   │   │   │       └── readme.txt
    │   │   │   │   │   └── nmsis/
    │   │   │   │   │       ├── CMakeLists.txt
    │   │   │   │   │       └── core/
    │   │   │   │   │           └── inc/
    │   │   │   │   │               ├── core_compatiable.h
    │   │   │   │   │               ├── core_feature_base.h
    │   │   │   │   │               ├── core_feature_cache.h
    │   │   │   │   │               ├── core_feature_dsp.h
    │   │   │   │   │               ├── core_feature_eclic.h
    │   │   │   │   │               ├── core_feature_fpu.h
    │   │   │   │   │               ├── core_feature_pmp.h
    │   │   │   │   │               ├── core_feature_timer.h
    │   │   │   │   │               ├── nmsis_compiler.h
    │   │   │   │   │               ├── nmsis_core.h
    │   │   │   │   │               ├── nmsis_gcc.h
    │   │   │   │   │               ├── nmsis_version.h
    │   │   │   │   │               ├── riscv_bits.h
    │   │   │   │   │               └── riscv_encoding.h
    │   │   │   │   └── drivers/
    │   │   │   │       └── bl702_driver/
    │   │   │   │           ├── CMakeLists.txt
    │   │   │   │           ├── bl702_flash.ld
    │   │   │   │           ├── cpu_flags.cmake
    │   │   │   │           ├── hal_drv/
    │   │   │   │           │   ├── default_config/
    │   │   │   │           │   │   ├── adc_config.h
    │   │   │   │           │   │   ├── dac_config.h
    │   │   │   │           │   │   ├── i2s_config.h
    │   │   │   │           │   │   └── uart_config.h
    │   │   │   │           │   ├── inc/
    │   │   │   │           │   │   ├── hal_adc.h
    │   │   │   │           │   │   ├── hal_boot2.h
    │   │   │   │           │   │   ├── hal_clock.h
    │   │   │   │           │   │   ├── hal_common.h
    │   │   │   │           │   │   ├── hal_dma.h
    │   │   │   │           │   │   ├── hal_flash.h
    │   │   │   │           │   │   ├── hal_gpio.h
    │   │   │   │           │   │   ├── hal_i2c.h
    │   │   │   │           │   │   ├── hal_mtimer.h
    │   │   │   │           │   │   ├── hal_pm.h
    │   │   │   │           │   │   ├── hal_pm_util.h
    │   │   │   │           │   │   ├── hal_rtc.h
    │   │   │   │           │   │   ├── hal_sec_aes.h
    │   │   │   │           │   │   ├── hal_sec_dsa.h
    │   │   │   │           │   │   ├── hal_sec_ecdsa.h
    │   │   │   │           │   │   ├── hal_sec_hash.h
    │   │   │   │           │   │   ├── hal_uart.h
    │   │   │   │           │   │   ├── hal_usb.h
    │   │   │   │           │   │   └── hal_wdt.h
    │   │   │   │           │   └── src/
    │   │   │   │           │       ├── hal_boot2.c
    │   │   │   │           │       ├── hal_clock.c
    │   │   │   │           │       ├── hal_common.c
    │   │   │   │           │       ├── hal_dma.c
    │   │   │   │           │       ├── hal_flash.c
    │   │   │   │           │       ├── hal_gpio.c
    │   │   │   │           │       ├── hal_i2c.c
    │   │   │   │           │       ├── hal_mtimer.c
    │   │   │   │           │       ├── hal_pm.c
    │   │   │   │           │       ├── hal_pm_util.c
    │   │   │   │           │       ├── hal_rtc.c
    │   │   │   │           │       ├── hal_sec_aes.c
    │   │   │   │           │       ├── hal_sec_dsa.c
    │   │   │   │           │       ├── hal_sec_ecdsa.c
    │   │   │   │           │       ├── hal_sec_hash.c
    │   │   │   │           │       ├── hal_uart.c
    │   │   │   │           │       ├── hal_usb.c
    │   │   │   │           │       └── hal_wdt.c
    │   │   │   │           ├── regs/
    │   │   │   │           │   ├── aon_reg.h
    │   │   │   │           │   ├── bl702.h
    │   │   │   │           │   ├── bl70x_reg.svc
    │   │   │   │           │   ├── cam_reg.h
    │   │   │   │           │   ├── cci_reg.h
    │   │   │   │           │   ├── cks_reg.h
    │   │   │   │           │   ├── dma_reg.h
    │   │   │   │           │   ├── ef_ctrl_reg.h
    │   │   │   │           │   ├── ef_data_0_reg.h
    │   │   │   │           │   ├── emac_reg.h
    │   │   │   │           │   ├── glb_reg.h
    │   │   │   │           │   ├── gpip_reg.h
    │   │   │   │           │   ├── hbn_reg.h
    │   │   │   │           │   ├── i2c_reg.h
    │   │   │   │           │   ├── i2s_reg.h
    │   │   │   │           │   ├── ir_reg.h
    │   │   │   │           │   ├── kys_reg.h
    │   │   │   │           │   ├── l1c_reg.h
    │   │   │   │           │   ├── mjpeg_reg.h
    │   │   │   │           │   ├── pdm_reg.h
    │   │   │   │           │   ├── pds_reg.h
    │   │   │   │           │   ├── pwm_reg.h
    │   │   │   │           │   ├── qdec_reg.h
    │   │   │   │           │   ├── sec_dbg_reg.h
    │   │   │   │           │   ├── sec_eng_reg.h
    │   │   │   │           │   ├── sf_ctrl_reg.h
    │   │   │   │           │   ├── soc702_reg.svd
    │   │   │   │           │   ├── spi_reg.h
    │   │   │   │           │   ├── timer_reg.h
    │   │   │   │           │   ├── tzc_sec_reg.h
    │   │   │   │           │   ├── uart_reg.h
    │   │   │   │           │   └── usb_reg.h
    │   │   │   │           ├── risc-v/
    │   │   │   │           │   └── Core/
    │   │   │   │           │       └── Include/
    │   │   │   │           │           ├── clic.h
    │   │   │   │           │           ├── riscv_bits.h
    │   │   │   │           │           ├── riscv_const.h
    │   │   │   │           │           └── riscv_encoding.h
    │   │   │   │           ├── startup/
    │   │   │   │           │   ├── GCC/
    │   │   │   │           │   │   ├── entry.S
    │   │   │   │           │   │   └── start_load.c
    │   │   │   │           │   ├── drv_mmheap.c
    │   │   │   │           │   ├── drv_mmheap.h
    │   │   │   │           │   ├── interrupt.c
    │   │   │   │           │   ├── system_bl702.c
    │   │   │   │           │   └── system_bl702.h
    │   │   │   │           └── std_drv/
    │   │   │   │               ├── inc/
    │   │   │   │               │   ├── bl702_acomp.h
    │   │   │   │               │   ├── bl702_adc.h
    │   │   │   │               │   ├── bl702_aon.h
    │   │   │   │               │   ├── bl702_cam.h
    │   │   │   │               │   ├── bl702_clock.h
    │   │   │   │               │   ├── bl702_common.h
    │   │   │   │               │   ├── bl702_dac.h
    │   │   │   │               │   ├── bl702_dma.h
    │   │   │   │               │   ├── bl702_ef_ctrl.h
    │   │   │   │               │   ├── bl702_emac.h
    │   │   │   │               │   ├── bl702_glb.h
    │   │   │   │               │   ├── bl702_gpio.h
    │   │   │   │               │   ├── bl702_hbn.h
    │   │   │   │               │   ├── bl702_i2c.h
    │   │   │   │               │   ├── bl702_i2c_gpio_sim.h
    │   │   │   │               │   ├── bl702_i2s.h
    │   │   │   │               │   ├── bl702_ir.h
    │   │   │   │               │   ├── bl702_kys.h
    │   │   │   │               │   ├── bl702_l1c.h
    │   │   │   │               │   ├── bl702_mjpeg.h
    │   │   │   │               │   ├── bl702_nf_cfg.h
    │   │   │   │               │   ├── bl702_nflash.h
    │   │   │   │               │   ├── bl702_pds.h
    │   │   │   │               │   ├── bl702_psram.h
    │   │   │   │               │   ├── bl702_pwm.h
    │   │   │   │               │   ├── bl702_qdec.h
    │   │   │   │               │   ├── bl702_romdriver.h
    │   │   │   │               │   ├── bl702_sec_dbg.h
    │   │   │   │               │   ├── bl702_sec_eng.h
    │   │   │   │               │   ├── bl702_sf_cfg.h
    │   │   │   │               │   ├── bl702_sf_cfg_ext.h
    │   │   │   │               │   ├── bl702_sf_ctrl.h
    │   │   │   │               │   ├── bl702_sflash.h
    │   │   │   │               │   ├── bl702_sflash_ext.h
    │   │   │   │               │   ├── bl702_spi.h
    │   │   │   │               │   ├── bl702_timer.h
    │   │   │   │               │   ├── bl702_uart.h
    │   │   │   │               │   ├── bl702_usb.h
    │   │   │   │               │   ├── bl702_xip_sflash.h
    │   │   │   │               │   └── bl702_xip_sflash_ext.h
    │   │   │   │               └── src/
    │   │   │   │                   ├── bl702_acomp.c
    │   │   │   │                   ├── bl702_adc.c
    │   │   │   │                   ├── bl702_aon.c
    │   │   │   │                   ├── bl702_cam.c
    │   │   │   │                   ├── bl702_clock.c
    │   │   │   │                   ├── bl702_common.c
    │   │   │   │                   ├── bl702_dac.c
    │   │   │   │                   ├── bl702_dma.c
    │   │   │   │                   ├── bl702_ef_ctrl.c
    │   │   │   │                   ├── bl702_emac.c
    │   │   │   │                   ├── bl702_glb.c
    │   │   │   │                   ├── bl702_hbn.c
    │   │   │   │                   ├── bl702_i2c.c
    │   │   │   │                   ├── bl702_i2c_gpio_sim.c
    │   │   │   │                   ├── bl702_i2s.c
    │   │   │   │                   ├── bl702_ir.c
    │   │   │   │                   ├── bl702_kys.c
    │   │   │   │                   ├── bl702_l1c.c
    │   │   │   │                   ├── bl702_mjpeg.c
    │   │   │   │                   ├── bl702_pds.c
    │   │   │   │                   ├── bl702_psram.c
    │   │   │   │                   ├── bl702_pwm.c
    │   │   │   │                   ├── bl702_qdec.c
    │   │   │   │                   ├── bl702_romapi.c
    │   │   │   │                   ├── bl702_romdriver.c
    │   │   │   │                   ├── bl702_sec_dbg.c
    │   │   │   │                   ├── bl702_sec_eng.c
    │   │   │   │                   ├── bl702_sf_cfg.c
    │   │   │   │                   ├── bl702_sf_cfg_ext.c
    │   │   │   │                   ├── bl702_sf_ctrl.c
    │   │   │   │                   ├── bl702_sflash.c
    │   │   │   │                   ├── bl702_sflash_ext.c
    │   │   │   │                   ├── bl702_spi.c
    │   │   │   │                   ├── bl702_timer.c
    │   │   │   │                   ├── bl702_uart.c
    │   │   │   │                   ├── bl702_usb.c
    │   │   │   │                   ├── bl702_xip_sflash.c
    │   │   │   │                   └── bl702_xip_sflash_ext.c
    │   │   │   ├── ble.c
    │   │   │   ├── ble.h
    │   │   │   ├── ble_characteristics.h
    │   │   │   ├── ble_handlers.cpp
    │   │   │   ├── ble_handlers.h
    │   │   │   ├── ble_peripheral.c
    │   │   │   ├── ble_peripheral.h
    │   │   │   ├── board.c
    │   │   │   ├── clock_config.h
    │   │   │   ├── configuration.h
    │   │   │   ├── crc32.h
    │   │   │   ├── flash.c
    │   │   │   ├── fusb_user.cpp
    │   │   │   ├── peripheral_config.h
    │   │   │   ├── pinmux_config.h
    │   │   │   ├── postRTOS.cpp
    │   │   │   └── preRTOS.cpp
    │   │   └── Sequre/
    │   │       ├── BSP.cpp
    │   │       ├── FreeRTOSConfig.h
    │   │       ├── IRQ.cpp
    │   │       ├── IRQ.h
    │   │       ├── Pins.h
    │   │       ├── Power.cpp
    │   │       ├── README.md
    │   │       ├── Setup.cpp
    │   │       ├── Setup.h
    │   │       ├── Software_I2C.h
    │   │       ├── Startup/
    │   │       │   └── startup_stm32f103t8ux.S
    │   │       ├── ThermoModel.cpp
    │   │       ├── Vendor/
    │   │       │   ├── CMSIS/
    │   │       │   │   ├── Device/
    │   │       │   │   │   └── ST/
    │   │       │   │   │       └── STM32F1xx/
    │   │       │   │   │           └── Include/
    │   │       │   │   │               ├── stm32f103xb.h
    │   │       │   │   │               ├── stm32f1xx.h
    │   │       │   │   │               └── system_stm32f1xx.h
    │   │       │   │   └── Include/
    │   │       │   │       ├── arm_common_tables.h
    │   │       │   │       ├── arm_const_structs.h
    │   │       │   │       ├── arm_math.h
    │   │       │   │       ├── cmsis_armcc.h
    │   │       │   │       ├── cmsis_armcc_V6.h
    │   │       │   │       ├── cmsis_gcc.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
    │   │       │   │       ├── core_sc000.h
    │   │       │   │       └── core_sc300.h
    │   │       │   └── STM32F1xx_HAL_Driver/
    │   │       │       ├── Inc/
    │   │       │       │   ├── Legacy/
    │   │       │       │   │   └── stm32_hal_legacy.h
    │   │       │       │   ├── stm32f1xx_hal.h
    │   │       │       │   ├── stm32f1xx_hal_adc.h
    │   │       │       │   ├── stm32f1xx_hal_adc_ex.h
    │   │       │       │   ├── stm32f1xx_hal_cortex.h
    │   │       │       │   ├── stm32f1xx_hal_def.h
    │   │       │       │   ├── stm32f1xx_hal_dma.h
    │   │       │       │   ├── stm32f1xx_hal_dma_ex.h
    │   │       │       │   ├── stm32f1xx_hal_flash.h
    │   │       │       │   ├── stm32f1xx_hal_flash_ex.h
    │   │       │       │   ├── stm32f1xx_hal_gpio.h
    │   │       │       │   ├── stm32f1xx_hal_gpio_ex.h
    │   │       │       │   ├── stm32f1xx_hal_i2c.h
    │   │       │       │   ├── stm32f1xx_hal_iwdg.h
    │   │       │       │   ├── stm32f1xx_hal_pwr.h
    │   │       │       │   ├── stm32f1xx_hal_rcc.h
    │   │       │       │   ├── stm32f1xx_hal_rcc_ex.h
    │   │       │       │   ├── stm32f1xx_hal_tim.h
    │   │       │       │   └── stm32f1xx_hal_tim_ex.h
    │   │       │       └── Src/
    │   │       │           ├── stm32f1xx_hal.c
    │   │       │           ├── stm32f1xx_hal_adc.c
    │   │       │           ├── stm32f1xx_hal_adc_ex.c
    │   │       │           ├── stm32f1xx_hal_cortex.c
    │   │       │           ├── stm32f1xx_hal_dma.c
    │   │       │           ├── stm32f1xx_hal_flash.c
    │   │       │           ├── stm32f1xx_hal_flash_ex.c
    │   │       │           ├── stm32f1xx_hal_gpio.c
    │   │       │           ├── stm32f1xx_hal_gpio_ex.c
    │   │       │           ├── stm32f1xx_hal_i2c.c
    │   │       │           ├── stm32f1xx_hal_iwdg.c
    │   │       │           ├── stm32f1xx_hal_pwr.c
    │   │       │           ├── stm32f1xx_hal_rcc.c
    │   │       │           ├── stm32f1xx_hal_rcc_ex.c
    │   │       │           ├── stm32f1xx_hal_tim.c
    │   │       │           └── stm32f1xx_hal_tim_ex.c
    │   │       ├── configuration.h
    │   │       ├── flash.c
    │   │       ├── port.c
    │   │       ├── portmacro.h
    │   │       ├── postRTOS.cpp
    │   │       ├── preRTOS.cpp
    │   │       ├── stm32f103.ld
    │   │       ├── stm32f1xx_hal_msp.c
    │   │       ├── stm32f1xx_hal_timebase_TIM.c
    │   │       ├── stm32f1xx_it.c
    │   │       └── system_stm32f1xx.c
    │   ├── Drivers/
    │   │   ├── BMA223.cpp
    │   │   ├── BMA223.hpp
    │   │   ├── BMA223_defines.h
    │   │   ├── BootLogo.cpp
    │   │   ├── BootLogo.h
    │   │   ├── Buttons.cpp
    │   │   ├── Buttons.hpp
    │   │   ├── FS2711.cpp
    │   │   ├── FS2711.hpp
    │   │   ├── FS2711_defines.h
    │   │   ├── Font.h
    │   │   ├── HUB238.cpp
    │   │   ├── HUB238.hpp
    │   │   ├── I2CBB1.cpp
    │   │   ├── I2CBB1.hpp
    │   │   ├── I2CBB2.cpp
    │   │   ├── I2CBB2.hpp
    │   │   ├── I2C_Wrapper.hpp
    │   │   ├── LIS2DH12.cpp
    │   │   ├── LIS2DH12.hpp
    │   │   ├── LIS2DH12_defines.hpp
    │   │   ├── MMA8652FC.cpp
    │   │   ├── MMA8652FC.hpp
    │   │   ├── MMA8652FC_defines.h
    │   │   ├── MSA301.cpp
    │   │   ├── MSA301.h
    │   │   ├── MSA301_defines.h
    │   │   ├── OLED.cpp
    │   │   ├── OLED.hpp
    │   │   ├── README.md
    │   │   ├── SC7A20.cpp
    │   │   ├── SC7A20.hpp
    │   │   ├── SC7A20_defines.h
    │   │   ├── Si7210.cpp
    │   │   ├── Si7210.h
    │   │   ├── Si7210_defines.h
    │   │   ├── TipThermoModel.cpp
    │   │   ├── TipThermoModel.h
    │   │   ├── USBPD.cpp
    │   │   ├── USBPD.h
    │   │   ├── Utils.cpp
    │   │   ├── Utils.hpp
    │   │   ├── WS2812.h
    │   │   ├── WS2812B.h
    │   │   └── accelerometers_common.h
    │   ├── Inc/
    │   │   ├── FreeRTOSHooks.h
    │   │   ├── QC3.h
    │   │   ├── ScrollMessage.hpp
    │   │   ├── Settings.h
    │   │   ├── Translation.h
    │   │   ├── Translation_multi.h
    │   │   ├── Types.h
    │   │   ├── expMovingAverage.h
    │   │   ├── history.hpp
    │   │   ├── main.hpp
    │   │   ├── power.hpp
    │   │   ├── settingsGUI.hpp
    │   │   ├── stm32f1xx_hal_conf.h
    │   │   └── stm32f1xx_it.h
    │   ├── LangSupport/
    │   │   ├── lang_multi.cpp
    │   │   └── lang_single.cpp
    │   ├── Src/
    │   │   ├── FreeRTOSHooks.c
    │   │   ├── QC3.cpp
    │   │   ├── ScrollMessage.cpp
    │   │   ├── Settings.cpp
    │   │   ├── Translation.cpp
    │   │   ├── freertos.c
    │   │   ├── main.cpp
    │   │   ├── power.cpp
    │   │   ├── settingsGUI.cpp
    │   │   └── syscalls.c
    │   ├── Threads/
    │   │   ├── GUIRendering.md
    │   │   ├── GUIThread.cpp
    │   │   ├── MOVThread.cpp
    │   │   ├── PIDThread.cpp
    │   │   ├── POWThread.cpp
    │   │   └── UI/
    │   │       ├── README.md
    │   │       ├── drawing/
    │   │       │   ├── mono_128x32/
    │   │       │   │   ├── draw_cjc_sampling.cpp
    │   │       │   │   ├── draw_debug_menu.cpp
    │   │       │   │   ├── draw_homescreen_detailed.cpp
    │   │       │   │   ├── draw_homescreen_simplified.cpp
    │   │       │   │   ├── draw_power_source_icon.cpp
    │   │       │   │   ├── draw_profile_advanced.cpp
    │   │       │   │   ├── draw_soldering_basic_status.cpp
    │   │       │   │   ├── draw_soldering_power_status.cpp
    │   │       │   │   ├── draw_soldering_sleep_mode.cpp
    │   │       │   │   ├── draw_temperature_change.cpp
    │   │       │   │   ├── draw_tip_temperature.cpp
    │   │       │   │   ├── draw_usb_pd_debug.cpp
    │   │       │   │   ├── draw_warning_undervoltage.cpp
    │   │       │   │   ├── pre_render_assets.cpp
    │   │       │   │   ├── printSleepCountdown.cpp
    │   │       │   │   ├── print_voltage.cpp
    │   │       │   │   └── show_warning.cpp
    │   │       │   ├── mono_96x16/
    │   │       │   │   ├── draw_cjc_sampling.cpp
    │   │       │   │   ├── draw_debug_menu.cpp
    │   │       │   │   ├── draw_homescreen_detailed.cpp
    │   │       │   │   ├── draw_homescreen_simplified.cpp
    │   │       │   │   ├── draw_power_source_icon.cpp
    │   │       │   │   ├── draw_profile_advanced.cpp
    │   │       │   │   ├── draw_soldering_basic_status.cpp
    │   │       │   │   ├── draw_soldering_power_status.cpp
    │   │       │   │   ├── draw_soldering_sleep_mode.cpp
    │   │       │   │   ├── draw_temperature_change.cpp
    │   │       │   │   ├── draw_tip_temperature.cpp
    │   │       │   │   ├── draw_usb_pd_debug.cpp
    │   │       │   │   ├── draw_warning_undervoltage.cpp
    │   │       │   │   ├── pre_render_assets.cpp
    │   │       │   │   ├── printSleepCountdown.cpp
    │   │       │   │   ├── print_voltage.cpp
    │   │       │   │   └── show_warning.cpp
    │   │       │   └── ui_drawing.hpp
    │   │       └── logic/
    │   │           ├── CJC.cpp
    │   │           ├── DebugMenu.cpp
    │   │           ├── HomeScreen.cpp
    │   │           ├── OperatingModes.cpp
    │   │           ├── OperatingModes.h
    │   │           ├── SettingsMenu.cpp
    │   │           ├── ShowStartupWarnings.cpp
    │   │           ├── Sleep.cpp
    │   │           ├── Soldering.cpp
    │   │           ├── SolderingProfile.cpp
    │   │           ├── TemperatureAdjust.cpp
    │   │           ├── USBPDDebug_FS2711.cpp
    │   │           ├── USBPDDebug_FUSB.cpp
    │   │           ├── USBPDDebug_HUSB238.cpp
    │   │           └── utils/
    │   │               ├── GUIDelay.cpp
    │   │               ├── OperatingModeUtilities.h
    │   │               ├── SolderingCommon.cpp
    │   │               ├── SolderingCommon.h
    │   │               ├── checkUndervoltage.cpp
    │   │               ├── getHallEffectSleepTimeout.cpp
    │   │               ├── getSleepTimeout.cpp
    │   │               ├── min.cpp
    │   │               ├── shouldDeviceShutdown.cpp
    │   │               └── shouldDeviceSleep.cpp
    │   └── brieflz/
    │       ├── README.md
    │       ├── brieflz.c
    │       ├── brieflz.h
    │       ├── brieflz_btparse.h
    │       ├── brieflz_hashbucket.h
    │       ├── brieflz_lazy.h
    │       ├── brieflz_leparse.h
    │       └── depack.c
    ├── Makefile
    ├── Middlewares/
    │   └── Third_Party/
    │       └── FreeRTOS/
    │           └── Source/
    │               ├── CMSIS_RTOS/
    │               │   ├── cmsis_os.c
    │               │   └── cmsis_os.h
    │               ├── croutine.c
    │               ├── event_groups.c
    │               ├── include/
    │               │   ├── FreeRTOS.h
    │               │   ├── StackMacros.h
    │               │   ├── atomic.h
    │               │   ├── croutine.h
    │               │   ├── event_groups.h
    │               │   ├── list.h
    │               │   ├── message_buffer.h
    │               │   ├── mpu_prototypes.h
    │               │   ├── mpu_syscall_numbers.h
    │               │   ├── mpu_wrappers.h
    │               │   ├── newlib-freertos.h
    │               │   ├── picolibc-freertos.h
    │               │   ├── portable.h
    │               │   ├── projdefs.h
    │               │   ├── queue.h
    │               │   ├── semphr.h
    │               │   ├── stack_macros.h
    │               │   ├── stream_buffer.h
    │               │   ├── task.h
    │               │   └── timers.h
    │               ├── list.c
    │               ├── queue.c
    │               ├── stream_buffer.c
    │               ├── tasks.c
    │               └── timers.c
    ├── build.sh
    ├── dfuse-pack.py
    ├── metadata.py
    └── version.h
Download .txt
Showing preview only (1,039K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (10869 symbols across 706 files)

FILE: Translations/brieflz.py
  function _libbrieflz (line 10) | def _libbrieflz():
  function _fn_blz_max_packed_size (line 17) | def _fn_blz_max_packed_size():
  function blz_max_packed_size (line 41) | def blz_max_packed_size(src_size: int) -> int:
  function _fn_blz_workmem_size_level (line 48) | def _fn_blz_workmem_size_level():
  function blz_workmem_size_level (line 74) | def blz_workmem_size_level(src_size: int, level: int) -> int:
  function _fn_blz_pack_level (line 81) | def _fn_blz_pack_level():
  function compress (line 115) | def compress(data: bytes) -> bytes:
  function _fn_blz_depack_srcsize (line 137) | def _fn_blz_depack_srcsize():
  function depack_srcsize (line 166) | def depack_srcsize(data: bytes, expected_depack_size: int) -> bytes:
  class BriefLZError (line 185) | class BriefLZError(Exception):
    method __init__ (line 188) | def __init__(self):

FILE: Translations/brieflz_test.py
  class TestBriefLZ (line 16) | class TestBriefLZ(unittest.TestCase):
    method test_roundtrip (line 17) | def test_roundtrip(self):

FILE: Translations/font_tables.py
  function get_font_map_ascii_basic (line 4) | def get_font_map_ascii_basic() -> Dict[str, bytes]:
  function get_font_map_latin_extended (line 106) | def get_font_map_latin_extended() -> Dict[str, bytes]:
  function get_font_map_greek (line 329) | def get_font_map_greek() -> Dict[str, bytes]:
  function get_font_map_cyrillic (line 393) | def get_font_map_cyrillic() -> Dict[str, bytes]:
  function get_small_font_map_ascii_basic (line 498) | def get_small_font_map_ascii_basic() -> Dict[str, bytes]:
  function get_small_font_map_latin_extended (line 600) | def get_small_font_map_latin_extended() -> Dict[str, bytes]:
  function get_small_font_map_greek (line 817) | def get_small_font_map_greek() -> Dict[str, bytes]:
  function get_small_font_map_cyrillic (line 881) | def get_small_font_map_cyrillic() -> Dict[str, bytes]:
  function get_font_maps_for_name (line 1007) | def get_font_maps_for_name(

FILE: Translations/gen_menu_docs.py
  function load_json (line 21) | def load_json(filename: str, skip_first_line: bool) -> dict:
  function write_header (line 28) | def write_header(filep):
  function write_menu_categories (line 41) | def write_menu_categories(filep, defs, translation_data):
  function write_menu_entries (line 64) | def write_menu_entries(filep, defs, translation_data):
  function main (line 98) | def main() -> None:

FILE: Translations/make_translation.py
  function cjk_font (line 31) | def cjk_font() -> Font:
  function load_json (line 37) | def load_json(filename: str) -> dict:
  function get_language_unqiue_id (line 42) | def get_language_unqiue_id(language_ascii_name: str):
  function read_translation (line 52) | def read_translation(json_root: Union[str, Path], lang_code: str) -> dict:
  function filter_translation (line 69) | def filter_translation(lang: dict, defs: dict, macros: frozenset):
  function validate_langcode_matches_content (line 92) | def validate_langcode_matches_content(filename: str, content: dict) -> N...
  function write_start (line 108) | def write_start(f: TextIO):
  function get_constants (line 116) | def get_constants() -> List[Tuple[str, str]]:
  function get_debug_menu (line 153) | def get_debug_menu() -> List[str]:
  function get_accel_names_list (line 178) | def get_accel_names_list() -> List[str]:
  function get_power_source_list (line 192) | def get_power_source_list() -> List[str]:
  function test_is_small_font (line 201) | def test_is_small_font(msg: str) -> bool:
  function get_letter_counts (line 205) | def get_letter_counts(defs: dict, lang: dict, build_version: str) -> Dict:
  function convert_letter_counts_to_ranked_symbols_with_forced (line 313) | def convert_letter_counts_to_ranked_symbols_with_forced(
  function merge_letter_count_info (line 330) | def merge_letter_count_info(a: Dict, b: Dict) -> Dict:
  function get_cjk_glyph (line 365) | def get_cjk_glyph(sym: str) -> Optional[bytes]:
  function get_bytes_from_font_index (line 411) | def get_bytes_from_font_index(index: int) -> bytes:
  function bytes_to_escaped (line 462) | def bytes_to_escaped(b: bytes) -> str:
  function bytes_to_c_hex (line 466) | def bytes_to_c_hex(b: bytes) -> str:
  class FontMapsPerFont (line 471) | class FontMapsPerFont:
  function get_font_map_per_font (line 478) | def get_font_map_per_font(
  function get_forced_first_symbols (line 563) | def get_forced_first_symbols() -> List[str]:
  function build_symbol_conversion_map (line 594) | def build_symbol_conversion_map(sym_list: List[str]) -> Dict[str, bytes]:
  function make_font_table_cpp (line 612) | def make_font_table_cpp(
  function make_font_table_named_cpp (line 626) | def make_font_table_named_cpp(
  function make_font_table_06_cpp (line 641) | def make_font_table_06_cpp(sym_list: List[str], font_map: FontMapsPerFon...
  function convert_string_bytes (line 654) | def convert_string_bytes(symbol_conversion_table: Dict[str, bytes], text...
  function convert_string (line 667) | def convert_string(symbol_conversion_table: Dict[str, bytes], text: str)...
  function escape (line 672) | def escape(string: str) -> str:
  function write_bytes_as_c_array (line 676) | def write_bytes_as_c_array(
  class LanguageData (line 688) | class LanguageData:
  function prepare_language (line 697) | def prepare_language(lang: dict, defs: dict, build_version: str) -> Lang...
  function prepare_languages (line 723) | def prepare_languages(
  function render_font_block (line 755) | def render_font_block(data: LanguageData, f: TextIO, compress_font: bool...
  function write_language (line 818) | def write_language(
  function write_languages (line 903) | def write_languages(
  function get_translation_common_text (line 1009) | def get_translation_common_text(
  class TranslationItem (line 1058) | class TranslationItem:
  function get_translation_strings_and_indices_text (line 1063) | def get_translation_strings_and_indices_text(
  function get_translation_sanity_checks_text (line 1290) | def get_translation_sanity_checks_text(defs: dict) -> str:
  function get_version_suffix (line 1301) | def get_version_suffix(ver) -> str:
  function read_version (line 1358) | def read_version() -> str:
  function parse_args (line 1369) | def parse_args() -> argparse.Namespace:
  function main (line 1418) | def main() -> None:

FILE: Translations/make_translation_test.py
  class TestMakeTranslation (line 7) | class TestMakeTranslation(unittest.TestCase):
    method test_get_bytes_from_font_index (line 8) | def test_get_bytes_from_font_index(self):
    method test_bytes_to_escaped (line 23) | def test_bytes_to_escaped(self):
    method test_bytes_to_c_hex (line 29) | def test_bytes_to_c_hex(self):
    method test_no_language_id_collisions (line 35) | def test_no_language_id_collisions(self):

FILE: Translations/migrate.py
  function load_json (line 10) | def load_json(filename: str) -> dict:
  function save_json (line 15) | def save_json(filename: str, data: dict):

FILE: Translations/objcopy.py
  function get_binary_from_obj (line 12) | def get_binary_from_obj(objfile_path: str, section_name: str) -> bytes:
  function cpp_var_to_section_name (line 24) | def cpp_var_to_section_name(var_name: str) -> str:

FILE: source/Core/BSP/BSP.h
  type StatusLED (line 89) | enum StatusLED {
  type StatusLED (line 97) | enum StatusLED

FILE: source/Core/BSP/Defines.h
  type Orientation (line 11) | enum Orientation { ORIENTATION_LEFT_HAND = 0, ORIENTATION_RIGHT_HAND = 1...

FILE: source/Core/BSP/MHP30/BSP.cpp
  function resetWatchdog (line 25) | void resetWatchdog() { HAL_IWDG_Refresh(&hiwdg); }
  function HAL_TIM_PeriodElapsedCallback (line 199) | void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
  function getHandleTemperature (line 206) | uint16_t getHandleTemperature(uint8_t sample) {
  function getTipInstantTemperature (line 211) | uint16_t getTipInstantTemperature() { return getADC(2); }
  function getTipRawTemp (line 213) | uint16_t getTipRawTemp(uint8_t refresh) {
  function getInputVoltageX10 (line 224) | uint16_t getInputVoltageX10(uint16_t divisor, uint8_t sample) {
  function setTipPWM (line 254) | void setTipPWM(const uint8_t pulse, const bool shouldUseFastModePWM) {
  function unstick_I2C (line 263) | void unstick_I2C() {
  function getButtonA (line 284) | uint8_t getButtonA() { return HAL_GPIO_ReadPin(KEY_A_GPIO_Port, KEY_A_Pi...
  function getButtonB (line 285) | uint8_t getButtonB() { return HAL_GPIO_ReadPin(KEY_B_GPIO_Port, KEY_B_Pi...
  function BSPInit (line 287) | void BSPInit(void) { ws2812.init(); }
  function reboot (line 289) | void reboot() { NVIC_SystemReset(); }
  function delay_ms (line 291) | void delay_ms(uint16_t count) { HAL_Delay(count); }
  function setPlatePullup (line 293) | void setPlatePullup(bool pullingUp) {
  function performTipMeasurementStep (line 303) | void performTipMeasurementStep(bool start) {
  function isTipDisconnected (line 352) | bool isTipDisconnected() {
  function preStartChecks (line 375) | uint8_t preStartChecks() {
  function setBuzzer (line 379) | void setBuzzer(bool on) {
  function setStatusLED (line 388) | void setStatusLED(const enum StatusLED state) {
  function getDeviceID (line 416) | uint64_t getDeviceID() {
  function preStartChecksDone (line 421) | uint8_t preStartChecksDone() { return 1; }
  function getTipThermalMass (line 423) | uint16_t getTipThermalMass() { return TIP_THERMAL_MASS; }
  function getTipInertia (line 424) | uint16_t getTipInertia() { return TIP_THERMAL_MASS; }
  function showBootLogo (line 426) | void showBootLogo(void) { BootLogo::handleShowingLogo((uint8_t *)FLASH_L...

FILE: source/Core/BSP/MHP30/IRQ.cpp
  function HAL_ADC_ConvCpltCallback (line 17) | void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) {
  function HAL_GPIO_EXTI_Callback (line 32) | void              HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
  function getFUS302IRQLow (line 45) | bool getFUS302IRQLow() {

FILE: source/Core/BSP/MHP30/Power.cpp
  function power_check (line 9) | void power_check() {
  function getIsPoweredByDCIN (line 19) | bool getIsPoweredByDCIN() { return false; }
  function getTipResistanceX10 (line 21) | uint8_t getTipResistanceX10() { return TIP_RESISTANCE; }
  function isTipShorted (line 22) | bool    isTipShorted() { return false; }

FILE: source/Core/BSP/MHP30/QC_GPIO.cpp
  function QC_DPlusZero_Six (line 15) | void QC_DPlusZero_Six() {
  function QC_DNegZero_Six (line 18) | void QC_DNegZero_Six() {
  function QC_DPlusThree_Three (line 22) | void QC_DPlusThree_Three() {
  function QC_DNegThree_Three (line 25) | void QC_DNegThree_Three() {
  function QC_DM_PullDown (line 29) | void QC_DM_PullDown() {
  function QC_DM_No_PullDown (line 37) | void QC_DM_No_PullDown() {
  function QC_Init_GPIO (line 45) | void QC_Init_GPIO() {
  function QC_Post_Probe_En (line 62) | void QC_Post_Probe_En() {
  function QC_DM_PulledDown (line 70) | uint8_t QC_DM_PulledDown() { return HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_11)...
  function QC_resync (line 72) | void QC_resync() {

FILE: source/Core/BSP/MHP30/Setup.c
  function Setup_HAL (line 31) | void        Setup_HAL() {
  function getADC (line 52) | uint16_t getADC(uint8_t channel) {
  function SystemClock_Config (line 65) | void SystemClock_Config(void) {
  function MX_ADC1_Init (line 109) | static void MX_ADC1_Init(void) {
  function MX_ADC2_Init (line 159) | static void MX_ADC2_Init(void) {
  function MX_IWDG_Init (line 197) | static void MX_IWDG_Init(void) {
  function MX_TIM3_Init (line 207) | static void MX_TIM3_Init(void) {
  function MX_TIM2_Init (line 252) | static void MX_TIM2_Init(void) {
  function MX_DMA_Init (line 297) | static void MX_DMA_Init(void) {
  function MX_GPIO_Init (line 313) | static void MX_GPIO_Init(void) {
  function assert_failed (line 372) | void assert_failed(uint8_t *file, uint32_t line) { asm("bkpt"); }

FILE: source/Core/BSP/MHP30/ThermoModel.cpp
  function TemperatureType_t (line 14) | TemperatureType_t TipThermoModel::convertuVToDegC(uint32_t tipuVDelta) {

FILE: source/Core/BSP/MHP30/Vendor/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h
  type IRQn_Type (line 68) | typedef enum {
  type ADC_TypeDef (line 142) | typedef struct {
  type ADC_Common_TypeDef (line 165) | typedef struct {
  type BKP_TypeDef (line 177) | typedef struct {
  type CAN_TxMailBox_TypeDef (line 198) | typedef struct {
  type CAN_FIFOMailBox_TypeDef (line 209) | typedef struct {
  type CAN_FilterRegister_TypeDef (line 220) | typedef struct {
  type CAN_TypeDef (line 229) | typedef struct {
  type CRC_TypeDef (line 258) | typedef struct {
  type DBGMCU_TypeDef (line 270) | typedef struct {
  type DMA_Channel_TypeDef (line 279) | typedef struct {
  type DMA_TypeDef (line 286) | typedef struct {
  type EXTI_TypeDef (line 295) | typedef struct {
  type FLASH_TypeDef (line 308) | typedef struct {
  type OB_TypeDef (line 324) | typedef struct {
  type GPIO_TypeDef (line 339) | typedef struct {
  type AFIO_TypeDef (line 353) | typedef struct {
  type I2C_TypeDef (line 364) | typedef struct {
  type IWDG_TypeDef (line 380) | typedef struct {
  type PWR_TypeDef (line 391) | typedef struct {
  type RCC_TypeDef (line 400) | typedef struct {
  type RTC_TypeDef (line 418) | typedef struct {
  type SPI_TypeDef (line 435) | typedef struct {
  type TIM_TypeDef (line 449) | typedef struct {
  type USART_TypeDef (line 477) | typedef struct {
  type USB_TypeDef (line 491) | typedef struct {
  type WWDG_TypeDef (line 524) | typedef struct {

FILE: source/Core/BSP/MHP30/Vendor/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h
  type FlagStatus (line 147) | typedef enum { RESET = 0, SET = !RESET } FlagStatus, ITStatus;
  type FunctionalState (line 149) | typedef enum { DISABLE = 0, ENABLE = !DISABLE } FunctionalState;
  type ErrorStatus (line 152) | typedef enum { SUCCESS = 0U, ERROR = !SUCCESS } ErrorStatus;

FILE: source/Core/BSP/MHP30/Vendor/CMSIS/Include/cmsis_armcc.h
  function __STATIC_INLINE (line 126) | __STATIC_INLINE uint32_t __get_CONTROL(void) {
  function __STATIC_INLINE (line 136) | __STATIC_INLINE void __set_CONTROL(uint32_t control) {
  function __STATIC_INLINE (line 146) | __STATIC_INLINE uint32_t __get_IPSR(void) {
  function __STATIC_INLINE (line 156) | __STATIC_INLINE uint32_t __get_APSR(void) {
  function __STATIC_INLINE (line 166) | __STATIC_INLINE uint32_t __get_xPSR(void) {
  function __STATIC_INLINE (line 176) | __STATIC_INLINE uint32_t __get_PSP(void) {
  function __STATIC_INLINE (line 186) | __STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) {
  function __STATIC_INLINE (line 196) | __STATIC_INLINE uint32_t __get_MSP(void) {
  function __STATIC_INLINE (line 206) | __STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) {
  function __STATIC_INLINE (line 216) | __STATIC_INLINE uint32_t __get_PRIMASK(void) {
  function __STATIC_INLINE (line 226) | __STATIC_INLINE void __set_PRIMASK(uint32_t priMask) {
  function __STATIC_INLINE (line 252) | __STATIC_INLINE uint32_t __get_BASEPRI(void) {
  function __STATIC_INLINE (line 262) | __STATIC_INLINE void __set_BASEPRI(uint32_t basePri) {
  function __STATIC_INLINE (line 273) | __STATIC_INLINE void __set_BASEPRI_MAX(uint32_t basePri) {
  function __STATIC_INLINE (line 283) | __STATIC_INLINE uint32_t __get_FAULTMASK(void) {
  function __STATIC_INLINE (line 293) | __STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) {
  function __STATIC_INLINE (line 306) | __STATIC_INLINE uint32_t __get_FPSCR(void) {
  function __STATIC_INLINE (line 320) | __STATIC_INLINE void __set_FPSCR(uint32_t fpscr) {
  function __REV16 (line 414) | uint32_t __REV16(uint32_t value) { rev16 r0, r0 bx lr }
  function __REVSH (line 424) | int16_t __REVSH(int16_t value) { revsh r0, r0 bx lr }
  function __STATIC_INLINE (line 454) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t ...
  function __RRX (line 589) | uint32_t __RRX(uint32_t value) { rrx r0, r0 bx lr }
  function __STATIC_INLINE (line 650) | __attribute__((always_inline)) __STATIC_INLINE int32_t __SSAT(int32_t va...
  function __STATIC_INLINE (line 670) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USAT(int32_t v...

FILE: source/Core/BSP/MHP30/Vendor/CMSIS/Include/cmsis_armclang.h
  type T_UINT32 (line 71) | struct __attribute__((packed)) T_UINT32 {
  function __PACKED_STRUCT (line 81) | __PACKED_STRUCT          T_UINT16_WRITE { uint16_t v; }
  function __PACKED_STRUCT (line 89) | __PACKED_STRUCT          T_UINT16_READ { uint16_t v; }
  function __PACKED_STRUCT (line 97) | __PACKED_STRUCT          T_UINT32_WRITE { uint32_t v; }
  function __PACKED_STRUCT (line 105) | __PACKED_STRUCT          T_UINT32_READ { uint32_t v; }
  function __STATIC_FORCEINLINE (line 141) | __STATIC_FORCEINLINE uint32_t __get_CONTROL(void) {
  function __STATIC_FORCEINLINE (line 154) | __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) {
  function __STATIC_FORCEINLINE (line 167) | __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) { __ASM volati...
  function __STATIC_FORCEINLINE (line 175) | __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) { __ASM ...
  function __STATIC_FORCEINLINE (line 183) | __STATIC_FORCEINLINE uint32_t __get_IPSR(void) {
  function __STATIC_FORCEINLINE (line 195) | __STATIC_FORCEINLINE uint32_t __get_APSR(void) {
  function __STATIC_FORCEINLINE (line 207) | __STATIC_FORCEINLINE uint32_t __get_xPSR(void) {
  function __STATIC_FORCEINLINE (line 219) | __STATIC_FORCEINLINE uint32_t __get_PSP(void) {
  function __STATIC_FORCEINLINE (line 232) | __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) {
  function __STATIC_FORCEINLINE (line 245) | __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) { __ASM vol...
  function __STATIC_FORCEINLINE (line 253) | __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) { __A...
  function __STATIC_FORCEINLINE (line 261) | __STATIC_FORCEINLINE uint32_t __get_MSP(void) {
  function __STATIC_FORCEINLINE (line 274) | __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) {
  function __STATIC_FORCEINLINE (line 287) | __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) { __ASM vol...
  function __STATIC_FORCEINLINE (line 295) | __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) { __A...
  function __STATIC_FORCEINLINE (line 304) | __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) {
  function __STATIC_FORCEINLINE (line 316) | __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) { __ASM vo...
  function __STATIC_FORCEINLINE (line 324) | __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) {
  function __STATIC_FORCEINLINE (line 337) | __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) {
  function __STATIC_FORCEINLINE (line 350) | __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) { __ASM volati...
  function __STATIC_FORCEINLINE (line 358) | __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) { __ASM ...
  function __STATIC_FORCEINLINE (line 381) | __STATIC_FORCEINLINE uint32_t __get_BASEPRI(void) {
  function __STATIC_FORCEINLINE (line 394) | __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) {
  function __STATIC_FORCEINLINE (line 407) | __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) { __ASM volati...
  function __STATIC_FORCEINLINE (line 415) | __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) { __ASM ...
  function __STATIC_FORCEINLINE (line 424) | __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) { __ASM vo...
  function __STATIC_FORCEINLINE (line 431) | __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) {
  function __STATIC_FORCEINLINE (line 444) | __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) {
  function __STATIC_FORCEINLINE (line 457) | __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) { __ASM vo...
  function __STATIC_FORCEINLINE (line 465) | __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) { __...
  function __STATIC_FORCEINLINE (line 483) | __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) {
  function __STATIC_FORCEINLINE (line 504) | __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) {
  function __STATIC_FORCEINLINE (line 525) | __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) {
  function __STATIC_FORCEINLINE (line 544) | __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) {
  function __STATIC_FORCEINLINE (line 562) | __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) {
  function __STATIC_FORCEINLINE (line 582) | __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) {
  function __STATIC_FORCEINLINE (line 602) | __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) {
  function __STATIC_FORCEINLINE (line 620) | __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) {
  function __STATIC_FORCEINLINE (line 752) | __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 879) | __STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) {
  function __STATIC_FORCEINLINE (line 892) | __STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) {
  function __STATIC_FORCEINLINE (line 905) | __STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) {
  function __STATIC_FORCEINLINE (line 918) | __STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) {
  function __STATIC_FORCEINLINE (line 931) | __STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) ...
  function __STATIC_FORCEINLINE (line 939) | __STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr...
  function __STATIC_FORCEINLINE (line 947) | __STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr)...
  function __STATIC_FORCEINLINE (line 960) | __STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) {
  function __STATIC_FORCEINLINE (line 980) | __STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) {
  function __STATIC_FORCEINLINE (line 1003) | __STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) {
  function __STATIC_FORCEINLINE (line 1016) | __STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) {
  function __STATIC_FORCEINLINE (line 1029) | __STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) {
  function __STATIC_FORCEINLINE (line 1042) | __STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) {...
  function __STATIC_FORCEINLINE (line 1050) | __STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr)...
  function __STATIC_FORCEINLINE (line 1058) | __STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) ...
  function __STATIC_FORCEINLINE (line 1127) | __STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1134) | __STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1141) | __STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1148) | __STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1155) | __STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1162) | __STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1169) | __STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1176) | __STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1183) | __STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1190) | __STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1197) | __STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1204) | __STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1211) | __STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1218) | __STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1225) | __STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1232) | __STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1239) | __STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1246) | __STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1253) | __STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1260) | __STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1267) | __STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1274) | __STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1281) | __STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1288) | __STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1295) | __STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1302) | __STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1309) | __STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1316) | __STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1323) | __STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1330) | __STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1337) | __STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1344) | __STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1351) | __STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1358) | __STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1365) | __STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1372) | __STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1379) | __STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1386) | __STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint3...
  function __STATIC_FORCEINLINE (line 1407) | __STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) {
  function __STATIC_FORCEINLINE (line 1414) | __STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1421) | __STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) {
  function __STATIC_FORCEINLINE (line 1428) | __STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1435) | __STATIC_FORCEINLINE uint32_t __SMUAD(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1442) | __STATIC_FORCEINLINE uint32_t __SMUADX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1449) | __STATIC_FORCEINLINE uint32_t __SMLAD(uint32_t op1, uint32_t op2, uint32...
  function __STATIC_FORCEINLINE (line 1456) | __STATIC_FORCEINLINE uint32_t __SMLADX(uint32_t op1, uint32_t op2, uint3...
  function __STATIC_FORCEINLINE (line 1463) | __STATIC_FORCEINLINE uint64_t __SMLALD(uint32_t op1, uint32_t op2, uint6...
  function __STATIC_FORCEINLINE (line 1479) | __STATIC_FORCEINLINE uint64_t __SMLALDX(uint32_t op1, uint32_t op2, uint...
  function __STATIC_FORCEINLINE (line 1495) | __STATIC_FORCEINLINE uint32_t __SMUSD(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1502) | __STATIC_FORCEINLINE uint32_t __SMUSDX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1509) | __STATIC_FORCEINLINE uint32_t __SMLSD(uint32_t op1, uint32_t op2, uint32...
  function __STATIC_FORCEINLINE (line 1516) | __STATIC_FORCEINLINE uint32_t __SMLSDX(uint32_t op1, uint32_t op2, uint3...
  function __STATIC_FORCEINLINE (line 1523) | __STATIC_FORCEINLINE uint64_t __SMLSLD(uint32_t op1, uint32_t op2, uint6...
  function __STATIC_FORCEINLINE (line 1539) | __STATIC_FORCEINLINE uint64_t __SMLSLDX(uint32_t op1, uint32_t op2, uint...
  function __STATIC_FORCEINLINE (line 1555) | __STATIC_FORCEINLINE uint32_t __SEL(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1562) | __STATIC_FORCEINLINE int32_t __QADD(int32_t op1, int32_t op2) {
  function __STATIC_FORCEINLINE (line 1569) | __STATIC_FORCEINLINE int32_t __QSUB(int32_t op1, int32_t op2) {
  function __STATIC_FORCEINLINE (line 1599) | __STATIC_FORCEINLINE int32_t __SMMLA(int32_t op1, int32_t op2, int32_t o...

FILE: source/Core/BSP/MHP30/Vendor/CMSIS/Include/cmsis_compiler.h
  type T_UINT32 (line 91) | struct __attribute__((packed)) T_UINT32 {
  function __PACKED_STRUCT (line 97) | __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }
  function __PACKED_STRUCT (line 101) | __PACKED_STRUCT T_UINT16_READ { uint16_t v; }
  function __PACKED_STRUCT (line 105) | __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }
  function __PACKED_STRUCT (line 109) | __PACKED_STRUCT T_UINT32_READ { uint32_t v; }
  function T_UINT32 (line 161) | struct __packed__ T_UINT32 {
  function __PACKED_STRUCT (line 167) | __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }
  function __PACKED_STRUCT (line 171) | __PACKED_STRUCT T_UINT16_READ { uint16_t v; }
  function __PACKED_STRUCT (line 175) | __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }
  function __PACKED_STRUCT (line 179) | __PACKED_STRUCT T_UINT32_READ { uint32_t v; }
  function packed (line 229) | packed struct T_UINT32 {
  function __PACKED_STRUCT (line 235) | __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; }
  function __PACKED_STRUCT (line 239) | __PACKED_STRUCT T_UINT16_READ { uint16_t v; }
  function __PACKED_STRUCT (line 243) | __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; }
  function __PACKED_STRUCT (line 247) | __PACKED_STRUCT T_UINT32_READ { uint32_t v; }

FILE: source/Core/BSP/MHP30/Vendor/CMSIS/Include/cmsis_gcc.h
  type T_UINT32 (line 74) | struct __attribute__((packed)) T_UINT32 {
  function __PACKED_STRUCT (line 84) | __PACKED_STRUCT        T_UINT16_WRITE { uint16_t v; }
  function __PACKED_STRUCT (line 92) | __PACKED_STRUCT        T_UINT16_READ { uint16_t v; }
  function __PACKED_STRUCT (line 100) | __PACKED_STRUCT        T_UINT32_WRITE { uint32_t v; }
  function __PACKED_STRUCT (line 108) | __PACKED_STRUCT        T_UINT32_READ { uint32_t v; }
  function __STATIC_FORCEINLINE (line 157) | __STATIC_FORCEINLINE uint32_t __TZ_get_CONTROL_NS(void) {
  function __STATIC_FORCEINLINE (line 170) | __STATIC_FORCEINLINE void __set_CONTROL(uint32_t control) { __ASM volati...
  function __STATIC_FORCEINLINE (line 178) | __STATIC_FORCEINLINE void __TZ_set_CONTROL_NS(uint32_t control) { __ASM ...
  function __STATIC_FORCEINLINE (line 186) | __STATIC_FORCEINLINE uint32_t __get_IPSR(void) {
  function __STATIC_FORCEINLINE (line 198) | __STATIC_FORCEINLINE uint32_t __get_APSR(void) {
  function __STATIC_FORCEINLINE (line 210) | __STATIC_FORCEINLINE uint32_t __get_xPSR(void) {
  function __STATIC_FORCEINLINE (line 222) | __STATIC_FORCEINLINE uint32_t __get_PSP(void) {
  function __STATIC_FORCEINLINE (line 235) | __STATIC_FORCEINLINE uint32_t __TZ_get_PSP_NS(void) {
  function __STATIC_FORCEINLINE (line 248) | __STATIC_FORCEINLINE void __set_PSP(uint32_t topOfProcStack) { __ASM vol...
  function __STATIC_FORCEINLINE (line 256) | __STATIC_FORCEINLINE void __TZ_set_PSP_NS(uint32_t topOfProcStack) { __A...
  function __STATIC_FORCEINLINE (line 264) | __STATIC_FORCEINLINE uint32_t __get_MSP(void) {
  function __STATIC_FORCEINLINE (line 277) | __STATIC_FORCEINLINE uint32_t __TZ_get_MSP_NS(void) {
  function __STATIC_FORCEINLINE (line 290) | __STATIC_FORCEINLINE void __set_MSP(uint32_t topOfMainStack) { __ASM vol...
  function __STATIC_FORCEINLINE (line 298) | __STATIC_FORCEINLINE void __TZ_set_MSP_NS(uint32_t topOfMainStack) { __A...
  function __STATIC_FORCEINLINE (line 307) | __STATIC_FORCEINLINE uint32_t __TZ_get_SP_NS(void) {
  function __STATIC_FORCEINLINE (line 319) | __STATIC_FORCEINLINE void __TZ_set_SP_NS(uint32_t topOfStack) { __ASM vo...
  function __STATIC_FORCEINLINE (line 327) | __STATIC_FORCEINLINE uint32_t __get_PRIMASK(void) {
  function __STATIC_FORCEINLINE (line 340) | __STATIC_FORCEINLINE uint32_t __TZ_get_PRIMASK_NS(void) {
  function __STATIC_FORCEINLINE (line 353) | __STATIC_FORCEINLINE void __set_PRIMASK(uint32_t priMask) { __ASM volati...
  function __STATIC_FORCEINLINE (line 361) | __STATIC_FORCEINLINE void __TZ_set_PRIMASK_NS(uint32_t priMask) { __ASM ...
  function __STATIC_FORCEINLINE (line 397) | __STATIC_FORCEINLINE uint32_t __TZ_get_BASEPRI_NS(void) {
  function __STATIC_FORCEINLINE (line 410) | __STATIC_FORCEINLINE void __set_BASEPRI(uint32_t basePri) { __ASM volati...
  function __STATIC_FORCEINLINE (line 418) | __STATIC_FORCEINLINE void __TZ_set_BASEPRI_NS(uint32_t basePri) { __ASM ...
  function __STATIC_FORCEINLINE (line 427) | __STATIC_FORCEINLINE void __set_BASEPRI_MAX(uint32_t basePri) { __ASM vo...
  function __STATIC_FORCEINLINE (line 434) | __STATIC_FORCEINLINE uint32_t __get_FAULTMASK(void) {
  function __STATIC_FORCEINLINE (line 447) | __STATIC_FORCEINLINE uint32_t __TZ_get_FAULTMASK_NS(void) {
  function __STATIC_FORCEINLINE (line 460) | __STATIC_FORCEINLINE void __set_FAULTMASK(uint32_t faultMask) { __ASM vo...
  function __STATIC_FORCEINLINE (line 468) | __STATIC_FORCEINLINE void __TZ_set_FAULTMASK_NS(uint32_t faultMask) { __...
  function __STATIC_FORCEINLINE (line 486) | __STATIC_FORCEINLINE uint32_t __get_PSPLIM(void) {
  function __STATIC_FORCEINLINE (line 506) | __STATIC_FORCEINLINE uint32_t __TZ_get_PSPLIM_NS(void) {
  function __STATIC_FORCEINLINE (line 527) | __STATIC_FORCEINLINE void __set_PSPLIM(uint32_t ProcStackPtrLimit) {
  function __STATIC_FORCEINLINE (line 545) | __STATIC_FORCEINLINE void __TZ_set_PSPLIM_NS(uint32_t ProcStackPtrLimit) {
  function __STATIC_FORCEINLINE (line 564) | __STATIC_FORCEINLINE uint32_t __get_MSPLIM(void) {
  function __STATIC_FORCEINLINE (line 584) | __STATIC_FORCEINLINE uint32_t __TZ_get_MSPLIM_NS(void) {
  function __STATIC_FORCEINLINE (line 605) | __STATIC_FORCEINLINE void __set_MSPLIM(uint32_t MainStackPtrLimit) {
  function __STATIC_FORCEINLINE (line 623) | __STATIC_FORCEINLINE void __TZ_set_MSPLIM_NS(uint32_t MainStackPtrLimit) {
  function __STATIC_FORCEINLINE (line 641) | __STATIC_FORCEINLINE uint32_t __get_FPSCR(void) {
  function __STATIC_FORCEINLINE (line 664) | __STATIC_FORCEINLINE void __set_FPSCR(uint32_t fpscr) {
  function __STATIC_FORCEINLINE (line 770) | __STATIC_FORCEINLINE uint32_t __REV16(uint32_t value) {
  function __STATIC_FORCEINLINE (line 783) | __STATIC_FORCEINLINE int16_t __REVSH(int16_t value) {
  function __STATIC_FORCEINLINE (line 801) | __STATIC_FORCEINLINE uint32_t __ROR(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 824) | __STATIC_FORCEINLINE uint32_t __RBIT(uint32_t value) {
  function __STATIC_FORCEINLINE (line 859) | __STATIC_FORCEINLINE uint8_t __LDREXB(volatile uint8_t *addr) {
  function __STATIC_FORCEINLINE (line 879) | __STATIC_FORCEINLINE uint16_t __LDREXH(volatile uint16_t *addr) {
  function __STATIC_FORCEINLINE (line 899) | __STATIC_FORCEINLINE uint32_t __LDREXW(volatile uint32_t *addr) {
  function __STATIC_FORCEINLINE (line 914) | __STATIC_FORCEINLINE uint32_t __STREXB(uint8_t value, volatile uint8_t *...
  function __STATIC_FORCEINLINE (line 929) | __STATIC_FORCEINLINE uint32_t __STREXH(uint16_t value, volatile uint16_t...
  function __STATIC_FORCEINLINE (line 944) | __STATIC_FORCEINLINE uint32_t __STREXW(uint32_t value, volatile uint32_t...
  function __STATIC_FORCEINLINE (line 955) | __STATIC_FORCEINLINE void __CLREX(void) { __ASM volatile("clrex" ::: "me...
  function __STATIC_FORCEINLINE (line 998) | __STATIC_FORCEINLINE uint32_t __RRX(uint32_t value) {
  function __STATIC_FORCEINLINE (line 1011) | __STATIC_FORCEINLINE uint8_t __LDRBT(volatile uint8_t *ptr) {
  function __STATIC_FORCEINLINE (line 1031) | __STATIC_FORCEINLINE uint16_t __LDRHT(volatile uint16_t *ptr) {
  function __STATIC_FORCEINLINE (line 1051) | __STATIC_FORCEINLINE uint32_t __LDRT(volatile uint32_t *ptr) {
  function __STATIC_FORCEINLINE (line 1064) | __STATIC_FORCEINLINE void __STRBT(uint8_t value, volatile uint8_t *ptr) ...
  function __STATIC_FORCEINLINE (line 1072) | __STATIC_FORCEINLINE void __STRHT(uint16_t value, volatile uint16_t *ptr...
  function __STATIC_FORCEINLINE (line 1080) | __STATIC_FORCEINLINE void __STRT(uint32_t value, volatile uint32_t *ptr)...
  function __STATIC_FORCEINLINE (line 1093) | __STATIC_FORCEINLINE int32_t __SSAT(int32_t val, uint32_t sat) {
  function __STATIC_FORCEINLINE (line 1113) | __STATIC_FORCEINLINE uint32_t __USAT(int32_t val, uint32_t sat) {
  function __STATIC_FORCEINLINE (line 1136) | __STATIC_FORCEINLINE uint8_t __LDAB(volatile uint8_t *ptr) {
  function __STATIC_FORCEINLINE (line 1149) | __STATIC_FORCEINLINE uint16_t __LDAH(volatile uint16_t *ptr) {
  function __STATIC_FORCEINLINE (line 1162) | __STATIC_FORCEINLINE uint32_t __LDA(volatile uint32_t *ptr) {
  function __STATIC_FORCEINLINE (line 1175) | __STATIC_FORCEINLINE void __STLB(uint8_t value, volatile uint8_t *ptr) {...
  function __STATIC_FORCEINLINE (line 1183) | __STATIC_FORCEINLINE void __STLH(uint16_t value, volatile uint16_t *ptr)...
  function __STATIC_FORCEINLINE (line 1191) | __STATIC_FORCEINLINE void __STL(uint32_t value, volatile uint32_t *ptr) ...
  function __STATIC_FORCEINLINE (line 1199) | __STATIC_FORCEINLINE uint8_t __LDAEXB(volatile uint8_t *ptr) {
  function __STATIC_FORCEINLINE (line 1212) | __STATIC_FORCEINLINE uint16_t __LDAEXH(volatile uint16_t *ptr) {
  function __STATIC_FORCEINLINE (line 1225) | __STATIC_FORCEINLINE uint32_t __LDAEX(volatile uint32_t *ptr) {
  function __STATIC_FORCEINLINE (line 1240) | __STATIC_FORCEINLINE uint32_t __STLEXB(uint8_t value, volatile uint8_t *...
  function __STATIC_FORCEINLINE (line 1255) | __STATIC_FORCEINLINE uint32_t __STLEXH(uint16_t value, volatile uint16_t...
  function __STATIC_FORCEINLINE (line 1270) | __STATIC_FORCEINLINE uint32_t __STLEX(uint32_t value, volatile uint32_t ...
  function __STATIC_FORCEINLINE (line 1290) | __STATIC_FORCEINLINE uint32_t __SADD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1297) | __STATIC_FORCEINLINE uint32_t __QADD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1304) | __STATIC_FORCEINLINE uint32_t __SHADD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1311) | __STATIC_FORCEINLINE uint32_t __UADD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1318) | __STATIC_FORCEINLINE uint32_t __UQADD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1325) | __STATIC_FORCEINLINE uint32_t __UHADD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1332) | __STATIC_FORCEINLINE uint32_t __SSUB8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1339) | __STATIC_FORCEINLINE uint32_t __QSUB8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1346) | __STATIC_FORCEINLINE uint32_t __SHSUB8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1353) | __STATIC_FORCEINLINE uint32_t __USUB8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1360) | __STATIC_FORCEINLINE uint32_t __UQSUB8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1367) | __STATIC_FORCEINLINE uint32_t __UHSUB8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1374) | __STATIC_FORCEINLINE uint32_t __SADD16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1381) | __STATIC_FORCEINLINE uint32_t __QADD16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1388) | __STATIC_FORCEINLINE uint32_t __SHADD16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1395) | __STATIC_FORCEINLINE uint32_t __UADD16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1402) | __STATIC_FORCEINLINE uint32_t __UQADD16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1409) | __STATIC_FORCEINLINE uint32_t __UHADD16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1416) | __STATIC_FORCEINLINE uint32_t __SSUB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1423) | __STATIC_FORCEINLINE uint32_t __QSUB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1430) | __STATIC_FORCEINLINE uint32_t __SHSUB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1437) | __STATIC_FORCEINLINE uint32_t __USUB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1444) | __STATIC_FORCEINLINE uint32_t __UQSUB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1451) | __STATIC_FORCEINLINE uint32_t __UHSUB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1458) | __STATIC_FORCEINLINE uint32_t __SASX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1465) | __STATIC_FORCEINLINE uint32_t __QASX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1472) | __STATIC_FORCEINLINE uint32_t __SHASX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1479) | __STATIC_FORCEINLINE uint32_t __UASX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1486) | __STATIC_FORCEINLINE uint32_t __UQASX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1493) | __STATIC_FORCEINLINE uint32_t __UHASX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1500) | __STATIC_FORCEINLINE uint32_t __SSAX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1507) | __STATIC_FORCEINLINE uint32_t __QSAX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1514) | __STATIC_FORCEINLINE uint32_t __SHSAX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1521) | __STATIC_FORCEINLINE uint32_t __USAX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1528) | __STATIC_FORCEINLINE uint32_t __UQSAX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1535) | __STATIC_FORCEINLINE uint32_t __UHSAX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1542) | __STATIC_FORCEINLINE uint32_t __USAD8(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1549) | __STATIC_FORCEINLINE uint32_t __USADA8(uint32_t op1, uint32_t op2, uint3...
  function __STATIC_FORCEINLINE (line 1570) | __STATIC_FORCEINLINE uint32_t __UXTB16(uint32_t op1) {
  function __STATIC_FORCEINLINE (line 1577) | __STATIC_FORCEINLINE uint32_t __UXTAB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1584) | __STATIC_FORCEINLINE uint32_t __SXTB16(uint32_t op1) {
  function __STATIC_FORCEINLINE (line 1591) | __STATIC_FORCEINLINE uint32_t __SXTAB16(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1598) | __STATIC_FORCEINLINE uint32_t __SMUAD(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1605) | __STATIC_FORCEINLINE uint32_t __SMUADX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1612) | __STATIC_FORCEINLINE uint32_t __SMLAD(uint32_t op1, uint32_t op2, uint32...
  function __STATIC_FORCEINLINE (line 1619) | __STATIC_FORCEINLINE uint32_t __SMLADX(uint32_t op1, uint32_t op2, uint3...
  function __STATIC_FORCEINLINE (line 1626) | __STATIC_FORCEINLINE uint64_t __SMLALD(uint32_t op1, uint32_t op2, uint6...
  function __STATIC_FORCEINLINE (line 1642) | __STATIC_FORCEINLINE uint64_t __SMLALDX(uint32_t op1, uint32_t op2, uint...
  function __STATIC_FORCEINLINE (line 1658) | __STATIC_FORCEINLINE uint32_t __SMUSD(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1665) | __STATIC_FORCEINLINE uint32_t __SMUSDX(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1672) | __STATIC_FORCEINLINE uint32_t __SMLSD(uint32_t op1, uint32_t op2, uint32...
  function __STATIC_FORCEINLINE (line 1679) | __STATIC_FORCEINLINE uint32_t __SMLSDX(uint32_t op1, uint32_t op2, uint3...
  function __STATIC_FORCEINLINE (line 1686) | __STATIC_FORCEINLINE uint64_t __SMLSLD(uint32_t op1, uint32_t op2, uint6...
  function __STATIC_FORCEINLINE (line 1702) | __STATIC_FORCEINLINE uint64_t __SMLSLDX(uint32_t op1, uint32_t op2, uint...
  function __STATIC_FORCEINLINE (line 1718) | __STATIC_FORCEINLINE uint32_t __SEL(uint32_t op1, uint32_t op2) {
  function __STATIC_FORCEINLINE (line 1725) | __STATIC_FORCEINLINE int32_t __QADD(int32_t op1, int32_t op2) {
  function __STATIC_FORCEINLINE (line 1732) | __STATIC_FORCEINLINE int32_t __QSUB(int32_t op1, int32_t op2) {
  function __STATIC_FORCEINLINE (line 1762) | __STATIC_FORCEINLINE int32_t __SMMLA(int32_t op1, int32_t op2, int32_t o...

FILE: source/Core/BSP/MHP30/Vendor/CMSIS/Include/cmsis_iccarm.h
  function __IAR_FT (line 165) | __IAR_FT uint16_t __iar_uint16_read(void const *ptr) { return *(__packed...
  function __IAR_FT (line 173) | __IAR_FT void __iar_uint16_write(void const *ptr, uint16_t val) {
  function __IAR_FT (line 184) | __IAR_FT uint32_t __iar_uint32_read(void const *ptr) { return *(__packed...
  function __IAR_FT (line 192) | __IAR_FT void __iar_uint32_write(void const *ptr, uint32_t val) {
  function __packed (line 203) | __packed struct __iar_u32 { uint32_t v; }
  function __IAR_FT (line 353) | __IAR_FT int16_t __REVSH(int16_t val) { return (int16_t)__iar_builtin_RE...
  function __STATIC_INLINE (line 470) | __STATIC_INLINE uint8_t __CLZ(uint32_t data) {
  function __STATIC_INLINE (line 485) | __STATIC_INLINE uint32_t __RBIT(uint32_t v) {
  function __STATIC_INLINE (line 496) | __STATIC_INLINE uint32_t __get_APSR(void) {
  function __IAR_FT (line 522) | __IAR_FT uint32_t __LDREXW(uint32_t volatile *ptr) { return __LDREX((uns...
  function __IAR_FT (line 524) | __IAR_FT uint32_t __STREXW(uint32_t value, uint32_t volatile *ptr) { ret...
  function __IAR_FT (line 530) | __IAR_FT uint32_t __RRX(uint32_t value) {
  function __IAR_FT (line 536) | __IAR_FT void __set_BASEPRI_MAX(uint32_t value) { __asm volatile("MSR   ...
  function __IAR_FT (line 543) | __IAR_FT uint32_t __ROR(uint32_t op1, uint32_t op2) { return (op1 >> op2...
  function __IAR_FT (line 547) | __IAR_FT uint32_t __get_MSPLIM(void) {
  function __IAR_FT (line 558) | __IAR_FT void __set_MSPLIM(uint32_t value) {
  function __IAR_FT (line 567) | __IAR_FT uint32_t __get_PSPLIM(void) {
  function __IAR_FT (line 578) | __IAR_FT void __set_PSPLIM(uint32_t value) {
  function __IAR_FT (line 587) | __IAR_FT uint32_t __TZ_get_CONTROL_NS(void) {
  function __IAR_FT (line 593) | __IAR_FT void __TZ_set_CONTROL_NS(uint32_t value) { __asm volatile("MSR ...
  function __IAR_FT (line 595) | __IAR_FT uint32_t __TZ_get_PSP_NS(void) {
  function __IAR_FT (line 601) | __IAR_FT void __TZ_set_PSP_NS(uint32_t value) { __asm volatile("MSR     ...
  function __IAR_FT (line 603) | __IAR_FT uint32_t __TZ_get_MSP_NS(void) {
  function __IAR_FT (line 609) | __IAR_FT void __TZ_set_MSP_NS(uint32_t value) { __asm volatile("MSR     ...
  function __IAR_FT (line 611) | __IAR_FT uint32_t __TZ_get_SP_NS(void) {
  function __IAR_FT (line 616) | __IAR_FT void __TZ_set_SP_NS(uint32_t value) { __asm volatile("MSR      ...
  function __IAR_FT (line 618) | __IAR_FT uint32_t __TZ_get_PRIMASK_NS(void) {
  function __IAR_FT (line 624) | __IAR_FT void __TZ_set_PRIMASK_NS(uint32_t value) { __asm volatile("MSR ...
  function __IAR_FT (line 626) | __IAR_FT uint32_t __TZ_get_BASEPRI_NS(void) {
  function __IAR_FT (line 632) | __IAR_FT void __TZ_set_BASEPRI_NS(uint32_t value) { __asm volatile("MSR ...
  function __IAR_FT (line 634) | __IAR_FT uint32_t __TZ_get_FAULTMASK_NS(void) {
  function __IAR_FT (line 640) | __IAR_FT void __TZ_set_FAULTMASK_NS(uint32_t value) { __asm volatile("MS...
  function __IAR_FT (line 642) | __IAR_FT uint32_t __TZ_get_PSPLIM_NS(void) {
  function __IAR_FT (line 653) | __IAR_FT void __TZ_set_PSPLIM_NS(uint32_t value) {
  function __IAR_FT (line 662) | __IAR_FT uint32_t __TZ_get_MSPLIM_NS(void) {
  function __IAR_FT (line 668) | __IAR_FT void __TZ_set_MSPLIM_NS(uint32_t value) { __asm volatile("MSR  ...
  function __STATIC_INLINE (line 677) | __STATIC_INLINE int32_t __SSAT(int32_t val, uint32_t sat) {
  function __STATIC_INLINE (line 690) | __STATIC_INLINE uint32_t __USAT(int32_t val, uint32_t sat) {
  function __IAR_FT (line 705) | __IAR_FT uint8_t __LDRBT(volatile uint8_t *addr) {
  function __IAR_FT (line 711) | __IAR_FT uint16_t __LDRHT(volatile uint16_t *addr) {
  function __IAR_FT (line 717) | __IAR_FT uint32_t __LDRT(volatile uint32_t *addr) {
  function __IAR_FT (line 723) | __IAR_FT void __STRBT(uint8_t value, volatile uint8_t *addr) { __ASM("ST...
  function __IAR_FT (line 725) | __IAR_FT void __STRHT(uint16_t value, volatile uint16_t *addr) { __ASM("...
  function __IAR_FT (line 727) | __IAR_FT void __STRT(uint32_t value, volatile uint32_t *addr) { __ASM("S...
  function __IAR_FT (line 733) | __IAR_FT uint8_t __LDAB(volatile uint8_t *ptr) {
  function __IAR_FT (line 739) | __IAR_FT uint16_t __LDAH(volatile uint16_t *ptr) {
  function __IAR_FT (line 745) | __IAR_FT uint32_t __LDA(volatile uint32_t *ptr) {
  function __IAR_FT (line 751) | __IAR_FT void __STLB(uint8_t value, volatile uint8_t *ptr) { __ASM volat...
  function __IAR_FT (line 753) | __IAR_FT void __STLH(uint16_t value, volatile uint16_t *ptr) { __ASM vol...
  function __IAR_FT (line 755) | __IAR_FT void __STL(uint32_t value, volatile uint32_t *ptr) { __ASM vola...
  function __IAR_FT (line 757) | __IAR_FT uint8_t __LDAEXB(volatile uint8_t *ptr) {
  function __IAR_FT (line 763) | __IAR_FT uint16_t __LDAEXH(volatile uint16_t *ptr) {
  function __IAR_FT (line 769) | __IAR_FT uint32_t __LDAEX(volatile uint32_t *ptr) {
  function __IAR_FT (line 775) | __IAR_FT uint32_t __STLEXB(uint8_t value, volatile uint8_t *ptr) {
  function __IAR_FT (line 781) | __IAR_FT uint32_t __STLEXH(uint16_t value, volatile uint16_t *ptr) {
  function __IAR_FT (line 787) | __IAR_FT uint32_t __STLEX(uint32_t value, volatile uint32_t *ptr) {

FILE: source/Core/BSP/MHP30/Vendor/CMSIS/Include/core_cm3.h
  type APSR_Type (line 201) | typedef union {
  type IPSR_Type (line 232) | typedef union {
  type xPSR_Type (line 247) | typedef union {
  type CONTROL_Type (line 295) | typedef union {
  type NVIC_Type (line 323) | typedef struct {
  type SCB_Type (line 355) | typedef struct {
  type SCnSCB_Type (line 634) | typedef struct {
  type SysTick_Type (line 671) | typedef struct {
  type DWT_Type (line 821) | typedef struct {
  type TPI_Type (line 966) | typedef struct {
  type MPU_Type (line 1126) | typedef struct {
  type CoreDebug_Type (line 1220) | typedef struct {
  function __STATIC_INLINE (line 1437) | __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) {
  function __STATIC_INLINE (line 1452) | __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) { return ((uin...
  function __STATIC_INLINE (line 1460) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1474) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1488) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1504) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1518) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1530) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1544) | __STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1561) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priorit...
  function __STATIC_INLINE (line 1578) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1598) | __STATIC_INLINE uint32_t NVIC_EncodePriority(uint32_t PriorityGroup, uin...
  function __STATIC_INLINE (line 1620) | __STATIC_INLINE void NVIC_DecodePriority(uint32_t Priority, uint32_t Pri...
  function __STATIC_INLINE (line 1641) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
  function __STATIC_INLINE (line 1654) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) {
  function __NVIC_SystemReset (line 1663) | void __NVIC_SystemReset(void) {
  function __STATIC_INLINE (line 1701) | __STATIC_INLINE uint32_t SCB_GetFPUType(void) { return 0U; /* No FPU */ }
  function __STATIC_INLINE (line 1726) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) {
  function __STATIC_INLINE (line 1761) | __STATIC_INLINE uint32_t ITM_SendChar(uint32_t ch) {
  function __STATIC_INLINE (line 1779) | __STATIC_INLINE int32_t ITM_ReceiveChar(void) {
  function __STATIC_INLINE (line 1796) | __STATIC_INLINE int32_t ITM_CheckChar(void) {

FILE: source/Core/BSP/MHP30/Vendor/CMSIS/Include/core_sc000.h
  type APSR_Type (line 200) | typedef union {
  type IPSR_Type (line 227) | typedef union {
  type xPSR_Type (line 242) | typedef union {
  type CONTROL_Type (line 278) | typedef union {
  type NVIC_Type (line 303) | typedef struct {
  type SCB_Type (line 328) | typedef struct {
  type SCnSCB_Type (line 439) | typedef struct {
  type SysTick_Type (line 460) | typedef struct {
  type MPU_Type (line 511) | typedef struct {
  function __STATIC_INLINE (line 714) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 728) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 742) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 758) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 772) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 784) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 799) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priorit...
  function __STATIC_INLINE (line 816) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 834) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
  function __STATIC_INLINE (line 847) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) {
  function __NVIC_SystemReset (line 856) | void __NVIC_SystemReset(void) {
  function __STATIC_INLINE (line 886) | __STATIC_INLINE uint32_t SCB_GetFPUType(void) { return 0U; /* No FPU */ }
  function __STATIC_INLINE (line 911) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) {

FILE: source/Core/BSP/MHP30/Vendor/CMSIS/Include/core_sc300.h
  type APSR_Type (line 201) | typedef union {
  type IPSR_Type (line 232) | typedef union {
  type xPSR_Type (line 247) | typedef union {
  type CONTROL_Type (line 295) | typedef union {
  type NVIC_Type (line 323) | typedef struct {
  type SCB_Type (line 355) | typedef struct {
  type SCnSCB_Type (line 631) | typedef struct {
  type SysTick_Type (line 653) | typedef struct {
  type DWT_Type (line 803) | typedef struct {
  type TPI_Type (line 948) | typedef struct {
  type MPU_Type (line 1108) | typedef struct {
  type CoreDebug_Type (line 1200) | typedef struct {
  function __STATIC_INLINE (line 1417) | __STATIC_INLINE void __NVIC_SetPriorityGrouping(uint32_t PriorityGroup) {
  function __STATIC_INLINE (line 1432) | __STATIC_INLINE uint32_t __NVIC_GetPriorityGrouping(void) { return ((uin...
  function __STATIC_INLINE (line 1440) | __STATIC_INLINE void __NVIC_EnableIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1454) | __STATIC_INLINE uint32_t __NVIC_GetEnableIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1468) | __STATIC_INLINE void __NVIC_DisableIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1484) | __STATIC_INLINE uint32_t __NVIC_GetPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1498) | __STATIC_INLINE void __NVIC_SetPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1510) | __STATIC_INLINE void __NVIC_ClearPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1524) | __STATIC_INLINE uint32_t __NVIC_GetActive(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1541) | __STATIC_INLINE void __NVIC_SetPriority(IRQn_Type IRQn, uint32_t priorit...
  function __STATIC_INLINE (line 1558) | __STATIC_INLINE uint32_t __NVIC_GetPriority(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1578) | __STATIC_INLINE uint32_t NVIC_EncodePriority(uint32_t PriorityGroup, uin...
  function __STATIC_INLINE (line 1600) | __STATIC_INLINE void NVIC_DecodePriority(uint32_t Priority, uint32_t Pri...
  function __STATIC_INLINE (line 1621) | __STATIC_INLINE void __NVIC_SetVector(IRQn_Type IRQn, uint32_t vector) {
  function __STATIC_INLINE (line 1634) | __STATIC_INLINE uint32_t __NVIC_GetVector(IRQn_Type IRQn) {
  function __NVIC_SystemReset (line 1643) | void __NVIC_SystemReset(void) {
  function __STATIC_INLINE (line 1673) | __STATIC_INLINE uint32_t SCB_GetFPUType(void) { return 0U; /* No FPU */ }
  function __STATIC_INLINE (line 1698) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) {
  function __STATIC_INLINE (line 1733) | __STATIC_INLINE uint32_t ITM_SendChar(uint32_t ch) {
  function __STATIC_INLINE (line 1751) | __STATIC_INLINE int32_t ITM_ReceiveChar(void) {
  function __STATIC_INLINE (line 1768) | __STATIC_INLINE int32_t ITM_CheckChar(void) {

FILE: source/Core/BSP/MHP30/Vendor/CMSIS/Include/tz_context.h
  type TZ_ModuleId_t (line 39) | typedef uint32_t TZ_ModuleId_t;
  type TZ_MemoryId_t (line 43) | typedef uint32_t TZ_MemoryId_t;

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h
  type HAL_TickFreqTypeDef (line 49) | typedef enum { HAL_TICK_FREQ_10HZ = 100U, HAL_TICK_FREQ_100HZ = 10U, HAL...

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc.h
  type ADC_InitTypeDef (line 52) | typedef struct {
  type ADC_ChannelConfTypeDef (line 92) | typedef struct {
  type ADC_AnalogWDGConfTypeDef (line 120) | typedef struct {
  type ADC_HandleTypeDef (line 175) | typedef struct __ADC_HandleTypeDef {
  type HAL_ADC_CallbackIDTypeDef (line 203) | typedef enum {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc_ex.h
  type ADC_InjectionConfTypeDef (line 55) | typedef struct {
  type ADC_MultiModeTypeDef (line 115) | typedef struct {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h
  type MPU_Region_InitTypeDef (line 48) | typedef struct {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h
  type HAL_StatusTypeDef (line 47) | typedef enum { HAL_OK = 0x00U, HAL_ERROR = 0x01U, HAL_BUSY = 0x02U, HAL_...
  type HAL_LockTypeDef (line 52) | typedef enum { HAL_UNLOCKED = 0x00U, HAL_LOCKED = 0x01U } HAL_LockTypeDef;

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h
  type DMA_InitTypeDef (line 48) | typedef struct {
  type HAL_DMA_StateTypeDef (line 77) | typedef enum {
  type HAL_DMA_LevelCompleteTypeDef (line 87) | typedef enum {
  type HAL_DMA_CallbackIDTypeDef (line 95) | typedef enum {
  type DMA_HandleTypeDef (line 107) | typedef struct __DMA_HandleTypeDef {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h
  type EXTI_CallbackIDTypeDef (line 49) | typedef enum { HAL_EXTI_COMMON_CB_ID = 0x00U } EXTI_CallbackIDTypeDef;
  type EXTI_HandleTypeDef (line 54) | typedef struct {
  type EXTI_ConfigTypeDef (line 62) | typedef struct {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h
  type FLASH_ProcedureTypeDef (line 71) | typedef enum {
  type FLASH_ProcessTypeDef (line 83) | typedef struct {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h
  type FLASH_EraseInitTypeDef (line 174) | typedef struct {
  type FLASH_OBProgramInitTypeDef (line 193) | typedef struct {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h
  type GPIO_InitTypeDef (line 47) | typedef struct {
  type GPIO_PinState (line 64) | typedef enum { GPIO_PIN_RESET = 0u, GPIO_PIN_SET } GPIO_PinState;

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_iwdg.h
  type IWDG_InitTypeDef (line 47) | typedef struct {
  type IWDG_HandleTypeDef (line 59) | typedef struct {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
  type PWR_PVDTypeDef (line 48) | typedef struct {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h
  type RCC_PLLInitTypeDef (line 48) | typedef struct {
  type RCC_ClkInitTypeDef (line 62) | typedef struct {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h
  type RCC_PLL2InitTypeDef (line 174) | typedef struct {
  type RCC_OscInitTypeDef (line 193) | typedef struct {
  type RCC_PLLI2SInitTypeDef (line 231) | typedef struct {
  type RCC_PeriphCLKInitTypeDef (line 246) | typedef struct {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h
  type TIM_Base_InitTypeDef (line 47) | typedef struct {
  type TIM_OC_InitTypeDef (line 77) | typedef struct {
  type TIM_OnePulse_InitTypeDef (line 107) | typedef struct {
  type TIM_IC_InitTypeDef (line 142) | typedef struct {
  type TIM_Encoder_InitTypeDef (line 159) | typedef struct {
  type TIM_ClockConfigTypeDef (line 191) | typedef struct {
  type TIM_ClearInputConfigTypeDef (line 205) | typedef struct {
  type TIM_MasterConfigTypeDef (line 221) | typedef struct {
  type TIM_SlaveConfigTypeDef (line 236) | typedef struct {
  type TIM_BreakDeadTimeConfigTypeDef (line 255) | typedef struct {
  type HAL_TIM_StateTypeDef (line 277) | typedef enum {
  type HAL_TIM_ChannelStateTypeDef (line 288) | typedef enum {
  type HAL_TIM_DMABurstStateTypeDef (line 297) | typedef enum {
  type HAL_TIM_ActiveChannel (line 306) | typedef enum {
  type __TIM_HandleTypeDef (line 318) | struct __TIM_HandleTypeDef
  type TIM_HandleTypeDef (line 320) | typedef struct
  type HAL_TIM_CallbackIDTypeDef (line 369) | typedef enum {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h
  type TIM_HallSensor_InitTypeDef (line 48) | typedef struct {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c
  function HAL_StatusTypeDef (line 139) | HAL_StatusTypeDef HAL_Init(void) {
  function HAL_StatusTypeDef (line 169) | HAL_StatusTypeDef HAL_DeInit(void) {
  function __weak (line 193) | __weak void HAL_MspInit(void) {
  function __weak (line 203) | __weak void HAL_MspDeInit(void) {
  function __weak (line 225) | __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) {
  function __weak (line 279) | __weak void HAL_IncTick(void) { uwTick += uwTickFreq; }
  function __weak (line 287) | __weak uint32_t HAL_GetTick(void) { return uwTick; }
  function HAL_GetTickPrio (line 293) | uint32_t HAL_GetTickPrio(void) { return uwTickPrio; }
  function HAL_StatusTypeDef (line 299) | HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq) {
  function HAL_TickFreqTypeDef (line 328) | HAL_TickFreqTypeDef HAL_GetTickFreq(void) { return uwTickFreq; }
  function __weak (line 341) | __weak void HAL_Delay(uint32_t Delay) {
  function __weak (line 364) | __weak void HAL_SuspendTick(void) {
  function __weak (line 379) | __weak void HAL_ResumeTick(void) {
  function HAL_GetHalVersion (line 388) | uint32_t HAL_GetHalVersion(void) { return __STM32F1xx_HAL_VERSION; }
  function HAL_GetREVID (line 401) | uint32_t HAL_GetREVID(void) { return ((DBGMCU->IDCODE) >> DBGMCU_IDCODE_...
  function HAL_GetDEVID (line 414) | uint32_t HAL_GetDEVID(void) { return ((DBGMCU->IDCODE) & IDCODE_DEVID_MA...
  function HAL_GetUIDw0 (line 420) | uint32_t HAL_GetUIDw0(void) { return (READ_REG(*((uint32_t *)UID_BASE))); }
  function HAL_GetUIDw1 (line 426) | uint32_t HAL_GetUIDw1(void) { return (READ_REG(*((uint32_t *)(UID_BASE +...
  function HAL_GetUIDw2 (line 432) | uint32_t HAL_GetUIDw2(void) { return (READ_REG(*((uint32_t *)(UID_BASE +...
  function HAL_DBGMCU_EnableDBGSleepMode (line 438) | void HAL_DBGMCU_EnableDBGSleepMode(void) { SET_BIT(DBGMCU->CR, DBGMCU_CR...
  function HAL_DBGMCU_DisableDBGSleepMode (line 451) | void HAL_DBGMCU_DisableDBGSleepMode(void) { CLEAR_BIT(DBGMCU->CR, DBGMCU...
  function HAL_DBGMCU_EnableDBGStopMode (line 478) | void HAL_DBGMCU_EnableDBGStopMode(void) { SET_BIT(DBGMCU->CR, DBGMCU_CR_...
  function HAL_DBGMCU_DisableDBGStopMode (line 491) | void HAL_DBGMCU_DisableDBGStopMode(void) { CLEAR_BIT(DBGMCU->CR, DBGMCU_...
  function HAL_DBGMCU_EnableDBGStandbyMode (line 504) | void HAL_DBGMCU_EnableDBGStandbyMode(void) { SET_BIT(DBGMCU->CR, DBGMCU_...
  function HAL_DBGMCU_DisableDBGStandbyMode (line 517) | void HAL_DBGMCU_DisableDBGStandbyMode(void) { CLEAR_BIT(DBGMCU->CR, DBGM...

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c
  function HAL_StatusTypeDef (line 421) | HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 596) | HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc) {
  function __weak (line 715) | __weak void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) {
  function __weak (line 728) | __weak void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 756) | HAL_StatusTypeDef HAL_ADC_RegisterCallback(ADC_HandleTypeDef *hadc, HAL_...
  function HAL_StatusTypeDef (line 851) | HAL_StatusTypeDef HAL_ADC_UnRegisterCallback(ADC_HandleTypeDef *hadc, HA...
  function HAL_StatusTypeDef (line 955) | HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 1050) | HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 1090) | HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uin...
  function HAL_StatusTypeDef (line 1204) | HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef *hadc, uint32_t...
  function HAL_StatusTypeDef (line 1249) | HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 1342) | HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 1395) | HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef *hadc, uint32_t *p...
  function HAL_StatusTypeDef (line 1515) | HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef *hadc) {
  function HAL_ADC_GetValue (line 1575) | uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef *hadc) {
  function HAL_ADC_IRQHandler (line 1591) | void HAL_ADC_IRQHandler(ADC_HandleTypeDef *hadc) {
  function __weak (line 1699) | __weak void HAL_ADC_ConvCpltCallback(ADC_HandleTypeDef *hadc) {
  function __weak (line 1712) | __weak void HAL_ADC_ConvHalfCpltCallback(ADC_HandleTypeDef *hadc) {
  function __weak (line 1725) | __weak void HAL_ADC_LevelOutOfWindowCallback(ADC_HandleTypeDef *hadc) {
  function __weak (line 1739) | __weak void HAL_ADC_ErrorCallback(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 1785) | HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, ADC_Cha...
  function HAL_StatusTypeDef (line 1869) | HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, ADC_A...
  function HAL_ADC_GetState (line 1942) | uint32_t HAL_ADC_GetState(ADC_HandleTypeDef *hadc) {
  function HAL_ADC_GetError (line 1952) | uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc) { return hadc->ErrorC...
  function HAL_StatusTypeDef (line 1973) | HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 2023) | HAL_StatusTypeDef ADC_ConversionStop_Disable(ADC_HandleTypeDef *hadc) {
  function ADC_DMAConvCplt (line 2057) | void ADC_DMAConvCplt(DMA_HandleTypeDef *hdma) {
  function ADC_DMAHalfConvCplt (line 2097) | void ADC_DMAHalfConvCplt(DMA_HandleTypeDef *hdma) {
  function ADC_DMAError (line 2114) | void ADC_DMAError(DMA_HandleTypeDef *hdma) {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c
  function HAL_StatusTypeDef (line 126) | HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 214) | HAL_StatusTypeDef HAL_ADCEx_InjectedStart(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 298) | HAL_StatusTypeDef HAL_ADCEx_InjectedStop(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 343) | HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion(ADC_HandleTypeDef ...
  function HAL_StatusTypeDef (line 444) | HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 528) | HAL_StatusTypeDef HAL_ADCEx_InjectedStop_IT(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 589) | HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef *hadc, ...
  function HAL_StatusTypeDef (line 701) | HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA(ADC_HandleTypeDef *hadc) {
  function HAL_ADCEx_InjectedGetValue (line 784) | uint32_t HAL_ADCEx_InjectedGetValue(ADC_HandleTypeDef *hadc, uint32_t In...
  function HAL_ADCEx_MultiModeGetValue (line 819) | uint32_t HAL_ADCEx_MultiModeGetValue(ADC_HandleTypeDef *hadc) {
  function __weak (line 849) | __weak void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 890) | HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef *had...
  function HAL_StatusTypeDef (line 1085) | HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef *ha...

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c
  function HAL_NVIC_SetPriorityGrouping (line 141) | void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) {
  function HAL_NVIC_SetPriority (line 162) | void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint...
  function HAL_NVIC_EnableIRQ (line 183) | void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) {
  function HAL_NVIC_DisableIRQ (line 198) | void HAL_NVIC_DisableIRQ(IRQn_Type IRQn) {
  function HAL_NVIC_SystemReset (line 210) | void HAL_NVIC_SystemReset(void) {
  function HAL_SYSTICK_Config (line 222) | uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) { return SysTick_Config(...
  function HAL_MPU_Disable (line 248) | void HAL_MPU_Disable(void) {
  function HAL_MPU_Enable (line 270) | void HAL_MPU_Enable(uint32_t MPU_Control) {
  function HAL_MPU_ConfigRegion (line 288) | void HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init) {
  function HAL_NVIC_GetPriorityGrouping (line 322) | uint32_t HAL_NVIC_GetPriorityGrouping(void) {
  function HAL_NVIC_GetPriority (line 348) | void HAL_NVIC_GetPriority(IRQn_Type IRQn, uint32_t PriorityGroup, uint32...
  function HAL_NVIC_SetPendingIRQ (line 362) | void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn) {
  function HAL_NVIC_GetPendingIRQ (line 379) | uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn) {
  function HAL_NVIC_ClearPendingIRQ (line 394) | void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn) {
  function HAL_NVIC_GetActive (line 410) | uint32_t HAL_NVIC_GetActive(IRQn_Type IRQn) {
  function HAL_SYSTICK_CLKSourceConfig (line 426) | void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource) {
  function HAL_SYSTICK_IRQHandler (line 440) | void HAL_SYSTICK_IRQHandler(void) { HAL_SYSTICK_Callback(); }
  function __weak (line 446) | __weak void HAL_SYSTICK_Callback(void) {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c
  function HAL_StatusTypeDef (line 143) | HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma) {
  function HAL_StatusTypeDef (line 210) | HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma) {
  function HAL_StatusTypeDef (line 304) | HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAdd...
  function HAL_StatusTypeDef (line 343) | HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t Src...
  function HAL_StatusTypeDef (line 390) | HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma) {
  function HAL_StatusTypeDef (line 428) | HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) {
  function HAL_StatusTypeDef (line 468) | HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, uint3...
  function HAL_DMA_IRQHandler (line 556) | void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma) {
  function HAL_StatusTypeDef (line 637) | HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_...
  function HAL_StatusTypeDef (line 683) | HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HA...
  function HAL_DMA_StateTypeDef (line 754) | HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma) {
  function HAL_DMA_GetError (line 765) | uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma) { return hdma->ErrorC...
  function DMA_SetConfig (line 788) | static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, ...

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c
  function HAL_StatusTypeDef (line 143) | HAL_StatusTypeDef HAL_EXTI_SetConfigLine(EXTI_HandleTypeDef *hexti, EXTI...
  function HAL_StatusTypeDef (line 221) | HAL_StatusTypeDef HAL_EXTI_GetConfigLine(EXTI_HandleTypeDef *hexti, EXTI...
  function HAL_StatusTypeDef (line 294) | HAL_StatusTypeDef HAL_EXTI_ClearConfigLine(EXTI_HandleTypeDef *hexti) {
  function HAL_StatusTypeDef (line 343) | HAL_StatusTypeDef HAL_EXTI_RegisterCallback(EXTI_HandleTypeDef *hexti, E...
  function HAL_StatusTypeDef (line 366) | HAL_StatusTypeDef HAL_EXTI_GetHandle(EXTI_HandleTypeDef *hexti, uint32_t...
  function HAL_EXTI_IRQHandler (line 402) | void HAL_EXTI_IRQHandler(EXTI_HandleTypeDef *hexti) {
  function HAL_EXTI_GetPending (line 431) | uint32_t HAL_EXTI_GetPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) {
  function HAL_EXTI_ClearPending (line 459) | void HAL_EXTI_ClearPending(EXTI_HandleTypeDef *hexti, uint32_t Edge) {
  function HAL_EXTI_GenerateSWI (line 479) | void HAL_EXTI_GenerateSWI(EXTI_HandleTypeDef *hexti) {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c
  function HAL_StatusTypeDef (line 168) | HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Addre...
  function HAL_StatusTypeDef (line 252) | HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Ad...
  function __weak (line 541) | __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue) {
  function __weak (line 558) | __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue) {
  function HAL_StatusTypeDef (line 590) | HAL_StatusTypeDef HAL_FLASH_Unlock(void) {
  function HAL_StatusTypeDef (line 623) | HAL_StatusTypeDef HAL_FLASH_Lock(void) {
  function HAL_StatusTypeDef (line 639) | HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void) {
  function HAL_StatusTypeDef (line 655) | HAL_StatusTypeDef HAL_FLASH_OB_Lock(void) {
  function HAL_FLASH_OB_Launch (line 667) | void HAL_FLASH_OB_Launch(void) {
  function HAL_FLASH_GetError (line 695) | uint32_t HAL_FLASH_GetError(void) { return pFlash.ErrorCode; }
  function FLASH_Program_HalfWord (line 715) | static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data) {
  function HAL_StatusTypeDef (line 740) | HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout) {
  function HAL_StatusTypeDef (line 777) | HAL_StatusTypeDef FLASH_WaitForLastOperationBank2(uint32_t Timeout) {
  function FLASH_SetErrorCode (line 813) | static void FLASH_SetErrorCode(void) {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c
  function HAL_StatusTypeDef (line 158) | HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, ...
  function HAL_StatusTypeDef (line 292) | HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseIni...
  function HAL_StatusTypeDef (line 365) | HAL_StatusTypeDef HAL_FLASHEx_OBErase(void) {
  function HAL_StatusTypeDef (line 411) | HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBI...
  function HAL_FLASHEx_OBGetConfig (line 480) | void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit) {
  function HAL_FLASHEx_OBGetUserData (line 501) | uint32_t HAL_FLASHEx_OBGetUserData(uint32_t DATAAdress) {
  function HAL_StatusTypeDef (line 586) | static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WriteProtectPage) {
  function HAL_StatusTypeDef (line 702) | static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WriteProtectPage) {
  function HAL_StatusTypeDef (line 813) | static HAL_StatusTypeDef FLASH_OB_RDP_LevelConfig(uint8_t ReadProtectLev...
  function HAL_StatusTypeDef (line 861) | static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t UserConfig) {
  function HAL_StatusTypeDef (line 910) | static HAL_StatusTypeDef FLASH_OB_ProgramData(uint32_t Address, uint8_t ...
  function FLASH_OB_GetWRP (line 941) | static uint32_t FLASH_OB_GetWRP(void) {
  function FLASH_OB_GetRDP (line 953) | static uint32_t FLASH_OB_GetRDP(void) {
  function FLASH_OB_GetUser (line 975) | static uint8_t FLASH_OB_GetUser(void) {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c
  function HAL_GPIO_Init (line 177) | void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) {
  function HAL_GPIO_DeInit (line 328) | void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin) {
  function GPIO_PinState (line 404) | GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) {
  function HAL_GPIO_WritePin (line 434) | void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinS...
  function HAL_GPIO_TogglePin (line 452) | void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) {
  function HAL_StatusTypeDef (line 475) | HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pi...
  function HAL_GPIO_EXTI_IRQHandler (line 506) | void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) {
  function __weak (line 519) | __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c
  function HAL_GPIOEx_ConfigEventout (line 81) | void HAL_GPIOEx_ConfigEventout(uint32_t GPIO_PortSource, uint32_t GPIO_P...
  function HAL_GPIOEx_EnableEventout (line 94) | void HAL_GPIOEx_EnableEventout(void) { SET_BIT(AFIO->EVCR, AFIO_EVCR_EVO...
  function HAL_GPIOEx_DisableEventout (line 100) | void HAL_GPIOEx_DisableEventout(void) { CLEAR_BIT(AFIO->EVCR, AFIO_EVCR_...

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_iwdg.c
  function HAL_StatusTypeDef (line 161) | HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg) {
  function HAL_StatusTypeDef (line 226) | HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg) {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c
  function __NOINLINE (line 115) | __NOINLINE
  function HAL_PWR_DeInit (line 153) | void HAL_PWR_DeInit(void) {
  function HAL_PWR_EnableBkUpAccess (line 165) | void HAL_PWR_EnableBkUpAccess(void) {
  function HAL_PWR_DisableBkUpAccess (line 177) | void HAL_PWR_DisableBkUpAccess(void) {
  function HAL_PWR_ConfigPVD (line 310) | void HAL_PWR_ConfigPVD(PWR_PVDTypeDef *sConfigPVD) {
  function HAL_PWR_EnablePVD (line 348) | void HAL_PWR_EnablePVD(void) {
  function HAL_PWR_DisablePVD (line 357) | void HAL_PWR_DisablePVD(void) {
  function HAL_PWR_EnableWakeUpPin (line 369) | void HAL_PWR_EnableWakeUpPin(uint32_t WakeUpPinx) {
  function HAL_PWR_DisableWakeUpPin (line 383) | void HAL_PWR_DisableWakeUpPin(uint32_t WakeUpPinx) {
  function HAL_PWR_EnterSLEEPMode (line 402) | void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SLEEPEntry) {
  function HAL_PWR_EnterSTOPMode (line 444) | void HAL_PWR_EnterSTOPMode(uint32_t Regulator, uint8_t STOPEntry) {
  function HAL_PWR_EnterSTANDBYMode (line 480) | void HAL_PWR_EnterSTANDBYMode(void) {
  function HAL_PWR_EnableSleepOnExit (line 503) | void HAL_PWR_EnableSleepOnExit(void) {
  function HAL_PWR_DisableSleepOnExit (line 514) | void HAL_PWR_DisableSleepOnExit(void) {
  function HAL_PWR_EnableSEVOnPend (line 525) | void HAL_PWR_EnableSEVOnPend(void) {
  function HAL_PWR_DisableSEVOnPend (line 536) | void HAL_PWR_DisableSEVOnPend(void) {
  function HAL_PWR_PVD_IRQHandler (line 546) | void HAL_PWR_PVD_IRQHandler(void) {
  function __weak (line 561) | __weak void HAL_PWR_PVDCallback(void) {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c
  function HAL_StatusTypeDef (line 202) | HAL_StatusTypeDef HAL_RCC_DeInit(void) {
  function HAL_StatusTypeDef (line 333) | HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruc...
  function HAL_StatusTypeDef (line 713) | HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStr...
  function HAL_RCC_MCOConfig (line 882) | void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32...
  function HAL_RCC_EnableCSS (line 918) | void HAL_RCC_EnableCSS(void) { *(__IO uint32_t *)RCC_CR_CSSON_BB = (uint...
  function HAL_RCC_DisableCSS (line 924) | void HAL_RCC_DisableCSS(void) { *(__IO uint32_t *)RCC_CR_CSSON_BB = (uin...
  function HAL_RCC_GetSysClockFreq (line 955) | uint32_t HAL_RCC_GetSysClockFreq(void) {
  function HAL_RCC_GetHCLKFreq (line 1040) | uint32_t HAL_RCC_GetHCLKFreq(void) { return SystemCoreClock; }
  function HAL_RCC_GetPCLK1Freq (line 1048) | uint32_t HAL_RCC_GetPCLK1Freq(void) {
  function HAL_RCC_GetPCLK2Freq (line 1059) | uint32_t HAL_RCC_GetPCLK2Freq(void) {
  function HAL_RCC_GetOscConfig (line 1071) | void HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) {
  function HAL_RCC_GetClockConfig (line 1146) | void HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint3...
  function HAL_RCC_NMI_IRQHandler (line 1180) | void HAL_RCC_NMI_IRQHandler(void) {
  function RCC_Delay (line 1196) | static void RCC_Delay(uint32_t mdelay) {
  function __weak (line 1207) | __weak void HAL_RCC_CSSCallback(void) {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c
  function HAL_StatusTypeDef (line 100) | HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *Pe...
  function HAL_RCCEx_GetPeriphCLKConfig (line 267) | void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkIni...
  function HAL_RCCEx_GetPeriphCLKFreq (line 357) | uint32_t HAL_RCCEx_GetPeriphCLKFreq(uint32_t PeriphClk) {
  function HAL_StatusTypeDef (line 543) | HAL_StatusTypeDef HAL_RCCEx_EnablePLLI2S(RCC_PLLI2SInitTypeDef *PLLI2SIn...
  function HAL_StatusTypeDef (line 602) | HAL_StatusTypeDef HAL_RCCEx_DisablePLLI2S(void) {
  function HAL_StatusTypeDef (line 652) | HAL_StatusTypeDef HAL_RCCEx_EnablePLL2(RCC_PLL2InitTypeDef *PLL2Init) {
  function HAL_StatusTypeDef (line 712) | HAL_StatusTypeDef HAL_RCCEx_DisablePLL2(void) {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c
  function HAL_StatusTypeDef (line 262) | HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 317) | HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 358) | __weak void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 372) | __weak void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 386) | HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 419) | HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 438) | HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 474) | HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 498) | HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, uint32...
  function HAL_StatusTypeDef (line 552) | HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 606) | HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 661) | HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 702) | __weak void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 716) | __weak void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 736) | HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Cha...
  function HAL_StatusTypeDef (line 783) | HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Chan...
  function HAL_StatusTypeDef (line 816) | HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t ...
  function HAL_StatusTypeDef (line 892) | HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t C...
  function HAL_StatusTypeDef (line 956) | HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t...
  function HAL_StatusTypeDef (line 1087) | HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t ...
  function HAL_StatusTypeDef (line 1177) | HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 1232) | HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 1273) | __weak void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 1287) | __weak void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 1307) | HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Ch...
  function HAL_StatusTypeDef (line 1354) | HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Cha...
  function HAL_StatusTypeDef (line 1387) | HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t...
  function HAL_StatusTypeDef (line 1462) | HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t ...
  function HAL_StatusTypeDef (line 1526) | HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_...
  function HAL_StatusTypeDef (line 1656) | HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t...
  function HAL_StatusTypeDef (line 1746) | HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 1801) | HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 1842) | __weak void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 1856) | __weak void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 1876) | HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Cha...
  function HAL_StatusTypeDef (line 1921) | HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Chan...
  function HAL_StatusTypeDef (line 1950) | HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t ...
  function HAL_StatusTypeDef (line 2023) | HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t C...
  function HAL_StatusTypeDef (line 2083) | HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t...
  function HAL_StatusTypeDef (line 2211) | HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t ...
  function HAL_StatusTypeDef (line 2304) | HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_...
  function HAL_StatusTypeDef (line 2368) | HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 2411) | __weak void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 2425) | __weak void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 2443) | HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32...
  function HAL_StatusTypeDef (line 2494) | HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_...
  function HAL_StatusTypeDef (line 2534) | HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uin...
  function HAL_StatusTypeDef (line 2591) | HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint...
  function HAL_StatusTypeDef (line 2668) | HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, TIM_Enco...
  function HAL_StatusTypeDef (line 2776) | HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 2819) | __weak void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 2833) | __weak void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 2852) | HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_...
  function HAL_StatusTypeDef (line 2923) | HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t...
  function HAL_StatusTypeDef (line 2975) | HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint...
  function HAL_StatusTypeDef (line 3052) | HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint3...
  function HAL_StatusTypeDef (line 3108) | HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uin...
  function HAL_StatusTypeDef (line 3269) | HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint...
  function HAL_TIM_IRQHandler (line 3337) | void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 3527) | HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, TIM_...
  function HAL_StatusTypeDef (line 3595) | HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, TIM_...
  function HAL_StatusTypeDef (line 3668) | HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, TIM...
  function HAL_StatusTypeDef (line 3771) | HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim...
  function HAL_StatusTypeDef (line 3897) | HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, u...
  function HAL_StatusTypeDef (line 3940) | HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *ht...
  function HAL_StatusTypeDef (line 4084) | HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, ui...
  function HAL_StatusTypeDef (line 4170) | HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, ui...
  function HAL_StatusTypeDef (line 4213) | HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *hti...
  function HAL_StatusTypeDef (line 4358) | HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uin...
  function HAL_StatusTypeDef (line 4426) | HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_...
  function HAL_StatusTypeDef (line 4462) | HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, TIM_...
  function HAL_StatusTypeDef (line 4559) | HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, TIM...
  function HAL_StatusTypeDef (line 4690) | HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32...
  function HAL_StatusTypeDef (line 4721) | HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, TI...
  function HAL_StatusTypeDef (line 4759) | HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim,...
  function HAL_TIM_ReadCapturedValue (line 4799) | uint32_t HAL_TIM_ReadCapturedValue(TIM_HandleTypeDef *htim, uint32_t Cha...
  function __weak (line 4877) | __weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4891) | __weak void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *hti...
  function __weak (line 4905) | __weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4919) | __weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4933) | __weak void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4947) | __weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4961) | __weak void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef ...
  function __weak (line 4975) | __weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4989) | __weak void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 5003) | __weak void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 5048) | HAL_StatusTypeDef HAL_TIM_RegisterCallback(TIM_HandleTypeDef *htim, HAL_...
  function HAL_StatusTypeDef (line 5281) | HAL_StatusTypeDef HAL_TIM_UnRegisterCallback(TIM_HandleTypeDef *htim, HA...
  function HAL_TIM_StateTypeDef (line 5501) | HAL_TIM_StateTypeDef HAL_TIM_Base_GetState(TIM_HandleTypeDef *htim) { re...
  function HAL_TIM_StateTypeDef (line 5508) | HAL_TIM_StateTypeDef HAL_TIM_OC_GetState(TIM_HandleTypeDef *htim) { retu...
  function HAL_TIM_StateTypeDef (line 5515) | HAL_TIM_StateTypeDef HAL_TIM_PWM_GetState(TIM_HandleTypeDef *htim) { ret...
  function HAL_TIM_StateTypeDef (line 5522) | HAL_TIM_StateTypeDef HAL_TIM_IC_GetState(TIM_HandleTypeDef *htim) { retu...
  function HAL_TIM_StateTypeDef (line 5529) | HAL_TIM_StateTypeDef HAL_TIM_OnePulse_GetState(TIM_HandleTypeDef *htim) ...
  function HAL_TIM_StateTypeDef (line 5536) | HAL_TIM_StateTypeDef HAL_TIM_Encoder_GetState(TIM_HandleTypeDef *htim) {...
  function HAL_TIM_ActiveChannel (line 5543) | HAL_TIM_ActiveChannel HAL_TIM_GetActiveChannel(TIM_HandleTypeDef *htim) ...
  function HAL_TIM_ChannelStateTypeDef (line 5558) | HAL_TIM_ChannelStateTypeDef HAL_TIM_GetChannelState(TIM_HandleTypeDef *h...
  function HAL_TIM_DMABurstStateTypeDef (line 5574) | HAL_TIM_DMABurstStateTypeDef HAL_TIM_DMABurstState(TIM_HandleTypeDef *ht...
  function TIM_DMAError (line 5598) | void TIM_DMAError(DMA_HandleTypeDef *hdma) {
  function TIM_DMADelayPulseCplt (line 5631) | static void TIM_DMADelayPulseCplt(DMA_HandleTypeDef *hdma) {
  function TIM_DMADelayPulseHalfCplt (line 5676) | void TIM_DMADelayPulseHalfCplt(DMA_HandleTypeDef *hdma) {
  function TIM_DMACaptureCplt (line 5705) | void TIM_DMACaptureCplt(DMA_HandleTypeDef *hdma) {
  function TIM_DMACaptureHalfCplt (line 5754) | void TIM_DMACaptureHalfCplt(DMA_HandleTypeDef *hdma) {
  function TIM_DMAPeriodElapsedCplt (line 5783) | static void TIM_DMAPeriodElapsedCplt(DMA_HandleTypeDef *hdma) {
  function TIM_DMAPeriodElapsedHalfCplt (line 5802) | static void TIM_DMAPeriodElapsedHalfCplt(DMA_HandleTypeDef *hdma) {
  function TIM_DMATriggerCplt (line 5817) | static void TIM_DMATriggerCplt(DMA_HandleTypeDef *hdma) {
  function TIM_DMATriggerHalfCplt (line 5836) | static void TIM_DMATriggerHalfCplt(DMA_HandleTypeDef *hdma) {
  function TIM_Base_SetConfig (line 5852) | void TIM_Base_SetConfig(TIM_TypeDef *TIMx, TIM_Base_InitTypeDef *Structu...
  function TIM_OC1_SetConfig (line 5896) | static void TIM_OC1_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_...
  function TIM_OC2_SetConfig (line 5968) | void TIM_OC2_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_Config) {
  function TIM_OC3_SetConfig (line 6040) | static void TIM_OC3_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_...
  function TIM_OC4_SetConfig (line 6111) | static void TIM_OC4_SetConfig(TIM_TypeDef *TIMx, TIM_OC_InitTypeDef *OC_...
  function HAL_StatusTypeDef (line 6169) | static HAL_StatusTypeDef TIM_SlaveTimer_SetConfig(TIM_HandleTypeDef *hti...
  function TIM_TI1_SetConfig (line 6284) | void TIM_TI1_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity, uint3...
  function TIM_TI1_ConfigInputStage (line 6326) | static void TIM_TI1_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICP...
  function TIM_TI2_SetConfig (line 6368) | static void TIM_TI2_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity...
  function TIM_TI2_ConfigInputStage (line 6406) | static void TIM_TI2_ConfigInputStage(TIM_TypeDef *TIMx, uint32_t TIM_ICP...
  function TIM_TI3_SetConfig (line 6447) | static void TIM_TI3_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity...
  function TIM_TI4_SetConfig (line 6492) | static void TIM_TI4_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ICPolarity...
  function TIM_ITRx_SetConfig (line 6533) | static void TIM_ITRx_SetConfig(TIM_TypeDef *TIMx, uint32_t InputTriggerS...
  function TIM_ETR_SetConfig (line 6562) | void TIM_ETR_SetConfig(TIM_TypeDef *TIMx, uint32_t TIM_ExtTRGPrescaler, ...
  function TIM_CCxChannelCmd (line 6590) | void TIM_CCxChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint32_t Cha...
  function TIM_ResetCallback (line 6613) | void TIM_ResetCallback(TIM_HandleTypeDef *htim) {

FILE: source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c
  function HAL_StatusTypeDef (line 135) | HAL_StatusTypeDef HAL_TIMEx_HallSensor_Init(TIM_HandleTypeDef *htim, TIM...
  function HAL_StatusTypeDef (line 232) | HAL_StatusTypeDef HAL_TIMEx_HallSensor_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 275) | __weak void HAL_TIMEx_HallSensor_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 289) | __weak void HAL_TIMEx_HallSensor_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 303) | HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 348) | HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 374) | HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_IT(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 422) | HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_IT(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 453) | HAL_StatusTypeDef HAL_TIMEx_HallSensor_Start_DMA(TIM_HandleTypeDef *htim...
  function HAL_StatusTypeDef (line 512) | HAL_StatusTypeDef HAL_TIMEx_HallSensor_Stop_DMA(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 571) | HAL_StatusTypeDef HAL_TIMEx_OCN_Start(TIM_HandleTypeDef *htim, uint32_t ...
  function HAL_StatusTypeDef (line 616) | HAL_StatusTypeDef HAL_TIMEx_OCN_Stop(TIM_HandleTypeDef *htim, uint32_t C...
  function HAL_StatusTypeDef (line 647) | HAL_StatusTypeDef HAL_TIMEx_OCN_Start_IT(TIM_HandleTypeDef *htim, uint32...
  function HAL_StatusTypeDef (line 718) | HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_IT(TIM_HandleTypeDef *htim, uint32_...
  function HAL_StatusTypeDef (line 781) | HAL_StatusTypeDef HAL_TIMEx_OCN_Start_DMA(TIM_HandleTypeDef *htim, uint3...
  function HAL_StatusTypeDef (line 890) | HAL_StatusTypeDef HAL_TIMEx_OCN_Stop_DMA(TIM_HandleTypeDef *htim, uint32...
  function HAL_StatusTypeDef (line 980) | HAL_StatusTypeDef HAL_TIMEx_PWMN_Start(TIM_HandleTypeDef *htim, uint32_t...
  function HAL_StatusTypeDef (line 1024) | HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop(TIM_HandleTypeDef *htim, uint32_t ...
  function HAL_StatusTypeDef (line 1055) | HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_IT(TIM_HandleTypeDef *htim, uint3...
  function HAL_StatusTypeDef (line 1126) | HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_IT(TIM_HandleTypeDef *htim, uint32...
  function HAL_StatusTypeDef (line 1190) | HAL_StatusTypeDef HAL_TIMEx_PWMN_Start_DMA(TIM_HandleTypeDef *htim, uint...
  function HAL_StatusTypeDef (line 1299) | HAL_StatusTypeDef HAL_TIMEx_PWMN_Stop_DMA(TIM_HandleTypeDef *htim, uint3...
  function HAL_StatusTypeDef (line 1377) | HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start(TIM_HandleTypeDef *htim, uin...
  function HAL_StatusTypeDef (line 1415) | HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop(TIM_HandleTypeDef *htim, uint...
  function HAL_StatusTypeDef (line 1449) | HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Start_IT(TIM_HandleTypeDef *htim, ...
  function HAL_StatusTypeDef (line 1493) | HAL_StatusTypeDef HAL_TIMEx_OnePulseN_Stop_IT(TIM_HandleTypeDef *htim, u...
  function HAL_StatusTypeDef (line 1569) | HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent(TIM_HandleTypeDef *htim, u...
  function HAL_StatusTypeDef (line 1621) | HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_IT(TIM_HandleTypeDef *htim...
  function HAL_StatusTypeDef (line 1674) | HAL_StatusTypeDef HAL_TIMEx_ConfigCommutEvent_DMA(TIM_HandleTypeDef *hti...
  function HAL_StatusTypeDef (line 1719) | HAL_StatusTypeDef HAL_TIMEx_MasterConfigSynchronization(TIM_HandleTypeDe...
  function HAL_StatusTypeDef (line 1777) | HAL_StatusTypeDef HAL_TIMEx_ConfigBreakDeadTime(TIM_HandleTypeDef *htim,...
  function HAL_StatusTypeDef (line 1821) | HAL_StatusTypeDef HAL_TIMEx_RemapConfig(TIM_HandleTypeDef *htim, uint32_...
  function __weak (line 1854) | __weak void HAL_TIMEx_CommutCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 1867) | __weak void HAL_TIMEx_CommutHalfCpltCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 1881) | __weak void HAL_TIMEx_BreakCallback(TIM_HandleTypeDef *htim) {
  function HAL_TIM_StateTypeDef (line 1913) | HAL_TIM_StateTypeDef HAL_TIMEx_HallSensor_GetState(TIM_HandleTypeDef *ht...
  function HAL_TIM_ChannelStateTypeDef (line 1925) | HAL_TIM_ChannelStateTypeDef HAL_TIMEx_GetChannelNState(TIM_HandleTypeDef...
  function TIMEx_DMACommutationCplt (line 1953) | void TIMEx_DMACommutationCplt(DMA_HandleTypeDef *hdma) {
  function TIMEx_DMACommutationHalfCplt (line 1971) | void TIMEx_DMACommutationHalfCplt(DMA_HandleTypeDef *hdma) {
  function TIM_DMADelayPulseNCplt (line 1989) | static void TIM_DMADelayPulseNCplt(DMA_HandleTypeDef *hdma) {
  function TIM_DMAErrorCCxN (line 2034) | static void TIM_DMAErrorCCxN(DMA_HandleTypeDef *hdma) {
  function TIM_CCxNChannelCmd (line 2071) | static void TIM_CCxNChannelCmd(TIM_TypeDef *TIMx, uint32_t Channel, uint...

FILE: source/Core/BSP/MHP30/flash.c
  function flash_save_buffer (line 13) | void flash_save_buffer(const uint8_t *buffer, const uint16_t length) {
  function flash_read_buffer (line 38) | void flash_read_buffer(uint8_t *buffer, const uint16_t length) { memcpy(...

FILE: source/Core/BSP/MHP30/fusb_user.cpp
  function fusb_read_buf (line 8) | bool fusb_read_buf(const uint8_t deviceAddr, const uint8_t registerAdd, ...
  function fusb_write_buf (line 10) | bool fusb_write_buf(const uint8_t deviceAddr, const uint8_t registerAdd,...
  function setupFUSBIRQ (line 12) | void setupFUSBIRQ() {

FILE: source/Core/BSP/MHP30/port.c
  function StackType_t (line 174) | StackType_t *pxPortInitialiseStack(StackType_t *pxTopOfStack, TaskFuncti...
  function prvTaskExitError (line 191) | static void prvTaskExitError(void) {
  function vPortSVCHandler (line 214) | void vPortSVCHandler(void) {
  function prvPortStartFirstTask (line 231) | static void prvPortStartFirstTask(void) {
  function BaseType_t (line 248) | BaseType_t xPortStartScheduler(void) {
  function vPortEndScheduler (line 342) | void vPortEndScheduler(void) {
  function vPortEnterCritical (line 349) | void vPortEnterCritical(void) {
  function vPortExitCritical (line 364) | void vPortExitCritical(void) {
  function xPortPendSVHandler (line 373) | void xPortPendSVHandler(void) {
  function xPortSysTickHandler (line 405) | void xPortSysTickHandler(void) {
  function vPortSuppressTicksAndSleep (line 425) | __attribute__((weak)) void vPortSuppressTicksAndSleep(TickType_t xExpect...
  function vPortSetupTimerInterrupt (line 583) | __attribute__((weak)) void vPortSetupTimerInterrupt(void) {
  function vPortValidateInterruptPriority (line 605) | void vPortValidateInterruptPriority(void) {

FILE: source/Core/BSP/MHP30/portmacro.h
  type portSTACK_TYPE (line 55) | typedef portSTACK_TYPE StackType_t;
  type BaseType_t (line 56) | typedef long           BaseType_t;
  type UBaseType_t (line 57) | typedef unsigned long  UBaseType_t;
  type TickType_t (line 60) | typedef uint16_t TickType_t;
  type TickType_t (line 63) | typedef uint32_t TickType_t;
  function ucPortCountLeadingZeros (line 132) | __attribute__((always_inline)) static inline uint8_t ucPortCountLeadingZ...
  function portFORCE_INLINE (line 172) | portFORCE_INLINE static BaseType_t xPortIsInsideInterrupt(void) {
  function portFORCE_INLINE (line 190) | portFORCE_INLINE static void vPortRaiseBASEPRI(void) {
  function portFORCE_INLINE (line 204) | portFORCE_INLINE static uint32_t ulPortRaiseBASEPRI(void) {
  function portFORCE_INLINE (line 222) | portFORCE_INLINE static void vPortSetBASEPRI(uint32_t ulNewMaskValue) { ...

FILE: source/Core/BSP/MHP30/postRTOS.cpp
  function postRToSInit (line 13) | void postRToSInit() {}

FILE: source/Core/BSP/MHP30/preRTOS.cpp
  function preRToSInit (line 15) | void preRToSInit() {

FILE: source/Core/BSP/MHP30/stm32f1xx_hal_msp.c
  function HAL_MspInit (line 8) | void HAL_MspInit(void) {
  function HAL_ADC_MspInit (line 30) | void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) {
  function HAL_TIM_Base_MspInit (line 83) | void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim_base) {

FILE: source/Core/BSP/MHP30/stm32f1xx_hal_timebase_TIM.c
  function HAL_StatusTypeDef (line 42) | HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) {
  function HAL_SuspendTick (line 91) | void HAL_SuspendTick(void) {
  function HAL_ResumeTick (line 102) | void HAL_ResumeTick(void) {

FILE: source/Core/BSP/MHP30/stm32f1xx_it.c
  function NMI_Handler (line 14) | void NMI_Handler(void) {}
  function HardFault_Handler (line 18) | void HardFault_Handler(void) {}
  function MemManage_Handler (line 21) | void MemManage_Handler(void) {}
  function BusFault_Handler (line 24) | void BusFault_Handler(void) {}
  function UsageFault_Handler (line 26) | void UsageFault_Handler(void) {}
  function DebugMon_Handler (line 28) | void DebugMon_Handler(void) {}
  function SysTick_Handler (line 31) | void SysTick_Handler(void) { osSystickHandler(); }
  function DMA1_Channel1_IRQHandler (line 41) | void DMA1_Channel1_IRQHandler(void) { HAL_DMA_IRQHandler(&hdma_adc1); }
  function ADC1_2_IRQHandler (line 43) | void ADC1_2_IRQHandler(void) { HAL_ADC_IRQHandler(&hadc1); }
  function TIM4_IRQHandler (line 46) | void TIM4_IRQHandler(void) { HAL_TIM_IRQHandler(&htim4); }
  function EXTI9_5_IRQHandler (line 48) | void EXTI9_5_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(INT_PD_Pin); }

FILE: source/Core/BSP/MHP30/system_stm32f1xx.c
  function SystemInit (line 36) | void SystemInit(void) {
  function SystemCoreClockUpdate (line 125) | void SystemCoreClockUpdate(void) {
  function SystemInit_ExtMemCtl (line 233) | void SystemInit_ExtMemCtl(void) {

FILE: source/Core/BSP/Miniware/BSP.cpp
  function resetWatchdog (line 28) | void resetWatchdog() { HAL_IWDG_Refresh(&hiwdg); }
  function getHandleTemperature (line 61) | uint16_t getHandleTemperature(uint8_t sample) {
  function getInputVoltageX10 (line 92) | uint16_t getInputVoltageX10(uint16_t divisor, uint8_t sample) {
  function switchToFastPWM (line 103) | static void switchToFastPWM(void) {
  function switchToSlowPWM (line 112) | static void switchToSlowPWM(void) {
  function setTipPWM (line 121) | void setTipPWM(const uint8_t pulse, const bool shouldUseFastModePWM) {
  function HAL_TIM_PeriodElapsedCallback (line 130) | void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
  function HAL_TIM_PWM_PulseFinishedCallback (line 170) | void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) {
  function unstick_I2C (line 176) | void unstick_I2C() {
  function getButtonA (line 248) | uint8_t getButtonA() { return HAL_GPIO_ReadPin(KEY_A_GPIO_Port, KEY_A_Pi...
  function getButtonB (line 249) | uint8_t getButtonB() { return HAL_GPIO_ReadPin(KEY_B_GPIO_Port, KEY_B_Pi...
  function BSPInit (line 251) | void BSPInit(void) { switchToFastPWM(); }
  function reboot (line 253) | void reboot() { NVIC_SystemReset(); }
  function delay_ms (line 255) | void delay_ms(uint16_t count) { HAL_Delay(count); }
  function isTipDisconnected (line 261) | bool          isTipDisconnected() {
  function setStatusLED (line 268) | void setStatusLED(const enum StatusLED state) {}
  function setBuzzer (line 269) | void setBuzzer(bool on) {}
  function performTipResistanceSampleReading (line 282) | void performTipResistanceSampleReading() {
  function FinishMeasureTipResistance (line 291) | void FinishMeasureTipResistance() {
  function performTipMeasurementStep (line 324) | void performTipMeasurementStep() {
  function preStartChecks (line 342) | uint8_t preStartChecks() {
  function getDeviceID (line 369) | uint64_t getDeviceID() {
  function preStartChecksDone (line 374) | uint8_t preStartChecksDone() {
  function getTipResistanceX10 (line 382) | uint8_t getTipResistanceX10() {
  function isTipShorted (line 401) | bool isTipShorted() { return tipShorted; }
  function isTipShorted (line 403) | bool isTipShorted() { return false; }
  function getTipThermalMass (line 405) | uint16_t getTipThermalMass() {
  function getTipInertia (line 415) | uint16_t getTipInertia() {
  function showBootLogo (line 426) | void showBootLogo(void) { BootLogo::handleShowingLogo((uint8_t *)FLASH_L...

FILE: source/Core/BSP/Miniware/IRQ.cpp
  function HAL_ADCEx_InjectedConvCpltCallback (line 17) | void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc) {
  function HAL_GPIO_EXTI_Callback (line 29) | void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
  function getFUS302IRQLow (line 42) | bool getFUS302IRQLow() {

FILE: source/Core/BSP/Miniware/Power.cpp
  function power_check (line 9) | void power_check() {
  function getIsPoweredByDCIN (line 24) | bool getIsPoweredByDCIN() {

FILE: source/Core/BSP/Miniware/QC_GPIO.cpp
  function QC_DPlusZero_Six (line 15) | void QC_DPlusZero_Six() {
  function QC_DNegZero_Six (line 18) | void QC_DNegZero_Six() {
  function QC_DPlusThree_Three (line 22) | void QC_DPlusThree_Three() {
  function QC_DNegThree_Three (line 25) | void QC_DNegThree_Three() {
  function QC_DM_PullDown (line 29) | void QC_DM_PullDown() {
  function QC_DM_No_PullDown (line 37) | void QC_DM_No_PullDown() {
  function QC_Init_GPIO (line 45) | void QC_Init_GPIO() {
  function QC_Post_Probe_En (line 62) | void QC_Post_Probe_En() {
  function QC_DM_PulledDown (line 70) | uint8_t QC_DM_PulledDown() { return HAL_GPIO_ReadPin(GPIOA, GPIO_PIN_11)...
  function QC_resync (line 72) | void QC_resync() {

FILE: source/Core/BSP/Miniware/Setup.cpp
  function Setup_HAL (line 33) | void        Setup_HAL() {
  function getADCHandleTemp (line 57) | uint16_t getADCHandleTemp(uint8_t sample) {
  function getRawDCVin (line 73) | uint16_t getRawDCVin() { return filteredDC.average(); }
  function getRawPDVin (line 74) | uint16_t getRawPDVin() { return filteredPD.average(); }
  function getADCVin (line 77) | uint16_t getADCVin(uint8_t sample) {
  function getTipRawTemp (line 119) | uint16_t getTipRawTemp(uint8_t sample) {
  function SystemClock_Config (line 136) | void SystemClock_Config(void) {
  function MX_ADC1_Init (line 180) | static void MX_ADC1_Init(void) {
  function MX_ADC2_Init (line 234) | static void MX_ADC2_Init(void) {
  function MX_IWDG_Init (line 278) | static void MX_IWDG_Init(void) {
  function MX_TIP_CONTROL_TIMER_Init (line 288) | static void MX_TIP_CONTROL_TIMER_Init(void) {
  function MX_ADC_CONTROL_TIMER_Init (line 344) | static void MX_ADC_CONTROL_TIMER_Init(void) {
  function MX_DMA_Init (line 405) | static void MX_DMA_Init(void) {
  function MX_GPIO_Init (line 431) | static void MX_GPIO_Init(void) {
  function assert_failed (line 540) | void assert_failed(uint8_t *file, uint32_t line) { asm("bkpt"); }

FILE: source/Core/BSP/Miniware/ThermoModel.cpp
  function TemperatureType_t (line 130) | TemperatureType_t TipThermoModel::convertuVToDegC(uint32_t tipuVDelta) {...

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h
  type IRQn_Type (line 86) | typedef enum {
  type ADC_TypeDef (line 160) | typedef struct {
  type ADC_Common_TypeDef (line 183) | typedef struct {
  type BKP_TypeDef (line 195) | typedef struct {
  type CAN_TxMailBox_TypeDef (line 216) | typedef struct {
  type CAN_FIFOMailBox_TypeDef (line 227) | typedef struct {
  type CAN_FilterRegister_TypeDef (line 238) | typedef struct {
  type CAN_TypeDef (line 247) | typedef struct {
  type CRC_TypeDef (line 276) | typedef struct {
  type DBGMCU_TypeDef (line 288) | typedef struct {
  type DMA_Channel_TypeDef (line 297) | typedef struct {
  type DMA_TypeDef (line 304) | typedef struct {
  type EXTI_TypeDef (line 313) | typedef struct {
  type FLASH_TypeDef (line 326) | typedef struct {
  type OB_TypeDef (line 342) | typedef struct {
  type GPIO_TypeDef (line 357) | typedef struct {
  type AFIO_TypeDef (line 371) | typedef struct {
  type I2C_TypeDef (line 382) | typedef struct {
  type IWDG_TypeDef (line 398) | typedef struct {
  type PWR_TypeDef (line 409) | typedef struct {
  type RCC_TypeDef (line 418) | typedef struct {
  type RTC_TypeDef (line 436) | typedef struct {
  type SDIO_TypeDef (line 453) | typedef struct {
  type SPI_TypeDef (line 480) | typedef struct {
  type TIM_TypeDef (line 494) | typedef struct {
  type USART_TypeDef (line 522) | typedef struct {
  type USB_TypeDef (line 536) | typedef struct {
  type WWDG_TypeDef (line 569) | typedef struct {

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h
  type FlagStatus (line 165) | typedef enum { RESET = 0, SET = !RESET } FlagStatus, ITStatus;
  type FunctionalState (line 167) | typedef enum { DISABLE = 0, ENABLE = !DISABLE } FunctionalState;
  type ErrorStatus (line 170) | typedef enum { ERROR = 0, SUCCESS = !ERROR } ErrorStatus;

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Include/arm_math.h
  type arm_status (line 370) | typedef enum {
  type q7_t (line 383) | typedef int8_t q7_t;
  type q15_t (line 388) | typedef int16_t q15_t;
  type q31_t (line 393) | typedef int32_t q31_t;
  type q63_t (line 398) | typedef int64_t q63_t;
  type float32_t (line 403) | typedef float float32_t;
  type float64_t (line 408) | typedef double float64_t;
  function __INLINE (line 472) | static __INLINE q31_t clip_q63_to_q31(q63_t x) { return ((q31_t)(x >> 32...
  function __INLINE (line 477) | static __INLINE q15_t clip_q63_to_q15(q63_t x) { return ((q31_t)(x >> 32...
  function __INLINE (line 482) | static __INLINE q7_t clip_q31_to_q7(q31_t x) { return ((q31_t)(x >> 24) ...
  function __INLINE (line 487) | static __INLINE q15_t clip_q31_to_q15(q31_t x) { return ((q31_t)(x >> 16...
  function __INLINE (line 493) | static __INLINE q63_t mult32x64(q63_t x, q31_t y) { return ((((q63_t)(x ...
  function __INLINE (line 504) | static __INLINE uint32_t __CLZ(q31_t data) {
  function __INLINE (line 521) | static __INLINE uint32_t arm_recip_q31(q31_t in, q31_t *dst, q31_t *pRec...
  function __INLINE (line 563) | static __INLINE uint32_t arm_recip_q15(q15_t in, q15_t *dst, q15_t *pRec...
  function __INLINE (line 606) | static __INLINE q31_t __SSAT(q31_t x, uint32_t y) {
  function __INLINE (line 640) | static __INLINE uint32_t __QADD8(uint32_t x, uint32_t y) {
  function __INLINE (line 654) | static __INLINE uint32_t __QSUB8(uint32_t x, uint32_t y) {
  function __INLINE (line 668) | static __INLINE uint32_t __QADD16(uint32_t x, uint32_t y) {
  function __INLINE (line 681) | static __INLINE uint32_t __SHADD16(uint32_t x, uint32_t y) {
  function __INLINE (line 693) | static __INLINE uint32_t __QSUB16(uint32_t x, uint32_t y) {
  function __INLINE (line 705) | static __INLINE uint32_t __SHSUB16(uint32_t x, uint32_t y) {
  function __INLINE (line 717) | static __INLINE uint32_t __QASX(uint32_t x, uint32_t y) {
  function __INLINE (line 729) | static __INLINE uint32_t __SHASX(uint32_t x, uint32_t y) {
  function __INLINE (line 741) | static __INLINE uint32_t __QSAX(uint32_t x, uint32_t y) {
  function __INLINE (line 753) | static __INLINE uint32_t __SHSAX(uint32_t x, uint32_t y) {
  function __INLINE (line 765) | static __INLINE uint32_t __SMUSDX(uint32_t x, uint32_t y) { return ((uin...
  function __INLINE (line 770) | static __INLINE uint32_t __SMUADX(uint32_t x, uint32_t y) { return ((uin...
  function __INLINE (line 775) | static __INLINE int32_t __QADD(int32_t x, int32_t y) { return ((int32_t)...
  function __INLINE (line 780) | static __INLINE int32_t __QSUB(int32_t x, int32_t y) { return ((int32_t)...
  function __INLINE (line 785) | static __INLINE uint32_t __SMLAD(uint32_t x, uint32_t y, uint32_t sum) {
  function __INLINE (line 792) | static __INLINE uint32_t __SMLADX(uint32_t x, uint32_t y, uint32_t sum) {
  function __INLINE (line 799) | static __INLINE uint32_t __SMLSDX(uint32_t x, uint32_t y, uint32_t sum) {
  function __INLINE (line 806) | static __INLINE uint64_t __SMLALD(uint32_t x, uint32_t y, uint64_t sum) {
  function __INLINE (line 814) | static __INLINE uint64_t __SMLALDX(uint32_t x, uint32_t y, uint64_t sum) {
  function __INLINE (line 822) | static __INLINE uint32_t __SMUAD(uint32_t x, uint32_t y) { return ((uint...
  function __INLINE (line 827) | static __INLINE uint32_t __SMUSD(uint32_t x, uint32_t y) { return ((uint...
  function __INLINE (line 832) | static __INLINE uint32_t __SXTB16(uint32_t x) { return ((uint32_t)(((((q...
  type arm_fir_instance_q7 (line 839) | typedef struct {
  type arm_fir_instance_q15 (line 848) | typedef struct {
  type arm_fir_instance_q31 (line 857) | typedef struct {
  type arm_fir_instance_f32 (line 866) | typedef struct {
  type arm_biquad_casd_df1_inst_q15 (line 971) | typedef struct {
  type arm_biquad_casd_df1_inst_q31 (line 981) | typedef struct {
  type arm_biquad_casd_df1_inst_f32 (line 991) | typedef struct {
  type arm_matrix_instance_f32 (line 1074) | typedef struct {
  type arm_matrix_instance_f64 (line 1083) | typedef struct {
  type arm_matrix_instance_q15 (line 1092) | typedef struct {
  type arm_matrix_instance_q31 (line 1101) | typedef struct {
  type arm_pid_instance_q15 (line 1338) | typedef struct {
  type arm_pid_instance_q31 (line 1355) | typedef struct {
  type arm_pid_instance_f32 (line 1368) | typedef struct {
  type arm_linear_interp_instance_f32 (line 1421) | typedef struct {
  type arm_bilinear_interp_instance_f32 (line 1431) | typedef struct {
  type arm_bilinear_interp_instance_q31 (line 1440) | typedef struct {
  type arm_bilinear_interp_instance_q15 (line 1449) | typedef struct {
  type arm_bilinear_interp_instance_q7 (line 1458) | typedef struct {
  type arm_cfft_radix2_instance_q15 (line 1503) | typedef struct {
  type arm_cfft_radix4_instance_q15 (line 1522) | typedef struct {
  type arm_cfft_radix2_instance_q31 (line 1541) | typedef struct {
  type arm_cfft_radix4_instance_q31 (line 1560) | typedef struct {
  type arm_cfft_radix2_instance_f32 (line 1579) | typedef struct {
  type arm_cfft_radix4_instance_f32 (line 1599) | typedef struct {
  type arm_cfft_instance_q15 (line 1619) | typedef struct {
  type arm_cfft_instance_q31 (line 1631) | typedef struct {
  type arm_cfft_instance_f32 (line 1643) | typedef struct {
  type arm_rfft_instance_q15 (line 1655) | typedef struct {
  type arm_rfft_instance_q31 (line 1672) | typedef struct {
  type arm_rfft_instance_f32 (line 1689) | typedef struct {
  type arm_rfft_fast_instance_f32 (line 1707) | typedef struct {
  type arm_dct4_instance_f32 (line 1720) | typedef struct {
  type arm_dct4_instance_q31 (line 1753) | typedef struct {
  type arm_dct4_instance_q15 (line 1786) | typedef struct {
  type arm_fir_decimate_instance_q15 (line 2376) | typedef struct {
  type arm_fir_decimate_instance_q31 (line 2386) | typedef struct {
  type arm_fir_decimate_instance_f32 (line 2396) | typedef struct {
  type arm_fir_interpolate_instance_q15 (line 2490) | typedef struct {
  type arm_fir_interpolate_instance_q31 (line 2500) | typedef struct {
  type arm_fir_interpolate_instance_f32 (line 2510) | typedef struct {
  type arm_biquad_cas_df1_32x64_ins_q31 (line 2586) | typedef struct {
  type arm_biquad_cascade_df2T_instance_f32 (line 2613) | typedef struct {
  type arm_biquad_cascade_stereo_df2T_instance_f32 (line 2622) | typedef struct {
  type arm_biquad_cascade_df2T_instance_f64 (line 2631) | typedef struct {
  type arm_fir_lattice_instance_q15 (line 2694) | typedef struct {
  type arm_fir_lattice_instance_q31 (line 2703) | typedef struct {
  type arm_fir_lattice_instance_f32 (line 2712) | typedef struct {
  type arm_iir_lattice_instance_q15 (line 2775) | typedef struct {
  type arm_iir_lattice_instance_q31 (line 2785) | typedef struct {
  type arm_iir_lattice_instance_f32 (line 2795) | typedef struct {
  type arm_lms_instance_f32 (line 2865) | typedef struct {
  type arm_lms_instance_q15 (line 2897) | typedef struct {
  type arm_lms_instance_q31 (line 2931) | typedef struct {
  type arm_lms_norm_instance_f32 (line 2965) | typedef struct {
  type arm_lms_norm_instance_q31 (line 2999) | typedef struct {
  type arm_lms_norm_instance_q15 (line 3036) | typedef struct {
  type arm_fir_sparse_instance_f32 (line 3169) | typedef struct {
  type arm_fir_sparse_instance_q31 (line 3181) | typedef struct {
  type arm_fir_sparse_instance_q15 (line 3193) | typedef struct {
  type arm_fir_sparse_instance_q7 (line 3205) | typedef struct {
  function __INLINE (line 3440) | static __INLINE float32_t arm_pid_f32(arm_pid_instance_f32 *S, float32_t...
  function __INLINE (line 3469) | static __INLINE q31_t arm_pid_q31(arm_pid_instance_q31 *S, q31_t in) {
  function __INLINE (line 3512) | static __INLINE q15_t arm_pid_q15(arm_pid_instance_q15 *S, q15_t in) {
  function __INLINE (line 3612) | static __INLINE void arm_clarke_f32(float32_t Ia, float32_t Ib, float32_...
  function __INLINE (line 3633) | static __INLINE void arm_clarke_q31(q31_t Ia, q31_t Ib, q31_t *pIalpha, ...
  function __INLINE (line 3693) | static __INLINE void arm_inv_clarke_f32(float32_t Ialpha, float32_t Ibet...
  function __INLINE (line 3714) | static __INLINE void arm_inv_clarke_q31(q31_t Ialpha, q31_t Ibeta, q31_t...
  function __INLINE (line 3787) | static __INLINE void arm_park_f32(float32_t Ialpha, float32_t Ibeta, flo...
  function __INLINE (line 3810) | static __INLINE void arm_park_q31(q31_t Ialpha, q31_t Ibeta, q31_t *pId,...
  function __INLINE (line 3880) | static __INLINE void arm_inv_park_f32(float32_t Id, float32_t Iq, float3...
  function __INLINE (line 3903) | static __INLINE void arm_inv_park_q31(q31_t Id, q31_t Iq, q31_t *pIalpha...
  function __INLINE (line 3986) | static __INLINE float32_t arm_linear_interp_f32(arm_linear_interp_instan...
  function __INLINE (line 4033) | static __INLINE q31_t arm_linear_interp_q31(q31_t *pYData, q31_t x, uint...
  function __INLINE (line 4081) | static __INLINE q15_t arm_linear_interp_q15(q15_t *pYData, q31_t x, uint...
  function __INLINE (line 4128) | static __INLINE q7_t arm_linear_interp_q7(q7_t *pYData, q31_t x, uint32_...
  function __INLINE (line 4246) | static __INLINE arm_status arm_sqrt_f32(float32_t in, float32_t *pOut) {
  function __INLINE (line 4293) | static __INLINE void arm_circularWrite_f32(int32_t *circBuffer, int32_t ...
  function __INLINE (line 4327) | static __INLINE void arm_circularRead_f32(int32_t *circBuffer, int32_t L...
  function __INLINE (line 4369) | static __INLINE void arm_circularWrite_q15(q15_t *circBuffer, int32_t L,...
  function __INLINE (line 4403) | static __INLINE void arm_circularRead_q15(q15_t *circBuffer, int32_t L, ...
  function __INLINE (line 4445) | static __INLINE void arm_circularWrite_q7(q7_t *circBuffer, int32_t L, u...
  function __INLINE (line 4479) | static __INLINE void arm_circularRead_q7(q7_t *circBuffer, int32_t L, in...
  function __INLINE (line 4967) | static __INLINE float32_t arm_bilinear_interp_f32(const arm_bilinear_int...
  function __INLINE (line 5025) | static __INLINE q31_t arm_bilinear_interp_q31(arm_bilinear_interp_instan...
  function __INLINE (line 5093) | static __INLINE q15_t arm_bilinear_interp_q15(arm_bilinear_interp_instan...
  function __INLINE (line 5165) | static __INLINE q7_t arm_bilinear_interp_q7(arm_bilinear_interp_instance...

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Include/cmsis_armcc.h
  function __STATIC_INLINE (line 55) | __STATIC_INLINE uint32_t __get_CONTROL(void) {
  function __STATIC_INLINE (line 65) | __STATIC_INLINE void __set_CONTROL(uint32_t control) {
  function __STATIC_INLINE (line 75) | __STATIC_INLINE uint32_t __get_IPSR(void) {
  function __STATIC_INLINE (line 85) | __STATIC_INLINE uint32_t __get_APSR(void) {
  function __STATIC_INLINE (line 95) | __STATIC_INLINE uint32_t __get_xPSR(void) {
  function __STATIC_INLINE (line 105) | __STATIC_INLINE uint32_t __get_PSP(void) {
  function __STATIC_INLINE (line 115) | __STATIC_INLINE void __set_PSP(uint32_t topOfProcStack) {
  function __STATIC_INLINE (line 125) | __STATIC_INLINE uint32_t __get_MSP(void) {
  function __STATIC_INLINE (line 135) | __STATIC_INLINE void __set_MSP(uint32_t topOfMainStack) {
  function __STATIC_INLINE (line 145) | __STATIC_INLINE uint32_t __get_PRIMASK(void) {
  function __STATIC_INLINE (line 155) | __STATIC_INLINE void __set_PRIMASK(uint32_t priMask) {
  function __STATIC_INLINE (line 181) | __STATIC_INLINE uint32_t __get_BASEPRI(void) {
  function __STATIC_INLINE (line 191) | __STATIC_INLINE void __set_BASEPRI(uint32_t basePri) {
  function __STATIC_INLINE (line 202) | __STATIC_INLINE void __set_BASEPRI_MAX(uint32_t basePri) {
  function __STATIC_INLINE (line 212) | __STATIC_INLINE uint32_t __get_FAULTMASK(void) {
  function __STATIC_INLINE (line 222) | __STATIC_INLINE void __set_FAULTMASK(uint32_t faultMask) {
  function __STATIC_INLINE (line 236) | __STATIC_INLINE uint32_t __get_FPSCR(void) {
  function __STATIC_INLINE (line 250) | __STATIC_INLINE void __set_FPSCR(uint32_t fpscr) {
  function __REV16 (line 344) | uint32_t __REV16(uint32_t value) { rev16 r0, r0 bx lr }
  function __REVSH (line 354) | int32_t __REVSH(int32_t value) { revsh r0, r0 bx lr }
  function __STATIC_INLINE (line 384) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t ...
  function __RRX (line 519) | uint32_t __RRX(uint32_t value) { rrx r0, r0 bx lr }

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Include/cmsis_armcc_V6.h
  function __STATIC_INLINE (line 48) | __attribute__((always_inline)) __STATIC_INLINE void __enable_irq(void) {...
  function __STATIC_INLINE (line 75) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_CONTROL...
  function __STATIC_INLINE (line 88) | __attribute__((always_inline)) __STATIC_INLINE void __set_CONTROL(uint32...
  function __STATIC_INLINE (line 96) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_CONTROL_NS(...
  function __STATIC_INLINE (line 104) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_IPSR(void) {
  function __STATIC_INLINE (line 117) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_IPSR_NS...
  function __STATIC_INLINE (line 130) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_APSR(void) {
  function __STATIC_INLINE (line 143) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_APSR_NS...
  function __STATIC_INLINE (line 156) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_xPSR(void) {
  function __STATIC_INLINE (line 169) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_xPSR_NS...
  function __STATIC_INLINE (line 182) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PSP(void) {
  function __STATIC_INLINE (line 195) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_PSP_NS(...
  function __STATIC_INLINE (line 208) | __attribute__((always_inline)) __STATIC_INLINE void __set_PSP(uint32_t t...
  function __STATIC_INLINE (line 216) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_PSP_NS(uint...
  function __STATIC_INLINE (line 224) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_MSP(void) {
  function __STATIC_INLINE (line 237) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_MSP_NS(...
  function __STATIC_INLINE (line 250) | __attribute__((always_inline)) __STATIC_INLINE void __set_MSP(uint32_t t...
  function __STATIC_INLINE (line 258) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_MSP_NS(uint...
  function __STATIC_INLINE (line 266) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PRIMASK(vo...
  function __STATIC_INLINE (line 279) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_PRIMASK...
  function __STATIC_INLINE (line 292) | __attribute__((always_inline)) __STATIC_INLINE void __set_PRIMASK(uint32...
  function __STATIC_INLINE (line 300) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_PRIMASK_NS(...
  function __STATIC_INLINE (line 310) | __attribute__((always_inline)) __STATIC_INLINE void __enable_fault_irq(v...
  function __STATIC_INLINE (line 337) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_BASEPRI...
  function __STATIC_INLINE (line 350) | __attribute__((always_inline)) __STATIC_INLINE void __set_BASEPRI(uint32...
  function __STATIC_INLINE (line 358) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_BASEPRI_NS(...
  function __STATIC_INLINE (line 367) | __attribute__((always_inline)) __STATIC_INLINE void __set_BASEPRI_MAX(ui...
  function __STATIC_INLINE (line 376) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_BASEPRI_MAX...
  function __STATIC_INLINE (line 384) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_FAULTMASK(...
  function __STATIC_INLINE (line 397) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_FAULTMA...
  function __STATIC_INLINE (line 410) | __attribute__((always_inline)) __STATIC_INLINE void __set_FAULTMASK(uint...
  function __STATIC_INLINE (line 418) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_FAULTMASK_N...
  function __STATIC_INLINE (line 430) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PSPLIM(voi...
  function __STATIC_INLINE (line 443) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_PSPLIM_...
  function __STATIC_INLINE (line 456) | __attribute__((always_inline)) __STATIC_INLINE void __set_PSPLIM(uint32_...
  function __STATIC_INLINE (line 464) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_PSPLIM_NS(u...
  function __STATIC_INLINE (line 472) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_MSPLIM(voi...
  function __STATIC_INLINE (line 486) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_MSPLIM_...
  function __STATIC_INLINE (line 499) | __attribute__((always_inline)) __STATIC_INLINE void __set_MSPLIM(uint32_...
  function __STATIC_INLINE (line 507) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_MSPLIM_NS(u...
  function __STATIC_INLINE (line 521) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_FPSCR(void)
  function __STATIC_INLINE (line 542) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __TZ_get_FPSCR_N...
  function __STATIC_INLINE (line 563) | __attribute__((always_inline)) __STATIC_INLINE void __set_FPSCR(uint32_t...
  function __STATIC_INLINE (line 579) | __attribute__((always_inline)) __STATIC_INLINE void __TZ_set_FPSCR_NS(ui...
  function __STATIC_INLINE (line 672) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __REV16(uint32_t...
  function __STATIC_INLINE (line 688) | __attribute__((always_inline)) __STATIC_INLINE int32_t __REVSH(int32_t v...
  function __STATIC_INLINE (line 702) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __ROR(uint32_t o...
  function __STATIC_INLINE (line 720) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t ...
  function __STATIC_INLINE (line 848) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __RRX(uint32_t v...
  function __STATIC_INLINE (line 861) | __attribute__((always_inline)) __STATIC_INLINE uint8_t __LDRBT(volatile ...
  function __STATIC_INLINE (line 874) | __attribute__((always_inline)) __STATIC_INLINE uint16_t __LDRHT(volatile...
  function __STATIC_INLINE (line 887) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __LDRT(volatile ...
  function __STATIC_INLINE (line 900) | __attribute__((always_inline)) __STATIC_INLINE void __STRBT(uint8_t valu...
  function __STATIC_INLINE (line 908) | __attribute__((always_inline)) __STATIC_INLINE void __STRHT(uint16_t val...
  function __STATIC_INLINE (line 916) | __attribute__((always_inline)) __STATIC_INLINE void __STRT(uint32_t valu...
  function __STATIC_INLINE (line 928) | __attribute__((always_inline)) __STATIC_INLINE uint8_t __LDAB(volatile u...
  function __STATIC_INLINE (line 941) | __attribute__((always_inline)) __STATIC_INLINE uint16_t __LDAH(volatile ...
  function __STATIC_INLINE (line 954) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __LDA(volatile u...
  function __STATIC_INLINE (line 967) | __attribute__((always_inline)) __STATIC_INLINE void __STLB(uint8_t value...
  function __STATIC_INLINE (line 975) | __attribute__((always_inline)) __STATIC_INLINE void __STLH(uint16_t valu...
  function __STATIC_INLINE (line 983) | __attribute__((always_inline)) __STATIC_INLINE void __STL(uint32_t value...
  function __STATIC_INLINE (line 1051) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SADD8(uint32_t...
  function __STATIC_INLINE (line 1058) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QADD8(uint32_t...
  function __STATIC_INLINE (line 1065) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHADD8(uint32_...
  function __STATIC_INLINE (line 1072) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UADD8(uint32_t...
  function __STATIC_INLINE (line 1079) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQADD8(uint32_...
  function __STATIC_INLINE (line 1086) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHADD8(uint32_...
  function __STATIC_INLINE (line 1093) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SSUB8(uint32_t...
  function __STATIC_INLINE (line 1100) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QSUB8(uint32_t...
  function __STATIC_INLINE (line 1107) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSUB8(uint32_...
  function __STATIC_INLINE (line 1114) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USUB8(uint32_t...
  function __STATIC_INLINE (line 1121) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSUB8(uint32_...
  function __STATIC_INLINE (line 1128) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSUB8(uint32_...
  function __STATIC_INLINE (line 1135) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SADD16(uint32_...
  function __STATIC_INLINE (line 1142) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QADD16(uint32_...
  function __STATIC_INLINE (line 1149) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHADD16(uint32...
  function __STATIC_INLINE (line 1156) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UADD16(uint32_...
  function __STATIC_INLINE (line 1163) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQADD16(uint32...
  function __STATIC_INLINE (line 1170) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHADD16(uint32...
  function __STATIC_INLINE (line 1177) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SSUB16(uint32_...
  function __STATIC_INLINE (line 1184) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QSUB16(uint32_...
  function __STATIC_INLINE (line 1191) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSUB16(uint32...
  function __STATIC_INLINE (line 1198) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USUB16(uint32_...
  function __STATIC_INLINE (line 1205) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSUB16(uint32...
  function __STATIC_INLINE (line 1212) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSUB16(uint32...
  function __STATIC_INLINE (line 1219) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SASX(uint32_t ...
  function __STATIC_INLINE (line 1226) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QASX(uint32_t ...
  function __STATIC_INLINE (line 1233) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHASX(uint32_t...
  function __STATIC_INLINE (line 1240) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UASX(uint32_t ...
  function __STATIC_INLINE (line 1247) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQASX(uint32_t...
  function __STATIC_INLINE (line 1254) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHASX(uint32_t...
  function __STATIC_INLINE (line 1261) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SSAX(uint32_t ...
  function __STATIC_INLINE (line 1268) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QSAX(uint32_t ...
  function __STATIC_INLINE (line 1275) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSAX(uint32_t...
  function __STATIC_INLINE (line 1282) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USAX(uint32_t ...
  function __STATIC_INLINE (line 1289) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSAX(uint32_t...
  function __STATIC_INLINE (line 1296) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSAX(uint32_t...
  function __STATIC_INLINE (line 1303) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USAD8(uint32_t...
  function __STATIC_INLINE (line 1310) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USADA8(uint32_...
  function __STATIC_INLINE (line 1331) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UXTB16(uint32_...
  function __STATIC_INLINE (line 1338) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UXTAB16(uint32...
  function __STATIC_INLINE (line 1345) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SXTB16(uint32_...
  function __STATIC_INLINE (line 1352) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SXTAB16(uint32...
  function __STATIC_INLINE (line 1359) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUAD(uint32_t...
  function __STATIC_INLINE (line 1366) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUADX(uint32_...
  function __STATIC_INLINE (line 1373) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLAD(uint32_t...
  function __STATIC_INLINE (line 1380) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLADX(uint32_...
  function __STATIC_INLINE (line 1387) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLALD(uint32_...
  function __STATIC_INLINE (line 1403) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLALDX(uint32...
  function __STATIC_INLINE (line 1419) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUSD(uint32_t...
  function __STATIC_INLINE (line 1426) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUSDX(uint32_...
  function __STATIC_INLINE (line 1433) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLSD(uint32_t...
  function __STATIC_INLINE (line 1440) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLSDX(uint32_...
  function __STATIC_INLINE (line 1447) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLSLD(uint32_...
  function __STATIC_INLINE (line 1463) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLSLDX(uint32...
  function __STATIC_INLINE (line 1479) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SEL(uint32_t o...
  function __STATIC_INLINE (line 1486) | __attribute__((always_inline)) __STATIC_INLINE int32_t __QADD(int32_t op...
  function __STATIC_INLINE (line 1493) | __attribute__((always_inline)) __STATIC_INLINE int32_t __QSUB(int32_t op...
  function __STATIC_INLINE (line 1517) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMMLA(int32_t ...

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Include/cmsis_gcc.h
  function __STATIC_INLINE (line 56) | __attribute__((always_inline)) __STATIC_INLINE void __enable_irq(void) {...
  function __STATIC_INLINE (line 82) | __attribute__((always_inline)) __STATIC_INLINE void __set_CONTROL(uint32...
  function __STATIC_INLINE (line 89) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_IPSR(void) {
  function __STATIC_INLINE (line 101) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_APSR(void) {
  function __STATIC_INLINE (line 114) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_xPSR(void) {
  function __STATIC_INLINE (line 126) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PSP(void) {
  function __STATIC_INLINE (line 138) | __attribute__((always_inline)) __STATIC_INLINE void __set_PSP(uint32_t t...
  function __STATIC_INLINE (line 145) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_MSP(void) {
  function __STATIC_INLINE (line 158) | __attribute__((always_inline)) __STATIC_INLINE void __set_MSP(uint32_t t...
  function __STATIC_INLINE (line 165) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_PRIMASK(vo...
  function __STATIC_INLINE (line 177) | __attribute__((always_inline)) __STATIC_INLINE void __set_PRIMASK(uint32...
  function __STATIC_INLINE (line 186) | __attribute__((always_inline)) __STATIC_INLINE void __enable_fault_irq(v...
  function __STATIC_INLINE (line 212) | __attribute__((always_inline)) __STATIC_INLINE void __set_BASEPRI(uint32...
  function __STATIC_INLINE (line 220) | __attribute__((always_inline)) __STATIC_INLINE void __set_BASEPRI_MAX(ui...
  function __STATIC_INLINE (line 227) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_FAULTMASK(...
  function __STATIC_INLINE (line 239) | __attribute__((always_inline)) __STATIC_INLINE void __set_FAULTMASK(uint...
  function __STATIC_INLINE (line 250) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __get_FPSCR(void) {
  function __STATIC_INLINE (line 269) | __attribute__((always_inline)) __STATIC_INLINE void __set_FPSCR(uint32_t...
  function __STATIC_INLINE (line 303) | __attribute__((always_inline)) __STATIC_INLINE void __NOP(void) { __ASM ...
  function __STATIC_INLINE (line 309) | __attribute__((always_inline)) __STATIC_INLINE void __WFI(void) { __ASM ...
  function __STATIC_INLINE (line 316) | __attribute__((always_inline)) __STATIC_INLINE void __WFE(void) { __ASM ...
  function __STATIC_INLINE (line 322) | __attribute__((always_inline)) __STATIC_INLINE void __SEV(void) { __ASM ...
  function __STATIC_INLINE (line 330) | __attribute__((always_inline)) __STATIC_INLINE void __ISB(void) { __ASM ...
  function __STATIC_INLINE (line 369) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __REV16(uint32_t...
  function __STATIC_INLINE (line 382) | __attribute__((always_inline)) __STATIC_INLINE int32_t __REVSH(int32_t v...
  function __STATIC_INLINE (line 400) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __ROR(uint32_t o...
  function __STATIC_INLINE (line 417) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __RBIT(uint32_t ...
  function __STATIC_INLINE (line 452) | __attribute__((always_inline)) __STATIC_INLINE uint8_t __LDREXB(volatile...
  function __STATIC_INLINE (line 472) | __attribute__((always_inline)) __STATIC_INLINE uint16_t __LDREXH(volatil...
  function __STATIC_INLINE (line 492) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __LDREXW(volatil...
  function __STATIC_INLINE (line 507) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __STREXB(uint8_t...
  function __STATIC_INLINE (line 522) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __STREXH(uint16_...
  function __STATIC_INLINE (line 537) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __STREXW(uint32_...
  function __STATIC_INLINE (line 548) | __attribute__((always_inline)) __STATIC_INLINE void __CLREX(void) { __AS...
  function __STATIC_INLINE (line 585) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __RRX(uint32_t v...
  function __STATIC_INLINE (line 598) | __attribute__((always_inline)) __STATIC_INLINE uint8_t __LDRBT(volatile ...
  function __STATIC_INLINE (line 618) | __attribute__((always_inline)) __STATIC_INLINE uint16_t __LDRHT(volatile...
  function __STATIC_INLINE (line 638) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __LDRT(volatile ...
  function __STATIC_INLINE (line 651) | __attribute__((always_inline)) __STATIC_INLINE void __STRBT(uint8_t valu...
  function __STATIC_INLINE (line 659) | __attribute__((always_inline)) __STATIC_INLINE void __STRHT(uint16_t val...
  function __STATIC_INLINE (line 667) | __attribute__((always_inline)) __STATIC_INLINE void __STRT(uint32_t valu...
  function __STATIC_INLINE (line 681) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SADD8(uint32_t...
  function __STATIC_INLINE (line 688) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QADD8(uint32_t...
  function __STATIC_INLINE (line 695) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHADD8(uint32_...
  function __STATIC_INLINE (line 702) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UADD8(uint32_t...
  function __STATIC_INLINE (line 709) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQADD8(uint32_...
  function __STATIC_INLINE (line 716) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHADD8(uint32_...
  function __STATIC_INLINE (line 723) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SSUB8(uint32_t...
  function __STATIC_INLINE (line 730) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QSUB8(uint32_t...
  function __STATIC_INLINE (line 737) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSUB8(uint32_...
  function __STATIC_INLINE (line 744) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USUB8(uint32_t...
  function __STATIC_INLINE (line 751) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSUB8(uint32_...
  function __STATIC_INLINE (line 758) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSUB8(uint32_...
  function __STATIC_INLINE (line 765) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SADD16(uint32_...
  function __STATIC_INLINE (line 772) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QADD16(uint32_...
  function __STATIC_INLINE (line 779) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHADD16(uint32...
  function __STATIC_INLINE (line 786) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UADD16(uint32_...
  function __STATIC_INLINE (line 793) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQADD16(uint32...
  function __STATIC_INLINE (line 800) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHADD16(uint32...
  function __STATIC_INLINE (line 807) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SSUB16(uint32_...
  function __STATIC_INLINE (line 814) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QSUB16(uint32_...
  function __STATIC_INLINE (line 821) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSUB16(uint32...
  function __STATIC_INLINE (line 828) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USUB16(uint32_...
  function __STATIC_INLINE (line 835) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSUB16(uint32...
  function __STATIC_INLINE (line 842) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSUB16(uint32...
  function __STATIC_INLINE (line 849) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SASX(uint32_t ...
  function __STATIC_INLINE (line 856) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QASX(uint32_t ...
  function __STATIC_INLINE (line 863) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHASX(uint32_t...
  function __STATIC_INLINE (line 870) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UASX(uint32_t ...
  function __STATIC_INLINE (line 877) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQASX(uint32_t...
  function __STATIC_INLINE (line 884) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHASX(uint32_t...
  function __STATIC_INLINE (line 891) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SSAX(uint32_t ...
  function __STATIC_INLINE (line 898) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __QSAX(uint32_t ...
  function __STATIC_INLINE (line 905) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SHSAX(uint32_t...
  function __STATIC_INLINE (line 912) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USAX(uint32_t ...
  function __STATIC_INLINE (line 919) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UQSAX(uint32_t...
  function __STATIC_INLINE (line 926) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UHSAX(uint32_t...
  function __STATIC_INLINE (line 933) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USAD8(uint32_t...
  function __STATIC_INLINE (line 940) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __USADA8(uint32_...
  function __STATIC_INLINE (line 961) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UXTB16(uint32_...
  function __STATIC_INLINE (line 968) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __UXTAB16(uint32...
  function __STATIC_INLINE (line 975) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SXTB16(uint32_...
  function __STATIC_INLINE (line 982) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SXTAB16(uint32...
  function __STATIC_INLINE (line 989) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUAD(uint32_t...
  function __STATIC_INLINE (line 996) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUADX(uint32_...
  function __STATIC_INLINE (line 1003) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLAD(uint32_t...
  function __STATIC_INLINE (line 1010) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLADX(uint32_...
  function __STATIC_INLINE (line 1017) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLALD(uint32_...
  function __STATIC_INLINE (line 1033) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLALDX(uint32...
  function __STATIC_INLINE (line 1049) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUSD(uint32_t...
  function __STATIC_INLINE (line 1056) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMUSDX(uint32_...
  function __STATIC_INLINE (line 1063) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLSD(uint32_t...
  function __STATIC_INLINE (line 1070) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMLSDX(uint32_...
  function __STATIC_INLINE (line 1077) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLSLD(uint32_...
  function __STATIC_INLINE (line 1093) | __attribute__((always_inline)) __STATIC_INLINE uint64_t __SMLSLDX(uint32...
  function __STATIC_INLINE (line 1109) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SEL(uint32_t o...
  function __STATIC_INLINE (line 1116) | __attribute__((always_inline)) __STATIC_INLINE int32_t __QADD(int32_t op...
  function __STATIC_INLINE (line 1123) | __attribute__((always_inline)) __STATIC_INLINE int32_t __QSUB(int32_t op...
  function __STATIC_INLINE (line 1147) | __attribute__((always_inline)) __STATIC_INLINE uint32_t __SMMLA(int32_t ...

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Include/core_cm0.h
  type APSR_Type (line 241) | typedef union {
  type IPSR_Type (line 268) | typedef union {
  type xPSR_Type (line 283) | typedef union {
  type CONTROL_Type (line 319) | typedef union {
  type NVIC_Type (line 344) | typedef struct {
  type SCB_Type (line 369) | typedef struct {
  type SysTick_Type (line 474) | typedef struct {
  function __STATIC_INLINE (line 597) | __STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) { NVIC->ISER[0U] = (...
  function __STATIC_INLINE (line 604) | __STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) { NVIC->ICER[0U] = ...
  function __STATIC_INLINE (line 613) | __STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) { return ((u...
  function __STATIC_INLINE (line 620) | __STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) { NVIC->ISPR[0U]...
  function __STATIC_INLINE (line 627) | __STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) { NVIC->ICPR[0...
  function __STATIC_INLINE (line 636) | __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) {
  function __STATIC_INLINE (line 653) | __STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 666) | __STATIC_INLINE void NVIC_SystemReset(void) {
  function __STATIC_INLINE (line 701) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) {

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Include/core_cm0plus.h
  type APSR_Type (line 252) | typedef union {
  type IPSR_Type (line 279) | typedef union {
  type xPSR_Type (line 294) | typedef union {
  type CONTROL_Type (line 330) | typedef union {
  type NVIC_Type (line 358) | typedef struct {
  type SCB_Type (line 383) | typedef struct {
  type SysTick_Type (line 498) | typedef struct {
  type MPU_Type (line 549) | typedef struct {
  function __STATIC_INLINE (line 713) | __STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) { NVIC->ISER[0U] = (...
  function __STATIC_INLINE (line 720) | __STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) { NVIC->ICER[0U] = ...
  function __STATIC_INLINE (line 729) | __STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) { return ((u...
  function __STATIC_INLINE (line 736) | __STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) { NVIC->ISPR[0U]...
  function __STATIC_INLINE (line 743) | __STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) { NVIC->ICPR[0...
  function __STATIC_INLINE (line 752) | __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) {
  function __STATIC_INLINE (line 769) | __STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 782) | __STATIC_INLINE void NVIC_SystemReset(void) {
  function __STATIC_INLINE (line 817) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) {

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Include/core_cm3.h
  type APSR_Type (line 248) | typedef union {
  type IPSR_Type (line 279) | typedef union {
  type xPSR_Type (line 294) | typedef union {
  type CONTROL_Type (line 337) | typedef union {
  type NVIC_Type (line 365) | typedef struct {
  type SCB_Type (line 397) | typedef struct {
  type SCnSCB_Type (line 622) | typedef struct {
  type SysTick_Type (line 659) | typedef struct {
  type DWT_Type (line 809) | typedef struct {
  type TPI_Type (line 954) | typedef struct {
  type MPU_Type (line 1108) | typedef struct {
  type CoreDebug_Type (line 1200) | typedef struct {
  function __STATIC_INLINE (line 1380) | __STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) {
  function __STATIC_INLINE (line 1395) | __STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void) { return ((uint3...
  function __STATIC_INLINE (line 1402) | __STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) { NVIC->ISER[(((uint...
  function __STATIC_INLINE (line 1409) | __STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) { NVIC->ICER[(((uin...
  function __STATIC_INLINE (line 1418) | __STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1427) | __STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) { NVIC->ISPR[(((...
  function __STATIC_INLINE (line 1434) | __STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) { NVIC->ICPR[(...
  function __STATIC_INLINE (line 1443) | __STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) { return ((uint3...
  function __STATIC_INLINE (line 1452) | __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) {
  function __STATIC_INLINE (line 1469) | __STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1489) | __STATIC_INLINE uint32_t NVIC_EncodePriority(uint32_t PriorityGroup, uin...
  function __STATIC_INLINE (line 1511) | __STATIC_INLINE void NVIC_DecodePriority(uint32_t Priority, uint32_t Pri...
  function __STATIC_INLINE (line 1527) | __STATIC_INLINE void NVIC_SystemReset(void) {
  function __STATIC_INLINE (line 1562) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) {
  function __STATIC_INLINE (line 1597) | __STATIC_INLINE uint32_t ITM_SendChar(uint32_t ch) {
  function __STATIC_INLINE (line 1615) | __STATIC_INLINE int32_t ITM_ReceiveChar(void) {
  function __STATIC_INLINE (line 1632) | __STATIC_INLINE int32_t ITM_CheckChar(void) {

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Include/core_cm4.h
  type APSR_Type (line 302) | typedef union {
  type IPSR_Type (line 338) | typedef union {
  type xPSR_Type (line 353) | typedef union {
  type CONTROL_Type (line 401) | typedef union {
  type NVIC_Type (line 433) | typedef struct {
  type SCB_Type (line 465) | typedef struct {
  type SCnSCB_Type (line 682) | typedef struct {
  type SysTick_Type (line 720) | typedef struct {
  type DWT_Type (line 870) | typedef struct {
  type TPI_Type (line 1015) | typedef struct {
  type MPU_Type (line 1169) | typedef struct {
  type FPU_Type (line 1262) | typedef struct {
  type CoreDebug_Type (line 1367) | typedef struct {
  function __STATIC_INLINE (line 1552) | __STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) {
  function __STATIC_INLINE (line 1567) | __STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void) { return ((uint3...
  function __STATIC_INLINE (line 1574) | __STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) { NVIC->ISER[(((uint...
  function __STATIC_INLINE (line 1581) | __STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) { NVIC->ICER[(((uin...
  function __STATIC_INLINE (line 1590) | __STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1599) | __STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) { NVIC->ISPR[(((...
  function __STATIC_INLINE (line 1606) | __STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) { NVIC->ICPR[(...
  function __STATIC_INLINE (line 1615) | __STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) { return ((uint3...
  function __STATIC_INLINE (line 1624) | __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) {
  function __STATIC_INLINE (line 1641) | __STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1661) | __STATIC_INLINE uint32_t NVIC_EncodePriority(uint32_t PriorityGroup, uin...
  function __STATIC_INLINE (line 1683) | __STATIC_INLINE void NVIC_DecodePriority(uint32_t Priority, uint32_t Pri...
  function __STATIC_INLINE (line 1699) | __STATIC_INLINE void NVIC_SystemReset(void) {
  function __STATIC_INLINE (line 1734) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) {
  function __STATIC_INLINE (line 1769) | __STATIC_INLINE uint32_t ITM_SendChar(uint32_t ch) {
  function __STATIC_INLINE (line 1787) | __STATIC_INLINE int32_t ITM_ReceiveChar(void) {
  function __STATIC_INLINE (line 1804) | __STATIC_INLINE int32_t ITM_CheckChar(void) {

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Include/core_cm7.h
  type APSR_Type (line 317) | typedef union {
  type IPSR_Type (line 353) | typedef union {
  type xPSR_Type (line 368) | typedef union {
  type CONTROL_Type (line 416) | typedef union {
  type NVIC_Type (line 448) | typedef struct {
  type SCB_Type (line 480) | typedef struct {
  type SCnSCB_Type (line 884) | typedef struct {
  type SysTick_Type (line 922) | typedef struct {
  type DWT_Type (line 1072) | typedef struct {
  type TPI_Type (line 1220) | typedef struct {
  type MPU_Type (line 1374) | typedef struct {
  type FPU_Type (line 1467) | typedef struct {
  type CoreDebug_Type (line 1575) | typedef struct {
  function __STATIC_INLINE (line 1760) | __STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) {
  function __STATIC_INLINE (line 1775) | __STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void) { return ((uint3...
  function __STATIC_INLINE (line 1782) | __STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) { NVIC->ISER[(((uint...
  function __STATIC_INLINE (line 1789) | __STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) { NVIC->ICER[(((uin...
  function __STATIC_INLINE (line 1798) | __STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1807) | __STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) { NVIC->ISPR[(((...
  function __STATIC_INLINE (line 1814) | __STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) { NVIC->ICPR[(...
  function __STATIC_INLINE (line 1823) | __STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) { return ((uint3...
  function __STATIC_INLINE (line 1832) | __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) {
  function __STATIC_INLINE (line 1849) | __STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1869) | __STATIC_INLINE uint32_t NVIC_EncodePriority(uint32_t PriorityGroup, uin...
  function __STATIC_INLINE (line 1891) | __STATIC_INLINE void NVIC_DecodePriority(uint32_t Priority, uint32_t Pri...
  function __STATIC_INLINE (line 1907) | __STATIC_INLINE void NVIC_SystemReset(void) {
  function __STATIC_INLINE (line 1937) | __STATIC_INLINE uint32_t SCB_GetFPUType(void) {
  function __STATIC_INLINE (line 1968) | __STATIC_INLINE void SCB_EnableICache(void) {
  function __STATIC_INLINE (line 1983) | __STATIC_INLINE void SCB_DisableICache(void) {
  function __STATIC_INLINE (line 1998) | __STATIC_INLINE void SCB_InvalidateICache(void) {
  function __STATIC_INLINE (line 2012) | __STATIC_INLINE void SCB_EnableDCache(void) {
  function __STATIC_INLINE (line 2047) | __STATIC_INLINE void SCB_DisableDCache(void) {
  function __STATIC_INLINE (line 2081) | __STATIC_INLINE void SCB_InvalidateDCache(void) {
  function __STATIC_INLINE (line 2113) | __STATIC_INLINE void SCB_CleanDCache(void) {
  function __STATIC_INLINE (line 2145) | __STATIC_INLINE void SCB_CleanInvalidateDCache(void) {
  function __STATIC_INLINE (line 2179) | __STATIC_INLINE void SCB_InvalidateDCache_by_Addr(uint32_t *addr, int32_...
  function __STATIC_INLINE (line 2204) | __STATIC_INLINE void SCB_CleanDCache_by_Addr(uint32_t *addr, int32_t dsi...
  function __STATIC_INLINE (line 2229) | __STATIC_INLINE void SCB_CleanInvalidateDCache_by_Addr(uint32_t *addr, i...
  function __STATIC_INLINE (line 2271) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) {
  function __STATIC_INLINE (line 2306) | __STATIC_INLINE uint32_t ITM_SendChar(uint32_t ch) {
  function __STATIC_INLINE (line 2324) | __STATIC_INLINE int32_t ITM_ReceiveChar(void) {
  function __STATIC_INLINE (line 2341) | __STATIC_INLINE int32_t ITM_CheckChar(void) {

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Include/core_sc000.h
  type APSR_Type (line 247) | typedef union {
  type IPSR_Type (line 274) | typedef union {
  type xPSR_Type (line 289) | typedef union {
  type CONTROL_Type (line 325) | typedef union {
  type NVIC_Type (line 350) | typedef struct {
  type SCB_Type (line 375) | typedef struct {
  type SCnSCB_Type (line 486) | typedef struct {
  type SysTick_Type (line 507) | typedef struct {
  type MPU_Type (line 558) | typedef struct {
  function __STATIC_INLINE (line 723) | __STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) { NVIC->ISER[0U] = (...
  function __STATIC_INLINE (line 730) | __STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) { NVIC->ICER[0U] = ...
  function __STATIC_INLINE (line 739) | __STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) { return ((u...
  function __STATIC_INLINE (line 746) | __STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) { NVIC->ISPR[0U]...
  function __STATIC_INLINE (line 753) | __STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) { NVIC->ICPR[0...
  function __STATIC_INLINE (line 762) | __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) {
  function __STATIC_INLINE (line 779) | __STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 792) | __STATIC_INLINE void NVIC_SystemReset(void) {
  function __STATIC_INLINE (line 827) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) {

FILE: source/Core/BSP/Miniware/Vendor/CMSIS/Include/core_sc300.h
  type APSR_Type (line 248) | typedef union {
  type IPSR_Type (line 279) | typedef union {
  type xPSR_Type (line 294) | typedef union {
  type CONTROL_Type (line 337) | typedef union {
  type NVIC_Type (line 365) | typedef struct {
  type SCB_Type (line 397) | typedef struct {
  type SCnSCB_Type (line 619) | typedef struct {
  type SysTick_Type (line 641) | typedef struct {
  type DWT_Type (line 791) | typedef struct {
  type TPI_Type (line 936) | typedef struct {
  type MPU_Type (line 1090) | typedef struct {
  type CoreDebug_Type (line 1182) | typedef struct {
  function __STATIC_INLINE (line 1362) | __STATIC_INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup) {
  function __STATIC_INLINE (line 1377) | __STATIC_INLINE uint32_t NVIC_GetPriorityGrouping(void) { return ((uint3...
  function __STATIC_INLINE (line 1384) | __STATIC_INLINE void NVIC_EnableIRQ(IRQn_Type IRQn) { NVIC->ISER[(((uint...
  function __STATIC_INLINE (line 1391) | __STATIC_INLINE void NVIC_DisableIRQ(IRQn_Type IRQn) { NVIC->ICER[(((uin...
  function __STATIC_INLINE (line 1400) | __STATIC_INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1409) | __STATIC_INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn) { NVIC->ISPR[(((...
  function __STATIC_INLINE (line 1416) | __STATIC_INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn) { NVIC->ICPR[(...
  function __STATIC_INLINE (line 1425) | __STATIC_INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn) { return ((uint3...
  function __STATIC_INLINE (line 1434) | __STATIC_INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority) {
  function __STATIC_INLINE (line 1451) | __STATIC_INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn) {
  function __STATIC_INLINE (line 1471) | __STATIC_INLINE uint32_t NVIC_EncodePriority(uint32_t PriorityGroup, uin...
  function __STATIC_INLINE (line 1493) | __STATIC_INLINE void NVIC_DecodePriority(uint32_t Priority, uint32_t Pri...
  function __STATIC_INLINE (line 1509) | __STATIC_INLINE void NVIC_SystemReset(void) {
  function __STATIC_INLINE (line 1544) | __STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks) {
  function __STATIC_INLINE (line 1579) | __STATIC_INLINE uint32_t ITM_SendChar(uint32_t ch) {
  function __STATIC_INLINE (line 1597) | __STATIC_INLINE int32_t ITM_ReceiveChar(void) {
  function __STATIC_INLINE (line 1614) | __STATIC_INLINE int32_t ITM_CheckChar(void) {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h
  type HAL_TickFreqTypeDef (line 65) | typedef enum { HAL_TICK_FREQ_10HZ = 100U, HAL_TICK_FREQ_100HZ = 10U, HAL...

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc.h
  type ADC_InitTypeDef (line 67) | typedef struct {
  type ADC_ChannelConfTypeDef (line 107) | typedef struct {
  type ADC_AnalogWDGConfTypeDef (line 135) | typedef struct {
  type ADC_HandleTypeDef (line 190) | typedef struct {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc_ex.h
  type ADC_InjectionConfTypeDef (line 71) | typedef struct {
  type ADC_MultiModeTypeDef (line 131) | typedef struct {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h
  type MPU_Region_InitTypeDef (line 64) | typedef struct {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h
  type HAL_StatusTypeDef (line 57) | typedef enum { HAL_OK = 0x00U, HAL_ERROR = 0x01U, HAL_BUSY = 0x02U, HAL_...
  type HAL_LockTypeDef (line 62) | typedef enum { HAL_UNLOCKED = 0x00U, HAL_LOCKED = 0x01U } HAL_LockTypeDef;

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h
  type DMA_InitTypeDef (line 64) | typedef struct {
  type HAL_DMA_StateTypeDef (line 93) | typedef enum {
  type HAL_DMA_LevelCompleteTypeDef (line 103) | typedef enum {
  type HAL_DMA_CallbackIDTypeDef (line 111) | typedef enum {
  type DMA_HandleTypeDef (line 123) | typedef struct __DMA_HandleTypeDef {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h
  type FLASH_ProcedureTypeDef (line 87) | typedef enum {
  type FLASH_ProcessTypeDef (line 99) | typedef struct {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h
  type FLASH_EraseInitTypeDef (line 190) | typedef struct {
  type FLASH_OBProgramInitTypeDef (line 209) | typedef struct {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h
  type GPIO_InitTypeDef (line 63) | typedef struct {
  type GPIO_PinState (line 80) | typedef enum { GPIO_PIN_RESET = 0U, GPIO_PIN_SET } GPIO_PinState;

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_iwdg.h
  type IWDG_InitTypeDef (line 63) | typedef struct {
  type IWDG_HandleTypeDef (line 75) | typedef struct {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h
  type PWR_PVDTypeDef (line 64) | typedef struct {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h
  type RCC_PLLInitTypeDef (line 64) | typedef struct {
  type RCC_ClkInitTypeDef (line 78) | typedef struct {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h
  type RCC_PLL2InitTypeDef (line 190) | typedef struct {
  type RCC_OscInitTypeDef (line 209) | typedef struct {
  type RCC_PLLI2SInitTypeDef (line 247) | typedef struct {
  type RCC_PeriphCLKInitTypeDef (line 262) | typedef struct {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h
  type TIM_Base_InitTypeDef (line 49) | typedef struct {
  type TIM_OC_InitTypeDef (line 79) | typedef struct {
  type TIM_OnePulse_InitTypeDef (line 109) | typedef struct {
  type TIM_IC_InitTypeDef (line 144) | typedef struct {
  type TIM_Encoder_InitTypeDef (line 161) | typedef struct {
  type TIM_ClockConfigTypeDef (line 193) | typedef struct {
  type TIM_ClearInputConfigTypeDef (line 207) | typedef struct {
  type TIM_MasterConfigTypeDef (line 223) | typedef struct {
  type TIM_SlaveConfigTypeDef (line 238) | typedef struct {
  type TIM_BreakDeadTimeConfigTypeDef (line 257) | typedef struct {
  type HAL_TIM_StateTypeDef (line 279) | typedef enum {
  type HAL_TIM_ChannelStateTypeDef (line 290) | typedef enum {
  type HAL_TIM_DMABurstStateTypeDef (line 299) | typedef enum {
  type HAL_TIM_ActiveChannel (line 308) | typedef enum {
  type __TIM_HandleTypeDef (line 320) | struct __TIM_HandleTypeDef
  type TIM_HandleTypeDef (line 322) | typedef struct
  type HAL_TIM_CallbackIDTypeDef (line 371) | typedef enum {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h
  type TIM_HallSensor_InitTypeDef (line 48) | typedef struct {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c
  function HAL_StatusTypeDef (line 155) | HAL_StatusTypeDef HAL_Init(void) {
  function HAL_StatusTypeDef (line 185) | HAL_StatusTypeDef HAL_DeInit(void) {
  function __weak (line 209) | __weak void HAL_MspInit(void) {
  function __weak (line 219) | __weak void HAL_MspDeInit(void) {
  function __weak (line 241) | __weak HAL_StatusTypeDef HAL_InitTick(uint32_t TickPriority) {
  function __weak (line 295) | __weak void HAL_IncTick(void) { uwTick += uwTickFreq; }
  function __weak (line 303) | __weak uint32_t HAL_GetTick(void) { return uwTick; }
  function HAL_GetTickPrio (line 309) | uint32_t HAL_GetTickPrio(void) { return uwTickPrio; }
  function HAL_StatusTypeDef (line 315) | HAL_StatusTypeDef HAL_SetTickFreq(HAL_TickFreqTypeDef Freq) {
  function HAL_TickFreqTypeDef (line 333) | HAL_TickFreqTypeDef HAL_GetTickFreq(void) { return uwTickFreq; }
  function __weak (line 346) | __weak void HAL_Delay(uint32_t Delay) {
  function __weak (line 369) | __weak void HAL_SuspendTick(void) {
  function __weak (line 384) | __weak void HAL_ResumeTick(void) {
  function HAL_GetHalVersion (line 393) | uint32_t HAL_GetHalVersion(void) { return __STM32F1xx_HAL_VERSION; }
  function HAL_GetREVID (line 406) | uint32_t HAL_GetREVID(void) { return ((DBGMCU->IDCODE) >> DBGMCU_IDCODE_...
  function HAL_GetDEVID (line 419) | uint32_t HAL_GetDEVID(void) { return ((DBGMCU->IDCODE) & IDCODE_DEVID_MA...
  function HAL_DBGMCU_EnableDBGSleepMode (line 425) | void HAL_DBGMCU_EnableDBGSleepMode(void) { SET_BIT(DBGMCU->CR, DBGMCU_CR...
  function HAL_DBGMCU_DisableDBGSleepMode (line 438) | void HAL_DBGMCU_DisableDBGSleepMode(void) { CLEAR_BIT(DBGMCU->CR, DBGMCU...
  function HAL_DBGMCU_EnableDBGStopMode (line 465) | void HAL_DBGMCU_EnableDBGStopMode(void) { SET_BIT(DBGMCU->CR, DBGMCU_CR_...
  function HAL_DBGMCU_DisableDBGStopMode (line 478) | void HAL_DBGMCU_DisableDBGStopMode(void) { CLEAR_BIT(DBGMCU->CR, DBGMCU_...
  function HAL_DBGMCU_EnableDBGStandbyMode (line 491) | void HAL_DBGMCU_EnableDBGStandbyMode(void) { SET_BIT(DBGMCU->CR, DBGMCU_...
  function HAL_DBGMCU_DisableDBGStandbyMode (line 504) | void HAL_DBGMCU_DisableDBGStandbyMode(void) { CLEAR_BIT(DBGMCU->CR, DBGM...
  function HAL_GetUID (line 511) | void HAL_GetUID(uint32_t *UID) {
  function HAL_GetUIDw0 (line 521) | uint32_t HAL_GetUIDw0(void) { return (READ_REG(*((uint32_t *)UID_BASE))); }
  function HAL_GetUIDw1 (line 527) | uint32_t HAL_GetUIDw1(void) { return (READ_REG(*((uint32_t *)(UID_BASE +...
  function HAL_GetUIDw2 (line 533) | uint32_t HAL_GetUIDw2(void) { return (READ_REG(*((uint32_t *)(UID_BASE +...

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c
  function HAL_StatusTypeDef (line 372) | HAL_StatusTypeDef HAL_ADC_Init(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 531) | HAL_StatusTypeDef HAL_ADC_DeInit(ADC_HandleTypeDef *hadc) {
  function __weak (line 641) | __weak void HAL_ADC_MspInit(ADC_HandleTypeDef *hadc) {
  function __weak (line 654) | __weak void HAL_ADC_MspDeInit(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 694) | HAL_StatusTypeDef HAL_ADC_Start(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 789) | HAL_StatusTypeDef HAL_ADC_Stop(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 829) | HAL_StatusTypeDef HAL_ADC_PollForConversion(ADC_HandleTypeDef *hadc, uin...
  function HAL_StatusTypeDef (line 943) | HAL_StatusTypeDef HAL_ADC_PollForEvent(ADC_HandleTypeDef *hadc, uint32_t...
  function HAL_StatusTypeDef (line 988) | HAL_StatusTypeDef HAL_ADC_Start_IT(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 1081) | HAL_StatusTypeDef HAL_ADC_Stop_IT(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 1134) | HAL_StatusTypeDef HAL_ADC_Start_DMA(ADC_HandleTypeDef *hadc, uint32_t *p...
  function HAL_StatusTypeDef (line 1248) | HAL_StatusTypeDef HAL_ADC_Stop_DMA(ADC_HandleTypeDef *hadc) {
  function HAL_ADC_GetValue (line 1306) | uint32_t HAL_ADC_GetValue(ADC_HandleTypeDef *hadc) {
  function HAL_ADC_IRQHandler (line 1322) | void HAL_ADC_IRQHandler(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 1434) | HAL_StatusTypeDef HAL_ADC_ConfigChannel(ADC_HandleTypeDef *hadc, ADC_Cha...
  function HAL_StatusTypeDef (line 1490) | HAL_StatusTypeDef HAL_ADC_AnalogWDGConfig(ADC_HandleTypeDef *hadc, ADC_A...
  function HAL_ADC_GetState (line 1563) | uint32_t HAL_ADC_GetState(ADC_HandleTypeDef *hadc) {
  function HAL_ADC_GetError (line 1573) | uint32_t HAL_ADC_GetError(ADC_HandleTypeDef *hadc) { return hadc->ErrorC...
  function HAL_StatusTypeDef (line 1594) | HAL_StatusTypeDef ADC_Enable(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 1644) | HAL_StatusTypeDef ADC_ConversionStop_Disable(ADC_HandleTypeDef *hadc) {
  function ADC_DMAConvCplt (line 1678) | void ADC_DMAConvCplt(DMA_HandleTypeDef *hdma) {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c
  function HAL_StatusTypeDef (line 142) | HAL_StatusTypeDef HAL_ADCEx_Calibration_Start(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 230) | HAL_StatusTypeDef HAL_ADCEx_InjectedStart(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 314) | HAL_StatusTypeDef HAL_ADCEx_InjectedStop(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 359) | HAL_StatusTypeDef HAL_ADCEx_InjectedPollForConversion(ADC_HandleTypeDef ...
  function HAL_StatusTypeDef (line 460) | HAL_StatusTypeDef HAL_ADCEx_InjectedStart_IT(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 544) | HAL_StatusTypeDef HAL_ADCEx_InjectedStop_IT(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 605) | HAL_StatusTypeDef HAL_ADCEx_MultiModeStart_DMA(ADC_HandleTypeDef *hadc, ...
  function HAL_StatusTypeDef (line 711) | HAL_StatusTypeDef HAL_ADCEx_MultiModeStop_DMA(ADC_HandleTypeDef *hadc) {
  function HAL_ADCEx_InjectedGetValue (line 794) | uint32_t HAL_ADCEx_InjectedGetValue(ADC_HandleTypeDef *hadc, uint32_t In...
  function HAL_ADCEx_MultiModeGetValue (line 829) | uint32_t HAL_ADCEx_MultiModeGetValue(ADC_HandleTypeDef *hadc) {
  function __weak (line 859) | __weak void HAL_ADCEx_InjectedConvCpltCallback(ADC_HandleTypeDef *hadc) {
  function HAL_StatusTypeDef (line 900) | HAL_StatusTypeDef HAL_ADCEx_InjectedConfigChannel(ADC_HandleTypeDef *had...
  function HAL_StatusTypeDef (line 1074) | HAL_StatusTypeDef HAL_ADCEx_MultiModeConfigChannel(ADC_HandleTypeDef *ha...

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c
  function HAL_NVIC_SetPriorityGrouping (line 157) | void HAL_NVIC_SetPriorityGrouping(uint32_t PriorityGroup) {
  function HAL_NVIC_SetPriority (line 178) | void HAL_NVIC_SetPriority(IRQn_Type IRQn, uint32_t PreemptPriority, uint...
  function HAL_NVIC_EnableIRQ (line 199) | void HAL_NVIC_EnableIRQ(IRQn_Type IRQn) {
  function HAL_NVIC_DisableIRQ (line 214) | void HAL_NVIC_DisableIRQ(IRQn_Type IRQn) {
  function HAL_NVIC_SystemReset (line 226) | void HAL_NVIC_SystemReset(void) {
  function HAL_SYSTICK_Config (line 238) | uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb) { return SysTick_Config(...
  function HAL_MPU_Disable (line 264) | void HAL_MPU_Disable(void) {
  function HAL_MPU_Enable (line 286) | void HAL_MPU_Enable(uint32_t MPU_Control) {
  function HAL_MPU_ConfigRegion (line 304) | void HAL_MPU_ConfigRegion(MPU_Region_InitTypeDef *MPU_Init) {
  function HAL_NVIC_GetPriorityGrouping (line 338) | uint32_t HAL_NVIC_GetPriorityGrouping(void) {
  function HAL_NVIC_GetPriority (line 364) | void HAL_NVIC_GetPriority(IRQn_Type IRQn, uint32_t PriorityGroup, uint32...
  function HAL_NVIC_SetPendingIRQ (line 378) | void HAL_NVIC_SetPendingIRQ(IRQn_Type IRQn) {
  function HAL_NVIC_GetPendingIRQ (line 395) | uint32_t HAL_NVIC_GetPendingIRQ(IRQn_Type IRQn) {
  function HAL_NVIC_ClearPendingIRQ (line 410) | void HAL_NVIC_ClearPendingIRQ(IRQn_Type IRQn) {
  function HAL_NVIC_GetActive (line 426) | uint32_t HAL_NVIC_GetActive(IRQn_Type IRQn) {
  function HAL_SYSTICK_CLKSourceConfig (line 442) | void HAL_SYSTICK_CLKSourceConfig(uint32_t CLKSource) {
  function HAL_SYSTICK_IRQHandler (line 456) | void HAL_SYSTICK_IRQHandler(void) { HAL_SYSTICK_Callback(); }
  function __weak (line 462) | __weak void HAL_SYSTICK_Callback(void) {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c
  function HAL_StatusTypeDef (line 159) | HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma) {
  function HAL_StatusTypeDef (line 226) | HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma) {
  function HAL_StatusTypeDef (line 320) | HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAdd...
  function HAL_StatusTypeDef (line 359) | HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t Src...
  function HAL_StatusTypeDef (line 406) | HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma) {
  function HAL_StatusTypeDef (line 433) | HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) {
  function HAL_StatusTypeDef (line 473) | HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, uint3...
  function HAL_DMA_IRQHandler (line 561) | void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma) {
  function HAL_StatusTypeDef (line 631) | HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_...
  function HAL_StatusTypeDef (line 677) | HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HA...
  function HAL_DMA_StateTypeDef (line 748) | HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma) {
  function HAL_DMA_GetError (line 759) | uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma) { return hdma->ErrorC...
  function DMA_SetConfig (line 782) | static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, ...

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c
  function HAL_StatusTypeDef (line 184) | HAL_StatusTypeDef HAL_FLASH_Program(uint32_t TypeProgram, uint32_t Addre...
  function HAL_StatusTypeDef (line 268) | HAL_StatusTypeDef HAL_FLASH_Program_IT(uint32_t TypeProgram, uint32_t Ad...
  function __weak (line 557) | __weak void HAL_FLASH_EndOfOperationCallback(uint32_t ReturnValue) {
  function __weak (line 574) | __weak void HAL_FLASH_OperationErrorCallback(uint32_t ReturnValue) {
  function HAL_StatusTypeDef (line 606) | HAL_StatusTypeDef HAL_FLASH_Unlock(void) {
  function HAL_StatusTypeDef (line 639) | HAL_StatusTypeDef HAL_FLASH_Lock(void) {
  function HAL_StatusTypeDef (line 655) | HAL_StatusTypeDef HAL_FLASH_OB_Unlock(void) {
  function HAL_StatusTypeDef (line 671) | HAL_StatusTypeDef HAL_FLASH_OB_Lock(void) {
  function HAL_FLASH_OB_Launch (line 683) | void HAL_FLASH_OB_Launch(void) {
  function HAL_FLASH_GetError (line 711) | uint32_t HAL_FLASH_GetError(void) { return pFlash.ErrorCode; }
  function FLASH_Program_HalfWord (line 731) | static void FLASH_Program_HalfWord(uint32_t Address, uint16_t Data) {
  function HAL_StatusTypeDef (line 756) | HAL_StatusTypeDef FLASH_WaitForLastOperation(uint32_t Timeout) {
  function HAL_StatusTypeDef (line 793) | HAL_StatusTypeDef FLASH_WaitForLastOperationBank2(uint32_t Timeout) {
  function FLASH_SetErrorCode (line 829) | static void FLASH_SetErrorCode(void) {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c
  function HAL_StatusTypeDef (line 174) | HAL_StatusTypeDef HAL_FLASHEx_Erase(FLASH_EraseInitTypeDef *pEraseInit, ...
  function HAL_StatusTypeDef (line 308) | HAL_StatusTypeDef HAL_FLASHEx_Erase_IT(FLASH_EraseInitTypeDef *pEraseIni...
  function HAL_StatusTypeDef (line 381) | HAL_StatusTypeDef HAL_FLASHEx_OBErase(void) {
  function HAL_StatusTypeDef (line 427) | HAL_StatusTypeDef HAL_FLASHEx_OBProgram(FLASH_OBProgramInitTypeDef *pOBI...
  function HAL_FLASHEx_OBGetConfig (line 496) | void HAL_FLASHEx_OBGetConfig(FLASH_OBProgramInitTypeDef *pOBInit) {
  function HAL_FLASHEx_OBGetUserData (line 517) | uint32_t HAL_FLASHEx_OBGetUserData(uint32_t DATAAdress) {
  function HAL_StatusTypeDef (line 602) | static HAL_StatusTypeDef FLASH_OB_EnableWRP(uint32_t WriteProtectPage) {
  function HAL_StatusTypeDef (line 718) | static HAL_StatusTypeDef FLASH_OB_DisableWRP(uint32_t WriteProtectPage) {
  function HAL_StatusTypeDef (line 829) | static HAL_StatusTypeDef FLASH_OB_RDP_LevelConfig(uint8_t ReadProtectLev...
  function HAL_StatusTypeDef (line 877) | static HAL_StatusTypeDef FLASH_OB_UserConfig(uint8_t UserConfig) {
  function HAL_StatusTypeDef (line 926) | static HAL_StatusTypeDef FLASH_OB_ProgramData(uint32_t Address, uint8_t ...
  function FLASH_OB_GetWRP (line 957) | static uint32_t FLASH_OB_GetWRP(void) {
  function FLASH_OB_GetRDP (line 969) | static uint32_t FLASH_OB_GetRDP(void) {
  function FLASH_OB_GetUser (line 991) | static uint8_t FLASH_OB_GetUser(void) {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c
  function HAL_GPIO_Init (line 193) | void HAL_GPIO_Init(GPIO_TypeDef *GPIOx, GPIO_InitTypeDef *GPIO_Init) {
  function HAL_GPIO_DeInit (line 342) | void HAL_GPIO_DeInit(GPIO_TypeDef *GPIOx, uint32_t GPIO_Pin) {
  function GPIO_PinState (line 419) | GPIO_PinState HAL_GPIO_ReadPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) {
  function HAL_GPIO_WritePin (line 449) | void HAL_GPIO_WritePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin, GPIO_PinS...
  function HAL_GPIO_TogglePin (line 467) | void HAL_GPIO_TogglePin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pin) {
  function HAL_StatusTypeDef (line 484) | HAL_StatusTypeDef HAL_GPIO_LockPin(GPIO_TypeDef *GPIOx, uint16_t GPIO_Pi...
  function HAL_GPIO_EXTI_IRQHandler (line 514) | void HAL_GPIO_EXTI_IRQHandler(uint16_t GPIO_Pin) {
  function __weak (line 527) | __weak void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c
  function HAL_GPIOEx_ConfigEventout (line 97) | void HAL_GPIOEx_ConfigEventout(uint32_t GPIO_PortSource, uint32_t GPIO_P...
  function HAL_GPIOEx_EnableEventout (line 110) | void HAL_GPIOEx_EnableEventout(void) { SET_BIT(AFIO->EVCR, AFIO_EVCR_EVO...
  function HAL_GPIOEx_DisableEventout (line 116) | void HAL_GPIOEx_DisableEventout(void) { CLEAR_BIT(AFIO->EVCR, AFIO_EVCR_...

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_iwdg.c
  function HAL_StatusTypeDef (line 162) | HAL_StatusTypeDef HAL_IWDG_Init(IWDG_HandleTypeDef *hiwdg) {
  function HAL_StatusTypeDef (line 226) | HAL_StatusTypeDef HAL_IWDG_Refresh(IWDG_HandleTypeDef *hiwdg) {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c
  function __NOINLINE (line 131) | __NOINLINE
  function HAL_PWR_DeInit (line 169) | void HAL_PWR_DeInit(void) {
  function HAL_PWR_EnableBkUpAccess (line 181) | void HAL_PWR_EnableBkUpAccess(void) {
  function HAL_PWR_DisableBkUpAccess (line 193) | void HAL_PWR_DisableBkUpAccess(void) {
  function HAL_PWR_ConfigPVD (line 326) | void HAL_PWR_ConfigPVD(PWR_PVDTypeDef *sConfigPVD) {
  function HAL_PWR_EnablePVD (line 364) | void HAL_PWR_EnablePVD(void) {
  function HAL_PWR_DisablePVD (line 373) | void HAL_PWR_DisablePVD(void) {
  function HAL_PWR_EnableWakeUpPin (line 385) | void HAL_PWR_EnableWakeUpPin(uint32_t WakeUpPinx) {
  function HAL_PWR_DisableWakeUpPin (line 399) | void HAL_PWR_DisableWakeUpPin(uint32_t WakeUpPinx) {
  function HAL_PWR_EnterSLEEPMode (line 418) | void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SLEEPEntry) {
  function HAL_PWR_EnterSTOPMode (line 460) | void HAL_PWR_EnterSTOPMode(uint32_t Regulator, uint8_t STOPEntry) {
  function HAL_PWR_EnterSTANDBYMode (line 496) | void HAL_PWR_EnterSTANDBYMode(void) {
  function HAL_PWR_EnableSleepOnExit (line 519) | void HAL_PWR_EnableSleepOnExit(void) {
  function HAL_PWR_DisableSleepOnExit (line 530) | void HAL_PWR_DisableSleepOnExit(void) {
  function HAL_PWR_EnableSEVOnPend (line 541) | void HAL_PWR_EnableSEVOnPend(void) {
  function HAL_PWR_DisableSEVOnPend (line 552) | void HAL_PWR_DisableSEVOnPend(void) {
  function HAL_PWR_PVD_IRQHandler (line 562) | void HAL_PWR_PVD_IRQHandler(void) {
  function __weak (line 577) | __weak void HAL_PWR_PVDCallback(void) {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c
  function HAL_StatusTypeDef (line 217) | HAL_StatusTypeDef HAL_RCC_DeInit(void) {
  function HAL_StatusTypeDef (line 348) | HAL_StatusTypeDef HAL_RCC_OscConfig(RCC_OscInitTypeDef *RCC_OscInitStruc...
  function HAL_StatusTypeDef (line 585) | HAL_StatusTypeDef HAL_RCC_ClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStr...
  function HAL_RCC_MCOConfig (line 763) | void HAL_RCC_MCOConfig(uint32_t RCC_MCOx, uint32_t RCC_MCOSource, uint32...
  function HAL_RCC_EnableCSS (line 799) | void HAL_RCC_EnableCSS(void) { *(__IO uint32_t *)RCC_CR_CSSON_BB = (uint...
  function HAL_RCC_DisableCSS (line 805) | void HAL_RCC_DisableCSS(void) { *(__IO uint32_t *)RCC_CR_CSSON_BB = (uin...
  function HAL_RCC_GetSysClockFreq (line 836) | uint32_t HAL_RCC_GetSysClockFreq(void) {
  function HAL_RCC_GetHCLKFreq (line 921) | uint32_t HAL_RCC_GetHCLKFreq(void) { return SystemCoreClock; }
  function HAL_RCC_GetPCLK1Freq (line 929) | uint32_t HAL_RCC_GetPCLK1Freq(void) {
  function HAL_RCC_GetPCLK2Freq (line 940) | uint32_t HAL_RCC_GetPCLK2Freq(void) {
  function HAL_RCC_GetOscConfig (line 952) | void HAL_RCC_GetOscConfig(RCC_OscInitTypeDef *RCC_OscInitStruct) {
  function HAL_RCC_GetClockConfig (line 1027) | void HAL_RCC_GetClockConfig(RCC_ClkInitTypeDef *RCC_ClkInitStruct, uint3...
  function HAL_RCC_NMI_IRQHandler (line 1061) | void HAL_RCC_NMI_IRQHandler(void) {
  function __weak (line 1076) | __weak void HAL_RCC_CSSCallback(void) {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c
  function HAL_StatusTypeDef (line 116) | HAL_StatusTypeDef HAL_RCCEx_PeriphCLKConfig(RCC_PeriphCLKInitTypeDef *Pe...
  function HAL_RCCEx_GetPeriphCLKConfig (line 283) | void HAL_RCCEx_GetPeriphCLKConfig(RCC_PeriphCLKInitTypeDef *PeriphClkIni...
  function HAL_RCCEx_GetPeriphCLKFreq (line 373) | uint32_t HAL_RCCEx_GetPeriphCLKFreq(uint32_t PeriphClk) {
  function HAL_StatusTypeDef (line 559) | HAL_StatusTypeDef HAL_RCCEx_EnablePLLI2S(RCC_PLLI2SInitTypeDef *PLLI2SIn...
  function HAL_StatusTypeDef (line 618) | HAL_StatusTypeDef HAL_RCCEx_DisablePLLI2S(void) {
  function HAL_StatusTypeDef (line 668) | HAL_StatusTypeDef HAL_RCCEx_EnablePLL2(RCC_PLL2InitTypeDef *PLL2Init) {
  function HAL_StatusTypeDef (line 728) | HAL_StatusTypeDef HAL_RCCEx_DisablePLL2(void) {

FILE: source/Core/BSP/Miniware/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c
  function HAL_StatusTypeDef (line 262) | HAL_StatusTypeDef HAL_TIM_Base_Init(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 317) | HAL_StatusTypeDef HAL_TIM_Base_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 358) | __weak void HAL_TIM_Base_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 372) | __weak void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 386) | HAL_StatusTypeDef HAL_TIM_Base_Start(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 419) | HAL_StatusTypeDef HAL_TIM_Base_Stop(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 438) | HAL_StatusTypeDef HAL_TIM_Base_Start_IT(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 474) | HAL_StatusTypeDef HAL_TIM_Base_Stop_IT(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 498) | HAL_StatusTypeDef HAL_TIM_Base_Start_DMA(TIM_HandleTypeDef *htim, uint32...
  function HAL_StatusTypeDef (line 552) | HAL_StatusTypeDef HAL_TIM_Base_Stop_DMA(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 606) | HAL_StatusTypeDef HAL_TIM_OC_Init(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 661) | HAL_StatusTypeDef HAL_TIM_OC_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 702) | __weak void HAL_TIM_OC_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 716) | __weak void HAL_TIM_OC_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 736) | HAL_StatusTypeDef HAL_TIM_OC_Start(TIM_HandleTypeDef *htim, uint32_t Cha...
  function HAL_StatusTypeDef (line 783) | HAL_StatusTypeDef HAL_TIM_OC_Stop(TIM_HandleTypeDef *htim, uint32_t Chan...
  function HAL_StatusTypeDef (line 816) | HAL_StatusTypeDef HAL_TIM_OC_Start_IT(TIM_HandleTypeDef *htim, uint32_t ...
  function HAL_StatusTypeDef (line 892) | HAL_StatusTypeDef HAL_TIM_OC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t C...
  function HAL_StatusTypeDef (line 956) | HAL_StatusTypeDef HAL_TIM_OC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t...
  function HAL_StatusTypeDef (line 1087) | HAL_StatusTypeDef HAL_TIM_OC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t ...
  function HAL_StatusTypeDef (line 1177) | HAL_StatusTypeDef HAL_TIM_PWM_Init(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 1232) | HAL_StatusTypeDef HAL_TIM_PWM_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 1273) | __weak void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 1287) | __weak void HAL_TIM_PWM_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 1307) | HAL_StatusTypeDef HAL_TIM_PWM_Start(TIM_HandleTypeDef *htim, uint32_t Ch...
  function HAL_StatusTypeDef (line 1354) | HAL_StatusTypeDef HAL_TIM_PWM_Stop(TIM_HandleTypeDef *htim, uint32_t Cha...
  function HAL_StatusTypeDef (line 1387) | HAL_StatusTypeDef HAL_TIM_PWM_Start_IT(TIM_HandleTypeDef *htim, uint32_t...
  function HAL_StatusTypeDef (line 1462) | HAL_StatusTypeDef HAL_TIM_PWM_Stop_IT(TIM_HandleTypeDef *htim, uint32_t ...
  function HAL_StatusTypeDef (line 1526) | HAL_StatusTypeDef HAL_TIM_PWM_Start_DMA(TIM_HandleTypeDef *htim, uint32_...
  function HAL_StatusTypeDef (line 1656) | HAL_StatusTypeDef HAL_TIM_PWM_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t...
  function HAL_StatusTypeDef (line 1746) | HAL_StatusTypeDef HAL_TIM_IC_Init(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 1801) | HAL_StatusTypeDef HAL_TIM_IC_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 1842) | __weak void HAL_TIM_IC_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 1856) | __weak void HAL_TIM_IC_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 1876) | HAL_StatusTypeDef HAL_TIM_IC_Start(TIM_HandleTypeDef *htim, uint32_t Cha...
  function HAL_StatusTypeDef (line 1921) | HAL_StatusTypeDef HAL_TIM_IC_Stop(TIM_HandleTypeDef *htim, uint32_t Chan...
  function HAL_StatusTypeDef (line 1950) | HAL_StatusTypeDef HAL_TIM_IC_Start_IT(TIM_HandleTypeDef *htim, uint32_t ...
  function HAL_StatusTypeDef (line 2023) | HAL_StatusTypeDef HAL_TIM_IC_Stop_IT(TIM_HandleTypeDef *htim, uint32_t C...
  function HAL_StatusTypeDef (line 2083) | HAL_StatusTypeDef HAL_TIM_IC_Start_DMA(TIM_HandleTypeDef *htim, uint32_t...
  function HAL_StatusTypeDef (line 2211) | HAL_StatusTypeDef HAL_TIM_IC_Stop_DMA(TIM_HandleTypeDef *htim, uint32_t ...
  function HAL_StatusTypeDef (line 2304) | HAL_StatusTypeDef HAL_TIM_OnePulse_Init(TIM_HandleTypeDef *htim, uint32_...
  function HAL_StatusTypeDef (line 2368) | HAL_StatusTypeDef HAL_TIM_OnePulse_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 2411) | __weak void HAL_TIM_OnePulse_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 2425) | __weak void HAL_TIM_OnePulse_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 2443) | HAL_StatusTypeDef HAL_TIM_OnePulse_Start(TIM_HandleTypeDef *htim, uint32...
  function HAL_StatusTypeDef (line 2494) | HAL_StatusTypeDef HAL_TIM_OnePulse_Stop(TIM_HandleTypeDef *htim, uint32_...
  function HAL_StatusTypeDef (line 2534) | HAL_StatusTypeDef HAL_TIM_OnePulse_Start_IT(TIM_HandleTypeDef *htim, uin...
  function HAL_StatusTypeDef (line 2591) | HAL_StatusTypeDef HAL_TIM_OnePulse_Stop_IT(TIM_HandleTypeDef *htim, uint...
  function HAL_StatusTypeDef (line 2668) | HAL_StatusTypeDef HAL_TIM_Encoder_Init(TIM_HandleTypeDef *htim, TIM_Enco...
  function HAL_StatusTypeDef (line 2776) | HAL_StatusTypeDef HAL_TIM_Encoder_DeInit(TIM_HandleTypeDef *htim) {
  function __weak (line 2819) | __weak void HAL_TIM_Encoder_MspInit(TIM_HandleTypeDef *htim) {
  function __weak (line 2833) | __weak void HAL_TIM_Encoder_MspDeInit(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 2852) | HAL_StatusTypeDef HAL_TIM_Encoder_Start(TIM_HandleTypeDef *htim, uint32_...
  function HAL_StatusTypeDef (line 2923) | HAL_StatusTypeDef HAL_TIM_Encoder_Stop(TIM_HandleTypeDef *htim, uint32_t...
  function HAL_StatusTypeDef (line 2975) | HAL_StatusTypeDef HAL_TIM_Encoder_Start_IT(TIM_HandleTypeDef *htim, uint...
  function HAL_StatusTypeDef (line 3052) | HAL_StatusTypeDef HAL_TIM_Encoder_Stop_IT(TIM_HandleTypeDef *htim, uint3...
  function HAL_StatusTypeDef (line 3108) | HAL_StatusTypeDef HAL_TIM_Encoder_Start_DMA(TIM_HandleTypeDef *htim, uin...
  function HAL_StatusTypeDef (line 3269) | HAL_StatusTypeDef HAL_TIM_Encoder_Stop_DMA(TIM_HandleTypeDef *htim, uint...
  function HAL_TIM_IRQHandler (line 3337) | void HAL_TIM_IRQHandler(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 3494) | HAL_StatusTypeDef HAL_TIM_OC_ConfigChannel(TIM_HandleTypeDef *htim, TIM_...
  function HAL_StatusTypeDef (line 3562) | HAL_StatusTypeDef HAL_TIM_IC_ConfigChannel(TIM_HandleTypeDef *htim, TIM_...
  function HAL_StatusTypeDef (line 3635) | HAL_StatusTypeDef HAL_TIM_PWM_ConfigChannel(TIM_HandleTypeDef *htim, TIM...
  function HAL_StatusTypeDef (line 3738) | HAL_StatusTypeDef HAL_TIM_OnePulse_ConfigChannel(TIM_HandleTypeDef *htim...
  function HAL_StatusTypeDef (line 3864) | HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStart(TIM_HandleTypeDef *htim, u...
  function HAL_StatusTypeDef (line 3907) | HAL_StatusTypeDef HAL_TIM_DMABurst_MultiWriteStart(TIM_HandleTypeDef *ht...
  function HAL_StatusTypeDef (line 4051) | HAL_StatusTypeDef HAL_TIM_DMABurst_WriteStop(TIM_HandleTypeDef *htim, ui...
  function HAL_StatusTypeDef (line 4137) | HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStart(TIM_HandleTypeDef *htim, ui...
  function HAL_StatusTypeDef (line 4180) | HAL_StatusTypeDef HAL_TIM_DMABurst_MultiReadStart(TIM_HandleTypeDef *hti...
  function HAL_StatusTypeDef (line 4325) | HAL_StatusTypeDef HAL_TIM_DMABurst_ReadStop(TIM_HandleTypeDef *htim, uin...
  function HAL_StatusTypeDef (line 4393) | HAL_StatusTypeDef HAL_TIM_GenerateEvent(TIM_HandleTypeDef *htim, uint32_...
  function HAL_StatusTypeDef (line 4429) | HAL_StatusTypeDef HAL_TIM_ConfigOCrefClear(TIM_HandleTypeDef *htim, TIM_...
  function HAL_StatusTypeDef (line 4526) | HAL_StatusTypeDef HAL_TIM_ConfigClockSource(TIM_HandleTypeDef *htim, TIM...
  function HAL_StatusTypeDef (line 4657) | HAL_StatusTypeDef HAL_TIM_ConfigTI1Input(TIM_HandleTypeDef *htim, uint32...
  function HAL_StatusTypeDef (line 4688) | HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro(TIM_HandleTypeDef *htim, TI...
  function HAL_StatusTypeDef (line 4726) | HAL_StatusTypeDef HAL_TIM_SlaveConfigSynchro_IT(TIM_HandleTypeDef *htim,...
  function HAL_TIM_ReadCapturedValue (line 4766) | uint32_t HAL_TIM_ReadCapturedValue(TIM_HandleTypeDef *htim, uint32_t Cha...
  function __weak (line 4844) | __weak void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4858) | __weak void HAL_TIM_PeriodElapsedHalfCpltCallback(TIM_HandleTypeDef *hti...
  function __weak (line 4872) | __weak void HAL_TIM_OC_DelayElapsedCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4886) | __weak void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4900) | __weak void HAL_TIM_IC_CaptureHalfCpltCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4914) | __weak void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4928) | __weak void HAL_TIM_PWM_PulseFinishedHalfCpltCallback(TIM_HandleTypeDef ...
  function __weak (line 4942) | __weak void HAL_TIM_TriggerCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4956) | __weak void HAL_TIM_TriggerHalfCpltCallback(TIM_HandleTypeDef *htim) {
  function __weak (line 4970) | __weak void HAL_TIM_ErrorCallback(TIM_HandleTypeDef *htim) {
  function HAL_StatusTypeDef (line 5015) | H
Copy disabled (too large) Download .json
Condensed preview — 1038 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (28,284K chars).
[
  {
    "path": ".flake8",
    "chars": 75,
    "preview": "[flake8]\nignore = E203, E266, E501, W503, F403, F401\nmax-line-length = 200\n"
  },
  {
    "path": ".gitattributes",
    "chars": 56,
    "preview": "# Ignore all differences in line endings\r\n*        -crlf"
  },
  {
    "path": ".github/FUNDING.yml",
    "chars": 95,
    "preview": "# These are supported funding model platforms\n\nko_fi: ralim\ncustom: https://paypal.me/RalimTek\n"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/bug_report.md",
    "chars": 828,
    "preview": "---\nname: Bug report\nabout: Create a report to help us improve\ntitle: ''\nlabels: ''\nassignees: Ralim\n\n---\n\n**Describe th"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/everything-else--questions--notes-etc-.md",
    "chars": 278,
    "preview": "---\nname: Everything else (Questions, notes etc)\nabout: For remarking questions or notes\ntitle: ''\nlabels: ''\nassignees:"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/feature_request.md",
    "chars": 643,
    "preview": "---\nname: Feature request\nabout: Suggest an idea for this project\ntitle: ''\nlabels: enhancement\nassignees: Ralim\n\n---\n\n*"
  },
  {
    "path": ".github/dependabot.yml",
    "chars": 270,
    "preview": "version: 2\nupdates:\n  - package-ecosystem: \"github-actions\"\n    directory: \"/\"\n    schedule:\n      # Check for updates t"
  },
  {
    "path": ".github/pull_request_template.md",
    "chars": 528,
    "preview": "\n<!-- Please try and fill out this template where possible, not all fields are required and can be removed. -->\n\n* **Ple"
  },
  {
    "path": ".github/security.md",
    "chars": 624,
    "preview": "# Security Policy\n\n## Supported Versions\n\nUse this section to tell people about which versions of your project are\ncurre"
  },
  {
    "path": ".github/workflows/docs.yml",
    "chars": 1052,
    "preview": "name: Docs\n\n# Controls when the workflow will run\non:\n  # Triggers the workflow on push or pull request\n  push:\n    bran"
  },
  {
    "path": ".github/workflows/push.yml",
    "chars": 7179,
    "preview": "name: CI\n\non:\n  push:\n  pull_request:\n    branches:\n      - master\n      - dev\n      - main\n\njobs:\n  build:\n    runs-on:"
  },
  {
    "path": ".gitignore",
    "chars": 3312,
    "preview": "#### Generic ####\r\n\r\n# Object files\r\n*.o\r\n*.ko\r\n*.obj\r\n*.elf\r\n*.d\r\n*.DS_Store\r\n\r\n# Precompiled Headers\r\n*.gch\r\n*.pch\r\n\r\n"
  },
  {
    "path": ".gitmodules",
    "chars": 119,
    "preview": "[submodule \"source/Core/Drivers/usb-pd\"]\n\tpath = source/Core/Drivers/usb-pd\n\turl = https://github.com/Ralim/usb-pd.git\n"
  },
  {
    "path": "Development Resources/TS100/KiCad/MCU_SubBoard.sch",
    "chars": 8024,
    "preview": "EESchema Schematic File Version 2\nLIBS:power\nLIBS:device\nLIBS:transistors\nLIBS:conn\nLIBS:linear\nLIBS:regul\nLIBS:74xx\nLIB"
  },
  {
    "path": "Development Resources/TS100/KiCad/TS100.pro",
    "chars": 1244,
    "preview": "update=18/05/2017 9:29:06 PM\nversion=1\nlast_client=kicad\n[pcbnew]\nversion=1\nLastNetListRead=\nUseCmpFile=1\nPadDrill=0.600"
  },
  {
    "path": "Development Resources/TS100/KiCad/TS100.sch",
    "chars": 3009,
    "preview": "EESchema Schematic File Version 2\nLIBS:power\nLIBS:device\nLIBS:transistors\nLIBS:conn\nLIBS:linear\nLIBS:regul\nLIBS:74xx\nLIB"
  },
  {
    "path": "Development Resources/TS100/TS100.ioc",
    "chars": 14534,
    "preview": "#MicroXplorer Configuration settings - do not modify\nADC1.Channel-0\\#ChannelRegularConversion=ADC_CHANNEL_7\nADC1.Channel"
  },
  {
    "path": "Development Resources/TS80/TS80-Bootloader.hex",
    "chars": 38956,
    "preview": ":020000040800F2\n:2000000020310020E52E00088D2E00088F2E0008912E0008932E0008952E00080000000071\n:200020000000000000000000000"
  },
  {
    "path": "Development Resources/TS80/TS80.ioc",
    "chars": 14497,
    "preview": "#MicroXplorer Configuration settings - do not modify\nADC1.Channel-31\\#ChannelRegularConversion=ADC_CHANNEL_4\nADC1.Channe"
  },
  {
    "path": "Documentation/Bluetooth.md",
    "chars": 4879,
    "preview": "# Bluetooth Low Energy\n\nThe Pinecilv2 has hardware support for Bluetooth Low Energy (BLE). This protocol allows reading "
  },
  {
    "path": "Documentation/DebugMenu.md",
    "chars": 9619,
    "preview": "# Debugging Menu\r\n\r\nIn this firmware there is extra debugging information in a hidden sub-menu.\r\nThis menu is meant to b"
  },
  {
    "path": "Documentation/DebuggingPD.md",
    "chars": 4936,
    "preview": "# Debugging PD\n\nWhen using many of these soldering irons, the recommended power source is to use a USB-PD power supply.\n"
  },
  {
    "path": "Documentation/Development.md",
    "chars": 6411,
    "preview": "# Development\n\nBuilding this software can be performed two ways: using the STM32CubeIDE or using command line tools.\n\n##"
  },
  {
    "path": "Documentation/Flashing/MHP30.md",
    "chars": 7872,
    "preview": "# Flashing / Upgrading your iron\n\n## Downloading source file\n\nIn the development of this firmware, there are three _type"
  },
  {
    "path": "Documentation/Flashing/Pinecil V1.md",
    "chars": 11169,
    "preview": "# Flashing / Upgrading your iron\n\n## Downloading source file\n\nIn the development of this firmware, there are three _type"
  },
  {
    "path": "Documentation/Flashing/Pinecil V2.md",
    "chars": 4130,
    "preview": "# Flashing / Upgrading your iron\n\n## Downloading source file\n\nIn the development of this firmware, there are three _type"
  },
  {
    "path": "Documentation/Flashing/TS100.md",
    "chars": 7905,
    "preview": "# Flashing / Upgrading your iron\n\n## Downloading source file\n\nIn the development of this firmware, there are three _type"
  },
  {
    "path": "Documentation/Flashing/TS80(P).md",
    "chars": 8394,
    "preview": "# Flashing / Upgrading your iron\n\n## Downloading source file\n\nIn the development of this firmware, there are three _type"
  },
  {
    "path": "Documentation/GettingStarted.md",
    "chars": 8910,
    "preview": "# Getting Started\n\nGetting started with IronOS on your Pinecil/TS80/TS80P/TS100.\nIf your device did not come with IronOS"
  },
  {
    "path": "Documentation/HallSensor.md",
    "chars": 3643,
    "preview": "# Hall Effect Sensor\n\n## Sleep Mode Menu\n\nIn sleep mode, the iron automatically lowers the temperature to 150°C (default"
  },
  {
    "path": "Documentation/Hardware.md",
    "chars": 6608,
    "preview": "## Notes on the various supported hardware\n\nBelow are short summaries / notes around the hardware. This is not an in-dep"
  },
  {
    "path": "Documentation/HardwareIssues.md",
    "chars": 3268,
    "preview": "# Hardware Issues\n\nWhile we would love everything to work perfectly, sometimes that just doesn't happen.\nPlease do not e"
  },
  {
    "path": "Documentation/History.md",
    "chars": 13073,
    "preview": "# Version Changes\n\n## v2.23\n\n\n### High level changes\n\n- Miniware I2C changed to bit-bang for improved compatibility with"
  },
  {
    "path": "Documentation/Logo.md",
    "chars": 8115,
    "preview": "# Startup Logo / Animation\n\nWhen the device starts, you can have it optionally show either a static image or an animatio"
  },
  {
    "path": "Documentation/Menu.md",
    "chars": 5525,
    "preview": "# Menu System\n\nIn this firmware for these soldering irons, all settings are adjustable on the device itself. This means "
  },
  {
    "path": "Documentation/PortingToNewDevice.md",
    "chars": 3992,
    "preview": "# Requesting support for a new device\n\nIronOS is largely designed to run on devices that are using _fairly_ modern micro"
  },
  {
    "path": "Documentation/Power.md",
    "chars": 3920,
    "preview": "# Power & Performance\n\nAll of the irons are [PWM controlled](https://www.digikey.com/en/blog/pulse-width-modulation#) re"
  },
  {
    "path": "Documentation/PowerSources.md",
    "chars": 5241,
    "preview": "# Power sources\n\nSupported by IronOS hardware may use different power sources (chargers/powerbanks/battery packs) with d"
  },
  {
    "path": "Documentation/README.md",
    "chars": 1855,
    "preview": "\n<!-- THIS FILE IS AUTOGENERATED by \"scripts/deploy.sh docs_readme\" based on nav section in scripts/IronOS-mkdocs.yml co"
  },
  {
    "path": "Documentation/Settings.md",
    "chars": 13539,
    "preview": "<!-- This is an automatically generated file. DO NOT EDIT. Edit gen_menu_docs.py instead -->\n\n# IronOS Settings Menu\n\nTh"
  },
  {
    "path": "Documentation/Temperature.md",
    "chars": 7253,
    "preview": "# Tip temperature measurement\n\nThe soldering irons use a modified N-type thermocouple in the tip to measure the tip temp"
  },
  {
    "path": "Documentation/Translation.md",
    "chars": 861,
    "preview": "# Translation\n\nAt the present time the main way of performing translations is to open a PR to this repository.\nAll trans"
  },
  {
    "path": "Documentation/Troubleshooting.md",
    "chars": 7227,
    "preview": "# Troubleshooting\n\nIf your device is not operating as expected; and you are within the manufacturer support window, plea"
  },
  {
    "path": "Documentation/WS2812BModding.md",
    "chars": 1754,
    "preview": "# WS2812B RGB Modding (Pinecil V2)\n\n## What is it?\n\nThe idea of this mod is to bring the RGB feature of the MHP30 to the"
  },
  {
    "path": "Documentation/index.md",
    "chars": 6021,
    "preview": "# IronOS - Flexible Soldering iron control Firmware\n\nThe firmware implements all of the standard features of a 'smart' s"
  },
  {
    "path": "Env.yml",
    "chars": 215,
    "preview": "name: \"ironos\"\r\nservices:\r\n  builder:\r\n    stdin_open: true\r\n    tty: true\r\n    build:\r\n      context: .\r\n      dockerfi"
  },
  {
    "path": "LICENSE",
    "chars": 35147,
    "preview": "                    GNU GENERAL PUBLIC LICENSE\n                       Version 3, 29 June 2007\n\n Copyright (C) 2007 Free "
  },
  {
    "path": "Makefile",
    "chars": 9439,
    "preview": "#!/usr/bin/env make\r\nINFO:=top-level Makefile for IronOS - Soldering Iron Open Source Firmware Project.\r\n\r\n\r\n### global "
  },
  {
    "path": "README.md",
    "chars": 15563,
    "preview": "[![CI Build](https://github.com/Ralim/IronOS/actions/workflows/push.yml/badge.svg)](https://github.com/Ralim/IronOS/acti"
  },
  {
    "path": "Translations/BitmapEditor.html",
    "chars": 14371,
    "preview": "<!DOCTYPE html>\n<html>\n  <head>\n    <script src=\"https://cdn.jsdelivr.net/npm/vue/dist/vue.js\"></script>\n    <script src"
  },
  {
    "path": "Translations/README.md",
    "chars": 608,
    "preview": "### CJK Notes\n\nUnlike Latin and Cyrillic scripts, CJK Unified Ideographs cannot be legibly\ndisplayed using the small fon"
  },
  {
    "path": "Translations/brieflz.py",
    "chars": 5121,
    "preview": "import ctypes\nimport functools\nimport os\nfrom pathlib import Path\n\nHERE = Path(__file__).resolve().parent\n\n\n@functools.l"
  },
  {
    "path": "Translations/brieflz_test.py",
    "chars": 916,
    "preview": "#!/usr/bin/env python3\nimport brieflz\nimport unittest\n\n\nTEST_DATA = (\n    b\"Lorem ipsum dolor sit amet, consectetur adip"
  },
  {
    "path": "Translations/font_tables.py",
    "chars": 74468,
    "preview": "from typing import Dict, Final, Tuple\n\n\ndef get_font_map_ascii_basic() -> Dict[str, bytes]:\n    font = {\n        # U+000"
  },
  {
    "path": "Translations/gen_menu_docs.py",
    "chars": 3079,
    "preview": "#!/usr/bin/env python3\n\nimport json\nimport logging\nimport os\nimport sys\nfrom pathlib import Path\n\n\nlogging.basicConfig(s"
  },
  {
    "path": "Translations/make_translation.py",
    "chars": 52882,
    "preview": "#!/usr/bin/env python3\n\nimport argparse\nimport functools\nimport json\nimport hashlib\nimport logging\nimport os\nimport pick"
  },
  {
    "path": "Translations/make_translation_test.py",
    "chars": 2152,
    "preview": "#!/usr/bin/env python3\nimport json\nimport os\nimport unittest\n\n\nclass TestMakeTranslation(unittest.TestCase):\n    def tes"
  },
  {
    "path": "Translations/migrate.py",
    "chars": 2377,
    "preview": "#!/usr/bin/env python3\n\nimport json\nimport os\nimport sys\n\n# Migrate json files to use \"\\n\" encoding rather than []\n\n\ndef"
  },
  {
    "path": "Translations/objcopy.py",
    "chars": 601,
    "preview": "import os\nimport subprocess\nimport tempfile\n\n\nif \"OBJCOPY\" in os.environ:\n    OBJCOPY = os.environ[\"OBJCOPY\"]\nelse:\n    "
  },
  {
    "path": "Translations/translation_BE.json",
    "chars": 11435,
    "preview": "{\n  \"languageCode\": \"BE\",\n  \"languageLocalName\": \"Беларуская\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"C"
  },
  {
    "path": "Translations/translation_BG.json",
    "chars": 11268,
    "preview": "{\n  \"languageCode\": \"BG\",\n  \"languageLocalName\": \"Български\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Ca"
  },
  {
    "path": "Translations/translation_CS.json",
    "chars": 10819,
    "preview": "{\n  \"languageCode\": \"CS\",\n  \"languageLocalName\": \"Český\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Calibr"
  },
  {
    "path": "Translations/translation_DA.json",
    "chars": 10916,
    "preview": "{\n  \"languageCode\": \"DA\",\n  \"languageLocalName\": \"Dansk\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Calibr"
  },
  {
    "path": "Translations/translation_DE.json",
    "chars": 11021,
    "preview": "{\n  \"languageCode\": \"DE\",\n  \"languageLocalName\": \"Deutsch\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Cali"
  },
  {
    "path": "Translations/translation_EL.json",
    "chars": 11186,
    "preview": "{\n  \"languageCode\": \"EL\",\n  \"languageLocalName\": \"Greek\",\n  \"tempUnitFahrenheit\": true,\n  \"messagesWarn\": {\n    \"Calibra"
  },
  {
    "path": "Translations/translation_EN.json",
    "chars": 10694,
    "preview": "{\n  \"languageCode\": \"EN\",\n  \"languageLocalName\": \"English\",\n  \"tempUnitFahrenheit\": true,\n  \"messagesWarn\": {\n    \"Calib"
  },
  {
    "path": "Translations/translation_ES.json",
    "chars": 11352,
    "preview": "{\n  \"languageCode\": \"ES\",\n  \"languageLocalName\": \"Castellano\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"C"
  },
  {
    "path": "Translations/translation_ET.json",
    "chars": 10909,
    "preview": "{\n  \"languageCode\": \"ET\",\n  \"languageLocalName\": \"Eesti\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Calibr"
  },
  {
    "path": "Translations/translation_FI.json",
    "chars": 11487,
    "preview": "{\n  \"languageCode\": \"FI\",\n  \"languageLocalName\": \"Suomi\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Calibr"
  },
  {
    "path": "Translations/translation_FR.json",
    "chars": 11379,
    "preview": "{\n  \"languageCode\": \"FR\",\n  \"languageLocalName\": \"Français\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Cal"
  },
  {
    "path": "Translations/translation_HR.json",
    "chars": 11412,
    "preview": "{\n  \"languageCode\": \"HR\",\n  \"languageLocalName\": \"Hrvatski\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Cal"
  },
  {
    "path": "Translations/translation_HU.json",
    "chars": 10993,
    "preview": "{\n  \"languageCode\": \"HU\",\n  \"languageLocalName\": \"Magyar\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Calib"
  },
  {
    "path": "Translations/translation_IT.json",
    "chars": 12054,
    "preview": "{\n  \"languageCode\": \"IT\",\n  \"languageLocalName\": \"Italiano\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Cal"
  },
  {
    "path": "Translations/translation_JA_JP.json",
    "chars": 9228,
    "preview": "{\n  \"languageCode\": \"JA_JP\",\n  \"languageLocalName\": \"日本語\",\n  \"tempUnitFahrenheit\": true,\n  \"messagesWarn\": {\n    \"Calibr"
  },
  {
    "path": "Translations/translation_LT.json",
    "chars": 11106,
    "preview": "{\n  \"languageCode\": \"LT\",\n  \"languageLocalName\": \"Lietuvių\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Cal"
  },
  {
    "path": "Translations/translation_NB.json",
    "chars": 10637,
    "preview": "{\n  \"languageCode\": \"NB\",\n  \"languageLocalName\": \"Norsk bokmål\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    "
  },
  {
    "path": "Translations/translation_NL.json",
    "chars": 11146,
    "preview": "{\n  \"languageCode\": \"NL\",\n  \"languageLocalName\": \"Nederlands\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"C"
  },
  {
    "path": "Translations/translation_NL_BE.json",
    "chars": 11019,
    "preview": "{\n  \"languageCode\": \"NL_BE\",\n  \"languageLocalName\": \"Vlaams\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Ca"
  },
  {
    "path": "Translations/translation_PL.json",
    "chars": 11232,
    "preview": "{\n  \"languageCode\": \"PL\",\n  \"languageLocalName\": \"Polski\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Calib"
  },
  {
    "path": "Translations/translation_PT.json",
    "chars": 10836,
    "preview": "{\n  \"languageCode\": \"PT\",\n  \"languageLocalName\": \"Português\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Ca"
  },
  {
    "path": "Translations/translation_RO.json",
    "chars": 11149,
    "preview": "{\n  \"languageCode\": \"RO\",\n  \"languageLocalName\": \"Română\",\n  \"tempUnitFahrenheit\": true,\n  \"messagesWarn\": {\n    \"Calibr"
  },
  {
    "path": "Translations/translation_RU.json",
    "chars": 11369,
    "preview": "{\n  \"languageCode\": \"RU\",\n  \"languageLocalName\": \"Русский\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Cali"
  },
  {
    "path": "Translations/translation_SK.json",
    "chars": 10940,
    "preview": "{\n  \"languageCode\": \"SK\",\n  \"languageLocalName\": \"Slovenčina\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"C"
  },
  {
    "path": "Translations/translation_SL.json",
    "chars": 10621,
    "preview": "{\n  \"languageCode\": \"SL\",\n  \"languageLocalName\": \"Slovenščina\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \""
  },
  {
    "path": "Translations/translation_SR_CYRL.json",
    "chars": 10994,
    "preview": "{\n  \"languageCode\": \"SR_CYRL\",\n  \"languageLocalName\": \"Српски\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \""
  },
  {
    "path": "Translations/translation_SR_LATN.json",
    "chars": 11042,
    "preview": "{\n  \"languageCode\": \"SR_LATN\",\n  \"languageLocalName\": \"Srpski\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \""
  },
  {
    "path": "Translations/translation_SV.json",
    "chars": 10686,
    "preview": "{\n  \"languageCode\": \"SV\",\n  \"languageLocalName\": \"Svenska\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Cali"
  },
  {
    "path": "Translations/translation_TR.json",
    "chars": 10683,
    "preview": "{\n  \"languageCode\": \"TR\",\n  \"languageLocalName\": \"Türkçe\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Calib"
  },
  {
    "path": "Translations/translation_UK.json",
    "chars": 11083,
    "preview": "{\n  \"languageCode\": \"UK\",\n  \"languageLocalName\": \"Українська\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"C"
  },
  {
    "path": "Translations/translation_UZ.json",
    "chars": 11413,
    "preview": "{\n  \"languageCode\": \"UZ\",\n  \"languageLocalName\": \"O'zbek\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"Calib"
  },
  {
    "path": "Translations/translation_VI.json",
    "chars": 10735,
    "preview": "{\n  \"languageCode\": \"VI\",\n  \"languageLocalName\": \"Tieng Viet\",\n  \"tempUnitFahrenheit\": false,\n  \"messagesWarn\": {\n    \"C"
  },
  {
    "path": "Translations/translation_YUE_HK.json",
    "chars": 9134,
    "preview": "{\n  \"languageCode\": \"YUE_HK\",\n  \"languageLocalName\": \"廣東話 (香港)\",\n  \"tempUnitFahrenheit\": true,\n  \"messagesWarn\": {\n    \""
  },
  {
    "path": "Translations/translation_ZH_CN.json",
    "chars": 8545,
    "preview": "{\n  \"languageCode\": \"ZH_CN\",\n  \"languageLocalName\": \"简体中文\",\n  \"tempUnitFahrenheit\": true,\n  \"messagesWarn\": {\n    \"Calib"
  },
  {
    "path": "Translations/translation_ZH_TW.json",
    "chars": 8931,
    "preview": "{\n  \"languageCode\": \"ZH_TW\",\n  \"languageLocalName\": \"正體中文\",\n  \"tempUnitFahrenheit\": true,\n  \"messagesWarn\": {\n    \"Calib"
  },
  {
    "path": "Translations/translations_definitions.json",
    "chars": 21709,
    "preview": "{\n  \"messagesWarn\": [\n    {\n      \"id\": \"CalibrationDone\",\n      \"description\": \"Confirmation message indicating calibra"
  },
  {
    "path": "Translations/wqy-bitmapsong/AUTHORS",
    "chars": 32703,
    "preview": "========================================================== \n\n          Wen Quan Yi Bitmap Song CJK Fonts\n\n              "
  },
  {
    "path": "Translations/wqy-bitmapsong/COPYING",
    "chars": 18007,
    "preview": "\t\t    GNU GENERAL PUBLIC LICENSE\n\t\t       Version 2, June 1991\n\n Copyright (C) 1989, 1991 Free Software Foundation, Inc."
  },
  {
    "path": "Translations/wqy-bitmapsong/README.md",
    "chars": 731,
    "preview": "This directory contains files included from the WenQuanYi Bitmap Song font\nrelease, obtainable on the project's [SourceF"
  },
  {
    "path": "Translations/wqy-bitmapsong/README_original",
    "chars": 5697,
    "preview": "========================================================== \n\n           Wen Quan Yi Bitmap Song CJK Fonts\n\n             "
  },
  {
    "path": "Translations/wqy-bitmapsong/wenquanyi_9pt.bdf",
    "chars": 4350346,
    "preview": "STARTFONT 2.1\nFONT -wenquanyi-wenquanyi bitmap song-medium-r-normal--12-120-75-75-P-119-ISO10646-1\nCOMMENT ============="
  },
  {
    "path": "scripts/IronOS-mkdocs.yml",
    "chars": 1697,
    "preview": "# Project info\nsite_name: IronOS\nsite_url: https://ralim.github.io/IronOS/\nsite_description: \"IronOS Open Source Solderi"
  },
  {
    "path": "scripts/IronOS.Dockerfile",
    "chars": 1593,
    "preview": "# Default Reference Distro for development env & deploy:\r\n# * Alpine Linux, version 3.21 *\r\n\r\nFROM alpine:3.22\r\nLABEL ma"
  },
  {
    "path": "scripts/LICENSE_RELEASE.md",
    "chars": 8028,
    "preview": "This document outlines the license of IronOS and its dependencies.\n\n- IronOS: GPL-3.0-only\n- FreeRTOS Kernel: MIT\n- FUSB"
  },
  {
    "path": "scripts/deploy.sh",
    "chars": 10302,
    "preview": "#!/usr/bin/env bash\n\n# little helper for docker deployment to:\n# - start development environment for IronOS (\"shell\" sub"
  },
  {
    "path": "scripts/flash_ts10X_linux.sh",
    "chars": 3880,
    "preview": "#!/bin/bash\n# TS100 Flasher for Linux by Alex Wigen (https://github.com/awigen)\n# Jan 2021 - Update by Ysard (https://gi"
  },
  {
    "path": "source/.clang-format",
    "chars": 6167,
    "preview": "---\nLanguage: Cpp\n# BasedOnStyle:  LLVM\nAccessModifierOffset: -2\nAlignAfterOpenBracket: Align\nAlignArrayOfStructures: Ri"
  },
  {
    "path": "source/Core/BSP/BSP.h",
    "chars": 3721,
    "preview": "#include \"BSP_Flash.h\"\r\n#include \"BSP_PD.h\"\r\n#include \"BSP_Power.h\"\r\n#include \"BSP_QC.h\"\r\n#include \"Defines.h\"\r\n#include"
  },
  {
    "path": "source/Core/BSP/BSP_Common.c",
    "chars": 17,
    "preview": "#include \"BSP.h\"\n"
  },
  {
    "path": "source/Core/BSP/BSP_Flash.h",
    "chars": 626,
    "preview": "/*\r\n * BSP_Flash.h\r\n *\r\n *  Created on: 29 May 2020\r\n *      Author: Ralim\r\n */\r\n#include \"stdint.h\"\r\n#ifndef BSP_BSP_FL"
  },
  {
    "path": "source/Core/BSP/BSP_PD.h",
    "chars": 439,
    "preview": "/*\r\n * BSP_PD.h\r\n *\r\n *  Created on: 21 Jul 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#ifndef USER_BSP_PD_H_\r\n#define USER_BSP"
  },
  {
    "path": "source/Core/BSP/BSP_Power.h",
    "chars": 613,
    "preview": "#include \"stdint.h\"\n/*\n * BSP_Power.h -- Board Support for Power control\n *\n * These functions are hooks used to allow f"
  },
  {
    "path": "source/Core/BSP/BSP_QC.h",
    "chars": 946,
    "preview": "/*\r\n * BSP_QC.h\r\n *\r\n *  Created on: 29 May 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#ifndef BSP_BSP_QC_H_\r\n#define BSP_BSP_Q"
  },
  {
    "path": "source/Core/BSP/Defines.h",
    "chars": 454,
    "preview": "/*\r\n * Defines.h\r\n *\r\n *  Created on: 29 May 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#ifndef BSP_DEFINES_H_\r\n#define BSP_DEF"
  },
  {
    "path": "source/Core/BSP/MHP30/BSP.cpp",
    "chars": 11981,
    "preview": "// BSP mapping functions\r\n\r\n#include \"BSP.h\"\r\n#include \"BootLogo.h\"\r\n#include \"I2C_Wrapper.hpp\"\r\n#include \"Pins.h\"\r\n#inc"
  },
  {
    "path": "source/Core/BSP/MHP30/FreeRTOSConfig.h",
    "chars": 9090,
    "preview": "/*\r\n FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.\r\n All rights reserved\r\n\r\n VISIT http://www.FreeRTOS.o"
  },
  {
    "path": "source/Core/BSP/MHP30/IRQ.cpp",
    "chars": 1554,
    "preview": "/*\r\n * IRQ.c\r\n *\r\n *  Created on: 30 May 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#include \"IRQ.h\"\r\n#include \"Pins.h\"\r\n#inclu"
  },
  {
    "path": "source/Core/BSP/MHP30/IRQ.h",
    "chars": 461,
    "preview": "/*\r\n * Irqs.h\r\n *\r\n *  Created on: 30 May 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#ifndef BSP_MINIWARE_IRQ_H_\r\n#define BSP_M"
  },
  {
    "path": "source/Core/BSP/MHP30/Pins.h",
    "chars": 2330,
    "preview": "/*\r\n * Pins.h\r\n *\r\n *  Created on: 29 May 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#ifndef BSP_MINIWARE_PINS_H_\r\n#define BSP_"
  },
  {
    "path": "source/Core/BSP/MHP30/Power.cpp",
    "chars": 447,
    "preview": "#include \"BSP.h\"\n#include \"BSP_Power.h\"\n#include \"Pins.h\"\n#include \"QC3.h\"\n#include \"Settings.h\"\n#include \"USBPD.h\"\n#inc"
  },
  {
    "path": "source/Core/BSP/MHP30/QC_GPIO.cpp",
    "chars": 2545,
    "preview": "/*\r\n * QC.c\r\n *\r\n *  Created on: 29 May 2020\r\n *      Author: Ralim\r\n */\r\n#include \"BSP.h\"\r\n#include \"Pins.h\"\r\n#include "
  },
  {
    "path": "source/Core/BSP/MHP30/README.md",
    "chars": 476,
    "preview": "# BSP section for STM32F103 based Miniware products\r\n\r\nThis folder contains the hardware abstractions required for the T"
  },
  {
    "path": "source/Core/BSP/MHP30/Setup.c",
    "chars": 13207,
    "preview": "/*\n * Setup.c\n *\n *  Created on: 29Aug.,2017\n *      Author: Ben V. Brown\n */\n#include \"Setup.h\"\n#include \"Pins.h\"\n#incl"
  },
  {
    "path": "source/Core/BSP/MHP30/Setup.h",
    "chars": 817,
    "preview": "/*\r\n * Setup.h\r\n *\r\n *  Created on: 29Aug.,2017\r\n *      Author: Ben V. Brown\r\n */\r\n\r\n#ifndef SETUP_H_\r\n#define SETUP_H_"
  },
  {
    "path": "source/Core/BSP/MHP30/Software_I2C.h",
    "chars": 1687,
    "preview": "/*\r\n * Software_I2C.h\r\n *\r\n *  Created on: 25 Jul 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#ifndef BSP_MINIWARE_SOFTWARE_I2C_"
  },
  {
    "path": "source/Core/BSP/MHP30/Startup/startup_stm32f103t8ux.S",
    "chars": 9179,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file      startup_stm32.s\r\n "
  },
  {
    "path": "source/Core/BSP/MHP30/ThermoModel.cpp",
    "chars": 842,
    "preview": "/*\r\n * ThermoModel.cpp\r\n *\r\n *  Created on: 1 May 2021\r\n *      Author: Ralim\r\n */\r\n#include \"Setup.h\"\r\n#include \"TipThe"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h",
    "chars": 614924,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f103xb.h\r\n * @aut"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Device/ST/STM32F1xx/Include/stm32f1xx.h",
    "chars": 7081,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx.h\r\n * @autho"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Device/ST/STM32F1xx/Include/system_stm32f1xx.h",
    "chars": 1963,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    system_stm32f10x.h\r\n *"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Include/cmsis_armcc.h",
    "chars": 25073,
    "preview": "/**************************************************************************/ /**\r\n                                      "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Include/cmsis_armclang.h",
    "chars": 55716,
    "preview": "/**************************************************************************/ /**\r\n                                      "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Include/cmsis_compiler.h",
    "chars": 7816,
    "preview": "/**************************************************************************/ /**\r\n                                      "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Include/cmsis_gcc.h",
    "chars": 61696,
    "preview": "/**************************************************************************/ /**\r\n                                      "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Include/cmsis_iccarm.h",
    "chars": 25941,
    "preview": "/**************************************************************************/ /**\r\n                                      "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Include/cmsis_version.h",
    "chars": 2058,
    "preview": "/**************************************************************************/ /**\r\n                                      "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Include/core_cm3.h",
    "chars": 97360,
    "preview": "/**************************************************************************/ /**\r\n                                      "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Include/core_sc000.h",
    "chars": 41589,
    "preview": "/**************************************************************************/ /**\r\n                                      "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Include/core_sc300.h",
    "chars": 96120,
    "preview": "/**************************************************************************/ /**\r\n                                      "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/CMSIS/Include/tz_context.h",
    "chars": 2721,
    "preview": "/******************************************************************************\r\n * @file     tz_context.h\r\n * @brief   "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/Legacy/stm32_hal_legacy.h",
    "chars": 203966,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32_hal_legacy.h\r\n *"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal.h",
    "chars": 11282,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal.h\r\n * @a"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc.h",
    "chars": 48718,
    "preview": "/**\r\n******************************************************************************\r\n* @file    stm32f1xx_hal_adc.h\r\n* @"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_adc_ex.h",
    "chars": 42228,
    "preview": "/**\r\n******************************************************************************\r\n* @file    stm32f1xx_hal_adc_ex.h\r\n"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_cortex.h",
    "chars": 14767,
    "preview": "/**\r\n******************************************************************************\r\n* @file    stm32f1xx_hal_cortex.h\r\n"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_def.h",
    "chars": 7137,
    "preview": "/**\r\n******************************************************************************\r\n* @file    stm32f1xx_hal_def.h\r\n* @"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma.h",
    "chars": 15815,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_dma.h\r\n "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_dma_ex.h",
    "chars": 13806,
    "preview": "/**\r\n******************************************************************************\r\n* @file    stm32f1xx_hal_dma_ex.h\r\n"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_exti.h",
    "chars": 10407,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_exti.h\r\n"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash.h",
    "chars": 8644,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_flash.h\r"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_flash_ex.h",
    "chars": 35053,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_flash_ex"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio.h",
    "chars": 11099,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_gpio.h\r\n"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_gpio_ex.h",
    "chars": 34408,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_gpio_ex."
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_iwdg.h",
    "chars": 6422,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_iwdg.h\r\n"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_pwr.h",
    "chars": 11589,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_pwr.h\r\n "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc.h",
    "chars": 61852,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_rcc.h\r\n "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_rcc_ex.h",
    "chars": 94234,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_rcc_ex.h"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim.h",
    "chars": 110868,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_tim.h\r\n "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Inc/stm32f1xx_hal_tim_ex.h",
    "chars": 9482,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_tim_ex.h"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal.c",
    "chars": 20461,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal.c\r\n  *"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc.c",
    "chars": 88850,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_adc.c\r"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_adc_ex.c",
    "chars": 49532,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_adc_ex"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_cortex.c",
    "chars": 18797,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_cortex"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_dma.c",
    "chars": 27754,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_dma.c\r"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_exti.c",
    "chars": 15517,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_exti.c"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c",
    "chars": 29396,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_flash."
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash_ex.c",
    "chars": 36248,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_flash_"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio.c",
    "chars": 21163,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_gpio.c"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_gpio_ex.c",
    "chars": 4206,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_gpio_e"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_iwdg.c",
    "chars": 9721,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_iwdg.c"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_pwr.c",
    "chars": 21043,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_pwr.c\r\n "
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc.c",
    "chars": 49081,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_rcc.c\r"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_rcc_ex.c",
    "chars": 29952,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f1xx_hal_rcc_ex.c"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim.c",
    "chars": 238376,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_tim.c\r"
  },
  {
    "path": "source/Core/BSP/MHP30/Vendor/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_tim_ex.c",
    "chars": 77604,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file    stm32f1xx_hal_tim_ex"
  },
  {
    "path": "source/Core/BSP/MHP30/configuration.h",
    "chars": 6953,
    "preview": "#ifndef CONFIGURATION_H_\n#define CONFIGURATION_H_\n#include <stdint.h>\n/**\n * Configuration.h\n * Define here your default"
  },
  {
    "path": "source/Core/BSP/MHP30/flash.c",
    "chars": 1233,
    "preview": "/*\r\n * flash.c\r\n *\r\n *  Created on: 29 May 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#include \"BSP.h\"\r\n#include \"BSP_Flash.h\"\r"
  },
  {
    "path": "source/Core/BSP/MHP30/fusb_user.cpp",
    "chars": 867,
    "preview": "#include \"configuration.h\"\n#ifdef POW_PD\n#include \"BSP.h\"\n#include \"I2CBB1.hpp\"\n#include \"Pins.h\"\n#include \"Setup.h\"\n#in"
  },
  {
    "path": "source/Core/BSP/MHP30/port.c",
    "chars": 28614,
    "preview": "/*\r\n * FreeRTOS Kernel V10.3.1\r\n * Copyright (C) 2020 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r\n *\r\n * "
  },
  {
    "path": "source/Core/BSP/MHP30/portmacro.h",
    "chars": 9056,
    "preview": "/*\r\n * FreeRTOS Kernel V10.3.1\r\n * Copyright (C) 2020 Amazon.com, Inc. or its affiliates.  All Rights Reserved.\r\n *\r\n * "
  },
  {
    "path": "source/Core/BSP/MHP30/postRTOS.cpp",
    "chars": 286,
    "preview": "#include \"BSP.h\"\n#include \"FreeRTOS.h\"\n#include \"I2C_Wrapper.hpp\"\n#include \"QC3.h\"\n#include \"Settings.h\"\n#include \"cmsis"
  },
  {
    "path": "source/Core/BSP/MHP30/preRTOS.cpp",
    "chars": 439,
    "preview": "/*\r\n * preRTOS.c\r\n *\r\n *  Created on: 29 May 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#include \"BSP.h\"\r\n#include \"I2CBB1.hpp\""
  },
  {
    "path": "source/Core/BSP/MHP30/stm32f103.ld",
    "chars": 3887,
    "preview": "\r\n\r\n/* Entry Point */\r\nENTRY(Reset_Handler)\r\n\r\n/* Highest address of the user mode stack */\r\n_estack = 0x20005000;    /*"
  },
  {
    "path": "source/Core/BSP/MHP30/stm32f1xx_hal_msp.c",
    "chars": 3026,
    "preview": "#include \"Pins.h\"\r\n#include \"Setup.h\"\r\n#include \"stm32f1xx_hal.h\"\r\n#include \"string.h\"\r\n/**\r\n * Initializes the Global M"
  },
  {
    "path": "source/Core/BSP/MHP30/stm32f1xx_hal_timebase_TIM.c",
    "chars": 3997,
    "preview": "/* USER CODE BEGIN Header */\r\n/**\r\n ******************************************************************************\r\n * @"
  },
  {
    "path": "source/Core/BSP/MHP30/stm32f1xx_it.c",
    "chars": 1897,
    "preview": "// This is the stock standard STM interrupt file full of handlers\r\n#include \"stm32f1xx_it.h\"\r\n#include \"Pins.h\"\r\n#includ"
  },
  {
    "path": "source/Core/BSP/MHP30/system_stm32f1xx.c",
    "chars": 10890,
    "preview": "// This file was automatically generated by the STM Cube software\r\n// And as such, is BSD licneced from STM\r\n#include \"s"
  },
  {
    "path": "source/Core/BSP/Miniware/BSP.cpp",
    "chars": 13537,
    "preview": "// BSP mapping functions\r\n\r\n#include \"BSP.h\"\r\n#include \"BootLogo.h\"\r\n#include \"I2C_Wrapper.hpp\"\r\n#include \"Pins.h\"\r\n#inc"
  },
  {
    "path": "source/Core/BSP/Miniware/FreeRTOSConfig.h",
    "chars": 9078,
    "preview": "/*\r\n FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.\r\n All rights reserved\r\n\r\n VISIT http://www.FreeRTOS.o"
  },
  {
    "path": "source/Core/BSP/Miniware/IRQ.cpp",
    "chars": 1413,
    "preview": "/*\r\n * IRQ.c\r\n *\r\n *  Created on: 30 May 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#include \"IRQ.h\"\r\n#include \"Pins.h\"\r\n#inclu"
  },
  {
    "path": "source/Core/BSP/Miniware/IRQ.h",
    "chars": 471,
    "preview": "/*\r\n * Irqs.h\r\n *\r\n *  Created on: 30 May 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#ifndef BSP_MINIWARE_IRQ_H_\r\n#define BSP_M"
  },
  {
    "path": "source/Core/BSP/Miniware/Pins.h",
    "chars": 5532,
    "preview": "/*\r\n * Pins.h\r\n *\r\n *  Created on: 29 May 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#ifndef BSP_MINIWARE_PINS_H_\r\n#define BSP_"
  },
  {
    "path": "source/Core/BSP/Miniware/Power.cpp",
    "chars": 744,
    "preview": "#include \"BSP.h\"\n#include \"BSP_Power.h\"\n#include \"Pins.h\"\n#include \"QC3.h\"\n#include \"Settings.h\"\n#include \"USBPD.h\"\n#inc"
  },
  {
    "path": "source/Core/BSP/Miniware/QC_GPIO.cpp",
    "chars": 2583,
    "preview": "/*\r\n * QC.c\r\n *\r\n *  Created on: 29 May 2020\r\n *      Author: Ralim\r\n */\r\n#include \"BSP.h\"\r\n#include \"Pins.h\"\r\n#include "
  },
  {
    "path": "source/Core/BSP/Miniware/README.md",
    "chars": 476,
    "preview": "# BSP section for STM32F103 based Miniware products\r\n\r\nThis folder contains the hardware abstractions required for the T"
  },
  {
    "path": "source/Core/BSP/Miniware/Setup.cpp",
    "chars": 18830,
    "preview": "/*\n * Setup.c\n *\n *  Created on: 29Aug.,2017\n *      Author: Ben V. Brown\n */\n#include \"Setup.h\"\n#include \"BSP.h\"\n#inclu"
  },
  {
    "path": "source/Core/BSP/Miniware/Setup.h",
    "chars": 860,
    "preview": "/*\r\n * Setup.h\r\n *\r\n *  Created on: 29Aug.,2017\r\n *      Author: Ben V. Brown\r\n */\r\n\r\n#ifndef SETUP_H_\r\n#define SETUP_H_"
  },
  {
    "path": "source/Core/BSP/Miniware/Software_I2C.h",
    "chars": 1687,
    "preview": "/*\r\n * Software_I2C.h\r\n *\r\n *  Created on: 25 Jul 2020\r\n *      Author: Ralim\r\n */\r\n\r\n#ifndef BSP_MINIWARE_SOFTWARE_I2C_"
  },
  {
    "path": "source/Core/BSP/Miniware/Startup/startup_stm32f103t8ux.S",
    "chars": 9179,
    "preview": "/**\r\n  ******************************************************************************\r\n  * @file      startup_stm32.s\r\n "
  },
  {
    "path": "source/Core/BSP/Miniware/ThermoModel.cpp",
    "chars": 2610,
    "preview": "/*\r\n * ThermoModel.cpp\r\n *\r\n *  Created on: 1 May 2021\r\n *      Author: Ralim\r\n */\r\n#include \"TipThermoModel.h\"\r\n#includ"
  },
  {
    "path": "source/Core/BSP/Miniware/Vendor/CMSIS/Device/ST/STM32F1xx/Include/stm32f103xb.h",
    "chars": 637084,
    "preview": "/**\r\n ******************************************************************************\r\n * @file    stm32f103xb.h\r\n * @aut"
  }
]

// ... and 838 more files (download for full content)

About this extraction

This page contains the full source code of the Ralim/IronOS GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 1038 files (25.3 MB), approximately 6.7M tokens, and a symbol index with 10869 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!