Full Code of ShareCat/STM32CommandLine for AI

master 1eb0f008400e cached
423 files
3.5 MB
928.0k tokens
1774 symbols
1 requests
Download .txt
Showing preview only (3,709K chars total). Download the full file or copy to clipboard to get everything.
Repository: ShareCat/STM32CommandLine
Branch: master
Commit: 1eb0f008400e
Files: 423
Total size: 3.5 MB

Directory structure:
gitextract_59_d45_c/

├── .gitattributes
├── LICENSE
├── Libraries/
│   ├── CMSIS/
│   │   ├── core_cm3.c
│   │   ├── core_cm3.h
│   │   ├── startup/
│   │   │   ├── startup_stm32f10x_cl.s
│   │   │   ├── startup_stm32f10x_hd.s
│   │   │   ├── startup_stm32f10x_hd_vl.s
│   │   │   ├── startup_stm32f10x_ld.s
│   │   │   ├── startup_stm32f10x_ld_vl.s
│   │   │   ├── startup_stm32f10x_md.s
│   │   │   ├── startup_stm32f10x_md_vl.s
│   │   │   └── startup_stm32f10x_xl.s
│   │   ├── stm32f10x.h
│   │   ├── system_stm32f10x.c
│   │   └── system_stm32f10x.h
│   └── FWlib/
│       ├── inc/
│       │   ├── misc.h
│       │   ├── stm32f10x_adc.h
│       │   ├── stm32f10x_bkp.h
│       │   ├── stm32f10x_can.h
│       │   ├── stm32f10x_cec.h
│       │   ├── stm32f10x_crc.h
│       │   ├── stm32f10x_dac.h
│       │   ├── stm32f10x_dbgmcu.h
│       │   ├── stm32f10x_dma.h
│       │   ├── stm32f10x_exti.h
│       │   ├── stm32f10x_flash.h
│       │   ├── stm32f10x_fsmc.h
│       │   ├── stm32f10x_gpio.h
│       │   ├── stm32f10x_i2c.h
│       │   ├── stm32f10x_iwdg.h
│       │   ├── stm32f10x_pwr.h
│       │   ├── stm32f10x_rcc.h
│       │   ├── stm32f10x_rtc.h
│       │   ├── stm32f10x_sdio.h
│       │   ├── stm32f10x_spi.h
│       │   ├── stm32f10x_tim.h
│       │   ├── stm32f10x_usart.h
│       │   └── stm32f10x_wwdg.h
│       └── src/
│           ├── misc.c
│           ├── stm32f10x_adc.c
│           ├── stm32f10x_bkp.c
│           ├── stm32f10x_can.c
│           ├── stm32f10x_cec.c
│           ├── stm32f10x_crc.c
│           ├── stm32f10x_dac.c
│           ├── stm32f10x_dbgmcu.c
│           ├── stm32f10x_dma.c
│           ├── stm32f10x_exti.c
│           ├── stm32f10x_flash.c
│           ├── stm32f10x_fsmc.c
│           ├── stm32f10x_gpio.c
│           ├── stm32f10x_i2c.c
│           ├── stm32f10x_iwdg.c
│           ├── stm32f10x_pwr.c
│           ├── stm32f10x_rcc.c
│           ├── stm32f10x_rtc.c
│           ├── stm32f10x_sdio.c
│           ├── stm32f10x_spi.c
│           ├── stm32f10x_tim.c
│           ├── stm32f10x_usart.c
│           └── stm32f10x_wwdg.c
├── Project/
│   └── RVMDK/
│       ├── DebugConfig/
│       │   ├── STM32F103_CLI_STM32F103C8.dbgconf
│       │   └── USART_STM32F103ZE.dbgconf
│       ├── JLinkSettings.ini
│       ├── Listing/
│       │   └── startup_stm32f10x_md.lst
│       ├── Output/
│       │   ├── STM32F103_CLI.axf
│       │   ├── STM32F103_CLI.build_log.htm
│       │   ├── STM32F103_CLI.hex
│       │   ├── STM32F103_CLI.htm
│       │   ├── STM32F103_CLI.lnp
│       │   ├── STM32F103_CLI.sct
│       │   ├── STM32F103_CLI_STM32F103_CLI.dep
│       │   ├── STM32F103_CLI_sct.Bak
│       │   ├── app_led.crf
│       │   ├── app_led.d
│       │   ├── app_led.o
│       │   ├── bsp_led.crf
│       │   ├── bsp_led.d
│       │   ├── bsp_led.o
│       │   ├── bsp_usart.crf
│       │   ├── bsp_usart.d
│       │   ├── bsp_usart.o
│       │   ├── core_cm3.crf
│       │   ├── core_cm3.d
│       │   ├── core_cm3.o
│       │   ├── main.crf
│       │   ├── main.d
│       │   ├── main.o
│       │   ├── misc.crf
│       │   ├── misc.d
│       │   ├── misc.o
│       │   ├── startup_stm32f10x_md.d
│       │   ├── startup_stm32f10x_md.o
│       │   ├── stm32f10x_adc.crf
│       │   ├── stm32f10x_adc.d
│       │   ├── stm32f10x_adc.o
│       │   ├── stm32f10x_bkp.crf
│       │   ├── stm32f10x_bkp.d
│       │   ├── stm32f10x_bkp.o
│       │   ├── stm32f10x_can.crf
│       │   ├── stm32f10x_can.d
│       │   ├── stm32f10x_can.o
│       │   ├── stm32f10x_cec.crf
│       │   ├── stm32f10x_cec.d
│       │   ├── stm32f10x_cec.o
│       │   ├── stm32f10x_crc.crf
│       │   ├── stm32f10x_crc.d
│       │   ├── stm32f10x_crc.o
│       │   ├── stm32f10x_dac.crf
│       │   ├── stm32f10x_dac.d
│       │   ├── stm32f10x_dac.o
│       │   ├── stm32f10x_dbgmcu.crf
│       │   ├── stm32f10x_dbgmcu.d
│       │   ├── stm32f10x_dbgmcu.o
│       │   ├── stm32f10x_dma.crf
│       │   ├── stm32f10x_dma.d
│       │   ├── stm32f10x_dma.o
│       │   ├── stm32f10x_exti.crf
│       │   ├── stm32f10x_exti.d
│       │   ├── stm32f10x_exti.o
│       │   ├── stm32f10x_flash.crf
│       │   ├── stm32f10x_flash.d
│       │   ├── stm32f10x_flash.o
│       │   ├── stm32f10x_fsmc.crf
│       │   ├── stm32f10x_fsmc.d
│       │   ├── stm32f10x_fsmc.o
│       │   ├── stm32f10x_gpio.crf
│       │   ├── stm32f10x_gpio.d
│       │   ├── stm32f10x_gpio.o
│       │   ├── stm32f10x_i2c.crf
│       │   ├── stm32f10x_i2c.d
│       │   ├── stm32f10x_i2c.o
│       │   ├── stm32f10x_it.crf
│       │   ├── stm32f10x_it.d
│       │   ├── stm32f10x_it.o
│       │   ├── stm32f10x_iwdg.crf
│       │   ├── stm32f10x_iwdg.d
│       │   ├── stm32f10x_iwdg.o
│       │   ├── stm32f10x_pwr.crf
│       │   ├── stm32f10x_pwr.d
│       │   ├── stm32f10x_pwr.o
│       │   ├── stm32f10x_rcc.crf
│       │   ├── stm32f10x_rcc.d
│       │   ├── stm32f10x_rcc.o
│       │   ├── stm32f10x_rtc.crf
│       │   ├── stm32f10x_rtc.d
│       │   ├── stm32f10x_rtc.o
│       │   ├── stm32f10x_sdio.crf
│       │   ├── stm32f10x_sdio.d
│       │   ├── stm32f10x_sdio.o
│       │   ├── stm32f10x_spi.crf
│       │   ├── stm32f10x_spi.d
│       │   ├── stm32f10x_spi.o
│       │   ├── stm32f10x_tim.crf
│       │   ├── stm32f10x_tim.d
│       │   ├── stm32f10x_tim.o
│       │   ├── stm32f10x_usart.crf
│       │   ├── stm32f10x_usart.d
│       │   ├── stm32f10x_usart.o
│       │   ├── stm32f10x_wwdg.crf
│       │   ├── stm32f10x_wwdg.d
│       │   ├── stm32f10x_wwdg.o
│       │   ├── sys_command_line.crf
│       │   ├── sys_command_line.d
│       │   ├── sys_command_line.o
│       │   ├── sys_queue.crf
│       │   ├── sys_queue.d
│       │   ├── sys_queue.o
│       │   ├── system_stm32f10x.crf
│       │   ├── system_stm32f10x.d
│       │   └── system_stm32f10x.o
│       ├── STM32F103_CLI.uvguix.Administrator
│       ├── STM32F103_CLI.uvguix.yf22
│       ├── STM32F103_CLI.uvoptx
│       └── STM32F103_CLI.uvprojx
├── README.md
├── Tool/
│   ├── README.md
│   ├── TrueSTUDIO_elf2bin.bat
│   ├── axf_to_bin.bat
│   └── hex_to_bin.bat
├── User/
│   ├── APP/
│   │   ├── _K&R_format.bat
│   │   ├── app_led.c
│   │   └── app_led.h
│   ├── BSP/
│   │   ├── _K&R_format.bat
│   │   ├── bsp_led.c
│   │   ├── bsp_led.h
│   │   ├── bsp_usart.c
│   │   └── bsp_usart.h
│   ├── COMPONENT/
│   │   ├── AES/
│   │   │   ├── README.md
│   │   │   ├── aes.c
│   │   │   └── aes.h
│   │   ├── AT/
│   │   │   ├── README.md
│   │   │   ├── at.c
│   │   │   └── at.h
│   │   ├── BASE64/
│   │   │   ├── README.md
│   │   │   ├── base64.c
│   │   │   └── base64.h
│   │   ├── BUTTON/
│   │   │   ├── README.md
│   │   │   ├── button.c
│   │   │   └── button.h
│   │   ├── MD5/
│   │   │   ├── README.md
│   │   │   ├── md5.c
│   │   │   └── md5.h
│   │   ├── RSA/
│   │   │   ├── README.md
│   │   │   ├── Rsa.c
│   │   │   └── Rsa.h
│   │   ├── SECURE_BOOT/
│   │   │   ├── README.md
│   │   │   ├── secure_boot.c
│   │   │   └── secure_boot.h
│   │   ├── SHA1/
│   │   │   ├── README.md
│   │   │   ├── sha1.c
│   │   │   └── sha1.h
│   │   ├── SHA256/
│   │   │   ├── README.md
│   │   │   ├── sha256.c
│   │   │   └── sha256.h
│   │   ├── SOFTWEAR_UART/
│   │   │   ├── README.md
│   │   │   ├── s_uart.c
│   │   │   └── s_uart.h
│   │   ├── STDIO/
│   │   │   ├── README.md
│   │   │   └── printf.c
│   │   ├── TEA/
│   │   │   ├── README.md
│   │   │   ├── tea.c
│   │   │   └── tea.h
│   │   ├── TIMER/
│   │   │   ├── README.md
│   │   │   ├── timer.c
│   │   │   └── timer.h
│   │   ├── UTIL/
│   │   │   ├── README.md
│   │   │   ├── util.c
│   │   │   └── util.h
│   │   ├── assert/
│   │   │   ├── HAPAssert.c
│   │   │   ├── HAPAssert.h
│   │   │   └── README.md
│   │   ├── base64_2/
│   │   │   ├── base64.c
│   │   │   ├── base64.h
│   │   │   └── main.c
│   │   ├── cJSON/
│   │   │   ├── cJSON/
│   │   │   │   ├── .github/
│   │   │   │   │   └── CONTRIBUTING.md
│   │   │   │   ├── .gitignore
│   │   │   │   ├── .travis.yml
│   │   │   │   ├── CHANGELOG.md
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CONTRIBUTORS.md
│   │   │   │   ├── LICENSE
│   │   │   │   ├── Makefile
│   │   │   │   ├── README.md
│   │   │   │   ├── appveyor.yml
│   │   │   │   ├── cJSON.c
│   │   │   │   ├── cJSON.h
│   │   │   │   ├── cJSON_Utils.c
│   │   │   │   ├── cJSON_Utils.h
│   │   │   │   ├── fuzzing/
│   │   │   │   │   ├── .gitignore
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── afl-prepare-linux.sh
│   │   │   │   │   ├── afl.c
│   │   │   │   │   ├── afl.sh
│   │   │   │   │   ├── inputs/
│   │   │   │   │   │   ├── test1
│   │   │   │   │   │   ├── test10
│   │   │   │   │   │   ├── test11
│   │   │   │   │   │   ├── test2
│   │   │   │   │   │   ├── test3
│   │   │   │   │   │   ├── test3.bu
│   │   │   │   │   │   ├── test3.uf
│   │   │   │   │   │   ├── test3.uu
│   │   │   │   │   │   ├── test4
│   │   │   │   │   │   ├── test5
│   │   │   │   │   │   ├── test6
│   │   │   │   │   │   ├── test7
│   │   │   │   │   │   ├── test8
│   │   │   │   │   │   └── test9
│   │   │   │   │   └── json.dict
│   │   │   │   ├── library_config/
│   │   │   │   │   ├── cJSONConfig.cmake.in
│   │   │   │   │   ├── cJSONConfigVersion.cmake.in
│   │   │   │   │   ├── libcjson.pc.in
│   │   │   │   │   └── libcjson_utils.pc.in
│   │   │   │   ├── test.c
│   │   │   │   ├── tests/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── cjson_add.c
│   │   │   │   │   ├── common.h
│   │   │   │   │   ├── compare_tests.c
│   │   │   │   │   ├── inputs/
│   │   │   │   │   │   ├── test1
│   │   │   │   │   │   ├── test1.expected
│   │   │   │   │   │   ├── test10
│   │   │   │   │   │   ├── test10.expected
│   │   │   │   │   │   ├── test11
│   │   │   │   │   │   ├── test11.expected
│   │   │   │   │   │   ├── test2
│   │   │   │   │   │   ├── test2.expected
│   │   │   │   │   │   ├── test3
│   │   │   │   │   │   ├── test3.expected
│   │   │   │   │   │   ├── test4
│   │   │   │   │   │   ├── test4.expected
│   │   │   │   │   │   ├── test5
│   │   │   │   │   │   ├── test5.expected
│   │   │   │   │   │   ├── test6
│   │   │   │   │   │   ├── test7
│   │   │   │   │   │   ├── test7.expected
│   │   │   │   │   │   ├── test8
│   │   │   │   │   │   ├── test8.expected
│   │   │   │   │   │   ├── test9
│   │   │   │   │   │   └── test9.expected
│   │   │   │   │   ├── json-patch-tests/
│   │   │   │   │   │   ├── .editorconfig
│   │   │   │   │   │   ├── .gitignore
│   │   │   │   │   │   ├── .npmignore
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── cjson-utils-tests.json
│   │   │   │   │   │   ├── package.json
│   │   │   │   │   │   ├── spec_tests.json
│   │   │   │   │   │   └── tests.json
│   │   │   │   │   ├── json_patch_tests.c
│   │   │   │   │   ├── misc_tests.c
│   │   │   │   │   ├── misc_utils_tests.c
│   │   │   │   │   ├── old_utils_tests.c
│   │   │   │   │   ├── parse_array.c
│   │   │   │   │   ├── parse_examples.c
│   │   │   │   │   ├── parse_hex4.c
│   │   │   │   │   ├── parse_number.c
│   │   │   │   │   ├── parse_object.c
│   │   │   │   │   ├── parse_string.c
│   │   │   │   │   ├── parse_value.c
│   │   │   │   │   ├── parse_with_opts.c
│   │   │   │   │   ├── print_array.c
│   │   │   │   │   ├── print_number.c
│   │   │   │   │   ├── print_object.c
│   │   │   │   │   ├── print_string.c
│   │   │   │   │   ├── print_value.c
│   │   │   │   │   ├── readme_examples.c
│   │   │   │   │   └── unity/
│   │   │   │   │       ├── .gitattributes
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── .travis.yml
│   │   │   │   │       ├── README.md
│   │   │   │   │       ├── auto/
│   │   │   │   │       │   ├── colour_prompt.rb
│   │   │   │   │       │   ├── colour_reporter.rb
│   │   │   │   │       │   ├── generate_config.yml
│   │   │   │   │       │   ├── generate_module.rb
│   │   │   │   │       │   ├── generate_test_runner.rb
│   │   │   │   │       │   ├── parse_output.rb
│   │   │   │   │       │   ├── stylize_as_junit.rb
│   │   │   │   │       │   ├── test_file_filter.rb
│   │   │   │   │       │   ├── type_sanitizer.rb
│   │   │   │   │       │   ├── unity_test_summary.py
│   │   │   │   │       │   ├── unity_test_summary.rb
│   │   │   │   │       │   └── unity_to_junit.py
│   │   │   │   │       ├── docs/
│   │   │   │   │       │   ├── ThrowTheSwitchCodingStandard.md
│   │   │   │   │       │   ├── UnityAssertionsReference.md
│   │   │   │   │       │   ├── UnityConfigurationGuide.md
│   │   │   │   │       │   ├── UnityGettingStartedGuide.md
│   │   │   │   │       │   ├── UnityHelperScriptsGuide.md
│   │   │   │   │       │   └── license.txt
│   │   │   │   │       ├── examples/
│   │   │   │   │       │   ├── example_1/
│   │   │   │   │       │   │   ├── makefile
│   │   │   │   │       │   │   ├── readme.txt
│   │   │   │   │       │   │   └── src/
│   │   │   │   │       │   │       ├── ProductionCode.c
│   │   │   │   │       │   │       ├── ProductionCode.h
│   │   │   │   │       │   │       ├── ProductionCode2.c
│   │   │   │   │       │   │       └── ProductionCode2.h
│   │   │   │   │       │   ├── example_2/
│   │   │   │   │       │   │   ├── makefile
│   │   │   │   │       │   │   ├── readme.txt
│   │   │   │   │       │   │   └── src/
│   │   │   │   │       │   │       ├── ProductionCode.c
│   │   │   │   │       │   │       ├── ProductionCode.h
│   │   │   │   │       │   │       ├── ProductionCode2.c
│   │   │   │   │       │   │       └── ProductionCode2.h
│   │   │   │   │       │   ├── example_3/
│   │   │   │   │       │   │   ├── helper/
│   │   │   │   │       │   │   │   ├── UnityHelper.c
│   │   │   │   │       │   │   │   └── UnityHelper.h
│   │   │   │   │       │   │   ├── rakefile.rb
│   │   │   │   │       │   │   ├── rakefile_helper.rb
│   │   │   │   │       │   │   ├── readme.txt
│   │   │   │   │       │   │   ├── src/
│   │   │   │   │       │   │   │   ├── ProductionCode.c
│   │   │   │   │       │   │   │   ├── ProductionCode.h
│   │   │   │   │       │   │   │   ├── ProductionCode2.c
│   │   │   │   │       │   │   │   └── ProductionCode2.h
│   │   │   │   │       │   │   └── target_gcc_32.yml
│   │   │   │   │       │   └── unity_config.h
│   │   │   │   │       ├── extras/
│   │   │   │   │       │   ├── eclipse/
│   │   │   │   │       │   │   └── error_parsers.txt
│   │   │   │   │       │   └── fixture/
│   │   │   │   │       │       ├── rakefile.rb
│   │   │   │   │       │       ├── rakefile_helper.rb
│   │   │   │   │       │       ├── readme.txt
│   │   │   │   │       │       └── src/
│   │   │   │   │       │           ├── unity_fixture.c
│   │   │   │   │       │           ├── unity_fixture.h
│   │   │   │   │       │           ├── unity_fixture_internals.h
│   │   │   │   │       │           └── unity_fixture_malloc_overrides.h
│   │   │   │   │       ├── release/
│   │   │   │   │       │   ├── build.info
│   │   │   │   │       │   └── version.info
│   │   │   │   │       └── src/
│   │   │   │   │           ├── unity.c
│   │   │   │   │           ├── unity.h
│   │   │   │   │           └── unity_internals.h
│   │   │   │   └── valgrind.supp
│   │   │   └── component.mk
│   │   ├── crc/
│   │   │   ├── README.md
│   │   │   ├── crc.c
│   │   │   └── crc.h
│   │   ├── debug/
│   │   │   ├── debug.h
│   │   │   └── debug2.h
│   │   ├── http-parser/
│   │   │   ├── component.mk
│   │   │   └── http-parser/
│   │   │       ├── .gitignore
│   │   │       ├── .mailmap
│   │   │       ├── .travis.yml
│   │   │       ├── AUTHORS
│   │   │       ├── LICENSE-MIT
│   │   │       ├── Makefile
│   │   │       ├── README.md
│   │   │       ├── bench.c
│   │   │       ├── contrib/
│   │   │       │   ├── parsertrace.c
│   │   │       │   └── url_parser.c
│   │   │       ├── http_parser.c
│   │   │       ├── http_parser.gyp
│   │   │       ├── http_parser.h
│   │   │       └── test.c
│   │   ├── json11/
│   │   │   ├── json11.cpp
│   │   │   └── json11.hpp
│   │   ├── msg_queue/
│   │   │   ├── msg_queue.c
│   │   │   └── msg_queue.h
│   │   └── qrcode/
│   │       ├── QrCode.cc
│   │       └── QrCode.hpp
│   ├── SYS/
│   │   ├── _K&R_format.bat
│   │   ├── sys_command_line.c
│   │   ├── sys_command_line.h
│   │   ├── sys_queue.c
│   │   └── sys_queue.h
│   ├── global.h
│   ├── main.c
│   ├── project_conf.h
│   ├── stm32f10x_conf.h
│   ├── stm32f10x_it.c
│   └── stm32f10x_it.h
└── keilkill.bat

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

================================================
FILE: .gitattributes
================================================
* text=auto

*.S text
*.asm text
*.c text
*.cc text
*.cpp text
*.cxx text
*.h text
*.htm text
*.html text
*.in text
*.ld text
*.m4 text
*.mak text
*.mk text
*.py text
*.rb text
*.s text
*.sct text
*.sh text
*.txt text
*.xml text
Makefile text
AUTHORS text
COPYING text

*.LZO -text
*.Opt -text
*.Uv2 -text
*.ewp -text
*.eww -text
*.vcproj -text
*.bat -text
*.dos -text
*.icf -text
*.inf -text
*.ini -text
*.sct -text
*.xsd -text


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2017-2018 ShareCat (sharecat73@gmail.com)

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
'Software'), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.


================================================
FILE: Libraries/CMSIS/core_cm3.c
================================================
/**************************************************************************//**
 * @file     core_cm3.c
 * @brief    CMSIS Cortex-M3 Core Peripheral Access Layer Source File
 * @version  V1.30
 * @date     30. October 2009
 *
 * @note
 * Copyright (C) 2009 ARM Limited. All rights reserved.
 *
 * @par
 * ARM Limited (ARM) is supplying this software for use with Cortex-M 
 * processor based microcontrollers.  This file can be freely distributed 
 * within development tools that are supporting such ARM based processors. 
 *
 * @par
 * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
 * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
 *
 ******************************************************************************/

#include <stdint.h>

/* define compiler specific symbols */
#if defined ( __CC_ARM   )
  #define __ASM            __asm                                      /*!< asm keyword for ARM Compiler          */
  #define __INLINE         __inline                                   /*!< inline keyword for ARM Compiler       */

#elif defined ( __ICCARM__ )
  #define __ASM           __asm                                       /*!< asm keyword for IAR Compiler          */
  #define __INLINE        inline                                      /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */

#elif defined   (  __GNUC__  )
  #define __ASM            __asm                                      /*!< asm keyword for GNU Compiler          */
  #define __INLINE         inline                                     /*!< inline keyword for GNU Compiler       */

#elif defined   (  __TASKING__  )
  #define __ASM            __asm                                      /*!< asm keyword for TASKING Compiler      */
  #define __INLINE         inline                                     /*!< inline keyword for TASKING Compiler   */

#endif


/* ###################  Compiler specific Intrinsics  ########################### */

#if defined ( __CC_ARM   ) /*------------------RealView Compiler -----------------*/
/* ARM armcc specific functions */

/**
 * @brief  Return the Process Stack Pointer
 *
 * @return ProcessStackPointer
 *
 * Return the actual process stack pointer
 */
__ASM uint32_t __get_PSP(void)
{
  mrs r0, psp
  bx lr
}

/**
 * @brief  Set the Process Stack Pointer
 *
 * @param  topOfProcStack  Process Stack Pointer
 *
 * Assign the value ProcessStackPointer to the MSP 
 * (process stack pointer) Cortex processor register
 */
__ASM void __set_PSP(uint32_t topOfProcStack)
{
  msr psp, r0
  bx lr
}

/**
 * @brief  Return the Main Stack Pointer
 *
 * @return Main Stack Pointer
 *
 * Return the current value of the MSP (main stack pointer)
 * Cortex processor register
 */
__ASM uint32_t __get_MSP(void)
{
  mrs r0, msp
  bx lr
}

/**
 * @brief  Set the Main Stack Pointer
 *
 * @param  topOfMainStack  Main Stack Pointer
 *
 * Assign the value mainStackPointer to the MSP 
 * (main stack pointer) Cortex processor register
 */
__ASM void __set_MSP(uint32_t mainStackPointer)
{
  msr msp, r0
  bx lr
}

/**
 * @brief  Reverse byte order in unsigned short value
 *
 * @param   value  value to reverse
 * @return         reversed value
 *
 * Reverse byte order in unsigned short value
 */
__ASM uint32_t __REV16(uint16_t value)
{
  rev16 r0, r0
  bx lr
}

/**
 * @brief  Reverse byte order in signed short value with sign extension to integer
 *
 * @param   value  value to reverse
 * @return         reversed value
 *
 * Reverse byte order in signed short value with sign extension to integer
 */
__ASM int32_t __REVSH(int16_t value)
{
  revsh r0, r0
  bx lr
}


#if (__ARMCC_VERSION < 400000)

/**
 * @brief  Remove the exclusive lock created by ldrex
 *
 * Removes the exclusive lock which is created by ldrex.
 */
__ASM void __CLREX(void)
{
  clrex
}

/**
 * @brief  Return the Base Priority value
 *
 * @return BasePriority
 *
 * Return the content of the base priority register
 */
__ASM uint32_t  __get_BASEPRI(void)
{
  mrs r0, basepri
  bx lr
}

/**
 * @brief  Set the Base Priority value
 *
 * @param  basePri  BasePriority
 *
 * Set the base priority register
 */
__ASM void __set_BASEPRI(uint32_t basePri)
{
  msr basepri, r0
  bx lr
}

/**
 * @brief  Return the Priority Mask value
 *
 * @return PriMask
 *
 * Return state of the priority mask bit from the priority mask register
 */
__ASM uint32_t __get_PRIMASK(void)
{
  mrs r0, primask
  bx lr
}

/**
 * @brief  Set the Priority Mask value
 *
 * @param  priMask  PriMask
 *
 * Set the priority mask bit in the priority mask register
 */
__ASM void __set_PRIMASK(uint32_t priMask)
{
  msr primask, r0
  bx lr
}

/**
 * @brief  Return the Fault Mask value
 *
 * @return FaultMask
 *
 * Return the content of the fault mask register
 */
__ASM uint32_t  __get_FAULTMASK(void)
{
  mrs r0, faultmask
  bx lr
}

/**
 * @brief  Set the Fault Mask value
 *
 * @param  faultMask  faultMask value
 *
 * Set the fault mask register
 */
__ASM void __set_FAULTMASK(uint32_t faultMask)
{
  msr faultmask, r0
  bx lr
}

/**
 * @brief  Return the Control Register value
 * 
 * @return Control value
 *
 * Return the content of the control register
 */
__ASM uint32_t __get_CONTROL(void)
{
  mrs r0, control
  bx lr
}

/**
 * @brief  Set the Control Register value
 *
 * @param  control  Control value
 *
 * Set the control register
 */
__ASM void __set_CONTROL(uint32_t control)
{
  msr control, r0
  bx lr
}

#endif /* __ARMCC_VERSION  */ 



#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
/* IAR iccarm specific functions */
#pragma diag_suppress=Pe940

/**
 * @brief  Return the Process Stack Pointer
 *
 * @return ProcessStackPointer
 *
 * Return the actual process stack pointer
 */
uint32_t __get_PSP(void)
{
  __ASM("mrs r0, psp");
  __ASM("bx lr");
}

/**
 * @brief  Set the Process Stack Pointer
 *
 * @param  topOfProcStack  Process Stack Pointer
 *
 * Assign the value ProcessStackPointer to the MSP 
 * (process stack pointer) Cortex processor register
 */
void __set_PSP(uint32_t topOfProcStack)
{
  __ASM("msr psp, r0");
  __ASM("bx lr");
}

/**
 * @brief  Return the Main Stack Pointer
 *
 * @return Main Stack Pointer
 *
 * Return the current value of the MSP (main stack pointer)
 * Cortex processor register
 */
uint32_t __get_MSP(void)
{
  __ASM("mrs r0, msp");
  __ASM("bx lr");
}

/**
 * @brief  Set the Main Stack Pointer
 *
 * @param  topOfMainStack  Main Stack Pointer
 *
 * Assign the value mainStackPointer to the MSP 
 * (main stack pointer) Cortex processor register
 */
void __set_MSP(uint32_t topOfMainStack)
{
  __ASM("msr msp, r0");
  __ASM("bx lr");
}

/**
 * @brief  Reverse byte order in unsigned short value
 *
 * @param  value  value to reverse
 * @return        reversed value
 *
 * Reverse byte order in unsigned short value
 */
uint32_t __REV16(uint16_t value)
{
  __ASM("rev16 r0, r0");
  __ASM("bx lr");
}

/**
 * @brief  Reverse bit order of value
 *
 * @param  value  value to reverse
 * @return        reversed value
 *
 * Reverse bit order of value
 */
uint32_t __RBIT(uint32_t value)
{
  __ASM("rbit r0, r0");
  __ASM("bx lr");
}

/**
 * @brief  LDR Exclusive (8 bit)
 *
 * @param  *addr  address pointer
 * @return        value of (*address)
 *
 * Exclusive LDR command for 8 bit values)
 */
uint8_t __LDREXB(uint8_t *addr)
{
  __ASM("ldrexb r0, [r0]");
  __ASM("bx lr"); 
}

/**
 * @brief  LDR Exclusive (16 bit)
 *
 * @param  *addr  address pointer
 * @return        value of (*address)
 *
 * Exclusive LDR command for 16 bit values
 */
uint16_t __LDREXH(uint16_t *addr)
{
  __ASM("ldrexh r0, [r0]");
  __ASM("bx lr");
}

/**
 * @brief  LDR Exclusive (32 bit)
 *
 * @param  *addr  address pointer
 * @return        value of (*address)
 *
 * Exclusive LDR command for 32 bit values
 */
uint32_t __LDREXW(uint32_t *addr)
{
  __ASM("ldrex r0, [r0]");
  __ASM("bx lr");
}

/**
 * @brief  STR Exclusive (8 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 8 bit values
 */
uint32_t __STREXB(uint8_t value, uint8_t *addr)
{
  __ASM("strexb r0, r0, [r1]");
  __ASM("bx lr");
}

/**
 * @brief  STR Exclusive (16 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 16 bit values
 */
uint32_t __STREXH(uint16_t value, uint16_t *addr)
{
  __ASM("strexh r0, r0, [r1]");
  __ASM("bx lr");
}

/**
 * @brief  STR Exclusive (32 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 32 bit values
 */
uint32_t __STREXW(uint32_t value, uint32_t *addr)
{
  __ASM("strex r0, r0, [r1]");
  __ASM("bx lr");
}

#pragma diag_default=Pe940


#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
/* GNU gcc specific functions */

/**
 * @brief  Return the Process Stack Pointer
 *
 * @return ProcessStackPointer
 *
 * Return the actual process stack pointer
 */
uint32_t __get_PSP(void) __attribute__( ( naked ) );
uint32_t __get_PSP(void)
{
  uint32_t result=0;

  __ASM volatile ("MRS %0, psp\n\t" 
                  "MOV r0, %0 \n\t"
                  "BX  lr     \n\t"  : "=r" (result) );
  return(result);
}

/**
 * @brief  Set the Process Stack Pointer
 *
 * @param  topOfProcStack  Process Stack Pointer
 *
 * Assign the value ProcessStackPointer to the MSP 
 * (process stack pointer) Cortex processor register
 */
void __set_PSP(uint32_t topOfProcStack) __attribute__( ( naked ) );
void __set_PSP(uint32_t topOfProcStack)
{
  __ASM volatile ("MSR psp, %0\n\t"
                  "BX  lr     \n\t" : : "r" (topOfProcStack) );
}

/**
 * @brief  Return the Main Stack Pointer
 *
 * @return Main Stack Pointer
 *
 * Return the current value of the MSP (main stack pointer)
 * Cortex processor register
 */
uint32_t __get_MSP(void) __attribute__( ( naked ) );
uint32_t __get_MSP(void)
{
  uint32_t result=0;

  __ASM volatile ("MRS %0, msp\n\t" 
                  "MOV r0, %0 \n\t"
                  "BX  lr     \n\t"  : "=r" (result) );
  return(result);
}

/**
 * @brief  Set the Main Stack Pointer
 *
 * @param  topOfMainStack  Main Stack Pointer
 *
 * Assign the value mainStackPointer to the MSP 
 * (main stack pointer) Cortex processor register
 */
void __set_MSP(uint32_t topOfMainStack) __attribute__( ( naked ) );
void __set_MSP(uint32_t topOfMainStack)
{
  __ASM volatile ("MSR msp, %0\n\t"
                  "BX  lr     \n\t" : : "r" (topOfMainStack) );
}

/**
 * @brief  Return the Base Priority value
 *
 * @return BasePriority
 *
 * Return the content of the base priority register
 */
uint32_t __get_BASEPRI(void)
{
  uint32_t result=0;
  
  __ASM volatile ("MRS %0, basepri_max" : "=r" (result) );
  return(result);
}

/**
 * @brief  Set the Base Priority value
 *
 * @param  basePri  BasePriority
 *
 * Set the base priority register
 */
void __set_BASEPRI(uint32_t value)
{
  __ASM volatile ("MSR basepri, %0" : : "r" (value) );
}

/**
 * @brief  Return the Priority Mask value
 *
 * @return PriMask
 *
 * Return state of the priority mask bit from the priority mask register
 */
uint32_t __get_PRIMASK(void)
{
  uint32_t result=0;

  __ASM volatile ("MRS %0, primask" : "=r" (result) );
  return(result);
}

/**
 * @brief  Set the Priority Mask value
 *
 * @param  priMask  PriMask
 *
 * Set the priority mask bit in the priority mask register
 */
void __set_PRIMASK(uint32_t priMask)
{
  __ASM volatile ("MSR primask, %0" : : "r" (priMask) );
}

/**
 * @brief  Return the Fault Mask value
 *
 * @return FaultMask
 *
 * Return the content of the fault mask register
 */
uint32_t __get_FAULTMASK(void)
{
  uint32_t result=0;
  
  __ASM volatile ("MRS %0, faultmask" : "=r" (result) );
  return(result);
}

/**
 * @brief  Set the Fault Mask value
 *
 * @param  faultMask  faultMask value
 *
 * Set the fault mask register
 */
void __set_FAULTMASK(uint32_t faultMask)
{
  __ASM volatile ("MSR faultmask, %0" : : "r" (faultMask) );
}

/**
 * @brief  Return the Control Register value
* 
*  @return Control value
 *
 * Return the content of the control register
 */
uint32_t __get_CONTROL(void)
{
  uint32_t result=0;

  __ASM volatile ("MRS %0, control" : "=r" (result) );
  return(result);
}

/**
 * @brief  Set the Control Register value
 *
 * @param  control  Control value
 *
 * Set the control register
 */
void __set_CONTROL(uint32_t control)
{
  __ASM volatile ("MSR control, %0" : : "r" (control) );
}


/**
 * @brief  Reverse byte order in integer value
 *
 * @param  value  value to reverse
 * @return        reversed value
 *
 * Reverse byte order in integer value
 */
uint32_t __REV(uint32_t value)
{
  uint32_t result=0;
  
  __ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value) );
  return(result);
}

/**
 * @brief  Reverse byte order in unsigned short value
 *
 * @param  value  value to reverse
 * @return        reversed value
 *
 * Reverse byte order in unsigned short value
 */
uint32_t __REV16(uint16_t value)
{
  uint32_t result=0;
  
  __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) );
  return(result);
}

/**
 * @brief  Reverse byte order in signed short value with sign extension to integer
 *
 * @param  value  value to reverse
 * @return        reversed value
 *
 * Reverse byte order in signed short value with sign extension to integer
 */
int32_t __REVSH(int16_t value)
{
  uint32_t result=0;
  
  __ASM volatile ("revsh %0, %1" : "=r" (result) : "r" (value) );
  return(result);
}

/**
 * @brief  Reverse bit order of value
 *
 * @param  value  value to reverse
 * @return        reversed value
 *
 * Reverse bit order of value
 */
uint32_t __RBIT(uint32_t value)
{
  uint32_t result=0;
  
   __ASM volatile ("rbit %0, %1" : "=r" (result) : "r" (value) );
   return(result);
}

/**
 * @brief  LDR Exclusive (8 bit)
 *
 * @param  *addr  address pointer
 * @return        value of (*address)
 *
 * Exclusive LDR command for 8 bit value
 */
uint8_t __LDREXB(uint8_t *addr)
{
    uint8_t result=0;
  
   __ASM volatile ("ldrexb %0, [%1]" : "=r" (result) : "r" (addr) );
   return(result);
}

/**
 * @brief  LDR Exclusive (16 bit)
 *
 * @param  *addr  address pointer
 * @return        value of (*address)
 *
 * Exclusive LDR command for 16 bit values
 */
uint16_t __LDREXH(uint16_t *addr)
{
    uint16_t result=0;
  
   __ASM volatile ("ldrexh %0, [%1]" : "=r" (result) : "r" (addr) );
   return(result);
}

/**
 * @brief  LDR Exclusive (32 bit)
 *
 * @param  *addr  address pointer
 * @return        value of (*address)
 *
 * Exclusive LDR command for 32 bit values
 */
uint32_t __LDREXW(uint32_t *addr)
{
    uint32_t result=0;
  
   __ASM volatile ("ldrex %0, [%1]" : "=r" (result) : "r" (addr) );
   return(result);
}

/**
 * @brief  STR Exclusive (8 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 8 bit values
 */
uint32_t __STREXB(uint8_t value, uint8_t *addr)
{
   uint32_t result=0;
  
   __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
   return(result);
}

/**
 * @brief  STR Exclusive (16 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 16 bit values
 */
uint32_t __STREXH(uint16_t value, uint16_t *addr)
{
   uint32_t result=0;
  
   __ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
   return(result);
}

/**
 * @brief  STR Exclusive (32 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 32 bit values
 */
uint32_t __STREXW(uint32_t value, uint32_t *addr)
{
   uint32_t result=0;
  
   __ASM volatile ("strex %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) );
   return(result);
}


#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/
/* TASKING carm specific functions */

/*
 * The CMSIS functions have been implemented as intrinsics in the compiler.
 * Please use "carm -?i" to get an up to date list of all instrinsics,
 * Including the CMSIS ones.
 */

#endif


================================================
FILE: Libraries/CMSIS/core_cm3.h
================================================
/**************************************************************************//**
 * @file     core_cm3.h
 * @brief    CMSIS Cortex-M3 Core Peripheral Access Layer Header File
 * @version  V1.30
 * @date     30. October 2009
 *
 * @note
 * Copyright (C) 2009 ARM Limited. All rights reserved.
 *
 * @par
 * ARM Limited (ARM) is supplying this software for use with Cortex-M 
 * processor based microcontrollers.  This file can be freely distributed 
 * within development tools that are supporting such ARM based processors. 
 *
 * @par
 * THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED
 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
 * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
 *
 ******************************************************************************/

#ifndef __CM3_CORE_H__
#define __CM3_CORE_H__

/** @addtogroup CMSIS_CM3_core_LintCinfiguration CMSIS CM3 Core Lint Configuration
 *
 * List of Lint messages which will be suppressed and not shown:
 *   - Error 10: \n
 *     register uint32_t __regBasePri         __asm("basepri"); \n
 *     Error 10: Expecting ';'
 * .
 *   - Error 530: \n
 *     return(__regBasePri); \n
 *     Warning 530: Symbol '__regBasePri' (line 264) not initialized
 * . 
 *   - Error 550: \n
 *     __regBasePri = (basePri & 0x1ff); \n
 *     Warning 550: Symbol '__regBasePri' (line 271) not accessed
 * .
 *   - Error 754: \n
 *     uint32_t RESERVED0[24]; \n
 *     Info 754: local structure member '<some, not used in the HAL>' (line 109, file ./cm3_core.h) not referenced
 * .
 *   - Error 750: \n
 *     #define __CM3_CORE_H__ \n
 *     Info 750: local macro '__CM3_CORE_H__' (line 43, file./cm3_core.h) not referenced
 * .
 *   - Error 528: \n
 *     static __INLINE void NVIC_DisableIRQ(uint32_t IRQn) \n
 *     Warning 528: Symbol 'NVIC_DisableIRQ(unsigned int)' (line 419, file ./cm3_core.h) not referenced
 * .
 *   - Error 751: \n
 *     } InterruptType_Type; \n
 *     Info 751: local typedef 'InterruptType_Type' (line 170, file ./cm3_core.h) not referenced
 * .
 * Note:  To re-enable a Message, insert a space before 'lint' *
 *
 */

/*lint -save */
/*lint -e10  */
/*lint -e530 */
/*lint -e550 */
/*lint -e754 */
/*lint -e750 */
/*lint -e528 */
/*lint -e751 */


/** @addtogroup CMSIS_CM3_core_definitions CM3 Core Definitions
  This file defines all structures and symbols for CMSIS core:
    - CMSIS version number
    - Cortex-M core registers and bitfields
    - Cortex-M core peripheral base address
  @{
 */

#ifdef __cplusplus
 extern "C" {
#endif 

#define __CM3_CMSIS_VERSION_MAIN  (0x01)                                                       /*!< [31:16] CMSIS HAL main version */
#define __CM3_CMSIS_VERSION_SUB   (0x30)                                                       /*!< [15:0]  CMSIS HAL sub version  */
#define __CM3_CMSIS_VERSION       ((__CM3_CMSIS_VERSION_MAIN << 16) | __CM3_CMSIS_VERSION_SUB) /*!< CMSIS HAL version number       */

#define __CORTEX_M                (0x03)                                                       /*!< Cortex core                    */

#include <stdint.h>                           /* Include standard types */

#if defined (__ICCARM__)
  #include <intrinsics.h>                     /* IAR Intrinsics   */
#endif


#ifndef __NVIC_PRIO_BITS
  #define __NVIC_PRIO_BITS    4               /*!< standard definition for NVIC Priority Bits */
#endif




/**
 * IO definitions
 *
 * define access restrictions to peripheral registers
 */

#ifdef __cplusplus
  #define     __I     volatile                /*!< defines 'read only' permissions      */
#else
  #define     __I     volatile const          /*!< defines 'read only' permissions      */
#endif
#define     __O     volatile                  /*!< defines 'write only' permissions     */
#define     __IO    volatile                  /*!< defines 'read / write' permissions   */



/*******************************************************************************
 *                 Register Abstraction
 ******************************************************************************/
/** @addtogroup CMSIS_CM3_core_register CMSIS CM3 Core Register
 @{
*/


/** @addtogroup CMSIS_CM3_NVIC CMSIS CM3 NVIC
  memory mapped structure for Nested Vectored Interrupt Controller (NVIC)
  @{
 */
typedef struct
{
  __IO uint32_t ISER[8];                      /*!< Offset: 0x000  Interrupt Set Enable Register           */
       uint32_t RESERVED0[24];                                   
  __IO uint32_t ICER[8];                      /*!< Offset: 0x080  Interrupt Clear Enable Register         */
       uint32_t RSERVED1[24];                                    
  __IO uint32_t ISPR[8];                      /*!< Offset: 0x100  Interrupt Set Pending Register          */
       uint32_t RESERVED2[24];                                   
  __IO uint32_t ICPR[8];                      /*!< Offset: 0x180  Interrupt Clear Pending Register        */
       uint32_t RESERVED3[24];                                   
  __IO uint32_t IABR[8];                      /*!< Offset: 0x200  Interrupt Active bit Register           */
       uint32_t RESERVED4[56];                                   
  __IO uint8_t  IP[240];                      /*!< Offset: 0x300  Interrupt Priority Register (8Bit wide) */
       uint32_t RESERVED5[644];                                  
  __O  uint32_t STIR;                         /*!< Offset: 0xE00  Software Trigger Interrupt Register     */
}  NVIC_Type;                                               
/*@}*/ /* end of group CMSIS_CM3_NVIC */


/** @addtogroup CMSIS_CM3_SCB CMSIS CM3 SCB
  memory mapped structure for System Control Block (SCB)
  @{
 */
typedef struct
{
  __I  uint32_t CPUID;                        /*!< Offset: 0x00  CPU ID Base Register                                  */
  __IO uint32_t ICSR;                         /*!< Offset: 0x04  Interrupt Control State Register                      */
  __IO uint32_t VTOR;                         /*!< Offset: 0x08  Vector Table Offset Register                          */
  __IO uint32_t AIRCR;                        /*!< Offset: 0x0C  Application Interrupt / Reset Control Register        */
  __IO uint32_t SCR;                          /*!< Offset: 0x10  System Control Register                               */
  __IO uint32_t CCR;                          /*!< Offset: 0x14  Configuration Control Register                        */
  __IO uint8_t  SHP[12];                      /*!< Offset: 0x18  System Handlers Priority Registers (4-7, 8-11, 12-15) */
  __IO uint32_t SHCSR;                        /*!< Offset: 0x24  System Handler Control and State Register             */
  __IO uint32_t CFSR;                         /*!< Offset: 0x28  Configurable Fault Status Register                    */
  __IO uint32_t HFSR;                         /*!< Offset: 0x2C  Hard Fault Status Register                            */
  __IO uint32_t DFSR;                         /*!< Offset: 0x30  Debug Fault Status Register                           */
  __IO uint32_t MMFAR;                        /*!< Offset: 0x34  Mem Manage Address Register                           */
  __IO uint32_t BFAR;                         /*!< Offset: 0x38  Bus Fault Address Register                            */
  __IO uint32_t AFSR;                         /*!< Offset: 0x3C  Auxiliary Fault Status Register                       */
  __I  uint32_t PFR[2];                       /*!< Offset: 0x40  Processor Feature Register                            */
  __I  uint32_t DFR;                          /*!< Offset: 0x48  Debug Feature Register                                */
  __I  uint32_t ADR;                          /*!< Offset: 0x4C  Auxiliary Feature Register                            */
  __I  uint32_t MMFR[4];                      /*!< Offset: 0x50  Memory Model Feature Register                         */
  __I  uint32_t ISAR[5];                      /*!< Offset: 0x60  ISA Feature Register                                  */
} SCB_Type;                                                

/* SCB CPUID Register Definitions */
#define SCB_CPUID_IMPLEMENTER_Pos          24                                             /*!< SCB CPUID: IMPLEMENTER Position */
#define SCB_CPUID_IMPLEMENTER_Msk          (0xFFul << SCB_CPUID_IMPLEMENTER_Pos)          /*!< SCB CPUID: IMPLEMENTER Mask */

#define SCB_CPUID_VARIANT_Pos              20                                             /*!< SCB CPUID: VARIANT Position */
#define SCB_CPUID_VARIANT_Msk              (0xFul << SCB_CPUID_VARIANT_Pos)               /*!< SCB CPUID: VARIANT Mask */

#define SCB_CPUID_PARTNO_Pos                4                                             /*!< SCB CPUID: PARTNO Position */
#define SCB_CPUID_PARTNO_Msk               (0xFFFul << SCB_CPUID_PARTNO_Pos)              /*!< SCB CPUID: PARTNO Mask */

#define SCB_CPUID_REVISION_Pos              0                                             /*!< SCB CPUID: REVISION Position */
#define SCB_CPUID_REVISION_Msk             (0xFul << SCB_CPUID_REVISION_Pos)              /*!< SCB CPUID: REVISION Mask */

/* SCB Interrupt Control State Register Definitions */
#define SCB_ICSR_NMIPENDSET_Pos            31                                             /*!< SCB ICSR: NMIPENDSET Position */
#define SCB_ICSR_NMIPENDSET_Msk            (1ul << SCB_ICSR_NMIPENDSET_Pos)               /*!< SCB ICSR: NMIPENDSET Mask */

#define SCB_ICSR_PENDSVSET_Pos             28                                             /*!< SCB ICSR: PENDSVSET Position */
#define SCB_ICSR_PENDSVSET_Msk             (1ul << SCB_ICSR_PENDSVSET_Pos)                /*!< SCB ICSR: PENDSVSET Mask */

#define SCB_ICSR_PENDSVCLR_Pos             27                                             /*!< SCB ICSR: PENDSVCLR Position */
#define SCB_ICSR_PENDSVCLR_Msk             (1ul << SCB_ICSR_PENDSVCLR_Pos)                /*!< SCB ICSR: PENDSVCLR Mask */

#define SCB_ICSR_PENDSTSET_Pos             26                                             /*!< SCB ICSR: PENDSTSET Position */
#define SCB_ICSR_PENDSTSET_Msk             (1ul << SCB_ICSR_PENDSTSET_Pos)                /*!< SCB ICSR: PENDSTSET Mask */

#define SCB_ICSR_PENDSTCLR_Pos             25                                             /*!< SCB ICSR: PENDSTCLR Position */
#define SCB_ICSR_PENDSTCLR_Msk             (1ul << SCB_ICSR_PENDSTCLR_Pos)                /*!< SCB ICSR: PENDSTCLR Mask */

#define SCB_ICSR_ISRPREEMPT_Pos            23                                             /*!< SCB ICSR: ISRPREEMPT Position */
#define SCB_ICSR_ISRPREEMPT_Msk            (1ul << SCB_ICSR_ISRPREEMPT_Pos)               /*!< SCB ICSR: ISRPREEMPT Mask */

#define SCB_ICSR_ISRPENDING_Pos            22                                             /*!< SCB ICSR: ISRPENDING Position */
#define SCB_ICSR_ISRPENDING_Msk            (1ul << SCB_ICSR_ISRPENDING_Pos)               /*!< SCB ICSR: ISRPENDING Mask */

#define SCB_ICSR_VECTPENDING_Pos           12                                             /*!< SCB ICSR: VECTPENDING Position */
#define SCB_ICSR_VECTPENDING_Msk           (0x1FFul << SCB_ICSR_VECTPENDING_Pos)          /*!< SCB ICSR: VECTPENDING Mask */

#define SCB_ICSR_RETTOBASE_Pos             11                                             /*!< SCB ICSR: RETTOBASE Position */
#define SCB_ICSR_RETTOBASE_Msk             (1ul << SCB_ICSR_RETTOBASE_Pos)                /*!< SCB ICSR: RETTOBASE Mask */

#define SCB_ICSR_VECTACTIVE_Pos             0                                             /*!< SCB ICSR: VECTACTIVE Position */
#define SCB_ICSR_VECTACTIVE_Msk            (0x1FFul << SCB_ICSR_VECTACTIVE_Pos)           /*!< SCB ICSR: VECTACTIVE Mask */

/* SCB Interrupt Control State Register Definitions */
#define SCB_VTOR_TBLBASE_Pos               29                                             /*!< SCB VTOR: TBLBASE Position */
#define SCB_VTOR_TBLBASE_Msk               (0x1FFul << SCB_VTOR_TBLBASE_Pos)              /*!< SCB VTOR: TBLBASE Mask */

#define SCB_VTOR_TBLOFF_Pos                 7                                             /*!< SCB VTOR: TBLOFF Position */
#define SCB_VTOR_TBLOFF_Msk                (0x3FFFFFul << SCB_VTOR_TBLOFF_Pos)            /*!< SCB VTOR: TBLOFF Mask */

/* SCB Application Interrupt and Reset Control Register Definitions */
#define SCB_AIRCR_VECTKEY_Pos              16                                             /*!< SCB AIRCR: VECTKEY Position */
#define SCB_AIRCR_VECTKEY_Msk              (0xFFFFul << SCB_AIRCR_VECTKEY_Pos)            /*!< SCB AIRCR: VECTKEY Mask */

#define SCB_AIRCR_VECTKEYSTAT_Pos          16                                             /*!< SCB AIRCR: VECTKEYSTAT Position */
#define SCB_AIRCR_VECTKEYSTAT_Msk          (0xFFFFul << SCB_AIRCR_VECTKEYSTAT_Pos)        /*!< SCB AIRCR: VECTKEYSTAT Mask */

#define SCB_AIRCR_ENDIANESS_Pos            15                                             /*!< SCB AIRCR: ENDIANESS Position */
#define SCB_AIRCR_ENDIANESS_Msk            (1ul << SCB_AIRCR_ENDIANESS_Pos)               /*!< SCB AIRCR: ENDIANESS Mask */

#define SCB_AIRCR_PRIGROUP_Pos              8                                             /*!< SCB AIRCR: PRIGROUP Position */
#define SCB_AIRCR_PRIGROUP_Msk             (7ul << SCB_AIRCR_PRIGROUP_Pos)                /*!< SCB AIRCR: PRIGROUP Mask */

#define SCB_AIRCR_SYSRESETREQ_Pos           2                                             /*!< SCB AIRCR: SYSRESETREQ Position */
#define SCB_AIRCR_SYSRESETREQ_Msk          (1ul << SCB_AIRCR_SYSRESETREQ_Pos)             /*!< SCB AIRCR: SYSRESETREQ Mask */

#define SCB_AIRCR_VECTCLRACTIVE_Pos         1                                             /*!< SCB AIRCR: VECTCLRACTIVE Position */
#define SCB_AIRCR_VECTCLRACTIVE_Msk        (1ul << SCB_AIRCR_VECTCLRACTIVE_Pos)           /*!< SCB AIRCR: VECTCLRACTIVE Mask */

#define SCB_AIRCR_VECTRESET_Pos             0                                             /*!< SCB AIRCR: VECTRESET Position */
#define SCB_AIRCR_VECTRESET_Msk            (1ul << SCB_AIRCR_VECTRESET_Pos)               /*!< SCB AIRCR: VECTRESET Mask */

/* SCB System Control Register Definitions */
#define SCB_SCR_SEVONPEND_Pos               4                                             /*!< SCB SCR: SEVONPEND Position */
#define SCB_SCR_SEVONPEND_Msk              (1ul << SCB_SCR_SEVONPEND_Pos)                 /*!< SCB SCR: SEVONPEND Mask */

#define SCB_SCR_SLEEPDEEP_Pos               2                                             /*!< SCB SCR: SLEEPDEEP Position */
#define SCB_SCR_SLEEPDEEP_Msk              (1ul << SCB_SCR_SLEEPDEEP_Pos)                 /*!< SCB SCR: SLEEPDEEP Mask */

#define SCB_SCR_SLEEPONEXIT_Pos             1                                             /*!< SCB SCR: SLEEPONEXIT Position */
#define SCB_SCR_SLEEPONEXIT_Msk            (1ul << SCB_SCR_SLEEPONEXIT_Pos)               /*!< SCB SCR: SLEEPONEXIT Mask */

/* SCB Configuration Control Register Definitions */
#define SCB_CCR_STKALIGN_Pos                9                                             /*!< SCB CCR: STKALIGN Position */
#define SCB_CCR_STKALIGN_Msk               (1ul << SCB_CCR_STKALIGN_Pos)                  /*!< SCB CCR: STKALIGN Mask */

#define SCB_CCR_BFHFNMIGN_Pos               8                                             /*!< SCB CCR: BFHFNMIGN Position */
#define SCB_CCR_BFHFNMIGN_Msk              (1ul << SCB_CCR_BFHFNMIGN_Pos)                 /*!< SCB CCR: BFHFNMIGN Mask */

#define SCB_CCR_DIV_0_TRP_Pos               4                                             /*!< SCB CCR: DIV_0_TRP Position */
#define SCB_CCR_DIV_0_TRP_Msk              (1ul << SCB_CCR_DIV_0_TRP_Pos)                 /*!< SCB CCR: DIV_0_TRP Mask */

#define SCB_CCR_UNALIGN_TRP_Pos             3                                             /*!< SCB CCR: UNALIGN_TRP Position */
#define SCB_CCR_UNALIGN_TRP_Msk            (1ul << SCB_CCR_UNALIGN_TRP_Pos)               /*!< SCB CCR: UNALIGN_TRP Mask */

#define SCB_CCR_USERSETMPEND_Pos            1                                             /*!< SCB CCR: USERSETMPEND Position */
#define SCB_CCR_USERSETMPEND_Msk           (1ul << SCB_CCR_USERSETMPEND_Pos)              /*!< SCB CCR: USERSETMPEND Mask */

#define SCB_CCR_NONBASETHRDENA_Pos          0                                             /*!< SCB CCR: NONBASETHRDENA Position */
#define SCB_CCR_NONBASETHRDENA_Msk         (1ul << SCB_CCR_NONBASETHRDENA_Pos)            /*!< SCB CCR: NONBASETHRDENA Mask */

/* SCB System Handler Control and State Register Definitions */
#define SCB_SHCSR_USGFAULTENA_Pos          18                                             /*!< SCB SHCSR: USGFAULTENA Position */
#define SCB_SHCSR_USGFAULTENA_Msk          (1ul << SCB_SHCSR_USGFAULTENA_Pos)             /*!< SCB SHCSR: USGFAULTENA Mask */

#define SCB_SHCSR_BUSFAULTENA_Pos          17                                             /*!< SCB SHCSR: BUSFAULTENA Position */
#define SCB_SHCSR_BUSFAULTENA_Msk          (1ul << SCB_SHCSR_BUSFAULTENA_Pos)             /*!< SCB SHCSR: BUSFAULTENA Mask */

#define SCB_SHCSR_MEMFAULTENA_Pos          16                                             /*!< SCB SHCSR: MEMFAULTENA Position */
#define SCB_SHCSR_MEMFAULTENA_Msk          (1ul << SCB_SHCSR_MEMFAULTENA_Pos)             /*!< SCB SHCSR: MEMFAULTENA Mask */

#define SCB_SHCSR_SVCALLPENDED_Pos         15                                             /*!< SCB SHCSR: SVCALLPENDED Position */
#define SCB_SHCSR_SVCALLPENDED_Msk         (1ul << SCB_SHCSR_SVCALLPENDED_Pos)            /*!< SCB SHCSR: SVCALLPENDED Mask */

#define SCB_SHCSR_BUSFAULTPENDED_Pos       14                                             /*!< SCB SHCSR: BUSFAULTPENDED Position */
#define SCB_SHCSR_BUSFAULTPENDED_Msk       (1ul << SCB_SHCSR_BUSFAULTPENDED_Pos)          /*!< SCB SHCSR: BUSFAULTPENDED Mask */

#define SCB_SHCSR_MEMFAULTPENDED_Pos       13                                             /*!< SCB SHCSR: MEMFAULTPENDED Position */
#define SCB_SHCSR_MEMFAULTPENDED_Msk       (1ul << SCB_SHCSR_MEMFAULTPENDED_Pos)          /*!< SCB SHCSR: MEMFAULTPENDED Mask */

#define SCB_SHCSR_USGFAULTPENDED_Pos       12                                             /*!< SCB SHCSR: USGFAULTPENDED Position */
#define SCB_SHCSR_USGFAULTPENDED_Msk       (1ul << SCB_SHCSR_USGFAULTPENDED_Pos)          /*!< SCB SHCSR: USGFAULTPENDED Mask */

#define SCB_SHCSR_SYSTICKACT_Pos           11                                             /*!< SCB SHCSR: SYSTICKACT Position */
#define SCB_SHCSR_SYSTICKACT_Msk           (1ul << SCB_SHCSR_SYSTICKACT_Pos)              /*!< SCB SHCSR: SYSTICKACT Mask */

#define SCB_SHCSR_PENDSVACT_Pos            10                                             /*!< SCB SHCSR: PENDSVACT Position */
#define SCB_SHCSR_PENDSVACT_Msk            (1ul << SCB_SHCSR_PENDSVACT_Pos)               /*!< SCB SHCSR: PENDSVACT Mask */

#define SCB_SHCSR_MONITORACT_Pos            8                                             /*!< SCB SHCSR: MONITORACT Position */
#define SCB_SHCSR_MONITORACT_Msk           (1ul << SCB_SHCSR_MONITORACT_Pos)              /*!< SCB SHCSR: MONITORACT Mask */

#define SCB_SHCSR_SVCALLACT_Pos             7                                             /*!< SCB SHCSR: SVCALLACT Position */
#define SCB_SHCSR_SVCALLACT_Msk            (1ul << SCB_SHCSR_SVCALLACT_Pos)               /*!< SCB SHCSR: SVCALLACT Mask */
                                     
#define SCB_SHCSR_USGFAULTACT_Pos           3                                             /*!< SCB SHCSR: USGFAULTACT Position */
#define SCB_SHCSR_USGFAULTACT_Msk          (1ul << SCB_SHCSR_USGFAULTACT_Pos)             /*!< SCB SHCSR: USGFAULTACT Mask */

#define SCB_SHCSR_BUSFAULTACT_Pos           1                                             /*!< SCB SHCSR: BUSFAULTACT Position */
#define SCB_SHCSR_BUSFAULTACT_Msk          (1ul << SCB_SHCSR_BUSFAULTACT_Pos)             /*!< SCB SHCSR: BUSFAULTACT Mask */

#define SCB_SHCSR_MEMFAULTACT_Pos           0                                             /*!< SCB SHCSR: MEMFAULTACT Position */
#define SCB_SHCSR_MEMFAULTACT_Msk          (1ul << SCB_SHCSR_MEMFAULTACT_Pos)             /*!< SCB SHCSR: MEMFAULTACT Mask */

/* SCB Configurable Fault Status Registers Definitions */
#define SCB_CFSR_USGFAULTSR_Pos            16                                             /*!< SCB CFSR: Usage Fault Status Register Position */
#define SCB_CFSR_USGFAULTSR_Msk            (0xFFFFul << SCB_CFSR_USGFAULTSR_Pos)          /*!< SCB CFSR: Usage Fault Status Register Mask */

#define SCB_CFSR_BUSFAULTSR_Pos             8                                             /*!< SCB CFSR: Bus Fault Status Register Position */
#define SCB_CFSR_BUSFAULTSR_Msk            (0xFFul << SCB_CFSR_BUSFAULTSR_Pos)            /*!< SCB CFSR: Bus Fault Status Register Mask */

#define SCB_CFSR_MEMFAULTSR_Pos             0                                             /*!< SCB CFSR: Memory Manage Fault Status Register Position */
#define SCB_CFSR_MEMFAULTSR_Msk            (0xFFul << SCB_CFSR_MEMFAULTSR_Pos)            /*!< SCB CFSR: Memory Manage Fault Status Register Mask */

/* SCB Hard Fault Status Registers Definitions */
#define SCB_HFSR_DEBUGEVT_Pos              31                                             /*!< SCB HFSR: DEBUGEVT Position */
#define SCB_HFSR_DEBUGEVT_Msk              (1ul << SCB_HFSR_DEBUGEVT_Pos)                 /*!< SCB HFSR: DEBUGEVT Mask */

#define SCB_HFSR_FORCED_Pos                30                                             /*!< SCB HFSR: FORCED Position */
#define SCB_HFSR_FORCED_Msk                (1ul << SCB_HFSR_FORCED_Pos)                   /*!< SCB HFSR: FORCED Mask */

#define SCB_HFSR_VECTTBL_Pos                1                                             /*!< SCB HFSR: VECTTBL Position */
#define SCB_HFSR_VECTTBL_Msk               (1ul << SCB_HFSR_VECTTBL_Pos)                  /*!< SCB HFSR: VECTTBL Mask */

/* SCB Debug Fault Status Register Definitions */
#define SCB_DFSR_EXTERNAL_Pos               4                                             /*!< SCB DFSR: EXTERNAL Position */
#define SCB_DFSR_EXTERNAL_Msk              (1ul << SCB_DFSR_EXTERNAL_Pos)                 /*!< SCB DFSR: EXTERNAL Mask */

#define SCB_DFSR_VCATCH_Pos                 3                                             /*!< SCB DFSR: VCATCH Position */
#define SCB_DFSR_VCATCH_Msk                (1ul << SCB_DFSR_VCATCH_Pos)                   /*!< SCB DFSR: VCATCH Mask */

#define SCB_DFSR_DWTTRAP_Pos                2                                             /*!< SCB DFSR: DWTTRAP Position */
#define SCB_DFSR_DWTTRAP_Msk               (1ul << SCB_DFSR_DWTTRAP_Pos)                  /*!< SCB DFSR: DWTTRAP Mask */

#define SCB_DFSR_BKPT_Pos                   1                                             /*!< SCB DFSR: BKPT Position */
#define SCB_DFSR_BKPT_Msk                  (1ul << SCB_DFSR_BKPT_Pos)                     /*!< SCB DFSR: BKPT Mask */

#define SCB_DFSR_HALTED_Pos                 0                                             /*!< SCB DFSR: HALTED Position */
#define SCB_DFSR_HALTED_Msk                (1ul << SCB_DFSR_HALTED_Pos)                   /*!< SCB DFSR: HALTED Mask */
/*@}*/ /* end of group CMSIS_CM3_SCB */


/** @addtogroup CMSIS_CM3_SysTick CMSIS CM3 SysTick
  memory mapped structure for SysTick
  @{
 */
typedef struct
{
  __IO uint32_t CTRL;                         /*!< Offset: 0x00  SysTick Control and Status Register */
  __IO uint32_t LOAD;                         /*!< Offset: 0x04  SysTick Reload Value Register       */
  __IO uint32_t VAL;                          /*!< Offset: 0x08  SysTick Current Value Register      */
  __I  uint32_t CALIB;                        /*!< Offset: 0x0C  SysTick Calibration Register        */
} SysTick_Type;

/* SysTick Control / Status Register Definitions */
#define SysTick_CTRL_COUNTFLAG_Pos         16                                             /*!< SysTick CTRL: COUNTFLAG Position */
#define SysTick_CTRL_COUNTFLAG_Msk         (1ul << SysTick_CTRL_COUNTFLAG_Pos)            /*!< SysTick CTRL: COUNTFLAG Mask */

#define SysTick_CTRL_CLKSOURCE_Pos          2                                             /*!< SysTick CTRL: CLKSOURCE Position */
#define SysTick_CTRL_CLKSOURCE_Msk         (1ul << SysTick_CTRL_CLKSOURCE_Pos)            /*!< SysTick CTRL: CLKSOURCE Mask */

#define SysTick_CTRL_TICKINT_Pos            1                                             /*!< SysTick CTRL: TICKINT Position */
#define SysTick_CTRL_TICKINT_Msk           (1ul << SysTick_CTRL_TICKINT_Pos)              /*!< SysTick CTRL: TICKINT Mask */

#define SysTick_CTRL_ENABLE_Pos             0                                             /*!< SysTick CTRL: ENABLE Position */
#define SysTick_CTRL_ENABLE_Msk            (1ul << SysTick_CTRL_ENABLE_Pos)               /*!< SysTick CTRL: ENABLE Mask */

/* SysTick Reload Register Definitions */
#define SysTick_LOAD_RELOAD_Pos             0                                             /*!< SysTick LOAD: RELOAD Position */
#define SysTick_LOAD_RELOAD_Msk            (0xFFFFFFul << SysTick_LOAD_RELOAD_Pos)        /*!< SysTick LOAD: RELOAD Mask */

/* SysTick Current Register Definitions */
#define SysTick_VAL_CURRENT_Pos             0                                             /*!< SysTick VAL: CURRENT Position */
#define SysTick_VAL_CURRENT_Msk            (0xFFFFFFul << SysTick_VAL_CURRENT_Pos)        /*!< SysTick VAL: CURRENT Mask */

/* SysTick Calibration Register Definitions */
#define SysTick_CALIB_NOREF_Pos            31                                             /*!< SysTick CALIB: NOREF Position */
#define SysTick_CALIB_NOREF_Msk            (1ul << SysTick_CALIB_NOREF_Pos)               /*!< SysTick CALIB: NOREF Mask */

#define SysTick_CALIB_SKEW_Pos             30                                             /*!< SysTick CALIB: SKEW Position */
#define SysTick_CALIB_SKEW_Msk             (1ul << SysTick_CALIB_SKEW_Pos)                /*!< SysTick CALIB: SKEW Mask */

#define SysTick_CALIB_TENMS_Pos             0                                             /*!< SysTick CALIB: TENMS Position */
#define SysTick_CALIB_TENMS_Msk            (0xFFFFFFul << SysTick_VAL_CURRENT_Pos)        /*!< SysTick CALIB: TENMS Mask */
/*@}*/ /* end of group CMSIS_CM3_SysTick */


/** @addtogroup CMSIS_CM3_ITM CMSIS CM3 ITM
  memory mapped structure for Instrumentation Trace Macrocell (ITM)
  @{
 */
typedef struct
{
  __O  union  
  {
    __O  uint8_t    u8;                       /*!< Offset:       ITM Stimulus Port 8-bit                   */
    __O  uint16_t   u16;                      /*!< Offset:       ITM Stimulus Port 16-bit                  */
    __O  uint32_t   u32;                      /*!< Offset:       ITM Stimulus Port 32-bit                  */
  }  PORT [32];                               /*!< Offset: 0x00  ITM Stimulus Port Registers               */
       uint32_t RESERVED0[864];                                 
  __IO uint32_t TER;                          /*!< Offset:       ITM Trace Enable Register                 */
       uint32_t RESERVED1[15];                                  
  __IO uint32_t TPR;                          /*!< Offset:       ITM Trace Privilege Register              */
       uint32_t RESERVED2[15];                                  
  __IO uint32_t TCR;                          /*!< Offset:       ITM Trace Control Register                */
       uint32_t RESERVED3[29];                                  
  __IO uint32_t IWR;                          /*!< Offset:       ITM Integration Write Register            */
  __IO uint32_t IRR;                          /*!< Offset:       ITM Integration Read Register             */
  __IO uint32_t IMCR;                         /*!< Offset:       ITM Integration Mode Control Register     */
       uint32_t RESERVED4[43];                                  
  __IO uint32_t LAR;                          /*!< Offset:       ITM Lock Access Register                  */
  __IO uint32_t LSR;                          /*!< Offset:       ITM Lock Status Register                  */
       uint32_t RESERVED5[6];                                   
  __I  uint32_t PID4;                         /*!< Offset:       ITM Peripheral Identification Register #4 */
  __I  uint32_t PID5;                         /*!< Offset:       ITM Peripheral Identification Register #5 */
  __I  uint32_t PID6;                         /*!< Offset:       ITM Peripheral Identification Register #6 */
  __I  uint32_t PID7;                         /*!< Offset:       ITM Peripheral Identification Register #7 */
  __I  uint32_t PID0;                         /*!< Offset:       ITM Peripheral Identification Register #0 */
  __I  uint32_t PID1;                         /*!< Offset:       ITM Peripheral Identification Register #1 */
  __I  uint32_t PID2;                         /*!< Offset:       ITM Peripheral Identification Register #2 */
  __I  uint32_t PID3;                         /*!< Offset:       ITM Peripheral Identification Register #3 */
  __I  uint32_t CID0;                         /*!< Offset:       ITM Component  Identification Register #0 */
  __I  uint32_t CID1;                         /*!< Offset:       ITM Component  Identification Register #1 */
  __I  uint32_t CID2;                         /*!< Offset:       ITM Component  Identification Register #2 */
  __I  uint32_t CID3;                         /*!< Offset:       ITM Component  Identification Register #3 */
} ITM_Type;                                                

/* ITM Trace Privilege Register Definitions */
#define ITM_TPR_PRIVMASK_Pos                0                                             /*!< ITM TPR: PRIVMASK Position */
#define ITM_TPR_PRIVMASK_Msk               (0xFul << ITM_TPR_PRIVMASK_Pos)                /*!< ITM TPR: PRIVMASK Mask */

/* ITM Trace Control Register Definitions */
#define ITM_TCR_BUSY_Pos                   23                                             /*!< ITM TCR: BUSY Position */
#define ITM_TCR_BUSY_Msk                   (1ul << ITM_TCR_BUSY_Pos)                      /*!< ITM TCR: BUSY Mask */

#define ITM_TCR_ATBID_Pos                  16                                             /*!< ITM TCR: ATBID Position */
#define ITM_TCR_ATBID_Msk                  (0x7Ful << ITM_TCR_ATBID_Pos)                  /*!< ITM TCR: ATBID Mask */

#define ITM_TCR_TSPrescale_Pos              8                                             /*!< ITM TCR: TSPrescale Position */
#define ITM_TCR_TSPrescale_Msk             (3ul << ITM_TCR_TSPrescale_Pos)                /*!< ITM TCR: TSPrescale Mask */

#define ITM_TCR_SWOENA_Pos                  4                                             /*!< ITM TCR: SWOENA Position */
#define ITM_TCR_SWOENA_Msk                 (1ul << ITM_TCR_SWOENA_Pos)                    /*!< ITM TCR: SWOENA Mask */

#define ITM_TCR_DWTENA_Pos                  3                                             /*!< ITM TCR: DWTENA Position */
#define ITM_TCR_DWTENA_Msk                 (1ul << ITM_TCR_DWTENA_Pos)                    /*!< ITM TCR: DWTENA Mask */

#define ITM_TCR_SYNCENA_Pos                 2                                             /*!< ITM TCR: SYNCENA Position */
#define ITM_TCR_SYNCENA_Msk                (1ul << ITM_TCR_SYNCENA_Pos)                   /*!< ITM TCR: SYNCENA Mask */

#define ITM_TCR_TSENA_Pos                   1                                             /*!< ITM TCR: TSENA Position */
#define ITM_TCR_TSENA_Msk                  (1ul << ITM_TCR_TSENA_Pos)                     /*!< ITM TCR: TSENA Mask */

#define ITM_TCR_ITMENA_Pos                  0                                             /*!< ITM TCR: ITM Enable bit Position */
#define ITM_TCR_ITMENA_Msk                 (1ul << ITM_TCR_ITMENA_Pos)                    /*!< ITM TCR: ITM Enable bit Mask */

/* ITM Integration Write Register Definitions */
#define ITM_IWR_ATVALIDM_Pos                0                                             /*!< ITM IWR: ATVALIDM Position */
#define ITM_IWR_ATVALIDM_Msk               (1ul << ITM_IWR_ATVALIDM_Pos)                  /*!< ITM IWR: ATVALIDM Mask */

/* ITM Integration Read Register Definitions */
#define ITM_IRR_ATREADYM_Pos                0                                             /*!< ITM IRR: ATREADYM Position */
#define ITM_IRR_ATREADYM_Msk               (1ul << ITM_IRR_ATREADYM_Pos)                  /*!< ITM IRR: ATREADYM Mask */

/* ITM Integration Mode Control Register Definitions */
#define ITM_IMCR_INTEGRATION_Pos            0                                             /*!< ITM IMCR: INTEGRATION Position */
#define ITM_IMCR_INTEGRATION_Msk           (1ul << ITM_IMCR_INTEGRATION_Pos)              /*!< ITM IMCR: INTEGRATION Mask */

/* ITM Lock Status Register Definitions */
#define ITM_LSR_ByteAcc_Pos                 2                                             /*!< ITM LSR: ByteAcc Position */
#define ITM_LSR_ByteAcc_Msk                (1ul << ITM_LSR_ByteAcc_Pos)                   /*!< ITM LSR: ByteAcc Mask */

#define ITM_LSR_Access_Pos                  1                                             /*!< ITM LSR: Access Position */
#define ITM_LSR_Access_Msk                 (1ul << ITM_LSR_Access_Pos)                    /*!< ITM LSR: Access Mask */

#define ITM_LSR_Present_Pos                 0                                             /*!< ITM LSR: Present Position */
#define ITM_LSR_Present_Msk                (1ul << ITM_LSR_Present_Pos)                   /*!< ITM LSR: Present Mask */
/*@}*/ /* end of group CMSIS_CM3_ITM */


/** @addtogroup CMSIS_CM3_InterruptType CMSIS CM3 Interrupt Type
  memory mapped structure for Interrupt Type
  @{
 */
typedef struct
{
       uint32_t RESERVED0;
  __I  uint32_t ICTR;                         /*!< Offset: 0x04  Interrupt Control Type Register */
#if ((defined __CM3_REV) && (__CM3_REV >= 0x200))
  __IO uint32_t ACTLR;                        /*!< Offset: 0x08  Auxiliary Control Register      */
#else
       uint32_t RESERVED1;
#endif
} InterruptType_Type;

/* Interrupt Controller Type Register Definitions */
#define InterruptType_ICTR_INTLINESNUM_Pos  0                                             /*!< InterruptType ICTR: INTLINESNUM Position */
#define InterruptType_ICTR_INTLINESNUM_Msk (0x1Ful << InterruptType_ICTR_INTLINESNUM_Pos) /*!< InterruptType ICTR: INTLINESNUM Mask */

/* Auxiliary Control Register Definitions */
#define InterruptType_ACTLR_DISFOLD_Pos     2                                             /*!< InterruptType ACTLR: DISFOLD Position */
#define InterruptType_ACTLR_DISFOLD_Msk    (1ul << InterruptType_ACTLR_DISFOLD_Pos)       /*!< InterruptType ACTLR: DISFOLD Mask */

#define InterruptType_ACTLR_DISDEFWBUF_Pos  1                                             /*!< InterruptType ACTLR: DISDEFWBUF Position */
#define InterruptType_ACTLR_DISDEFWBUF_Msk (1ul << InterruptType_ACTLR_DISDEFWBUF_Pos)    /*!< InterruptType ACTLR: DISDEFWBUF Mask */

#define InterruptType_ACTLR_DISMCYCINT_Pos  0                                             /*!< InterruptType ACTLR: DISMCYCINT Position */
#define InterruptType_ACTLR_DISMCYCINT_Msk (1ul << InterruptType_ACTLR_DISMCYCINT_Pos)    /*!< InterruptType ACTLR: DISMCYCINT Mask */
/*@}*/ /* end of group CMSIS_CM3_InterruptType */


#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1)
/** @addtogroup CMSIS_CM3_MPU CMSIS CM3 MPU
  memory mapped structure for Memory Protection Unit (MPU)
  @{
 */
typedef struct
{
  __I  uint32_t TYPE;                         /*!< Offset: 0x00  MPU Type Register                              */
  __IO uint32_t CTRL;                         /*!< Offset: 0x04  MPU Control Register                           */
  __IO uint32_t RNR;                          /*!< Offset: 0x08  MPU Region RNRber Register                     */
  __IO uint32_t RBAR;                         /*!< Offset: 0x0C  MPU Region Base Address Register               */
  __IO uint32_t RASR;                         /*!< Offset: 0x10  MPU Region Attribute and Size Register         */
  __IO uint32_t RBAR_A1;                      /*!< Offset: 0x14  MPU Alias 1 Region Base Address Register       */
  __IO uint32_t RASR_A1;                      /*!< Offset: 0x18  MPU Alias 1 Region Attribute and Size Register */
  __IO uint32_t RBAR_A2;                      /*!< Offset: 0x1C  MPU Alias 2 Region Base Address Register       */
  __IO uint32_t RASR_A2;                      /*!< Offset: 0x20  MPU Alias 2 Region Attribute and Size Register */
  __IO uint32_t RBAR_A3;                      /*!< Offset: 0x24  MPU Alias 3 Region Base Address Register       */
  __IO uint32_t RASR_A3;                      /*!< Offset: 0x28  MPU Alias 3 Region Attribute and Size Register */
} MPU_Type;                                                

/* MPU Type Register */
#define MPU_TYPE_IREGION_Pos               16                                             /*!< MPU TYPE: IREGION Position */
#define MPU_TYPE_IREGION_Msk               (0xFFul << MPU_TYPE_IREGION_Pos)               /*!< MPU TYPE: IREGION Mask */

#define MPU_TYPE_DREGION_Pos                8                                             /*!< MPU TYPE: DREGION Position */
#define MPU_TYPE_DREGION_Msk               (0xFFul << MPU_TYPE_DREGION_Pos)               /*!< MPU TYPE: DREGION Mask */

#define MPU_TYPE_SEPARATE_Pos               0                                             /*!< MPU TYPE: SEPARATE Position */
#define MPU_TYPE_SEPARATE_Msk              (1ul << MPU_TYPE_SEPARATE_Pos)                 /*!< MPU TYPE: SEPARATE Mask */

/* MPU Control Register */
#define MPU_CTRL_PRIVDEFENA_Pos             2                                             /*!< MPU CTRL: PRIVDEFENA Position */
#define MPU_CTRL_PRIVDEFENA_Msk            (1ul << MPU_CTRL_PRIVDEFENA_Pos)               /*!< MPU CTRL: PRIVDEFENA Mask */

#define MPU_CTRL_HFNMIENA_Pos               1                                             /*!< MPU CTRL: HFNMIENA Position */
#define MPU_CTRL_HFNMIENA_Msk              (1ul << MPU_CTRL_HFNMIENA_Pos)                 /*!< MPU CTRL: HFNMIENA Mask */

#define MPU_CTRL_ENABLE_Pos                 0                                             /*!< MPU CTRL: ENABLE Position */
#define MPU_CTRL_ENABLE_Msk                (1ul << MPU_CTRL_ENABLE_Pos)                   /*!< MPU CTRL: ENABLE Mask */

/* MPU Region Number Register */
#define MPU_RNR_REGION_Pos                  0                                             /*!< MPU RNR: REGION Position */
#define MPU_RNR_REGION_Msk                 (0xFFul << MPU_RNR_REGION_Pos)                 /*!< MPU RNR: REGION Mask */

/* MPU Region Base Address Register */
#define MPU_RBAR_ADDR_Pos                   5                                             /*!< MPU RBAR: ADDR Position */
#define MPU_RBAR_ADDR_Msk                  (0x7FFFFFFul << MPU_RBAR_ADDR_Pos)             /*!< MPU RBAR: ADDR Mask */

#define MPU_RBAR_VALID_Pos                  4                                             /*!< MPU RBAR: VALID Position */
#define MPU_RBAR_VALID_Msk                 (1ul << MPU_RBAR_VALID_Pos)                    /*!< MPU RBAR: VALID Mask */

#define MPU_RBAR_REGION_Pos                 0                                             /*!< MPU RBAR: REGION Position */
#define MPU_RBAR_REGION_Msk                (0xFul << MPU_RBAR_REGION_Pos)                 /*!< MPU RBAR: REGION Mask */

/* MPU Region Attribute and Size Register */
#define MPU_RASR_XN_Pos                    28                                             /*!< MPU RASR: XN Position */
#define MPU_RASR_XN_Msk                    (1ul << MPU_RASR_XN_Pos)                       /*!< MPU RASR: XN Mask */

#define MPU_RASR_AP_Pos                    24                                             /*!< MPU RASR: AP Position */
#define MPU_RASR_AP_Msk                    (7ul << MPU_RASR_AP_Pos)                       /*!< MPU RASR: AP Mask */

#define MPU_RASR_TEX_Pos                   19                                             /*!< MPU RASR: TEX Position */
#define MPU_RASR_TEX_Msk                   (7ul << MPU_RASR_TEX_Pos)                      /*!< MPU RASR: TEX Mask */

#define MPU_RASR_S_Pos                     18                                             /*!< MPU RASR: Shareable bit Position */
#define MPU_RASR_S_Msk                     (1ul << MPU_RASR_S_Pos)                        /*!< MPU RASR: Shareable bit Mask */

#define MPU_RASR_C_Pos                     17                                             /*!< MPU RASR: Cacheable bit Position */
#define MPU_RASR_C_Msk                     (1ul << MPU_RASR_C_Pos)                        /*!< MPU RASR: Cacheable bit Mask */

#define MPU_RASR_B_Pos                     16                                             /*!< MPU RASR: Bufferable bit Position */
#define MPU_RASR_B_Msk                     (1ul << MPU_RASR_B_Pos)                        /*!< MPU RASR: Bufferable bit Mask */

#define MPU_RASR_SRD_Pos                    8                                             /*!< MPU RASR: Sub-Region Disable Position */
#define MPU_RASR_SRD_Msk                   (0xFFul << MPU_RASR_SRD_Pos)                   /*!< MPU RASR: Sub-Region Disable Mask */

#define MPU_RASR_SIZE_Pos                   1                                             /*!< MPU RASR: Region Size Field Position */
#define MPU_RASR_SIZE_Msk                  (0x1Ful << MPU_RASR_SIZE_Pos)                  /*!< MPU RASR: Region Size Field Mask */

#define MPU_RASR_ENA_Pos                     0                                            /*!< MPU RASR: Region enable bit Position */
#define MPU_RASR_ENA_Msk                    (0x1Ful << MPU_RASR_ENA_Pos)                  /*!< MPU RASR: Region enable bit Disable Mask */

/*@}*/ /* end of group CMSIS_CM3_MPU */
#endif


/** @addtogroup CMSIS_CM3_CoreDebug CMSIS CM3 Core Debug
  memory mapped structure for Core Debug Register
  @{
 */
typedef struct
{
  __IO uint32_t DHCSR;                        /*!< Offset: 0x00  Debug Halting Control and Status Register    */
  __O  uint32_t DCRSR;                        /*!< Offset: 0x04  Debug Core Register Selector Register        */
  __IO uint32_t DCRDR;                        /*!< Offset: 0x08  Debug Core Register Data Register            */
  __IO uint32_t DEMCR;                        /*!< Offset: 0x0C  Debug Exception and Monitor Control Register */
} CoreDebug_Type;

/* Debug Halting Control and Status Register */
#define CoreDebug_DHCSR_DBGKEY_Pos         16                                             /*!< CoreDebug DHCSR: DBGKEY Position */
#define CoreDebug_DHCSR_DBGKEY_Msk         (0xFFFFul << CoreDebug_DHCSR_DBGKEY_Pos)       /*!< CoreDebug DHCSR: DBGKEY Mask */

#define CoreDebug_DHCSR_S_RESET_ST_Pos     25                                             /*!< CoreDebug DHCSR: S_RESET_ST Position */
#define CoreDebug_DHCSR_S_RESET_ST_Msk     (1ul << CoreDebug_DHCSR_S_RESET_ST_Pos)        /*!< CoreDebug DHCSR: S_RESET_ST Mask */

#define CoreDebug_DHCSR_S_RETIRE_ST_Pos    24                                             /*!< CoreDebug DHCSR: S_RETIRE_ST Position */
#define CoreDebug_DHCSR_S_RETIRE_ST_Msk    (1ul << CoreDebug_DHCSR_S_RETIRE_ST_Pos)       /*!< CoreDebug DHCSR: S_RETIRE_ST Mask */

#define CoreDebug_DHCSR_S_LOCKUP_Pos       19                                             /*!< CoreDebug DHCSR: S_LOCKUP Position */
#define CoreDebug_DHCSR_S_LOCKUP_Msk       (1ul << CoreDebug_DHCSR_S_LOCKUP_Pos)          /*!< CoreDebug DHCSR: S_LOCKUP Mask */

#define CoreDebug_DHCSR_S_SLEEP_Pos        18                                             /*!< CoreDebug DHCSR: S_SLEEP Position */
#define CoreDebug_DHCSR_S_SLEEP_Msk        (1ul << CoreDebug_DHCSR_S_SLEEP_Pos)           /*!< CoreDebug DHCSR: S_SLEEP Mask */

#define CoreDebug_DHCSR_S_HALT_Pos         17                                             /*!< CoreDebug DHCSR: S_HALT Position */
#define CoreDebug_DHCSR_S_HALT_Msk         (1ul << CoreDebug_DHCSR_S_HALT_Pos)            /*!< CoreDebug DHCSR: S_HALT Mask */

#define CoreDebug_DHCSR_S_REGRDY_Pos       16                                             /*!< CoreDebug DHCSR: S_REGRDY Position */
#define CoreDebug_DHCSR_S_REGRDY_Msk       (1ul << CoreDebug_DHCSR_S_REGRDY_Pos)          /*!< CoreDebug DHCSR: S_REGRDY Mask */

#define CoreDebug_DHCSR_C_SNAPSTALL_Pos     5                                             /*!< CoreDebug DHCSR: C_SNAPSTALL Position */
#define CoreDebug_DHCSR_C_SNAPSTALL_Msk    (1ul << CoreDebug_DHCSR_C_SNAPSTALL_Pos)       /*!< CoreDebug DHCSR: C_SNAPSTALL Mask */

#define CoreDebug_DHCSR_C_MASKINTS_Pos      3                                             /*!< CoreDebug DHCSR: C_MASKINTS Position */
#define CoreDebug_DHCSR_C_MASKINTS_Msk     (1ul << CoreDebug_DHCSR_C_MASKINTS_Pos)        /*!< CoreDebug DHCSR: C_MASKINTS Mask */

#define CoreDebug_DHCSR_C_STEP_Pos          2                                             /*!< CoreDebug DHCSR: C_STEP Position */
#define CoreDebug_DHCSR_C_STEP_Msk         (1ul << CoreDebug_DHCSR_C_STEP_Pos)            /*!< CoreDebug DHCSR: C_STEP Mask */

#define CoreDebug_DHCSR_C_HALT_Pos          1                                             /*!< CoreDebug DHCSR: C_HALT Position */
#define CoreDebug_DHCSR_C_HALT_Msk         (1ul << CoreDebug_DHCSR_C_HALT_Pos)            /*!< CoreDebug DHCSR: C_HALT Mask */

#define CoreDebug_DHCSR_C_DEBUGEN_Pos       0                                             /*!< CoreDebug DHCSR: C_DEBUGEN Position */
#define CoreDebug_DHCSR_C_DEBUGEN_Msk      (1ul << CoreDebug_DHCSR_C_DEBUGEN_Pos)         /*!< CoreDebug DHCSR: C_DEBUGEN Mask */

/* Debug Core Register Selector Register */
#define CoreDebug_DCRSR_REGWnR_Pos         16                                             /*!< CoreDebug DCRSR: REGWnR Position */
#define CoreDebug_DCRSR_REGWnR_Msk         (1ul << CoreDebug_DCRSR_REGWnR_Pos)            /*!< CoreDebug DCRSR: REGWnR Mask */

#define CoreDebug_DCRSR_REGSEL_Pos          0                                             /*!< CoreDebug DCRSR: REGSEL Position */
#define CoreDebug_DCRSR_REGSEL_Msk         (0x1Ful << CoreDebug_DCRSR_REGSEL_Pos)         /*!< CoreDebug DCRSR: REGSEL Mask */

/* Debug Exception and Monitor Control Register */
#define CoreDebug_DEMCR_TRCENA_Pos         24                                             /*!< CoreDebug DEMCR: TRCENA Position */
#define CoreDebug_DEMCR_TRCENA_Msk         (1ul << CoreDebug_DEMCR_TRCENA_Pos)            /*!< CoreDebug DEMCR: TRCENA Mask */

#define CoreDebug_DEMCR_MON_REQ_Pos        19                                             /*!< CoreDebug DEMCR: MON_REQ Position */
#define CoreDebug_DEMCR_MON_REQ_Msk        (1ul << CoreDebug_DEMCR_MON_REQ_Pos)           /*!< CoreDebug DEMCR: MON_REQ Mask */

#define CoreDebug_DEMCR_MON_STEP_Pos       18                                             /*!< CoreDebug DEMCR: MON_STEP Position */
#define CoreDebug_DEMCR_MON_STEP_Msk       (1ul << CoreDebug_DEMCR_MON_STEP_Pos)          /*!< CoreDebug DEMCR: MON_STEP Mask */

#define CoreDebug_DEMCR_MON_PEND_Pos       17                                             /*!< CoreDebug DEMCR: MON_PEND Position */
#define CoreDebug_DEMCR_MON_PEND_Msk       (1ul << CoreDebug_DEMCR_MON_PEND_Pos)          /*!< CoreDebug DEMCR: MON_PEND Mask */

#define CoreDebug_DEMCR_MON_EN_Pos         16                                             /*!< CoreDebug DEMCR: MON_EN Position */
#define CoreDebug_DEMCR_MON_EN_Msk         (1ul << CoreDebug_DEMCR_MON_EN_Pos)            /*!< CoreDebug DEMCR: MON_EN Mask */

#define CoreDebug_DEMCR_VC_HARDERR_Pos     10                                             /*!< CoreDebug DEMCR: VC_HARDERR Position */
#define CoreDebug_DEMCR_VC_HARDERR_Msk     (1ul << CoreDebug_DEMCR_VC_HARDERR_Pos)        /*!< CoreDebug DEMCR: VC_HARDERR Mask */

#define CoreDebug_DEMCR_VC_INTERR_Pos       9                                             /*!< CoreDebug DEMCR: VC_INTERR Position */
#define CoreDebug_DEMCR_VC_INTERR_Msk      (1ul << CoreDebug_DEMCR_VC_INTERR_Pos)         /*!< CoreDebug DEMCR: VC_INTERR Mask */

#define CoreDebug_DEMCR_VC_BUSERR_Pos       8                                             /*!< CoreDebug DEMCR: VC_BUSERR Position */
#define CoreDebug_DEMCR_VC_BUSERR_Msk      (1ul << CoreDebug_DEMCR_VC_BUSERR_Pos)         /*!< CoreDebug DEMCR: VC_BUSERR Mask */

#define CoreDebug_DEMCR_VC_STATERR_Pos      7                                             /*!< CoreDebug DEMCR: VC_STATERR Position */
#define CoreDebug_DEMCR_VC_STATERR_Msk     (1ul << CoreDebug_DEMCR_VC_STATERR_Pos)        /*!< CoreDebug DEMCR: VC_STATERR Mask */

#define CoreDebug_DEMCR_VC_CHKERR_Pos       6                                             /*!< CoreDebug DEMCR: VC_CHKERR Position */
#define CoreDebug_DEMCR_VC_CHKERR_Msk      (1ul << CoreDebug_DEMCR_VC_CHKERR_Pos)         /*!< CoreDebug DEMCR: VC_CHKERR Mask */

#define CoreDebug_DEMCR_VC_NOCPERR_Pos      5                                             /*!< CoreDebug DEMCR: VC_NOCPERR Position */
#define CoreDebug_DEMCR_VC_NOCPERR_Msk     (1ul << CoreDebug_DEMCR_VC_NOCPERR_Pos)        /*!< CoreDebug DEMCR: VC_NOCPERR Mask */

#define CoreDebug_DEMCR_VC_MMERR_Pos        4                                             /*!< CoreDebug DEMCR: VC_MMERR Position */
#define CoreDebug_DEMCR_VC_MMERR_Msk       (1ul << CoreDebug_DEMCR_VC_MMERR_Pos)          /*!< CoreDebug DEMCR: VC_MMERR Mask */

#define CoreDebug_DEMCR_VC_CORERESET_Pos    0                                             /*!< CoreDebug DEMCR: VC_CORERESET Position */
#define CoreDebug_DEMCR_VC_CORERESET_Msk   (1ul << CoreDebug_DEMCR_VC_CORERESET_Pos)      /*!< CoreDebug DEMCR: VC_CORERESET Mask */
/*@}*/ /* end of group CMSIS_CM3_CoreDebug */


/* Memory mapping of Cortex-M3 Hardware */
#define SCS_BASE            (0xE000E000)                              /*!< System Control Space Base Address */
#define ITM_BASE            (0xE0000000)                              /*!< ITM Base Address                  */
#define CoreDebug_BASE      (0xE000EDF0)                              /*!< Core Debug Base Address           */
#define SysTick_BASE        (SCS_BASE +  0x0010)                      /*!< SysTick Base Address              */
#define NVIC_BASE           (SCS_BASE +  0x0100)                      /*!< NVIC Base Address                 */
#define SCB_BASE            (SCS_BASE +  0x0D00)                      /*!< System Control Block Base Address */

#define InterruptType       ((InterruptType_Type *) SCS_BASE)         /*!< Interrupt Type Register           */
#define SCB                 ((SCB_Type *)           SCB_BASE)         /*!< SCB configuration struct          */
#define SysTick             ((SysTick_Type *)       SysTick_BASE)     /*!< SysTick configuration struct      */
#define NVIC                ((NVIC_Type *)          NVIC_BASE)        /*!< NVIC configuration struct         */
#define ITM                 ((ITM_Type *)           ITM_BASE)         /*!< ITM configuration struct          */
#define CoreDebug           ((CoreDebug_Type *)     CoreDebug_BASE)   /*!< Core Debug configuration struct   */

#if defined (__MPU_PRESENT) && (__MPU_PRESENT == 1)
  #define MPU_BASE          (SCS_BASE +  0x0D90)                      /*!< Memory Protection Unit            */
  #define MPU               ((MPU_Type*)            MPU_BASE)         /*!< Memory Protection Unit            */
#endif

/*@}*/ /* end of group CMSIS_CM3_core_register */


/*******************************************************************************
 *                Hardware Abstraction Layer
 ******************************************************************************/

#if defined ( __CC_ARM   )
  #define __ASM            __asm                                      /*!< asm keyword for ARM Compiler          */
  #define __INLINE         __inline                                   /*!< inline keyword for ARM Compiler       */

#elif defined ( __ICCARM__ )
  #define __ASM           __asm                                       /*!< asm keyword for IAR Compiler          */
  #define __INLINE        inline                                      /*!< inline keyword for IAR Compiler. Only avaiable in High optimization mode! */

#elif defined   (  __GNUC__  )
  #define __ASM            __asm                                      /*!< asm keyword for GNU Compiler          */
  #define __INLINE         inline                                     /*!< inline keyword for GNU Compiler       */

#elif defined   (  __TASKING__  )
  #define __ASM            __asm                                      /*!< asm keyword for TASKING Compiler      */
  #define __INLINE         inline                                     /*!< inline keyword for TASKING Compiler   */

#endif


/* ###################  Compiler specific Intrinsics  ########################### */

#if defined ( __CC_ARM   ) /*------------------RealView Compiler -----------------*/
/* ARM armcc specific functions */

#define __enable_fault_irq                __enable_fiq
#define __disable_fault_irq               __disable_fiq

#define __NOP                             __nop
#define __WFI                             __wfi
#define __WFE                             __wfe
#define __SEV                             __sev
#define __ISB()                           __isb(0)
#define __DSB()                           __dsb(0)
#define __DMB()                           __dmb(0)
#define __REV                             __rev
#define __RBIT                            __rbit
#define __LDREXB(ptr)                     ((unsigned char ) __ldrex(ptr))
#define __LDREXH(ptr)                     ((unsigned short) __ldrex(ptr))
#define __LDREXW(ptr)                     ((unsigned int  ) __ldrex(ptr))
#define __STREXB(value, ptr)              __strex(value, ptr)
#define __STREXH(value, ptr)              __strex(value, ptr)
#define __STREXW(value, ptr)              __strex(value, ptr)


/* intrinsic unsigned long long __ldrexd(volatile void *ptr) */
/* intrinsic int __strexd(unsigned long long val, volatile void *ptr) */
/* intrinsic void __enable_irq();     */
/* intrinsic void __disable_irq();    */


/**
 * @brief  Return the Process Stack Pointer
 *
 * @return ProcessStackPointer
 *
 * Return the actual process stack pointer
 */
extern uint32_t __get_PSP(void);

/**
 * @brief  Set the Process Stack Pointer
 *
 * @param  topOfProcStack  Process Stack Pointer
 *
 * Assign the value ProcessStackPointer to the MSP 
 * (process stack pointer) Cortex processor register
 */
extern void __set_PSP(uint32_t topOfProcStack);

/**
 * @brief  Return the Main Stack Pointer
 *
 * @return Main Stack Pointer
 *
 * Return the current value of the MSP (main stack pointer)
 * Cortex processor register
 */
extern uint32_t __get_MSP(void);

/**
 * @brief  Set the Main Stack Pointer
 *
 * @param  topOfMainStack  Main Stack Pointer
 *
 * Assign the value mainStackPointer to the MSP 
 * (main stack pointer) Cortex processor register
 */
extern void __set_MSP(uint32_t topOfMainStack);

/**
 * @brief  Reverse byte order in unsigned short value
 *
 * @param   value  value to reverse
 * @return         reversed value
 *
 * Reverse byte order in unsigned short value
 */
extern uint32_t __REV16(uint16_t value);

/**
 * @brief  Reverse byte order in signed short value with sign extension to integer
 *
 * @param   value  value to reverse
 * @return         reversed value
 *
 * Reverse byte order in signed short value with sign extension to integer
 */
extern int32_t __REVSH(int16_t value);


#if (__ARMCC_VERSION < 400000)

/**
 * @brief  Remove the exclusive lock created by ldrex
 *
 * Removes the exclusive lock which is created by ldrex.
 */
extern void __CLREX(void);

/**
 * @brief  Return the Base Priority value
 *
 * @return BasePriority
 *
 * Return the content of the base priority register
 */
extern uint32_t __get_BASEPRI(void);

/**
 * @brief  Set the Base Priority value
 *
 * @param  basePri  BasePriority
 *
 * Set the base priority register
 */
extern void __set_BASEPRI(uint32_t basePri);

/**
 * @brief  Return the Priority Mask value
 *
 * @return PriMask
 *
 * Return state of the priority mask bit from the priority mask register
 */
extern uint32_t __get_PRIMASK(void);

/**
 * @brief  Set the Priority Mask value
 *
 * @param   priMask  PriMask
 *
 * Set the priority mask bit in the priority mask register
 */
extern void __set_PRIMASK(uint32_t priMask);

/**
 * @brief  Return the Fault Mask value
 *
 * @return FaultMask
 *
 * Return the content of the fault mask register
 */
extern uint32_t __get_FAULTMASK(void);

/**
 * @brief  Set the Fault Mask value
 *
 * @param  faultMask faultMask value
 *
 * Set the fault mask register
 */
extern void __set_FAULTMASK(uint32_t faultMask);

/**
 * @brief  Return the Control Register value
 * 
 * @return Control value
 *
 * Return the content of the control register
 */
extern uint32_t __get_CONTROL(void);

/**
 * @brief  Set the Control Register value
 *
 * @param  control  Control value
 *
 * Set the control register
 */
extern void __set_CONTROL(uint32_t control);

#else  /* (__ARMCC_VERSION >= 400000)  */

/**
 * @brief  Remove the exclusive lock created by ldrex
 *
 * Removes the exclusive lock which is created by ldrex.
 */
#define __CLREX                           __clrex

/**
 * @brief  Return the Base Priority value
 *
 * @return BasePriority
 *
 * Return the content of the base priority register
 */
static __INLINE uint32_t  __get_BASEPRI(void)
{
  register uint32_t __regBasePri         __ASM("basepri");
  return(__regBasePri);
}

/**
 * @brief  Set the Base Priority value
 *
 * @param  basePri  BasePriority
 *
 * Set the base priority register
 */
static __INLINE void __set_BASEPRI(uint32_t basePri)
{
  register uint32_t __regBasePri         __ASM("basepri");
  __regBasePri = (basePri & 0xff);
}

/**
 * @brief  Return the Priority Mask value
 *
 * @return PriMask
 *
 * Return state of the priority mask bit from the priority mask register
 */
static __INLINE uint32_t __get_PRIMASK(void)
{
  register uint32_t __regPriMask         __ASM("primask");
  return(__regPriMask);
}

/**
 * @brief  Set the Priority Mask value
 *
 * @param  priMask  PriMask
 *
 * Set the priority mask bit in the priority mask register
 */
static __INLINE void __set_PRIMASK(uint32_t priMask)
{
  register uint32_t __regPriMask         __ASM("primask");
  __regPriMask = (priMask);
}

/**
 * @brief  Return the Fault Mask value
 *
 * @return FaultMask
 *
 * Return the content of the fault mask register
 */
static __INLINE uint32_t __get_FAULTMASK(void)
{
  register uint32_t __regFaultMask       __ASM("faultmask");
  return(__regFaultMask);
}

/**
 * @brief  Set the Fault Mask value
 *
 * @param  faultMask  faultMask value
 *
 * Set the fault mask register
 */
static __INLINE void __set_FAULTMASK(uint32_t faultMask)
{
  register uint32_t __regFaultMask       __ASM("faultmask");
  __regFaultMask = (faultMask & 1);
}

/**
 * @brief  Return the Control Register value
 * 
 * @return Control value
 *
 * Return the content of the control register
 */
static __INLINE uint32_t __get_CONTROL(void)
{
  register uint32_t __regControl         __ASM("control");
  return(__regControl);
}

/**
 * @brief  Set the Control Register value
 *
 * @param  control  Control value
 *
 * Set the control register
 */
static __INLINE void __set_CONTROL(uint32_t control)
{
  register uint32_t __regControl         __ASM("control");
  __regControl = control;
}

#endif /* __ARMCC_VERSION  */ 



#elif (defined (__ICCARM__)) /*------------------ ICC Compiler -------------------*/
/* IAR iccarm specific functions */

#define __enable_irq                              __enable_interrupt        /*!< global Interrupt enable */
#define __disable_irq                             __disable_interrupt       /*!< global Interrupt disable */

static __INLINE void __enable_fault_irq()         { __ASM ("cpsie f"); }
static __INLINE void __disable_fault_irq()        { __ASM ("cpsid f"); }

#define __NOP                                     __no_operation            /*!< no operation intrinsic in IAR Compiler */ 
static __INLINE  void __WFI()                     { __ASM ("wfi"); }
static __INLINE  void __WFE()                     { __ASM ("wfe"); }
static __INLINE  void __SEV()                     { __ASM ("sev"); }
static __INLINE  void __CLREX()                   { __ASM ("clrex"); }

/* intrinsic void __ISB(void)                                     */
/* intrinsic void __DSB(void)                                     */
/* intrinsic void __DMB(void)                                     */
/* intrinsic void __set_PRIMASK();                                */
/* intrinsic void __get_PRIMASK();                                */
/* intrinsic void __set_FAULTMASK();                              */
/* intrinsic void __get_FAULTMASK();                              */
/* intrinsic uint32_t __REV(uint32_t value);                      */
/* intrinsic uint32_t __REVSH(uint32_t value);                    */
/* intrinsic unsigned long __STREX(unsigned long, unsigned long); */
/* intrinsic unsigned long __LDREX(unsigned long *);              */


/**
 * @brief  Return the Process Stack Pointer
 *
 * @return ProcessStackPointer
 *
 * Return the actual process stack pointer
 */
extern uint32_t __get_PSP(void);

/**
 * @brief  Set the Process Stack Pointer
 *
 * @param  topOfProcStack  Process Stack Pointer
 *
 * Assign the value ProcessStackPointer to the MSP 
 * (process stack pointer) Cortex processor register
 */
extern void __set_PSP(uint32_t topOfProcStack);

/**
 * @brief  Return the Main Stack Pointer
 *
 * @return Main Stack Pointer
 *
 * Return the current value of the MSP (main stack pointer)
 * Cortex processor register
 */
extern uint32_t __get_MSP(void);

/**
 * @brief  Set the Main Stack Pointer
 *
 * @param  topOfMainStack  Main Stack Pointer
 *
 * Assign the value mainStackPointer to the MSP 
 * (main stack pointer) Cortex processor register
 */
extern void __set_MSP(uint32_t topOfMainStack);

/**
 * @brief  Reverse byte order in unsigned short value
 *
 * @param  value  value to reverse
 * @return        reversed value
 *
 * Reverse byte order in unsigned short value
 */
extern uint32_t __REV16(uint16_t value);

/**
 * @brief  Reverse bit order of value
 *
 * @param  value  value to reverse
 * @return        reversed value
 *
 * Reverse bit order of value
 */
extern uint32_t __RBIT(uint32_t value);

/**
 * @brief  LDR Exclusive (8 bit)
 *
 * @param  *addr  address pointer
 * @return        value of (*address)
 *
 * Exclusive LDR command for 8 bit values)
 */
extern uint8_t __LDREXB(uint8_t *addr);

/**
 * @brief  LDR Exclusive (16 bit)
 *
 * @param  *addr  address pointer
 * @return        value of (*address)
 *
 * Exclusive LDR command for 16 bit values
 */
extern uint16_t __LDREXH(uint16_t *addr);

/**
 * @brief  LDR Exclusive (32 bit)
 *
 * @param  *addr  address pointer
 * @return        value of (*address)
 *
 * Exclusive LDR command for 32 bit values
 */
extern uint32_t __LDREXW(uint32_t *addr);

/**
 * @brief  STR Exclusive (8 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 8 bit values
 */
extern uint32_t __STREXB(uint8_t value, uint8_t *addr);

/**
 * @brief  STR Exclusive (16 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 16 bit values
 */
extern uint32_t __STREXH(uint16_t value, uint16_t *addr);

/**
 * @brief  STR Exclusive (32 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 32 bit values
 */
extern uint32_t __STREXW(uint32_t value, uint32_t *addr);



#elif (defined (__GNUC__)) /*------------------ GNU Compiler ---------------------*/
/* GNU gcc specific functions */

static __INLINE void __enable_irq()               { __ASM volatile ("cpsie i"); }
static __INLINE void __disable_irq()              { __ASM volatile ("cpsid i"); }

static __INLINE void __enable_fault_irq()         { __ASM volatile ("cpsie f"); }
static __INLINE void __disable_fault_irq()        { __ASM volatile ("cpsid f"); }

static __INLINE void __NOP()                      { __ASM volatile ("nop"); }
static __INLINE void __WFI()                      { __ASM volatile ("wfi"); }
static __INLINE void __WFE()                      { __ASM volatile ("wfe"); }
static __INLINE void __SEV()                      { __ASM volatile ("sev"); }
static __INLINE void __ISB()                      { __ASM volatile ("isb"); }
static __INLINE void __DSB()                      { __ASM volatile ("dsb"); }
static __INLINE void __DMB()                      { __ASM volatile ("dmb"); }
static __INLINE void __CLREX()                    { __ASM volatile ("clrex"); }


/**
 * @brief  Return the Process Stack Pointer
 *
 * @return ProcessStackPointer
 *
 * Return the actual process stack pointer
 */
extern uint32_t __get_PSP(void);

/**
 * @brief  Set the Process Stack Pointer
 *
 * @param  topOfProcStack  Process Stack Pointer
 *
 * Assign the value ProcessStackPointer to the MSP 
 * (process stack pointer) Cortex processor register
 */
extern void __set_PSP(uint32_t topOfProcStack);

/**
 * @brief  Return the Main Stack Pointer
 *
 * @return Main Stack Pointer
 *
 * Return the current value of the MSP (main stack pointer)
 * Cortex processor register
 */
extern uint32_t __get_MSP(void);

/**
 * @brief  Set the Main Stack Pointer
 *
 * @param  topOfMainStack  Main Stack Pointer
 *
 * Assign the value mainStackPointer to the MSP 
 * (main stack pointer) Cortex processor register
 */
extern void __set_MSP(uint32_t topOfMainStack);

/**
 * @brief  Return the Base Priority value
 *
 * @return BasePriority
 *
 * Return the content of the base priority register
 */
extern uint32_t __get_BASEPRI(void);

/**
 * @brief  Set the Base Priority value
 *
 * @param  basePri  BasePriority
 *
 * Set the base priority register
 */
extern void __set_BASEPRI(uint32_t basePri);

/**
 * @brief  Return the Priority Mask value
 *
 * @return PriMask
 *
 * Return state of the priority mask bit from the priority mask register
 */
extern uint32_t  __get_PRIMASK(void);

/**
 * @brief  Set the Priority Mask value
 *
 * @param  priMask  PriMask
 *
 * Set the priority mask bit in the priority mask register
 */
extern void __set_PRIMASK(uint32_t priMask);

/**
 * @brief  Return the Fault Mask value
 *
 * @return FaultMask
 *
 * Return the content of the fault mask register
 */
extern uint32_t __get_FAULTMASK(void);

/**
 * @brief  Set the Fault Mask value
 *
 * @param  faultMask  faultMask value
 *
 * Set the fault mask register
 */
extern void __set_FAULTMASK(uint32_t faultMask);

/**
 * @brief  Return the Control Register value
* 
*  @return Control value
 *
 * Return the content of the control register
 */
extern uint32_t __get_CONTROL(void);

/**
 * @brief  Set the Control Register value
 *
 * @param  control  Control value
 *
 * Set the control register
 */
extern void __set_CONTROL(uint32_t control);

/**
 * @brief  Reverse byte order in integer value
 *
 * @param  value  value to reverse
 * @return        reversed value
 *
 * Reverse byte order in integer value
 */
extern uint32_t __REV(uint32_t value);

/**
 * @brief  Reverse byte order in unsigned short value
 *
 * @param  value  value to reverse
 * @return        reversed value
 *
 * Reverse byte order in unsigned short value
 */
extern uint32_t __REV16(uint16_t value);

/**
 * @brief  Reverse byte order in signed short value with sign extension to integer
 *
 * @param  value  value to reverse
 * @return        reversed value
 *
 * Reverse byte order in signed short value with sign extension to integer
 */
extern int32_t __REVSH(int16_t value);

/**
 * @brief  Reverse bit order of value
 *
 * @param  value  value to reverse
 * @return        reversed value
 *
 * Reverse bit order of value
 */
extern uint32_t __RBIT(uint32_t value);

/**
 * @brief  LDR Exclusive (8 bit)
 *
 * @param  *addr  address pointer
 * @return        value of (*address)
 *
 * Exclusive LDR command for 8 bit value
 */
extern uint8_t __LDREXB(uint8_t *addr);

/**
 * @brief  LDR Exclusive (16 bit)
 *
 * @param  *addr  address pointer
 * @return        value of (*address)
 *
 * Exclusive LDR command for 16 bit values
 */
extern uint16_t __LDREXH(uint16_t *addr);

/**
 * @brief  LDR Exclusive (32 bit)
 *
 * @param  *addr  address pointer
 * @return        value of (*address)
 *
 * Exclusive LDR command for 32 bit values
 */
extern uint32_t __LDREXW(uint32_t *addr);

/**
 * @brief  STR Exclusive (8 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 8 bit values
 */
extern uint32_t __STREXB(uint8_t value, uint8_t *addr);

/**
 * @brief  STR Exclusive (16 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 16 bit values
 */
extern uint32_t __STREXH(uint16_t value, uint16_t *addr);

/**
 * @brief  STR Exclusive (32 bit)
 *
 * @param  value  value to store
 * @param  *addr  address pointer
 * @return        successful / failed
 *
 * Exclusive STR command for 32 bit values
 */
extern uint32_t __STREXW(uint32_t value, uint32_t *addr);


#elif (defined (__TASKING__)) /*------------------ TASKING Compiler ---------------------*/
/* TASKING carm specific functions */

/*
 * The CMSIS functions have been implemented as intrinsics in the compiler.
 * Please use "carm -?i" to get an up to date list of all instrinsics,
 * Including the CMSIS ones.
 */

#endif


/** @addtogroup CMSIS_CM3_Core_FunctionInterface CMSIS CM3 Core Function Interface
  Core  Function Interface containing:
  - Core NVIC Functions
  - Core SysTick Functions
  - Core Reset Functions
*/
/*@{*/

/* ##########################   NVIC functions  #################################### */

/**
 * @brief  Set the Priority Grouping in NVIC Interrupt Controller
 *
 * @param  PriorityGroup is priority grouping field
 *
 * Set the priority grouping field using the required unlock sequence.
 * The parameter priority_grouping is assigned to the field 
 * SCB->AIRCR [10:8] PRIGROUP field. Only values from 0..7 are used.
 * In case of a conflict between priority grouping and available
 * priority bits (__NVIC_PRIO_BITS) the smallest possible priority group is set.
 */
static __INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
{
  uint32_t reg_value;
  uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);                         /* only values 0..7 are used          */
  
  reg_value  =  SCB->AIRCR;                                                   /* read old register configuration    */
  reg_value &= ~(SCB_AIRCR_VECTKEY_Msk | SCB_AIRCR_PRIGROUP_Msk);             /* clear bits to change               */
  reg_value  =  (reg_value                       |
                (0x5FA << SCB_AIRCR_VECTKEY_Pos) | 
                (PriorityGroupTmp << 8));                                     /* Insert write key and priorty group */
  SCB->AIRCR =  reg_value;
}

/**
 * @brief  Get the Priority Grouping from NVIC Interrupt Controller
 *
 * @return priority grouping field 
 *
 * Get the priority grouping from NVIC Interrupt Controller.
 * priority grouping is SCB->AIRCR [10:8] PRIGROUP field.
 */
static __INLINE uint32_t NVIC_GetPriorityGrouping(void)
{
  return ((SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) >> SCB_AIRCR_PRIGROUP_Pos);   /* read priority grouping field */
}

/**
 * @brief  Enable Interrupt in NVIC Interrupt Controller
 *
 * @param  IRQn   The positive number of the external interrupt to enable
 *
 * Enable a device specific interupt in the NVIC interrupt controller.
 * The interrupt number cannot be a negative value.
 */
static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
{
  NVIC->ISER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* enable interrupt */
}

/**
 * @brief  Disable the interrupt line for external interrupt specified
 * 
 * @param  IRQn   The positive number of the external interrupt to disable
 * 
 * Disable a device specific interupt in the NVIC interrupt controller.
 * The interrupt number cannot be a negative value.
 */
static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
{
  NVIC->ICER[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* disable interrupt */
}

/**
 * @brief  Read the interrupt pending bit for a device specific interrupt source
 * 
 * @param  IRQn    The number of the device specifc interrupt
 * @return         1 = interrupt pending, 0 = interrupt not pending
 *
 * Read the pending register in NVIC and return 1 if its status is pending, 
 * otherwise it returns 0
 */
static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
{
  return((uint32_t) ((NVIC->ISPR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if pending else 0 */
}

/**
 * @brief  Set the pending bit for an external interrupt
 * 
 * @param  IRQn    The number of the interrupt for set pending
 *
 * Set the pending bit for the specified interrupt.
 * The interrupt number cannot be a negative value.
 */
static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
{
  NVIC->ISPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* set interrupt pending */
}

/**
 * @brief  Clear the pending bit for an external interrupt
 *
 * @param  IRQn    The number of the interrupt for clear pending
 *
 * Clear the pending bit for the specified interrupt. 
 * The interrupt number cannot be a negative value.
 */
static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
{
  NVIC->ICPR[((uint32_t)(IRQn) >> 5)] = (1 << ((uint32_t)(IRQn) & 0x1F)); /* Clear pending interrupt */
}

/**
 * @brief  Read the active bit for an external interrupt
 *
 * @param  IRQn    The number of the interrupt for read active bit
 * @return         1 = interrupt active, 0 = interrupt not active
 *
 * Read the active register in NVIC and returns 1 if its status is active, 
 * otherwise it returns 0.
 */
static __INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn)
{
  return((uint32_t)((NVIC->IABR[(uint32_t)(IRQn) >> 5] & (1 << ((uint32_t)(IRQn) & 0x1F)))?1:0)); /* Return 1 if active else 0 */
}

/**
 * @brief  Set the priority for an interrupt
 *
 * @param  IRQn      The number of the interrupt for set priority
 * @param  priority  The priority to set
 *
 * Set the priority for the specified interrupt. The interrupt 
 * number can be positive to specify an external (device specific) 
 * interrupt, or negative to specify an internal (core) interrupt.
 *
 * Note: The priority cannot be set for every core interrupt.
 */
static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
{
  if(IRQn < 0) {
    SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff); } /* set Priority for Cortex-M3 System Interrupts */
  else {
    NVIC->IP[(uint32_t)(IRQn)] = ((priority << (8 - __NVIC_PRIO_BITS)) & 0xff);    }        /* set Priority for device specific Interrupts  */
}

/**
 * @brief  Read the priority for an interrupt
 *
 * @param  IRQn      The number of the interrupt for get priority
 * @return           The priority for the interrupt
 *
 * Read the priority for the specified interrupt. The interrupt 
 * number can be positive to specify an external (device specific) 
 * interrupt, or negative to specify an internal (core) interrupt.
 *
 * The returned priority value is automatically aligned to the implemented
 * priority bits of the microcontroller.
 *
 * Note: The priority cannot be set for every core interrupt.
 */
static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
{

  if(IRQn < 0) {
    return((uint32_t)(SCB->SHP[((uint32_t)(IRQn) & 0xF)-4] >> (8 - __NVIC_PRIO_BITS)));  } /* get priority for Cortex-M3 system interrupts */
  else {
    return((uint32_t)(NVIC->IP[(uint32_t)(IRQn)]           >> (8 - __NVIC_PRIO_BITS)));  } /* get priority for device specific interrupts  */
}


/**
 * @brief  Encode the priority for an interrupt
 *
 * @param  PriorityGroup    The used priority group
 * @param  PreemptPriority  The preemptive priority value (starting from 0)
 * @param  SubPriority      The sub priority value (starting from 0)
 * @return                  The encoded priority for the interrupt
 *
 * Encode the priority for an interrupt with the given priority group,
 * preemptive priority value and sub priority value.
 * In case of a conflict between priority grouping and available
 * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set.
 *
 * The returned priority value can be used for NVIC_SetPriority(...) function
 */
static __INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, uint32_t PreemptPriority, uint32_t SubPriority)
{
  uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);          /* only values 0..7 are used          */
  uint32_t PreemptPriorityBits;
  uint32_t SubPriorityBits;

  PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp;
  SubPriorityBits     = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS;
 
  return (
           ((PreemptPriority & ((1 << (PreemptPriorityBits)) - 1)) << SubPriorityBits) |
           ((SubPriority     & ((1 << (SubPriorityBits    )) - 1)))
         );
}


/**
 * @brief  Decode the priority of an interrupt
 *
 * @param  Priority           The priority for the interrupt
 * @param  PriorityGroup      The used priority group
 * @param  pPreemptPriority   The preemptive priority value (starting from 0)
 * @param  pSubPriority       The sub priority value (starting from 0)
 *
 * Decode an interrupt priority value with the given priority group to 
 * preemptive priority value and sub priority value.
 * In case of a conflict between priority grouping and available
 * priority bits (__NVIC_PRIO_BITS) the samllest possible priority group is set.
 *
 * The priority value can be retrieved with NVIC_GetPriority(...) function
 */
static __INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t PriorityGroup, uint32_t* pPreemptPriority, uint32_t* pSubPriority)
{
  uint32_t PriorityGroupTmp = (PriorityGroup & 0x07);          /* only values 0..7 are used          */
  uint32_t PreemptPriorityBits;
  uint32_t SubPriorityBits;

  PreemptPriorityBits = ((7 - PriorityGroupTmp) > __NVIC_PRIO_BITS) ? __NVIC_PRIO_BITS : 7 - PriorityGroupTmp;
  SubPriorityBits     = ((PriorityGroupTmp + __NVIC_PRIO_BITS) < 7) ? 0 : PriorityGroupTmp - 7 + __NVIC_PRIO_BITS;
  
  *pPreemptPriority = (Priority >> SubPriorityBits) & ((1 << (PreemptPriorityBits)) - 1);
  *pSubPriority     = (Priority                   ) & ((1 << (SubPriorityBits    )) - 1);
}



/* ##################################    SysTick function  ############################################ */

#if (!defined (__Vendor_SysTickConfig)) || (__Vendor_SysTickConfig == 0)

/**
 * @brief  Initialize and start the SysTick counter and its interrupt.
 *
 * @param   ticks   number of ticks between two interrupts
 * @return  1 = failed, 0 = successful
 *
 * Initialise the system tick timer and its interrupt and start the
 * system tick timer / counter in free running mode to generate 
 * periodical interrupts.
 */
static __INLINE uint32_t SysTick_Config(uint32_t ticks)
{ 
  if (ticks > SysTick_LOAD_RELOAD_Msk)  return (1);            /* Reload value impossible */
                                                               
  SysTick->LOAD  = (ticks & SysTick_LOAD_RELOAD_Msk) - 1;      /* set reload register */
  NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);  /* set Priority for Cortex-M0 System Interrupts */
  SysTick->VAL   = 0;                                          /* Load the SysTick Counter Value */
  SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk | 
                   SysTick_CTRL_TICKINT_Msk   | 
                   SysTick_CTRL_ENABLE_Msk;                    /* Enable SysTick IRQ and SysTick Timer */
  return (0);                                                  /* Function successful */
}

#endif




/* ##################################    Reset function  ############################################ */

/**
 * @brief  Initiate a system reset request.
 *
 * Initiate a system reset request to reset the MCU
 */
static __INLINE void NVIC_SystemReset(void)
{
  SCB->AIRCR  = ((0x5FA << SCB_AIRCR_VECTKEY_Pos)      | 
                 (SCB->AIRCR & SCB_AIRCR_PRIGROUP_Msk) | 
                 SCB_AIRCR_SYSRESETREQ_Msk);                   /* Keep priority group unchanged */
  __DSB();                                                     /* Ensure completion of memory access */              
  while(1);                                                    /* wait until reset */
}

/*@}*/ /* end of group CMSIS_CM3_Core_FunctionInterface */



/* ##################################### Debug In/Output function ########################################### */

/** @addtogroup CMSIS_CM3_CoreDebugInterface CMSIS CM3 Core Debug Interface
  Core Debug Interface containing:
  - Core Debug Receive / Transmit Functions
  - Core Debug Defines
  - Core Debug Variables
*/
/*@{*/

extern volatile int ITM_RxBuffer;                    /*!< variable to receive characters                             */
#define             ITM_RXBUFFER_EMPTY    0x5AA55AA5 /*!< value identifying ITM_RxBuffer is ready for next character */


/**
 * @brief  Outputs a character via the ITM channel 0
 *
 * @param  ch   character to output
 * @return      character to output
 *
 * The function outputs a character via the ITM channel 0. 
 * The function returns when no debugger is connected that has booked the output.  
 * It is blocking when a debugger is connected, but the previous character send is not transmitted. 
 */
static __INLINE uint32_t ITM_SendChar (uint32_t ch)
{
  if ((CoreDebug->DEMCR & CoreDebug_DEMCR_TRCENA_Msk)  &&      /* Trace enabled */
      (ITM->TCR & ITM_TCR_ITMENA_Msk)                  &&      /* ITM enabled */
      (ITM->TER & (1ul << 0)        )                    )     /* ITM Port #0 enabled */
  {
    while (ITM->PORT[0].u32 == 0);
    ITM->PORT[0].u8 = (uint8_t) ch;
  }  
  return (ch);
}


/**
 * @brief  Inputs a character via variable ITM_RxBuffer
 *
 * @return      received character, -1 = no character received
 *
 * The function inputs a character via variable ITM_RxBuffer. 
 * The function returns when no debugger is connected that has booked the output.  
 * It is blocking when a debugger is connected, but the previous character send is not transmitted. 
 */
static __INLINE int ITM_ReceiveChar (void) {
  int ch = -1;                               /* no character available */

  if (ITM_RxBuffer != ITM_RXBUFFER_EMPTY) {
    ch = ITM_RxBuffer;
    ITM_RxBuffer = ITM_RXBUFFER_EMPTY;       /* ready for next character */
  }
  
  return (ch); 
}


/**
 * @brief  Check if a character via variable ITM_RxBuffer is available
 *
 * @return      1 = character available, 0 = no character available
 *
 * The function checks  variable ITM_RxBuffer whether a character is available or not. 
 * The function returns '1' if a character is available and '0' if no character is available. 
 */
static __INLINE int ITM_CheckChar (void) {

  if (ITM_RxBuffer == ITM_RXBUFFER_EMPTY) {
    return (0);                                 /* no character available */
  } else {
    return (1);                                 /*    character available */
  }
}

/*@}*/ /* end of group CMSIS_CM3_core_DebugInterface */


#ifdef __cplusplus
}
#endif

/*@}*/ /* end of group CMSIS_CM3_core_definitions */

#endif /* __CM3_CORE_H__ */

/*lint -restore */


================================================
FILE: Libraries/CMSIS/startup/startup_stm32f10x_cl.s
================================================
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
;* File Name          : startup_stm32f10x_cl.s
;* Author             : MCD Application Team
;* Version            : V3.5.0
;* Date               : 11-March-2011
;* Description        : STM32F10x Connectivity line devices vector table for MDK-ARM 
;*                      toolchain. 
;*                      This module performs:
;*                      - Set the initial SP
;*                      - Set the initial PC == Reset_Handler
;*                      - Set the vector table entries with the exceptions ISR address
;*                      - Configure the clock system
;*                      - Branches to __main in the C library (which eventually
;*                        calls main()).
;*                      After Reset the CortexM3 processor is in Thread mode,
;*                      priority is Privileged, and the Stack is set to Main.
;* <<< Use Configuration Wizard in Context Menu >>>   
;*******************************************************************************
; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
;*******************************************************************************

; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp


; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size       EQU     0x00000200

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

                PRESERVE8
                THUMB


; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

__Vectors       DCD     __initial_sp               ; Top of Stack
                DCD     Reset_Handler              ; Reset Handler
                DCD     NMI_Handler                ; NMI Handler
                DCD     HardFault_Handler          ; Hard Fault Handler
                DCD     MemManage_Handler          ; MPU Fault Handler
                DCD     BusFault_Handler           ; Bus Fault Handler
                DCD     UsageFault_Handler         ; Usage Fault Handler
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     SVC_Handler                ; SVCall Handler
                DCD     DebugMon_Handler           ; Debug Monitor Handler
                DCD     0                          ; Reserved
                DCD     PendSV_Handler             ; PendSV Handler
                DCD     SysTick_Handler            ; SysTick Handler

                ; External Interrupts
                DCD     WWDG_IRQHandler            ; Window Watchdog
                DCD     PVD_IRQHandler             ; PVD through EXTI Line detect
                DCD     TAMPER_IRQHandler          ; Tamper
                DCD     RTC_IRQHandler             ; RTC
                DCD     FLASH_IRQHandler           ; Flash
                DCD     RCC_IRQHandler             ; RCC
                DCD     EXTI0_IRQHandler           ; EXTI Line 0
                DCD     EXTI1_IRQHandler           ; EXTI Line 1
                DCD     EXTI2_IRQHandler           ; EXTI Line 2
                DCD     EXTI3_IRQHandler           ; EXTI Line 3
                DCD     EXTI4_IRQHandler           ; EXTI Line 4
                DCD     DMA1_Channel1_IRQHandler   ; DMA1 Channel 1
                DCD     DMA1_Channel2_IRQHandler   ; DMA1 Channel 2
                DCD     DMA1_Channel3_IRQHandler   ; DMA1 Channel 3
                DCD     DMA1_Channel4_IRQHandler   ; DMA1 Channel 4
                DCD     DMA1_Channel5_IRQHandler   ; DMA1 Channel 5
                DCD     DMA1_Channel6_IRQHandler   ; DMA1 Channel 6
                DCD     DMA1_Channel7_IRQHandler   ; DMA1 Channel 7
                DCD     ADC1_2_IRQHandler          ; ADC1 and ADC2
                DCD     CAN1_TX_IRQHandler         ; CAN1 TX
                DCD     CAN1_RX0_IRQHandler        ; CAN1 RX0
                DCD     CAN1_RX1_IRQHandler        ; CAN1 RX1
                DCD     CAN1_SCE_IRQHandler        ; CAN1 SCE
                DCD     EXTI9_5_IRQHandler         ; EXTI Line 9..5
                DCD     TIM1_BRK_IRQHandler        ; TIM1 Break
                DCD     TIM1_UP_IRQHandler         ; TIM1 Update
                DCD     TIM1_TRG_COM_IRQHandler    ; TIM1 Trigger and Commutation
                DCD     TIM1_CC_IRQHandler         ; TIM1 Capture Compare
                DCD     TIM2_IRQHandler            ; TIM2
                DCD     TIM3_IRQHandler            ; TIM3
                DCD     TIM4_IRQHandler            ; TIM4
                DCD     I2C1_EV_IRQHandler         ; I2C1 Event
                DCD     I2C1_ER_IRQHandler         ; I2C1 Error
                DCD     I2C2_EV_IRQHandler         ; I2C2 Event
                DCD     I2C2_ER_IRQHandler         ; I2C1 Error
                DCD     SPI1_IRQHandler            ; SPI1
                DCD     SPI2_IRQHandler            ; SPI2
                DCD     USART1_IRQHandler          ; USART1
                DCD     USART2_IRQHandler          ; USART2
                DCD     USART3_IRQHandler          ; USART3
                DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10
                DCD     RTCAlarm_IRQHandler        ; RTC alarm through EXTI line
                DCD     OTG_FS_WKUP_IRQHandler     ; USB OTG FS Wakeup through EXTI line
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     TIM5_IRQHandler            ; TIM5
                DCD     SPI3_IRQHandler            ; SPI3
                DCD     UART4_IRQHandler           ; UART4
                DCD     UART5_IRQHandler           ; UART5
                DCD     TIM6_IRQHandler            ; TIM6
                DCD     TIM7_IRQHandler            ; TIM7
                DCD     DMA2_Channel1_IRQHandler   ; DMA2 Channel1
                DCD     DMA2_Channel2_IRQHandler   ; DMA2 Channel2
                DCD     DMA2_Channel3_IRQHandler   ; DMA2 Channel3
                DCD     DMA2_Channel4_IRQHandler   ; DMA2 Channel4
                DCD     DMA2_Channel5_IRQHandler   ; DMA2 Channel5
                DCD     ETH_IRQHandler             ; Ethernet
                DCD     ETH_WKUP_IRQHandler        ; Ethernet Wakeup through EXTI line
                DCD     CAN2_TX_IRQHandler         ; CAN2 TX
                DCD     CAN2_RX0_IRQHandler        ; CAN2 RX0
                DCD     CAN2_RX1_IRQHandler        ; CAN2 RX1
                DCD     CAN2_SCE_IRQHandler        ; CAN2 SCE
                DCD     OTG_FS_IRQHandler          ; USB OTG FS
__Vectors_End

__Vectors_Size  EQU  __Vectors_End - __Vectors

                AREA    |.text|, CODE, READONLY

; Reset handler
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
        IMPORT  SystemInit
        IMPORT  __main
                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP

; Dummy Exception Handlers (infinite loops which can be modified)

NMI_Handler     PROC
                EXPORT  NMI_Handler                [WEAK]
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler          [WEAK]
                B       .
                ENDP
MemManage_Handler\
                PROC
                EXPORT  MemManage_Handler          [WEAK]
                B       .
                ENDP
BusFault_Handler\
                PROC
                EXPORT  BusFault_Handler           [WEAK]
                B       .
                ENDP
UsageFault_Handler\
                PROC
                EXPORT  UsageFault_Handler         [WEAK]
                B       .
                ENDP
SVC_Handler     PROC
                EXPORT  SVC_Handler                [WEAK]
                B       .
                ENDP
DebugMon_Handler\
                PROC
                EXPORT  DebugMon_Handler           [WEAK]
                B       .
                ENDP
PendSV_Handler  PROC
                EXPORT  PendSV_Handler             [WEAK]
                B       .
                ENDP
SysTick_Handler PROC
                EXPORT  SysTick_Handler            [WEAK]
                B       .
                ENDP

Default_Handler PROC

                EXPORT  WWDG_IRQHandler            [WEAK]
                EXPORT  PVD_IRQHandler             [WEAK]
                EXPORT  TAMPER_IRQHandler          [WEAK]
                EXPORT  RTC_IRQHandler             [WEAK]
                EXPORT  FLASH_IRQHandler           [WEAK]
                EXPORT  RCC_IRQHandler             [WEAK]
                EXPORT  EXTI0_IRQHandler           [WEAK]
                EXPORT  EXTI1_IRQHandler           [WEAK]
                EXPORT  EXTI2_IRQHandler           [WEAK]
                EXPORT  EXTI3_IRQHandler           [WEAK]
                EXPORT  EXTI4_IRQHandler           [WEAK]
                EXPORT  DMA1_Channel1_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel2_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel3_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel4_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel5_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel6_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel7_IRQHandler   [WEAK]
                EXPORT  ADC1_2_IRQHandler          [WEAK]
                EXPORT  CAN1_TX_IRQHandler         [WEAK]
                EXPORT  CAN1_RX0_IRQHandler        [WEAK]
                EXPORT  CAN1_RX1_IRQHandler        [WEAK]
                EXPORT  CAN1_SCE_IRQHandler        [WEAK]
                EXPORT  EXTI9_5_IRQHandler         [WEAK]
                EXPORT  TIM1_BRK_IRQHandler        [WEAK]
                EXPORT  TIM1_UP_IRQHandler         [WEAK]
                EXPORT  TIM1_TRG_COM_IRQHandler    [WEAK]
                EXPORT  TIM1_CC_IRQHandler         [WEAK]
                EXPORT  TIM2_IRQHandler            [WEAK]
                EXPORT  TIM3_IRQHandler            [WEAK]
                EXPORT  TIM4_IRQHandler            [WEAK]
                EXPORT  I2C1_EV_IRQHandler         [WEAK]
                EXPORT  I2C1_ER_IRQHandler         [WEAK]
                EXPORT  I2C2_EV_IRQHandler         [WEAK]
                EXPORT  I2C2_ER_IRQHandler         [WEAK]
                EXPORT  SPI1_IRQHandler            [WEAK]
                EXPORT  SPI2_IRQHandler            [WEAK]
                EXPORT  USART1_IRQHandler          [WEAK]
                EXPORT  USART2_IRQHandler          [WEAK]
                EXPORT  USART3_IRQHandler          [WEAK]
                EXPORT  EXTI15_10_IRQHandler       [WEAK]
                EXPORT  RTCAlarm_IRQHandler        [WEAK]
                EXPORT  OTG_FS_WKUP_IRQHandler     [WEAK]
                EXPORT  TIM5_IRQHandler            [WEAK]
                EXPORT  SPI3_IRQHandler            [WEAK]
                EXPORT  UART4_IRQHandler           [WEAK]
                EXPORT  UART5_IRQHandler           [WEAK]
                EXPORT  TIM6_IRQHandler            [WEAK]
                EXPORT  TIM7_IRQHandler            [WEAK]
                EXPORT  DMA2_Channel1_IRQHandler   [WEAK]
                EXPORT  DMA2_Channel2_IRQHandler   [WEAK]
                EXPORT  DMA2_Channel3_IRQHandler   [WEAK]
                EXPORT  DMA2_Channel4_IRQHandler   [WEAK]
                EXPORT  DMA2_Channel5_IRQHandler   [WEAK]
                EXPORT  ETH_IRQHandler             [WEAK]
                EXPORT  ETH_WKUP_IRQHandler        [WEAK]
                EXPORT  CAN2_TX_IRQHandler         [WEAK]
                EXPORT  CAN2_RX0_IRQHandler        [WEAK]
                EXPORT  CAN2_RX1_IRQHandler        [WEAK]
                EXPORT  CAN2_SCE_IRQHandler        [WEAK]
                EXPORT  OTG_FS_IRQHandler          [WEAK]

WWDG_IRQHandler
PVD_IRQHandler
TAMPER_IRQHandler
RTC_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
DMA1_Channel1_IRQHandler
DMA1_Channel2_IRQHandler
DMA1_Channel3_IRQHandler
DMA1_Channel4_IRQHandler
DMA1_Channel5_IRQHandler
DMA1_Channel6_IRQHandler
DMA1_Channel7_IRQHandler
ADC1_2_IRQHandler
CAN1_TX_IRQHandler
CAN1_RX0_IRQHandler
CAN1_RX1_IRQHandler
CAN1_SCE_IRQHandler
EXTI9_5_IRQHandler
TIM1_BRK_IRQHandler
TIM1_UP_IRQHandler
TIM1_TRG_COM_IRQHandler
TIM1_CC_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
TIM4_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
I2C2_EV_IRQHandler
I2C2_ER_IRQHandler
SPI1_IRQHandler
SPI2_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
EXTI15_10_IRQHandler
RTCAlarm_IRQHandler
OTG_FS_WKUP_IRQHandler
TIM5_IRQHandler
SPI3_IRQHandler
UART4_IRQHandler
UART5_IRQHandler
TIM6_IRQHandler
TIM7_IRQHandler
DMA2_Channel1_IRQHandler
DMA2_Channel2_IRQHandler
DMA2_Channel3_IRQHandler
DMA2_Channel4_IRQHandler
DMA2_Channel5_IRQHandler
ETH_IRQHandler
ETH_WKUP_IRQHandler
CAN2_TX_IRQHandler
CAN2_RX0_IRQHandler
CAN2_RX1_IRQHandler
CAN2_SCE_IRQHandler
OTG_FS_IRQHandler

                B       .

                ENDP

                ALIGN

;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
                 IF      :DEF:__MICROLIB
                
                 EXPORT  __initial_sp
                 EXPORT  __heap_base
                 EXPORT  __heap_limit
                
                 ELSE
                
                 IMPORT  __use_two_region_memory
                 EXPORT  __user_initial_stackheap
                 
__user_initial_stackheap

                 LDR     R0, =  Heap_Mem
                 LDR     R1, =(Stack_Mem + Stack_Size)
                 LDR     R2, = (Heap_Mem +  Heap_Size)
                 LDR     R3, = Stack_Mem
                 BX      LR

                 ALIGN

                 ENDIF

                 END

;******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE*****


================================================
FILE: Libraries/CMSIS/startup/startup_stm32f10x_hd.s
================================================
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
;* File Name          : startup_stm32f10x_hd.s
;* Author             : MCD Application Team
;* Version            : V3.5.0
;* Date               : 11-March-2011
;* Description        : STM32F10x High Density Devices vector table for MDK-ARM 
;*                      toolchain. 
;*                      This module performs:
;*                      - Set the initial SP
;*                      - Set the initial PC == Reset_Handler
;*                      - Set the vector table entries with the exceptions ISR address
;*                      - Configure the clock system and also configure the external 
;*                        SRAM mounted on STM3210E-EVAL board to be used as data 
;*                        memory (optional, to be enabled by user)
;*                      - Branches to __main in the C library (which eventually
;*                        calls main()).
;*                      After Reset the CortexM3 processor is in Thread mode,
;*                      priority is Privileged, and the Stack is set to Main.
;* <<< Use Configuration Wizard in Context Menu >>>   
;*******************************************************************************
; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
;*******************************************************************************

; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp
                                                  
; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size       EQU     0x00000200

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

                PRESERVE8
                THUMB


; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

__Vectors       DCD     __initial_sp               ; Top of Stack
                DCD     Reset_Handler              ; Reset Handler
                DCD     NMI_Handler                ; NMI Handler
                DCD     HardFault_Handler          ; Hard Fault Handler
                DCD     MemManage_Handler          ; MPU Fault Handler
                DCD     BusFault_Handler           ; Bus Fault Handler
                DCD     UsageFault_Handler         ; Usage Fault Handler
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     SVC_Handler                ; SVCall Handler
                DCD     DebugMon_Handler           ; Debug Monitor Handler
                DCD     0                          ; Reserved
                DCD     PendSV_Handler             ; PendSV Handler
                DCD     SysTick_Handler            ; SysTick Handler

                ; External Interrupts
                DCD     WWDG_IRQHandler            ; Window Watchdog
                DCD     PVD_IRQHandler             ; PVD through EXTI Line detect
                DCD     TAMPER_IRQHandler          ; Tamper
                DCD     RTC_IRQHandler             ; RTC
                DCD     FLASH_IRQHandler           ; Flash
                DCD     RCC_IRQHandler             ; RCC
                DCD     EXTI0_IRQHandler           ; EXTI Line 0
                DCD     EXTI1_IRQHandler           ; EXTI Line 1
                DCD     EXTI2_IRQHandler           ; EXTI Line 2
                DCD     EXTI3_IRQHandler           ; EXTI Line 3
                DCD     EXTI4_IRQHandler           ; EXTI Line 4
                DCD     DMA1_Channel1_IRQHandler   ; DMA1 Channel 1
                DCD     DMA1_Channel2_IRQHandler   ; DMA1 Channel 2
                DCD     DMA1_Channel3_IRQHandler   ; DMA1 Channel 3
                DCD     DMA1_Channel4_IRQHandler   ; DMA1 Channel 4
                DCD     DMA1_Channel5_IRQHandler   ; DMA1 Channel 5
                DCD     DMA1_Channel6_IRQHandler   ; DMA1 Channel 6
                DCD     DMA1_Channel7_IRQHandler   ; DMA1 Channel 7
                DCD     ADC1_2_IRQHandler          ; ADC1 & ADC2
                DCD     USB_HP_CAN1_TX_IRQHandler  ; USB High Priority or CAN1 TX
                DCD     USB_LP_CAN1_RX0_IRQHandler ; USB Low  Priority or CAN1 RX0
                DCD     CAN1_RX1_IRQHandler        ; CAN1 RX1
                DCD     CAN1_SCE_IRQHandler        ; CAN1 SCE
                DCD     EXTI9_5_IRQHandler         ; EXTI Line 9..5
                DCD     TIM1_BRK_IRQHandler        ; TIM1 Break
                DCD     TIM1_UP_IRQHandler         ; TIM1 Update
                DCD     TIM1_TRG_COM_IRQHandler    ; TIM1 Trigger and Commutation
                DCD     TIM1_CC_IRQHandler         ; TIM1 Capture Compare
                DCD     TIM2_IRQHandler            ; TIM2
                DCD     TIM3_IRQHandler            ; TIM3
                DCD     TIM4_IRQHandler            ; TIM4
                DCD     I2C1_EV_IRQHandler         ; I2C1 Event
                DCD     I2C1_ER_IRQHandler         ; I2C1 Error
                DCD     I2C2_EV_IRQHandler         ; I2C2 Event
                DCD     I2C2_ER_IRQHandler         ; I2C2 Error
                DCD     SPI1_IRQHandler            ; SPI1
                DCD     SPI2_IRQHandler            ; SPI2
                DCD     USART1_IRQHandler          ; USART1
                DCD     USART2_IRQHandler          ; USART2
                DCD     USART3_IRQHandler          ; USART3
                DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10
                DCD     RTCAlarm_IRQHandler        ; RTC Alarm through EXTI Line
                DCD     USBWakeUp_IRQHandler       ; USB Wakeup from suspend
                DCD     TIM8_BRK_IRQHandler        ; TIM8 Break
                DCD     TIM8_UP_IRQHandler         ; TIM8 Update
                DCD     TIM8_TRG_COM_IRQHandler    ; TIM8 Trigger and Commutation
                DCD     TIM8_CC_IRQHandler         ; TIM8 Capture Compare
                DCD     ADC3_IRQHandler            ; ADC3
                DCD     FSMC_IRQHandler            ; FSMC
                DCD     SDIO_IRQHandler            ; SDIO
                DCD     TIM5_IRQHandler            ; TIM5
                DCD     SPI3_IRQHandler            ; SPI3
                DCD     UART4_IRQHandler           ; UART4
                DCD     UART5_IRQHandler           ; UART5
                DCD     TIM6_IRQHandler            ; TIM6
                DCD     TIM7_IRQHandler            ; TIM7
                DCD     DMA2_Channel1_IRQHandler   ; DMA2 Channel1
                DCD     DMA2_Channel2_IRQHandler   ; DMA2 Channel2
                DCD     DMA2_Channel3_IRQHandler   ; DMA2 Channel3
                DCD     DMA2_Channel4_5_IRQHandler ; DMA2 Channel4 & Channel5
__Vectors_End

__Vectors_Size  EQU  __Vectors_End - __Vectors

                AREA    |.text|, CODE, READONLY
                
; Reset handler
Reset_Handler   PROC
                EXPORT  Reset_Handler             [WEAK]
                IMPORT  __main
                IMPORT  SystemInit
                LDR     R0, =SystemInit
                BLX     R0               
                LDR     R0, =__main
                BX      R0
                ENDP
                
; Dummy Exception Handlers (infinite loops which can be modified)

NMI_Handler     PROC
                EXPORT  NMI_Handler                [WEAK]
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler          [WEAK]
                B       .
                ENDP
MemManage_Handler\
                PROC
                EXPORT  MemManage_Handler          [WEAK]
                B       .
                ENDP
BusFault_Handler\
                PROC
                EXPORT  BusFault_Handler           [WEAK]
                B       .
                ENDP
UsageFault_Handler\
                PROC
                EXPORT  UsageFault_Handler         [WEAK]
                B       .
                ENDP
SVC_Handler     PROC
                EXPORT  SVC_Handler                [WEAK]
                B       .
                ENDP
DebugMon_Handler\
                PROC
                EXPORT  DebugMon_Handler           [WEAK]
                B       .
                ENDP
PendSV_Handler  PROC
                EXPORT  PendSV_Handler             [WEAK]
                B       .
                ENDP
SysTick_Handler PROC
                EXPORT  SysTick_Handler            [WEAK]
                B       .
                ENDP

Default_Handler PROC

                EXPORT  WWDG_IRQHandler            [WEAK]
                EXPORT  PVD_IRQHandler             [WEAK]
                EXPORT  TAMPER_IRQHandler          [WEAK]
                EXPORT  RTC_IRQHandler             [WEAK]
                EXPORT  FLASH_IRQHandler           [WEAK]
                EXPORT  RCC_IRQHandler             [WEAK]
                EXPORT  EXTI0_IRQHandler           [WEAK]
                EXPORT  EXTI1_IRQHandler           [WEAK]
                EXPORT  EXTI2_IRQHandler           [WEAK]
                EXPORT  EXTI3_IRQHandler           [WEAK]
                EXPORT  EXTI4_IRQHandler           [WEAK]
                EXPORT  DMA1_Channel1_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel2_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel3_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel4_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel5_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel6_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel7_IRQHandler   [WEAK]
                EXPORT  ADC1_2_IRQHandler          [WEAK]
                EXPORT  USB_HP_CAN1_TX_IRQHandler  [WEAK]
                EXPORT  USB_LP_CAN1_RX0_IRQHandler [WEAK]
                EXPORT  CAN1_RX1_IRQHandler        [WEAK]
                EXPORT  CAN1_SCE_IRQHandler        [WEAK]
                EXPORT  EXTI9_5_IRQHandler         [WEAK]
                EXPORT  TIM1_BRK_IRQHandler        [WEAK]
                EXPORT  TIM1_UP_IRQHandler         [WEAK]
                EXPORT  TIM1_TRG_COM_IRQHandler    [WEAK]
                EXPORT  TIM1_CC_IRQHandler         [WEAK]
                EXPORT  TIM2_IRQHandler            [WEAK]
                EXPORT  TIM3_IRQHandler            [WEAK]
                EXPORT  TIM4_IRQHandler            [WEAK]
                EXPORT  I2C1_EV_IRQHandler         [WEAK]
                EXPORT  I2C1_ER_IRQHandler         [WEAK]
                EXPORT  I2C2_EV_IRQHandler         [WEAK]
                EXPORT  I2C2_ER_IRQHandler         [WEAK]
                EXPORT  SPI1_IRQHandler            [WEAK]
                EXPORT  SPI2_IRQHandler            [WEAK]
                EXPORT  USART1_IRQHandler          [WEAK]
                EXPORT  USART2_IRQHandler          [WEAK]
                EXPORT  USART3_IRQHandler          [WEAK]
                EXPORT  EXTI15_10_IRQHandler       [WEAK]
                EXPORT  RTCAlarm_IRQHandler        [WEAK]
                EXPORT  USBWakeUp_IRQHandler       [WEAK]
                EXPORT  TIM8_BRK_IRQHandler        [WEAK]
                EXPORT  TIM8_UP_IRQHandler         [WEAK]
                EXPORT  TIM8_TRG_COM_IRQHandler    [WEAK]
                EXPORT  TIM8_CC_IRQHandler         [WEAK]
                EXPORT  ADC3_IRQHandler            [WEAK]
                EXPORT  FSMC_IRQHandler            [WEAK]
                EXPORT  SDIO_IRQHandler            [WEAK]
                EXPORT  TIM5_IRQHandler            [WEAK]
                EXPORT  SPI3_IRQHandler            [WEAK]
                EXPORT  UART4_IRQHandler           [WEAK]
                EXPORT  UART5_IRQHandler           [WEAK]
                EXPORT  TIM6_IRQHandler            [WEAK]
                EXPORT  TIM7_IRQHandler            [WEAK]
                EXPORT  DMA2_Channel1_IRQHandler   [WEAK]
                EXPORT  DMA2_Channel2_IRQHandler   [WEAK]
                EXPORT  DMA2_Channel3_IRQHandler   [WEAK]
                EXPORT  DMA2_Channel4_5_IRQHandler [WEAK]

WWDG_IRQHandler
PVD_IRQHandler
TAMPER_IRQHandler
RTC_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
DMA1_Channel1_IRQHandler
DMA1_Channel2_IRQHandler
DMA1_Channel3_IRQHandler
DMA1_Channel4_IRQHandler
DMA1_Channel5_IRQHandler
DMA1_Channel6_IRQHandler
DMA1_Channel7_IRQHandler
ADC1_2_IRQHandler
USB_HP_CAN1_TX_IRQHandler
USB_LP_CAN1_RX0_IRQHandler
CAN1_RX1_IRQHandler
CAN1_SCE_IRQHandler
EXTI9_5_IRQHandler
TIM1_BRK_IRQHandler
TIM1_UP_IRQHandler
TIM1_TRG_COM_IRQHandler
TIM1_CC_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
TIM4_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
I2C2_EV_IRQHandler
I2C2_ER_IRQHandler
SPI1_IRQHandler
SPI2_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
EXTI15_10_IRQHandler
RTCAlarm_IRQHandler
USBWakeUp_IRQHandler
TIM8_BRK_IRQHandler
TIM8_UP_IRQHandler
TIM8_TRG_COM_IRQHandler
TIM8_CC_IRQHandler
ADC3_IRQHandler
FSMC_IRQHandler
SDIO_IRQHandler
TIM5_IRQHandler
SPI3_IRQHandler
UART4_IRQHandler
UART5_IRQHandler
TIM6_IRQHandler
TIM7_IRQHandler
DMA2_Channel1_IRQHandler
DMA2_Channel2_IRQHandler
DMA2_Channel3_IRQHandler
DMA2_Channel4_5_IRQHandler
                B       .

                ENDP

                ALIGN

;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
                 IF      :DEF:__MICROLIB
                
                 EXPORT  __initial_sp
                 EXPORT  __heap_base
                 EXPORT  __heap_limit
                
                 ELSE
                
                 IMPORT  __use_two_region_memory
                 EXPORT  __user_initial_stackheap
                 
__user_initial_stackheap

                 LDR     R0, =  Heap_Mem
                 LDR     R1, =(Stack_Mem + Stack_Size)
                 LDR     R2, = (Heap_Mem +  Heap_Size)
                 LDR     R3, = Stack_Mem
                 BX      LR

                 ALIGN

                 ENDIF

                 END

;******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE*****


================================================
FILE: Libraries/CMSIS/startup/startup_stm32f10x_hd_vl.s
================================================
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
;* File Name          : startup_stm32f10x_hd_vl.s
;* Author             : MCD Application Team
;* Version            : V3.5.0
;* Date               : 11-March-2011
;* Description        : STM32F10x High Density Value Line Devices vector table  
;*                      for MDK-ARM toolchain.  
;*                      This module performs:
;*                      - Set the initial SP
;*                      - Set the initial PC == Reset_Handler
;*                      - Set the vector table entries with the exceptions ISR address
;*                      - Configure the clock system and also configure the external 
;*                        SRAM mounted on STM32100E-EVAL board to be used as data 
;*                        memory (optional, to be enabled by user)
;*                      - Branches to __main in the C library (which eventually
;*                        calls main()).
;*                      After Reset the CortexM3 processor is in Thread mode,
;*                      priority is Privileged, and the Stack is set to Main.
;* <<< Use Configuration Wizard in Context Menu >>>   
;*******************************************************************************
; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
;*******************************************************************************

; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp


; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size       EQU     0x00000200

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

                PRESERVE8
                THUMB


; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

__Vectors       DCD     __initial_sp                    ; Top of Stack
                DCD     Reset_Handler                   ; Reset Handler
                DCD     NMI_Handler                     ; NMI Handler
                DCD     HardFault_Handler               ; Hard Fault Handler
                DCD     MemManage_Handler               ; MPU Fault Handler
                DCD     BusFault_Handler                ; Bus Fault Handler
                DCD     UsageFault_Handler              ; Usage Fault Handler
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     SVC_Handler                     ; SVCall Handler
                DCD     DebugMon_Handler                ; Debug Monitor Handler
                DCD     0                               ; Reserved
                DCD     PendSV_Handler                  ; PendSV Handler
                DCD     SysTick_Handler                 ; SysTick Handler

                ; External Interrupts
                DCD     WWDG_IRQHandler                 ; Window Watchdog
                DCD     PVD_IRQHandler                  ; PVD through EXTI Line detect
                DCD     TAMPER_IRQHandler               ; Tamper
                DCD     RTC_IRQHandler                  ; RTC
                DCD     FLASH_IRQHandler                ; Flash
                DCD     RCC_IRQHandler                  ; RCC
                DCD     EXTI0_IRQHandler                ; EXTI Line 0
                DCD     EXTI1_IRQHandler                ; EXTI Line 1
                DCD     EXTI2_IRQHandler                ; EXTI Line 2
                DCD     EXTI3_IRQHandler                ; EXTI Line 3
                DCD     EXTI4_IRQHandler                ; EXTI Line 4
                DCD     DMA1_Channel1_IRQHandler        ; DMA1 Channel 1
                DCD     DMA1_Channel2_IRQHandler        ; DMA1 Channel 2
                DCD     DMA1_Channel3_IRQHandler        ; DMA1 Channel 3
                DCD     DMA1_Channel4_IRQHandler        ; DMA1 Channel 4
                DCD     DMA1_Channel5_IRQHandler        ; DMA1 Channel 5
                DCD     DMA1_Channel6_IRQHandler        ; DMA1 Channel 6
                DCD     DMA1_Channel7_IRQHandler        ; DMA1 Channel 7
                DCD     ADC1_IRQHandler                 ; ADC1
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     EXTI9_5_IRQHandler              ; EXTI Line 9..5
                DCD     TIM1_BRK_TIM15_IRQHandler       ; TIM1 Break and TIM15
                DCD     TIM1_UP_TIM16_IRQHandler        ; TIM1 Update and TIM16
                DCD     TIM1_TRG_COM_TIM17_IRQHandler   ; TIM1 Trigger and Commutation and TIM17
                DCD     TIM1_CC_IRQHandler              ; TIM1 Capture Compare
                DCD     TIM2_IRQHandler                 ; TIM2
                DCD     TIM3_IRQHandler                 ; TIM3
                DCD     TIM4_IRQHandler                 ; TIM4
                DCD     I2C1_EV_IRQHandler              ; I2C1 Event
                DCD     I2C1_ER_IRQHandler              ; I2C1 Error
                DCD     I2C2_EV_IRQHandler              ; I2C2 Event
                DCD     I2C2_ER_IRQHandler              ; I2C2 Error
                DCD     SPI1_IRQHandler                 ; SPI1
                DCD     SPI2_IRQHandler                 ; SPI2
                DCD     USART1_IRQHandler               ; USART1
                DCD     USART2_IRQHandler               ; USART2
                DCD     USART3_IRQHandler               ; USART3
                DCD     EXTI15_10_IRQHandler            ; EXTI Line 15..10
                DCD     RTCAlarm_IRQHandler             ; RTC Alarm through EXTI Line
                DCD     CEC_IRQHandler                  ; HDMI-CEC
                DCD     TIM12_IRQHandler                ; TIM12
                DCD     TIM13_IRQHandler                ; TIM13 
                DCD     TIM14_IRQHandler                ; TIM14
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     TIM5_IRQHandler                 ; TIM5
                DCD     SPI3_IRQHandler                 ; SPI3
                DCD     UART4_IRQHandler                ; UART4
                DCD     UART5_IRQHandler                ; UART5
                DCD     TIM6_DAC_IRQHandler             ; TIM6 and DAC underrun
                DCD     TIM7_IRQHandler                 ; TIM7
                DCD     DMA2_Channel1_IRQHandler        ; DMA2 Channel1
                DCD     DMA2_Channel2_IRQHandler        ; DMA2 Channel2
                DCD     DMA2_Channel3_IRQHandler        ; DMA2 Channel3
                DCD     DMA2_Channel4_5_IRQHandler      ; DMA2 Channel4 & Channel5
                DCD     DMA2_Channel5_IRQHandler        ; DMA2 Channel5                
__Vectors_End

__Vectors_Size  EQU  __Vectors_End - __Vectors

                AREA    |.text|, CODE, READONLY

; Reset handler
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
     IMPORT  __main
     IMPORT  SystemInit
                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP

; Dummy Exception Handlers (infinite loops which can be modified)

NMI_Handler     PROC
                EXPORT  NMI_Handler                      [WEAK]
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler                [WEAK]
                B       .
                ENDP
MemManage_Handler\
                PROC
                EXPORT  MemManage_Handler                [WEAK]
                B       .
                ENDP
BusFault_Handler\
                PROC
                EXPORT  BusFault_Handler                 [WEAK]
                B       .
                ENDP
UsageFault_Handler\
                PROC
                EXPORT  UsageFault_Handler               [WEAK]
                B       .
                ENDP
SVC_Handler     PROC
                EXPORT  SVC_Handler                      [WEAK]
                B       .
                ENDP
DebugMon_Handler\
                PROC
                EXPORT  DebugMon_Handler                 [WEAK]
                B       .
                ENDP
PendSV_Handler  PROC
                EXPORT  PendSV_Handler                   [WEAK]
                B       .
                ENDP
SysTick_Handler PROC
                EXPORT  SysTick_Handler                  [WEAK]
                B       .
                ENDP

Default_Handler PROC

                EXPORT  WWDG_IRQHandler                  [WEAK]
                EXPORT  PVD_IRQHandler                   [WEAK]
                EXPORT  TAMPER_IRQHandler                [WEAK]
                EXPORT  RTC_IRQHandler                   [WEAK]
                EXPORT  FLASH_IRQHandler                 [WEAK]
                EXPORT  RCC_IRQHandler                   [WEAK]
                EXPORT  EXTI0_IRQHandler                 [WEAK]
                EXPORT  EXTI1_IRQHandler                 [WEAK]
                EXPORT  EXTI2_IRQHandler                 [WEAK]
                EXPORT  EXTI3_IRQHandler                 [WEAK]
                EXPORT  EXTI4_IRQHandler                 [WEAK]
                EXPORT  DMA1_Channel1_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel2_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel3_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel4_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel5_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel6_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel7_IRQHandler         [WEAK]
                EXPORT  ADC1_IRQHandler                  [WEAK]
                EXPORT  EXTI9_5_IRQHandler               [WEAK]
                EXPORT  TIM1_BRK_TIM15_IRQHandler        [WEAK]
                EXPORT  TIM1_UP_TIM16_IRQHandler         [WEAK]
                EXPORT  TIM1_TRG_COM_TIM17_IRQHandler    [WEAK]
                EXPORT  TIM1_CC_IRQHandler               [WEAK]
                EXPORT  TIM2_IRQHandler                  [WEAK]
                EXPORT  TIM3_IRQHandler                  [WEAK]
                EXPORT  TIM4_IRQHandler                  [WEAK]
                EXPORT  I2C1_EV_IRQHandler               [WEAK]
                EXPORT  I2C1_ER_IRQHandler               [WEAK]
                EXPORT  I2C2_EV_IRQHandler               [WEAK]
                EXPORT  I2C2_ER_IRQHandler               [WEAK]
                EXPORT  SPI1_IRQHandler                  [WEAK]
                EXPORT  SPI2_IRQHandler                  [WEAK]
                EXPORT  USART1_IRQHandler                [WEAK]
                EXPORT  USART2_IRQHandler                [WEAK]
                EXPORT  USART3_IRQHandler                [WEAK]
                EXPORT  EXTI15_10_IRQHandler             [WEAK]
                EXPORT  RTCAlarm_IRQHandler              [WEAK]
                EXPORT  CEC_IRQHandler                   [WEAK]
                EXPORT  TIM12_IRQHandler                 [WEAK]
                EXPORT  TIM13_IRQHandler                 [WEAK]
                EXPORT  TIM14_IRQHandler                 [WEAK]
                EXPORT  TIM5_IRQHandler                  [WEAK]
                EXPORT  SPI3_IRQHandler                  [WEAK]
                EXPORT  UART4_IRQHandler                 [WEAK]
                EXPORT  UART5_IRQHandler                 [WEAK]                
                EXPORT  TIM6_DAC_IRQHandler              [WEAK]
                EXPORT  TIM7_IRQHandler                  [WEAK]
                EXPORT  DMA2_Channel1_IRQHandler         [WEAK]
                EXPORT  DMA2_Channel2_IRQHandler         [WEAK]
                EXPORT  DMA2_Channel3_IRQHandler         [WEAK]
                EXPORT  DMA2_Channel4_5_IRQHandler       [WEAK]
                EXPORT  DMA2_Channel5_IRQHandler         [WEAK]                

WWDG_IRQHandler
PVD_IRQHandler
TAMPER_IRQHandler
RTC_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
DMA1_Channel1_IRQHandler
DMA1_Channel2_IRQHandler
DMA1_Channel3_IRQHandler
DMA1_Channel4_IRQHandler
DMA1_Channel5_IRQHandler
DMA1_Channel6_IRQHandler
DMA1_Channel7_IRQHandler
ADC1_IRQHandler
EXTI9_5_IRQHandler
TIM1_BRK_TIM15_IRQHandler
TIM1_UP_TIM16_IRQHandler
TIM1_TRG_COM_TIM17_IRQHandler
TIM1_CC_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
TIM4_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
I2C2_EV_IRQHandler
I2C2_ER_IRQHandler
SPI1_IRQHandler
SPI2_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
EXTI15_10_IRQHandler
RTCAlarm_IRQHandler
CEC_IRQHandler
TIM12_IRQHandler
TIM13_IRQHandler
TIM14_IRQHandler
TIM5_IRQHandler
SPI3_IRQHandler
UART4_IRQHandler
UART5_IRQHandler
TIM6_DAC_IRQHandler
TIM7_IRQHandler
DMA2_Channel1_IRQHandler
DMA2_Channel2_IRQHandler
DMA2_Channel3_IRQHandler
DMA2_Channel4_5_IRQHandler
DMA2_Channel5_IRQHandler
                B       .

                ENDP

                ALIGN

;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
                 IF      :DEF:__MICROLIB           
                
                 EXPORT  __initial_sp
                 EXPORT  __heap_base
                 EXPORT  __heap_limit
                
                 ELSE
                
                 IMPORT  __use_two_region_memory
                 EXPORT  __user_initial_stackheap
                 
__user_initial_stackheap

                 LDR     R0, =  Heap_Mem
                 LDR     R1, =(Stack_Mem + Stack_Size)
                 LDR     R2, = (Heap_Mem +  Heap_Size)
                 LDR     R3, = Stack_Mem
                 BX      LR

                 ALIGN

                 ENDIF

                 END

;******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE*****


================================================
FILE: Libraries/CMSIS/startup/startup_stm32f10x_ld.s
================================================
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
;* File Name          : startup_stm32f10x_ld.s
;* Author             : MCD Application Team
;* Version            : V3.5.0
;* Date               : 11-March-2011
;* Description        : STM32F10x Low Density Devices vector table for MDK-ARM 
;*                      toolchain. 
;*                      This module performs:
;*                      - Set the initial SP
;*                      - Set the initial PC == Reset_Handler
;*                      - Set the vector table entries with the exceptions ISR address
;*                      - Configure the clock system
;*                      - Branches to __main in the C library (which eventually
;*                        calls main()).
;*                      After Reset the CortexM3 processor is in Thread mode,
;*                      priority is Privileged, and the Stack is set to Main.
;* <<< Use Configuration Wizard in Context Menu >>>   
;*******************************************************************************
; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
;*******************************************************************************

; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp


; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size       EQU     0x00000200

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

                PRESERVE8
                THUMB


; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

__Vectors       DCD     __initial_sp               ; Top of Stack
                DCD     Reset_Handler              ; Reset Handler
                DCD     NMI_Handler                ; NMI Handler
                DCD     HardFault_Handler          ; Hard Fault Handler
                DCD     MemManage_Handler          ; MPU Fault Handler
                DCD     BusFault_Handler           ; Bus Fault Handler
                DCD     UsageFault_Handler         ; Usage Fault Handler
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     SVC_Handler                ; SVCall Handler
                DCD     DebugMon_Handler           ; Debug Monitor Handler
                DCD     0                          ; Reserved
                DCD     PendSV_Handler             ; PendSV Handler
                DCD     SysTick_Handler            ; SysTick Handler

                ; External Interrupts
                DCD     WWDG_IRQHandler            ; Window Watchdog
                DCD     PVD_IRQHandler             ; PVD through EXTI Line detect
                DCD     TAMPER_IRQHandler          ; Tamper
                DCD     RTC_IRQHandler             ; RTC
                DCD     FLASH_IRQHandler           ; Flash
                DCD     RCC_IRQHandler             ; RCC
                DCD     EXTI0_IRQHandler           ; EXTI Line 0
                DCD     EXTI1_IRQHandler           ; EXTI Line 1
                DCD     EXTI2_IRQHandler           ; EXTI Line 2
                DCD     EXTI3_IRQHandler           ; EXTI Line 3
                DCD     EXTI4_IRQHandler           ; EXTI Line 4
                DCD     DMA1_Channel1_IRQHandler   ; DMA1 Channel 1
                DCD     DMA1_Channel2_IRQHandler   ; DMA1 Channel 2
                DCD     DMA1_Channel3_IRQHandler   ; DMA1 Channel 3
                DCD     DMA1_Channel4_IRQHandler   ; DMA1 Channel 4
                DCD     DMA1_Channel5_IRQHandler   ; DMA1 Channel 5
                DCD     DMA1_Channel6_IRQHandler   ; DMA1 Channel 6
                DCD     DMA1_Channel7_IRQHandler   ; DMA1 Channel 7
                DCD     ADC1_2_IRQHandler          ; ADC1_2
                DCD     USB_HP_CAN1_TX_IRQHandler  ; USB High Priority or CAN1 TX
                DCD     USB_LP_CAN1_RX0_IRQHandler ; USB Low  Priority or CAN1 RX0
                DCD     CAN1_RX1_IRQHandler        ; CAN1 RX1
                DCD     CAN1_SCE_IRQHandler        ; CAN1 SCE
                DCD     EXTI9_5_IRQHandler         ; EXTI Line 9..5
                DCD     TIM1_BRK_IRQHandler        ; TIM1 Break
                DCD     TIM1_UP_IRQHandler         ; TIM1 Update
                DCD     TIM1_TRG_COM_IRQHandler    ; TIM1 Trigger and Commutation
                DCD     TIM1_CC_IRQHandler         ; TIM1 Capture Compare
                DCD     TIM2_IRQHandler            ; TIM2
                DCD     TIM3_IRQHandler            ; TIM3
                DCD     0                          ; Reserved
                DCD     I2C1_EV_IRQHandler         ; I2C1 Event
                DCD     I2C1_ER_IRQHandler         ; I2C1 Error
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     SPI1_IRQHandler            ; SPI1
                DCD     0                          ; Reserved
                DCD     USART1_IRQHandler          ; USART1
                DCD     USART2_IRQHandler          ; USART2
                DCD     0                          ; Reserved
                DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10
                DCD     RTCAlarm_IRQHandler        ; RTC Alarm through EXTI Line
                DCD     USBWakeUp_IRQHandler       ; USB Wakeup from suspend
__Vectors_End

__Vectors_Size  EQU  __Vectors_End - __Vectors

                AREA    |.text|, CODE, READONLY

; Reset handler routine
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
     IMPORT  __main
     IMPORT  SystemInit
                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP

; Dummy Exception Handlers (infinite loops which can be modified)

NMI_Handler     PROC
                EXPORT  NMI_Handler                [WEAK]
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler          [WEAK]
                B       .
                ENDP
MemManage_Handler\
                PROC
                EXPORT  MemManage_Handler          [WEAK]
                B       .
                ENDP
BusFault_Handler\
                PROC
                EXPORT  BusFault_Handler           [WEAK]
                B       .
                ENDP
UsageFault_Handler\
                PROC
                EXPORT  UsageFault_Handler         [WEAK]
                B       .
                ENDP
SVC_Handler     PROC
                EXPORT  SVC_Handler                [WEAK]
                B       .
                ENDP
DebugMon_Handler\
                PROC
                EXPORT  DebugMon_Handler           [WEAK]
                B       .
                ENDP
PendSV_Handler  PROC
                EXPORT  PendSV_Handler             [WEAK]
                B       .
                ENDP
SysTick_Handler PROC
                EXPORT  SysTick_Handler            [WEAK]
                B       .
                ENDP

Default_Handler PROC

                EXPORT  WWDG_IRQHandler            [WEAK]
                EXPORT  PVD_IRQHandler             [WEAK]
                EXPORT  TAMPER_IRQHandler          [WEAK]
                EXPORT  RTC_IRQHandler             [WEAK]
                EXPORT  FLASH_IRQHandler           [WEAK]
                EXPORT  RCC_IRQHandler             [WEAK]
                EXPORT  EXTI0_IRQHandler           [WEAK]
                EXPORT  EXTI1_IRQHandler           [WEAK]
                EXPORT  EXTI2_IRQHandler           [WEAK]
                EXPORT  EXTI3_IRQHandler           [WEAK]
                EXPORT  EXTI4_IRQHandler           [WEAK]
                EXPORT  DMA1_Channel1_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel2_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel3_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel4_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel5_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel6_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel7_IRQHandler   [WEAK]
                EXPORT  ADC1_2_IRQHandler          [WEAK]
                EXPORT  USB_HP_CAN1_TX_IRQHandler  [WEAK]
                EXPORT  USB_LP_CAN1_RX0_IRQHandler [WEAK]
                EXPORT  CAN1_RX1_IRQHandler        [WEAK]
                EXPORT  CAN1_SCE_IRQHandler        [WEAK]
                EXPORT  EXTI9_5_IRQHandler         [WEAK]
                EXPORT  TIM1_BRK_IRQHandler        [WEAK]
                EXPORT  TIM1_UP_IRQHandler         [WEAK]
                EXPORT  TIM1_TRG_COM_IRQHandler    [WEAK]
                EXPORT  TIM1_CC_IRQHandler         [WEAK]
                EXPORT  TIM2_IRQHandler            [WEAK]
                EXPORT  TIM3_IRQHandler            [WEAK]
                EXPORT  I2C1_EV_IRQHandler         [WEAK]
                EXPORT  I2C1_ER_IRQHandler         [WEAK]
                EXPORT  SPI1_IRQHandler            [WEAK]
                EXPORT  USART1_IRQHandler          [WEAK]
                EXPORT  USART2_IRQHandler          [WEAK]
                EXPORT  EXTI15_10_IRQHandler       [WEAK]
                EXPORT  RTCAlarm_IRQHandler        [WEAK]
                EXPORT  USBWakeUp_IRQHandler       [WEAK]

WWDG_IRQHandler
PVD_IRQHandler
TAMPER_IRQHandler
RTC_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
DMA1_Channel1_IRQHandler
DMA1_Channel2_IRQHandler
DMA1_Channel3_IRQHandler
DMA1_Channel4_IRQHandler
DMA1_Channel5_IRQHandler
DMA1_Channel6_IRQHandler
DMA1_Channel7_IRQHandler
ADC1_2_IRQHandler
USB_HP_CAN1_TX_IRQHandler
USB_LP_CAN1_RX0_IRQHandler
CAN1_RX1_IRQHandler
CAN1_SCE_IRQHandler
EXTI9_5_IRQHandler
TIM1_BRK_IRQHandler
TIM1_UP_IRQHandler
TIM1_TRG_COM_IRQHandler
TIM1_CC_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
SPI1_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
EXTI15_10_IRQHandler
RTCAlarm_IRQHandler
USBWakeUp_IRQHandler

                B       .

                ENDP

                ALIGN

;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
                 IF      :DEF:__MICROLIB
                
                 EXPORT  __initial_sp
                 EXPORT  __heap_base
                 EXPORT  __heap_limit
                
                 ELSE
                
                 IMPORT  __use_two_region_memory
                 EXPORT  __user_initial_stackheap
                 
__user_initial_stackheap

                 LDR     R0, =  Heap_Mem
                 LDR     R1, =(Stack_Mem + Stack_Size)
                 LDR     R2, = (Heap_Mem +  Heap_Size)
                 LDR     R3, = Stack_Mem
                 BX      LR

                 ALIGN

                 ENDIF

                 END

;******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE*****


================================================
FILE: Libraries/CMSIS/startup/startup_stm32f10x_ld_vl.s
================================================
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
;* File Name          : startup_stm32f10x_ld_vl.s
;* Author             : MCD Application Team
;* Version            : V3.5.0
;* Date               : 11-March-2011
;* Description        : STM32F10x Low Density Value Line Devices vector table  
;*                      for MDK-ARM toolchain.  
;*                      This module performs:
;*                      - Set the initial SP
;*                      - Set the initial PC == Reset_Handler
;*                      - Set the vector table entries with the exceptions ISR address
;*                      - Configure the clock system
;*                      - Branches to __main in the C library (which eventually
;*                        calls main()).
;*                      After Reset the CortexM3 processor is in Thread mode,
;*                      priority is Privileged, and the Stack is set to Main.
;* <<< Use Configuration Wizard in Context Menu >>>   
;*******************************************************************************
; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
;*******************************************************************************

; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp


; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size       EQU     0x00000200

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

                PRESERVE8
                THUMB


; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

__Vectors       DCD     __initial_sp                    ; Top of Stack
                DCD     Reset_Handler                   ; Reset Handler
                DCD     NMI_Handler                     ; NMI Handler
                DCD     HardFault_Handler               ; Hard Fault Handler
                DCD     MemManage_Handler               ; MPU Fault Handler
                DCD     BusFault_Handler                ; Bus Fault Handler
                DCD     UsageFault_Handler              ; Usage Fault Handler
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     SVC_Handler                     ; SVCall Handler
                DCD     DebugMon_Handler                ; Debug Monitor Handler
                DCD     0                               ; Reserved
                DCD     PendSV_Handler                  ; PendSV Handler
                DCD     SysTick_Handler                 ; SysTick Handler

                ; External Interrupts
                DCD     WWDG_IRQHandler                 ; Window Watchdog
                DCD     PVD_IRQHandler                  ; PVD through EXTI Line detect
                DCD     TAMPER_IRQHandler               ; Tamper
                DCD     RTC_IRQHandler                  ; RTC
                DCD     FLASH_IRQHandler                ; Flash
                DCD     RCC_IRQHandler                  ; RCC
                DCD     EXTI0_IRQHandler                ; EXTI Line 0
                DCD     EXTI1_IRQHandler                ; EXTI Line 1
                DCD     EXTI2_IRQHandler                ; EXTI Line 2
                DCD     EXTI3_IRQHandler                ; EXTI Line 3
                DCD     EXTI4_IRQHandler                ; EXTI Line 4
                DCD     DMA1_Channel1_IRQHandler        ; DMA1 Channel 1
                DCD     DMA1_Channel2_IRQHandler        ; DMA1 Channel 2
                DCD     DMA1_Channel3_IRQHandler        ; DMA1 Channel 3
                DCD     DMA1_Channel4_IRQHandler        ; DMA1 Channel 4
                DCD     DMA1_Channel5_IRQHandler        ; DMA1 Channel 5
                DCD     DMA1_Channel6_IRQHandler        ; DMA1 Channel 6
                DCD     DMA1_Channel7_IRQHandler        ; DMA1 Channel 7
                DCD     ADC1_IRQHandler                 ; ADC1
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     EXTI9_5_IRQHandler              ; EXTI Line 9..5
                DCD     TIM1_BRK_TIM15_IRQHandler       ; TIM1 Break and TIM15
                DCD     TIM1_UP_TIM16_IRQHandler        ; TIM1 Update and TIM16
                DCD     TIM1_TRG_COM_TIM17_IRQHandler   ; TIM1 Trigger and Commutation and TIM17
                DCD     TIM1_CC_IRQHandler              ; TIM1 Capture Compare
                DCD     TIM2_IRQHandler                 ; TIM2
                DCD     TIM3_IRQHandler                 ; TIM3
                DCD     0                               ; Reserved
                DCD     I2C1_EV_IRQHandler              ; I2C1 Event
                DCD     I2C1_ER_IRQHandler              ; I2C1 Error
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     SPI1_IRQHandler                 ; SPI1
                DCD     0                               ; Reserved
                DCD     USART1_IRQHandler               ; USART1
                DCD     USART2_IRQHandler               ; USART2
                DCD     0                               ; Reserved
                DCD     EXTI15_10_IRQHandler            ; EXTI Line 15..10
                DCD     RTCAlarm_IRQHandler             ; RTC Alarm through EXTI Line
                DCD     CEC_IRQHandler                  ; HDMI-CEC
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved 
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved 
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     TIM6_DAC_IRQHandler             ; TIM6 and DAC underrun
                DCD     TIM7_IRQHandler                 ; TIM7
__Vectors_End

__Vectors_Size  EQU  __Vectors_End - __Vectors

                AREA    |.text|, CODE, READONLY

; Reset handler
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
     IMPORT  __main
     IMPORT  SystemInit
                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP

; Dummy Exception Handlers (infinite loops which can be modified)

NMI_Handler     PROC
                EXPORT  NMI_Handler                      [WEAK]
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler                [WEAK]
                B       .
                ENDP
MemManage_Handler\
                PROC
                EXPORT  MemManage_Handler                [WEAK]
                B       .
                ENDP
BusFault_Handler\
                PROC
                EXPORT  BusFault_Handler                 [WEAK]
                B       .
                ENDP
UsageFault_Handler\
                PROC
                EXPORT  UsageFault_Handler               [WEAK]
                B       .
                ENDP
SVC_Handler     PROC
                EXPORT  SVC_Handler                      [WEAK]
                B       .
                ENDP
DebugMon_Handler\
                PROC
                EXPORT  DebugMon_Handler                 [WEAK]
                B       .
                ENDP
PendSV_Handler  PROC
                EXPORT  PendSV_Handler                   [WEAK]
                B       .
                ENDP
SysTick_Handler PROC
                EXPORT  SysTick_Handler                  [WEAK]
                B       .
                ENDP

Default_Handler PROC

                EXPORT  WWDG_IRQHandler                  [WEAK]
                EXPORT  PVD_IRQHandler                   [WEAK]
                EXPORT  TAMPER_IRQHandler                [WEAK]
                EXPORT  RTC_IRQHandler                   [WEAK]
                EXPORT  FLASH_IRQHandler                 [WEAK]
                EXPORT  RCC_IRQHandler                   [WEAK]
                EXPORT  EXTI0_IRQHandler                 [WEAK]
                EXPORT  EXTI1_IRQHandler                 [WEAK]
                EXPORT  EXTI2_IRQHandler                 [WEAK]
                EXPORT  EXTI3_IRQHandler                 [WEAK]
                EXPORT  EXTI4_IRQHandler                 [WEAK]
                EXPORT  DMA1_Channel1_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel2_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel3_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel4_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel5_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel6_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel7_IRQHandler         [WEAK]
                EXPORT  ADC1_IRQHandler                  [WEAK]
                EXPORT  EXTI9_5_IRQHandler               [WEAK]
                EXPORT  TIM1_BRK_TIM15_IRQHandler        [WEAK]
                EXPORT  TIM1_UP_TIM16_IRQHandler         [WEAK]
                EXPORT  TIM1_TRG_COM_TIM17_IRQHandler    [WEAK]
                EXPORT  TIM1_CC_IRQHandler               [WEAK]
                EXPORT  TIM2_IRQHandler                  [WEAK]
                EXPORT  TIM3_IRQHandler                  [WEAK]
                EXPORT  I2C1_EV_IRQHandler               [WEAK]
                EXPORT  I2C1_ER_IRQHandler               [WEAK]
                EXPORT  SPI1_IRQHandler                  [WEAK]
                EXPORT  USART1_IRQHandler                [WEAK]
                EXPORT  USART2_IRQHandler                [WEAK]
                EXPORT  EXTI15_10_IRQHandler             [WEAK]
                EXPORT  RTCAlarm_IRQHandler              [WEAK]
                EXPORT  CEC_IRQHandler                   [WEAK]
                EXPORT  TIM6_DAC_IRQHandler              [WEAK]
                EXPORT  TIM7_IRQHandler                  [WEAK]
WWDG_IRQHandler
PVD_IRQHandler
TAMPER_IRQHandler
RTC_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
DMA1_Channel1_IRQHandler
DMA1_Channel2_IRQHandler
DMA1_Channel3_IRQHandler
DMA1_Channel4_IRQHandler
DMA1_Channel5_IRQHandler
DMA1_Channel6_IRQHandler
DMA1_Channel7_IRQHandler
ADC1_IRQHandler
EXTI9_5_IRQHandler
TIM1_BRK_TIM15_IRQHandler
TIM1_UP_TIM16_IRQHandler
TIM1_TRG_COM_TIM17_IRQHandler
TIM1_CC_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
SPI1_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
EXTI15_10_IRQHandler
RTCAlarm_IRQHandler
CEC_IRQHandler
TIM6_DAC_IRQHandler
TIM7_IRQHandler
                B       .

                ENDP

                ALIGN

;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
                 IF      :DEF:__MICROLIB           
                
                 EXPORT  __initial_sp
                 EXPORT  __heap_base
                 EXPORT  __heap_limit
                
                 ELSE
                
                 IMPORT  __use_two_region_memory
                 EXPORT  __user_initial_stackheap
                 
__user_initial_stackheap

                 LDR     R0, =  Heap_Mem
                 LDR     R1, =(Stack_Mem + Stack_Size)
                 LDR     R2, = (Heap_Mem +  Heap_Size)
                 LDR     R3, = Stack_Mem
                 BX      LR

                 ALIGN

                 ENDIF

                 END

;******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE*****


================================================
FILE: Libraries/CMSIS/startup/startup_stm32f10x_md.s
================================================
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
;* File Name          : startup_stm32f10x_md.s
;* Author             : MCD Application Team
;* Version            : V3.5.0
;* Date               : 11-March-2011
;* Description        : STM32F10x Medium Density Devices vector table for MDK-ARM 
;*                      toolchain.  
;*                      This module performs:
;*                      - Set the initial SP
;*                      - Set the initial PC == Reset_Handler
;*                      - Set the vector table entries with the exceptions ISR address
;*                      - Configure the clock system
;*                      - Branches to __main in the C library (which eventually
;*                        calls main()).
;*                      After Reset the CortexM3 processor is in Thread mode,
;*                      priority is Privileged, and the Stack is set to Main.
;* <<< Use Configuration Wizard in Context Menu >>>   
;*******************************************************************************
; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
;*******************************************************************************

; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp


; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size       EQU     0x00000200

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

                PRESERVE8
                THUMB


; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

__Vectors       DCD     __initial_sp               ; Top of Stack
                DCD     Reset_Handler              ; Reset Handler
                DCD     NMI_Handler                ; NMI Handler
                DCD     HardFault_Handler          ; Hard Fault Handler
                DCD     MemManage_Handler          ; MPU Fault Handler
                DCD     BusFault_Handler           ; Bus Fault Handler
                DCD     UsageFault_Handler         ; Usage Fault Handler
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     0                          ; Reserved
                DCD     SVC_Handler                ; SVCall Handler
                DCD     DebugMon_Handler           ; Debug Monitor Handler
                DCD     0                          ; Reserved
                DCD     PendSV_Handler             ; PendSV Handler
                DCD     SysTick_Handler            ; SysTick Handler

                ; External Interrupts
                DCD     WWDG_IRQHandler            ; Window Watchdog
                DCD     PVD_IRQHandler             ; PVD through EXTI Line detect
                DCD     TAMPER_IRQHandler          ; Tamper
                DCD     RTC_IRQHandler             ; RTC
                DCD     FLASH_IRQHandler           ; Flash
                DCD     RCC_IRQHandler             ; RCC
                DCD     EXTI0_IRQHandler           ; EXTI Line 0
                DCD     EXTI1_IRQHandler           ; EXTI Line 1
                DCD     EXTI2_IRQHandler           ; EXTI Line 2
                DCD     EXTI3_IRQHandler           ; EXTI Line 3
                DCD     EXTI4_IRQHandler           ; EXTI Line 4
                DCD     DMA1_Channel1_IRQHandler   ; DMA1 Channel 1
                DCD     DMA1_Channel2_IRQHandler   ; DMA1 Channel 2
                DCD     DMA1_Channel3_IRQHandler   ; DMA1 Channel 3
                DCD     DMA1_Channel4_IRQHandler   ; DMA1 Channel 4
                DCD     DMA1_Channel5_IRQHandler   ; DMA1 Channel 5
                DCD     DMA1_Channel6_IRQHandler   ; DMA1 Channel 6
                DCD     DMA1_Channel7_IRQHandler   ; DMA1 Channel 7
                DCD     ADC1_2_IRQHandler          ; ADC1_2
                DCD     USB_HP_CAN1_TX_IRQHandler  ; USB High Priority or CAN1 TX
                DCD     USB_LP_CAN1_RX0_IRQHandler ; USB Low  Priority or CAN1 RX0
                DCD     CAN1_RX1_IRQHandler        ; CAN1 RX1
                DCD     CAN1_SCE_IRQHandler        ; CAN1 SCE
                DCD     EXTI9_5_IRQHandler         ; EXTI Line 9..5
                DCD     TIM1_BRK_IRQHandler        ; TIM1 Break
                DCD     TIM1_UP_IRQHandler         ; TIM1 Update
                DCD     TIM1_TRG_COM_IRQHandler    ; TIM1 Trigger and Commutation
                DCD     TIM1_CC_IRQHandler         ; TIM1 Capture Compare
                DCD     TIM2_IRQHandler            ; TIM2
                DCD     TIM3_IRQHandler            ; TIM3
                DCD     TIM4_IRQHandler            ; TIM4
                DCD     I2C1_EV_IRQHandler         ; I2C1 Event
                DCD     I2C1_ER_IRQHandler         ; I2C1 Error
                DCD     I2C2_EV_IRQHandler         ; I2C2 Event
                DCD     I2C2_ER_IRQHandler         ; I2C2 Error
                DCD     SPI1_IRQHandler            ; SPI1
                DCD     SPI2_IRQHandler            ; SPI2
                DCD     USART1_IRQHandler          ; USART1
                DCD     USART2_IRQHandler          ; USART2
                DCD     USART3_IRQHandler          ; USART3
                DCD     EXTI15_10_IRQHandler       ; EXTI Line 15..10
                DCD     RTCAlarm_IRQHandler        ; RTC Alarm through EXTI Line
                DCD     USBWakeUp_IRQHandler       ; USB Wakeup from suspend
__Vectors_End

__Vectors_Size  EQU  __Vectors_End - __Vectors

                AREA    |.text|, CODE, READONLY

; Reset handler
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
     IMPORT  __main
     IMPORT  SystemInit
                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP

; Dummy Exception Handlers (infinite loops which can be modified)

NMI_Handler     PROC
                EXPORT  NMI_Handler                [WEAK]
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler          [WEAK]
                B       .
                ENDP
MemManage_Handler\
                PROC
                EXPORT  MemManage_Handler          [WEAK]
                B       .
                ENDP
BusFault_Handler\
                PROC
                EXPORT  BusFault_Handler           [WEAK]
                B       .
                ENDP
UsageFault_Handler\
                PROC
                EXPORT  UsageFault_Handler         [WEAK]
                B       .
                ENDP
SVC_Handler     PROC
                EXPORT  SVC_Handler                [WEAK]
                B       .
                ENDP
DebugMon_Handler\
                PROC
                EXPORT  DebugMon_Handler           [WEAK]
                B       .
                ENDP
PendSV_Handler  PROC
                EXPORT  PendSV_Handler             [WEAK]
                B       .
                ENDP
SysTick_Handler PROC
                EXPORT  SysTick_Handler            [WEAK]
                B       .
                ENDP

Default_Handler PROC

                EXPORT  WWDG_IRQHandler            [WEAK]
                EXPORT  PVD_IRQHandler             [WEAK]
                EXPORT  TAMPER_IRQHandler          [WEAK]
                EXPORT  RTC_IRQHandler             [WEAK]
                EXPORT  FLASH_IRQHandler           [WEAK]
                EXPORT  RCC_IRQHandler             [WEAK]
                EXPORT  EXTI0_IRQHandler           [WEAK]
                EXPORT  EXTI1_IRQHandler           [WEAK]
                EXPORT  EXTI2_IRQHandler           [WEAK]
                EXPORT  EXTI3_IRQHandler           [WEAK]
                EXPORT  EXTI4_IRQHandler           [WEAK]
                EXPORT  DMA1_Channel1_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel2_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel3_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel4_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel5_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel6_IRQHandler   [WEAK]
                EXPORT  DMA1_Channel7_IRQHandler   [WEAK]
                EXPORT  ADC1_2_IRQHandler          [WEAK]
                EXPORT  USB_HP_CAN1_TX_IRQHandler  [WEAK]
                EXPORT  USB_LP_CAN1_RX0_IRQHandler [WEAK]
                EXPORT  CAN1_RX1_IRQHandler        [WEAK]
                EXPORT  CAN1_SCE_IRQHandler        [WEAK]
                EXPORT  EXTI9_5_IRQHandler         [WEAK]
                EXPORT  TIM1_BRK_IRQHandler        [WEAK]
                EXPORT  TIM1_UP_IRQHandler         [WEAK]
                EXPORT  TIM1_TRG_COM_IRQHandler    [WEAK]
                EXPORT  TIM1_CC_IRQHandler         [WEAK]
                EXPORT  TIM2_IRQHandler            [WEAK]
                EXPORT  TIM3_IRQHandler            [WEAK]
                EXPORT  TIM4_IRQHandler            [WEAK]
                EXPORT  I2C1_EV_IRQHandler         [WEAK]
                EXPORT  I2C1_ER_IRQHandler         [WEAK]
                EXPORT  I2C2_EV_IRQHandler         [WEAK]
                EXPORT  I2C2_ER_IRQHandler         [WEAK]
                EXPORT  SPI1_IRQHandler            [WEAK]
                EXPORT  SPI2_IRQHandler            [WEAK]
                EXPORT  USART1_IRQHandler          [WEAK]
                EXPORT  USART2_IRQHandler          [WEAK]
                EXPORT  USART3_IRQHandler          [WEAK]
                EXPORT  EXTI15_10_IRQHandler       [WEAK]
                EXPORT  RTCAlarm_IRQHandler        [WEAK]
                EXPORT  USBWakeUp_IRQHandler       [WEAK]

WWDG_IRQHandler
PVD_IRQHandler
TAMPER_IRQHandler
RTC_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
DMA1_Channel1_IRQHandler
DMA1_Channel2_IRQHandler
DMA1_Channel3_IRQHandler
DMA1_Channel4_IRQHandler
DMA1_Channel5_IRQHandler
DMA1_Channel6_IRQHandler
DMA1_Channel7_IRQHandler
ADC1_2_IRQHandler
USB_HP_CAN1_TX_IRQHandler
USB_LP_CAN1_RX0_IRQHandler
CAN1_RX1_IRQHandler
CAN1_SCE_IRQHandler
EXTI9_5_IRQHandler
TIM1_BRK_IRQHandler
TIM1_UP_IRQHandler
TIM1_TRG_COM_IRQHandler
TIM1_CC_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
TIM4_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
I2C2_EV_IRQHandler
I2C2_ER_IRQHandler
SPI1_IRQHandler
SPI2_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
EXTI15_10_IRQHandler
RTCAlarm_IRQHandler
USBWakeUp_IRQHandler

                B       .

                ENDP

                ALIGN

;*******************************************************************************
; User Stack and Heap initialization
;*******************************************************************************
                 IF      :DEF:__MICROLIB           
                
                 EXPORT  __initial_sp
                 EXPORT  __heap_base
                 EXPORT  __heap_limit
                
                 ELSE
                
                 IMPORT  __use_two_region_memory
                 EXPORT  __user_initial_stackheap
                 
__user_initial_stackheap

                 LDR     R0, =  Heap_Mem
                 LDR     R1, =(Stack_Mem + Stack_Size)
                 LDR     R2, = (Heap_Mem +  Heap_Size)
                 LDR     R3, = Stack_Mem
                 BX      LR

                 ALIGN

                 ENDIF

                 END

;******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE*****


================================================
FILE: Libraries/CMSIS/startup/startup_stm32f10x_md_vl.s
================================================
;******************** (C) COPYRIGHT 2011 STMicroelectronics ********************
;* File Name          : startup_stm32f10x_md_vl.s
;* Author             : MCD Application Team
;* Version            : V3.5.0
;* Date               : 11-March-2011
;* Description        : STM32F10x Medium Density Value Line Devices vector table  
;*                      for MDK-ARM toolchain.  
;*                      This module performs:
;*                      - Set the initial SP
;*                      - Set the initial PC == Reset_Handler
;*                      - Set the vector table entries with the exceptions ISR address
;*                      - Configure the clock system
;*                      - Branches to __main in the C library (which eventually
;*                        calls main()).
;*                      After Reset the CortexM3 processor is in Thread mode,
;*                      priority is Privileged, and the Stack is set to Main.
;* <<< Use Configuration Wizard in Context Menu >>>   
;*******************************************************************************
; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
;*******************************************************************************

; Amount of memory (in bytes) allocated for Stack
; Tailor this value to your application needs
; <h> Stack Configuration
;   <o> Stack Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Stack_Size      EQU     0x00000400

                AREA    STACK, NOINIT, READWRITE, ALIGN=3
Stack_Mem       SPACE   Stack_Size
__initial_sp


; <h> Heap Configuration
;   <o>  Heap Size (in Bytes) <0x0-0xFFFFFFFF:8>
; </h>

Heap_Size       EQU     0x00000200

                AREA    HEAP, NOINIT, READWRITE, ALIGN=3
__heap_base
Heap_Mem        SPACE   Heap_Size
__heap_limit

                PRESERVE8
                THUMB


; Vector Table Mapped to Address 0 at Reset
                AREA    RESET, DATA, READONLY
                EXPORT  __Vectors
                EXPORT  __Vectors_End
                EXPORT  __Vectors_Size

__Vectors       DCD     __initial_sp                    ; Top of Stack
                DCD     Reset_Handler                   ; Reset Handler
                DCD     NMI_Handler                     ; NMI Handler
                DCD     HardFault_Handler               ; Hard Fault Handler
                DCD     MemManage_Handler               ; MPU Fault Handler
                DCD     BusFault_Handler                ; Bus Fault Handler
                DCD     UsageFault_Handler              ; Usage Fault Handler
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     SVC_Handler                     ; SVCall Handler
                DCD     DebugMon_Handler                ; Debug Monitor Handler
                DCD     0                               ; Reserved
                DCD     PendSV_Handler                  ; PendSV Handler
                DCD     SysTick_Handler                 ; SysTick Handler

                ; External Interrupts
                DCD     WWDG_IRQHandler                 ; Window Watchdog
                DCD     PVD_IRQHandler                  ; PVD through EXTI Line detect
                DCD     TAMPER_IRQHandler               ; Tamper
                DCD     RTC_IRQHandler                  ; RTC
                DCD     FLASH_IRQHandler                ; Flash
                DCD     RCC_IRQHandler                  ; RCC
                DCD     EXTI0_IRQHandler                ; EXTI Line 0
                DCD     EXTI1_IRQHandler                ; EXTI Line 1
                DCD     EXTI2_IRQHandler                ; EXTI Line 2
                DCD     EXTI3_IRQHandler                ; EXTI Line 3
                DCD     EXTI4_IRQHandler                ; EXTI Line 4
                DCD     DMA1_Channel1_IRQHandler        ; DMA1 Channel 1
                DCD     DMA1_Channel2_IRQHandler        ; DMA1 Channel 2
                DCD     DMA1_Channel3_IRQHandler        ; DMA1 Channel 3
                DCD     DMA1_Channel4_IRQHandler        ; DMA1 Channel 4
                DCD     DMA1_Channel5_IRQHandler        ; DMA1 Channel 5
                DCD     DMA1_Channel6_IRQHandler        ; DMA1 Channel 6
                DCD     DMA1_Channel7_IRQHandler        ; DMA1 Channel 7
                DCD     ADC1_IRQHandler                 ; ADC1
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     EXTI9_5_IRQHandler              ; EXTI Line 9..5
                DCD     TIM1_BRK_TIM15_IRQHandler       ; TIM1 Break and TIM15
                DCD     TIM1_UP_TIM16_IRQHandler        ; TIM1 Update and TIM16
                DCD     TIM1_TRG_COM_TIM17_IRQHandler   ; TIM1 Trigger and Commutation and TIM17
                DCD     TIM1_CC_IRQHandler              ; TIM1 Capture Compare
                DCD     TIM2_IRQHandler                 ; TIM2
                DCD     TIM3_IRQHandler                 ; TIM3
                DCD     TIM4_IRQHandler                 ; TIM4
                DCD     I2C1_EV_IRQHandler              ; I2C1 Event
                DCD     I2C1_ER_IRQHandler              ; I2C1 Error
                DCD     I2C2_EV_IRQHandler              ; I2C2 Event
                DCD     I2C2_ER_IRQHandler              ; I2C2 Error
                DCD     SPI1_IRQHandler                 ; SPI1
                DCD     SPI2_IRQHandler                 ; SPI2
                DCD     USART1_IRQHandler               ; USART1
                DCD     USART2_IRQHandler               ; USART2
                DCD     USART3_IRQHandler               ; USART3
                DCD     EXTI15_10_IRQHandler            ; EXTI Line 15..10
                DCD     RTCAlarm_IRQHandler             ; RTC Alarm through EXTI Line
                DCD     CEC_IRQHandler                  ; HDMI-CEC
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved 
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved 
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     0                               ; Reserved
                DCD     TIM6_DAC_IRQHandler             ; TIM6 and DAC underrun
                DCD     TIM7_IRQHandler                 ; TIM7
__Vectors_End

__Vectors_Size  EQU  __Vectors_End - __Vectors

                AREA    |.text|, CODE, READONLY

; Reset handler
Reset_Handler    PROC
                 EXPORT  Reset_Handler             [WEAK]
     IMPORT  __main
     IMPORT  SystemInit
                 LDR     R0, =SystemInit
                 BLX     R0
                 LDR     R0, =__main
                 BX      R0
                 ENDP

; Dummy Exception Handlers (infinite loops which can be modified)

NMI_Handler     PROC
                EXPORT  NMI_Handler                      [WEAK]
                B       .
                ENDP
HardFault_Handler\
                PROC
                EXPORT  HardFault_Handler                [WEAK]
                B       .
                ENDP
MemManage_Handler\
                PROC
                EXPORT  MemManage_Handler                [WEAK]
                B       .
                ENDP
BusFault_Handler\
                PROC
                EXPORT  BusFault_Handler                 [WEAK]
                B       .
                ENDP
UsageFault_Handler\
                PROC
                EXPORT  UsageFault_Handler               [WEAK]
                B       .
                ENDP
SVC_Handler     PROC
                EXPORT  SVC_Handler                      [WEAK]
                B       .
                ENDP
DebugMon_Handler\
                PROC
                EXPORT  DebugMon_Handler                 [WEAK]
                B       .
                ENDP
PendSV_Handler  PROC
                EXPORT  PendSV_Handler                   [WEAK]
                B       .
                ENDP
SysTick_Handler PROC
                EXPORT  SysTick_Handler                  [WEAK]
                B       .
                ENDP

Default_Handler PROC

                EXPORT  WWDG_IRQHandler                  [WEAK]
                EXPORT  PVD_IRQHandler                   [WEAK]
                EXPORT  TAMPER_IRQHandler                [WEAK]
                EXPORT  RTC_IRQHandler                   [WEAK]
                EXPORT  FLASH_IRQHandler                 [WEAK]
                EXPORT  RCC_IRQHandler                   [WEAK]
                EXPORT  EXTI0_IRQHandler                 [WEAK]
                EXPORT  EXTI1_IRQHandler                 [WEAK]
                EXPORT  EXTI2_IRQHandler                 [WEAK]
                EXPORT  EXTI3_IRQHandler                 [WEAK]
                EXPORT  EXTI4_IRQHandler                 [WEAK]
                EXPORT  DMA1_Channel1_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel2_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel3_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel4_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel5_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel6_IRQHandler         [WEAK]
                EXPORT  DMA1_Channel7_IRQHandler         [WEAK]
                EXPORT  ADC1_IRQHandler                  [WEAK]
                EXPORT  EXTI9_5_IRQHandler               [WEAK]
                EXPORT  TIM1_BRK_TIM15_IRQHandler        [WEAK]
                EXPORT  TIM1_UP_TIM16_IRQHandler         [WEAK]
                EXPORT  TIM1_TRG_COM_TIM17_IRQHandler    [WEAK]
                EXPORT  TIM1_CC_IRQHandler               [WEAK]
                EXPORT  TIM2_IRQHandler                  [WEAK]
                EXPORT  TIM3_IRQHandler                  [WEAK]
                EXPORT  TIM4_IRQHandler                  [WEAK]
                EXPORT  I2C1_EV_IRQHandler               [WEAK]
                EXPORT  I2C1_ER_IRQHandler               [WEAK]
                EXPORT  I2C2_EV_IRQHandler               [WEAK]
                EXPORT  I2C2_ER_IRQHandler               [WEAK]
                EXPORT  SPI1_IRQHandler                  [WEAK]
                EXPORT  SPI2_IRQHandler                  [WEAK]
                EXPORT  USART1_IRQHandler                [WEAK]
                EXPORT  USART2_IRQHandler                [WEAK]
                EXPORT  USART3_IRQHandler                [WEAK]
                EXPORT  EXTI15_10_IRQHandler             [WEAK]
                EXPORT  RTCAlarm_IRQHandler              [WEAK]
                EXPORT  CEC_IRQHandler                   [WEAK]
                EXPORT  TIM6_DAC_IRQHandler              [WEAK]
                EXPORT  TIM7_IRQHandler                  [WEAK]

WWDG_IRQHandler
PVD_IRQHandler
TAMPER_IRQHandler
RTC_IRQHandler
FLASH_IRQHandler
RCC_IRQHandler
EXTI0_IRQHandler
EXTI1_IRQHandler
EXTI2_IRQHandler
EXTI3_IRQHandler
EXTI4_IRQHandler
DMA1_Channel1_IRQHandler
DMA1_Channel2_IRQHandler
DMA1_Channel3_IRQHandler
DMA1_Channel4_IRQHandler
DMA1_Channel5_IRQHandler
DMA1_Channel6_IRQHandler
DMA1_Channel7_IRQHandler
ADC1_IRQHandler
EXTI9_5_IRQHandler
TIM1_BRK_TIM15_IRQHandler
TIM1_UP_TIM16_IRQHandler
TIM1_TRG_COM_TIM17_IRQHandler
TIM1_CC_IRQHandler
TIM2_IRQHandler
TIM3_IRQHandler
TIM4_IRQHandler
I2C1_EV_IRQHandler
I2C1_ER_IRQHandler
I2C2_EV_IRQHandler
I2C2_ER_IRQHandler
SPI1_IRQHandler
SPI2_IRQHandler
USART1_IRQHandler
USART2_IRQHandler
USART3_IRQHandler
EXTI15_10_IRQHandler
RTCAlarm_IRQHandler
CEC_IRQHandler
TIM6_DAC_IRQHandler
TIM7_IRQ
Download .txt
gitextract_59_d45_c/

├── .gitattributes
├── LICENSE
├── Libraries/
│   ├── CMSIS/
│   │   ├── core_cm3.c
│   │   ├── core_cm3.h
│   │   ├── startup/
│   │   │   ├── startup_stm32f10x_cl.s
│   │   │   ├── startup_stm32f10x_hd.s
│   │   │   ├── startup_stm32f10x_hd_vl.s
│   │   │   ├── startup_stm32f10x_ld.s
│   │   │   ├── startup_stm32f10x_ld_vl.s
│   │   │   ├── startup_stm32f10x_md.s
│   │   │   ├── startup_stm32f10x_md_vl.s
│   │   │   └── startup_stm32f10x_xl.s
│   │   ├── stm32f10x.h
│   │   ├── system_stm32f10x.c
│   │   └── system_stm32f10x.h
│   └── FWlib/
│       ├── inc/
│       │   ├── misc.h
│       │   ├── stm32f10x_adc.h
│       │   ├── stm32f10x_bkp.h
│       │   ├── stm32f10x_can.h
│       │   ├── stm32f10x_cec.h
│       │   ├── stm32f10x_crc.h
│       │   ├── stm32f10x_dac.h
│       │   ├── stm32f10x_dbgmcu.h
│       │   ├── stm32f10x_dma.h
│       │   ├── stm32f10x_exti.h
│       │   ├── stm32f10x_flash.h
│       │   ├── stm32f10x_fsmc.h
│       │   ├── stm32f10x_gpio.h
│       │   ├── stm32f10x_i2c.h
│       │   ├── stm32f10x_iwdg.h
│       │   ├── stm32f10x_pwr.h
│       │   ├── stm32f10x_rcc.h
│       │   ├── stm32f10x_rtc.h
│       │   ├── stm32f10x_sdio.h
│       │   ├── stm32f10x_spi.h
│       │   ├── stm32f10x_tim.h
│       │   ├── stm32f10x_usart.h
│       │   └── stm32f10x_wwdg.h
│       └── src/
│           ├── misc.c
│           ├── stm32f10x_adc.c
│           ├── stm32f10x_bkp.c
│           ├── stm32f10x_can.c
│           ├── stm32f10x_cec.c
│           ├── stm32f10x_crc.c
│           ├── stm32f10x_dac.c
│           ├── stm32f10x_dbgmcu.c
│           ├── stm32f10x_dma.c
│           ├── stm32f10x_exti.c
│           ├── stm32f10x_flash.c
│           ├── stm32f10x_fsmc.c
│           ├── stm32f10x_gpio.c
│           ├── stm32f10x_i2c.c
│           ├── stm32f10x_iwdg.c
│           ├── stm32f10x_pwr.c
│           ├── stm32f10x_rcc.c
│           ├── stm32f10x_rtc.c
│           ├── stm32f10x_sdio.c
│           ├── stm32f10x_spi.c
│           ├── stm32f10x_tim.c
│           ├── stm32f10x_usart.c
│           └── stm32f10x_wwdg.c
├── Project/
│   └── RVMDK/
│       ├── DebugConfig/
│       │   ├── STM32F103_CLI_STM32F103C8.dbgconf
│       │   └── USART_STM32F103ZE.dbgconf
│       ├── JLinkSettings.ini
│       ├── Listing/
│       │   └── startup_stm32f10x_md.lst
│       ├── Output/
│       │   ├── STM32F103_CLI.axf
│       │   ├── STM32F103_CLI.build_log.htm
│       │   ├── STM32F103_CLI.hex
│       │   ├── STM32F103_CLI.htm
│       │   ├── STM32F103_CLI.lnp
│       │   ├── STM32F103_CLI.sct
│       │   ├── STM32F103_CLI_STM32F103_CLI.dep
│       │   ├── STM32F103_CLI_sct.Bak
│       │   ├── app_led.crf
│       │   ├── app_led.d
│       │   ├── app_led.o
│       │   ├── bsp_led.crf
│       │   ├── bsp_led.d
│       │   ├── bsp_led.o
│       │   ├── bsp_usart.crf
│       │   ├── bsp_usart.d
│       │   ├── bsp_usart.o
│       │   ├── core_cm3.crf
│       │   ├── core_cm3.d
│       │   ├── core_cm3.o
│       │   ├── main.crf
│       │   ├── main.d
│       │   ├── main.o
│       │   ├── misc.crf
│       │   ├── misc.d
│       │   ├── misc.o
│       │   ├── startup_stm32f10x_md.d
│       │   ├── startup_stm32f10x_md.o
│       │   ├── stm32f10x_adc.crf
│       │   ├── stm32f10x_adc.d
│       │   ├── stm32f10x_adc.o
│       │   ├── stm32f10x_bkp.crf
│       │   ├── stm32f10x_bkp.d
│       │   ├── stm32f10x_bkp.o
│       │   ├── stm32f10x_can.crf
│       │   ├── stm32f10x_can.d
│       │   ├── stm32f10x_can.o
│       │   ├── stm32f10x_cec.crf
│       │   ├── stm32f10x_cec.d
│       │   ├── stm32f10x_cec.o
│       │   ├── stm32f10x_crc.crf
│       │   ├── stm32f10x_crc.d
│       │   ├── stm32f10x_crc.o
│       │   ├── stm32f10x_dac.crf
│       │   ├── stm32f10x_dac.d
│       │   ├── stm32f10x_dac.o
│       │   ├── stm32f10x_dbgmcu.crf
│       │   ├── stm32f10x_dbgmcu.d
│       │   ├── stm32f10x_dbgmcu.o
│       │   ├── stm32f10x_dma.crf
│       │   ├── stm32f10x_dma.d
│       │   ├── stm32f10x_dma.o
│       │   ├── stm32f10x_exti.crf
│       │   ├── stm32f10x_exti.d
│       │   ├── stm32f10x_exti.o
│       │   ├── stm32f10x_flash.crf
│       │   ├── stm32f10x_flash.d
│       │   ├── stm32f10x_flash.o
│       │   ├── stm32f10x_fsmc.crf
│       │   ├── stm32f10x_fsmc.d
│       │   ├── stm32f10x_fsmc.o
│       │   ├── stm32f10x_gpio.crf
│       │   ├── stm32f10x_gpio.d
│       │   ├── stm32f10x_gpio.o
│       │   ├── stm32f10x_i2c.crf
│       │   ├── stm32f10x_i2c.d
│       │   ├── stm32f10x_i2c.o
│       │   ├── stm32f10x_it.crf
│       │   ├── stm32f10x_it.d
│       │   ├── stm32f10x_it.o
│       │   ├── stm32f10x_iwdg.crf
│       │   ├── stm32f10x_iwdg.d
│       │   ├── stm32f10x_iwdg.o
│       │   ├── stm32f10x_pwr.crf
│       │   ├── stm32f10x_pwr.d
│       │   ├── stm32f10x_pwr.o
│       │   ├── stm32f10x_rcc.crf
│       │   ├── stm32f10x_rcc.d
│       │   ├── stm32f10x_rcc.o
│       │   ├── stm32f10x_rtc.crf
│       │   ├── stm32f10x_rtc.d
│       │   ├── stm32f10x_rtc.o
│       │   ├── stm32f10x_sdio.crf
│       │   ├── stm32f10x_sdio.d
│       │   ├── stm32f10x_sdio.o
│       │   ├── stm32f10x_spi.crf
│       │   ├── stm32f10x_spi.d
│       │   ├── stm32f10x_spi.o
│       │   ├── stm32f10x_tim.crf
│       │   ├── stm32f10x_tim.d
│       │   ├── stm32f10x_tim.o
│       │   ├── stm32f10x_usart.crf
│       │   ├── stm32f10x_usart.d
│       │   ├── stm32f10x_usart.o
│       │   ├── stm32f10x_wwdg.crf
│       │   ├── stm32f10x_wwdg.d
│       │   ├── stm32f10x_wwdg.o
│       │   ├── sys_command_line.crf
│       │   ├── sys_command_line.d
│       │   ├── sys_command_line.o
│       │   ├── sys_queue.crf
│       │   ├── sys_queue.d
│       │   ├── sys_queue.o
│       │   ├── system_stm32f10x.crf
│       │   ├── system_stm32f10x.d
│       │   └── system_stm32f10x.o
│       ├── STM32F103_CLI.uvguix.Administrator
│       ├── STM32F103_CLI.uvguix.yf22
│       ├── STM32F103_CLI.uvoptx
│       └── STM32F103_CLI.uvprojx
├── README.md
├── Tool/
│   ├── README.md
│   ├── TrueSTUDIO_elf2bin.bat
│   ├── axf_to_bin.bat
│   └── hex_to_bin.bat
├── User/
│   ├── APP/
│   │   ├── _K&R_format.bat
│   │   ├── app_led.c
│   │   └── app_led.h
│   ├── BSP/
│   │   ├── _K&R_format.bat
│   │   ├── bsp_led.c
│   │   ├── bsp_led.h
│   │   ├── bsp_usart.c
│   │   └── bsp_usart.h
│   ├── COMPONENT/
│   │   ├── AES/
│   │   │   ├── README.md
│   │   │   ├── aes.c
│   │   │   └── aes.h
│   │   ├── AT/
│   │   │   ├── README.md
│   │   │   ├── at.c
│   │   │   └── at.h
│   │   ├── BASE64/
│   │   │   ├── README.md
│   │   │   ├── base64.c
│   │   │   └── base64.h
│   │   ├── BUTTON/
│   │   │   ├── README.md
│   │   │   ├── button.c
│   │   │   └── button.h
│   │   ├── MD5/
│   │   │   ├── README.md
│   │   │   ├── md5.c
│   │   │   └── md5.h
│   │   ├── RSA/
│   │   │   ├── README.md
│   │   │   ├── Rsa.c
│   │   │   └── Rsa.h
│   │   ├── SECURE_BOOT/
│   │   │   ├── README.md
│   │   │   ├── secure_boot.c
│   │   │   └── secure_boot.h
│   │   ├── SHA1/
│   │   │   ├── README.md
│   │   │   ├── sha1.c
│   │   │   └── sha1.h
│   │   ├── SHA256/
│   │   │   ├── README.md
│   │   │   ├── sha256.c
│   │   │   └── sha256.h
│   │   ├── SOFTWEAR_UART/
│   │   │   ├── README.md
│   │   │   ├── s_uart.c
│   │   │   └── s_uart.h
│   │   ├── STDIO/
│   │   │   ├── README.md
│   │   │   └── printf.c
│   │   ├── TEA/
│   │   │   ├── README.md
│   │   │   ├── tea.c
│   │   │   └── tea.h
│   │   ├── TIMER/
│   │   │   ├── README.md
│   │   │   ├── timer.c
│   │   │   └── timer.h
│   │   ├── UTIL/
│   │   │   ├── README.md
│   │   │   ├── util.c
│   │   │   └── util.h
│   │   ├── assert/
│   │   │   ├── HAPAssert.c
│   │   │   ├── HAPAssert.h
│   │   │   └── README.md
│   │   ├── base64_2/
│   │   │   ├── base64.c
│   │   │   ├── base64.h
│   │   │   └── main.c
│   │   ├── cJSON/
│   │   │   ├── cJSON/
│   │   │   │   ├── .github/
│   │   │   │   │   └── CONTRIBUTING.md
│   │   │   │   ├── .gitignore
│   │   │   │   ├── .travis.yml
│   │   │   │   ├── CHANGELOG.md
│   │   │   │   ├── CMakeLists.txt
│   │   │   │   ├── CONTRIBUTORS.md
│   │   │   │   ├── LICENSE
│   │   │   │   ├── Makefile
│   │   │   │   ├── README.md
│   │   │   │   ├── appveyor.yml
│   │   │   │   ├── cJSON.c
│   │   │   │   ├── cJSON.h
│   │   │   │   ├── cJSON_Utils.c
│   │   │   │   ├── cJSON_Utils.h
│   │   │   │   ├── fuzzing/
│   │   │   │   │   ├── .gitignore
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── afl-prepare-linux.sh
│   │   │   │   │   ├── afl.c
│   │   │   │   │   ├── afl.sh
│   │   │   │   │   ├── inputs/
│   │   │   │   │   │   ├── test1
│   │   │   │   │   │   ├── test10
│   │   │   │   │   │   ├── test11
│   │   │   │   │   │   ├── test2
│   │   │   │   │   │   ├── test3
│   │   │   │   │   │   ├── test3.bu
│   │   │   │   │   │   ├── test3.uf
│   │   │   │   │   │   ├── test3.uu
│   │   │   │   │   │   ├── test4
│   │   │   │   │   │   ├── test5
│   │   │   │   │   │   ├── test6
│   │   │   │   │   │   ├── test7
│   │   │   │   │   │   ├── test8
│   │   │   │   │   │   └── test9
│   │   │   │   │   └── json.dict
│   │   │   │   ├── library_config/
│   │   │   │   │   ├── cJSONConfig.cmake.in
│   │   │   │   │   ├── cJSONConfigVersion.cmake.in
│   │   │   │   │   ├── libcjson.pc.in
│   │   │   │   │   └── libcjson_utils.pc.in
│   │   │   │   ├── test.c
│   │   │   │   ├── tests/
│   │   │   │   │   ├── CMakeLists.txt
│   │   │   │   │   ├── cjson_add.c
│   │   │   │   │   ├── common.h
│   │   │   │   │   ├── compare_tests.c
│   │   │   │   │   ├── inputs/
│   │   │   │   │   │   ├── test1
│   │   │   │   │   │   ├── test1.expected
│   │   │   │   │   │   ├── test10
│   │   │   │   │   │   ├── test10.expected
│   │   │   │   │   │   ├── test11
│   │   │   │   │   │   ├── test11.expected
│   │   │   │   │   │   ├── test2
│   │   │   │   │   │   ├── test2.expected
│   │   │   │   │   │   ├── test3
│   │   │   │   │   │   ├── test3.expected
│   │   │   │   │   │   ├── test4
│   │   │   │   │   │   ├── test4.expected
│   │   │   │   │   │   ├── test5
│   │   │   │   │   │   ├── test5.expected
│   │   │   │   │   │   ├── test6
│   │   │   │   │   │   ├── test7
│   │   │   │   │   │   ├── test7.expected
│   │   │   │   │   │   ├── test8
│   │   │   │   │   │   ├── test8.expected
│   │   │   │   │   │   ├── test9
│   │   │   │   │   │   └── test9.expected
│   │   │   │   │   ├── json-patch-tests/
│   │   │   │   │   │   ├── .editorconfig
│   │   │   │   │   │   ├── .gitignore
│   │   │   │   │   │   ├── .npmignore
│   │   │   │   │   │   ├── README.md
│   │   │   │   │   │   ├── cjson-utils-tests.json
│   │   │   │   │   │   ├── package.json
│   │   │   │   │   │   ├── spec_tests.json
│   │   │   │   │   │   └── tests.json
│   │   │   │   │   ├── json_patch_tests.c
│   │   │   │   │   ├── misc_tests.c
│   │   │   │   │   ├── misc_utils_tests.c
│   │   │   │   │   ├── old_utils_tests.c
│   │   │   │   │   ├── parse_array.c
│   │   │   │   │   ├── parse_examples.c
│   │   │   │   │   ├── parse_hex4.c
│   │   │   │   │   ├── parse_number.c
│   │   │   │   │   ├── parse_object.c
│   │   │   │   │   ├── parse_string.c
│   │   │   │   │   ├── parse_value.c
│   │   │   │   │   ├── parse_with_opts.c
│   │   │   │   │   ├── print_array.c
│   │   │   │   │   ├── print_number.c
│   │   │   │   │   ├── print_object.c
│   │   │   │   │   ├── print_string.c
│   │   │   │   │   ├── print_value.c
│   │   │   │   │   ├── readme_examples.c
│   │   │   │   │   └── unity/
│   │   │   │   │       ├── .gitattributes
│   │   │   │   │       ├── .gitignore
│   │   │   │   │       ├── .travis.yml
│   │   │   │   │       ├── README.md
│   │   │   │   │       ├── auto/
│   │   │   │   │       │   ├── colour_prompt.rb
│   │   │   │   │       │   ├── colour_reporter.rb
│   │   │   │   │       │   ├── generate_config.yml
│   │   │   │   │       │   ├── generate_module.rb
│   │   │   │   │       │   ├── generate_test_runner.rb
│   │   │   │   │       │   ├── parse_output.rb
│   │   │   │   │       │   ├── stylize_as_junit.rb
│   │   │   │   │       │   ├── test_file_filter.rb
│   │   │   │   │       │   ├── type_sanitizer.rb
│   │   │   │   │       │   ├── unity_test_summary.py
│   │   │   │   │       │   ├── unity_test_summary.rb
│   │   │   │   │       │   └── unity_to_junit.py
│   │   │   │   │       ├── docs/
│   │   │   │   │       │   ├── ThrowTheSwitchCodingStandard.md
│   │   │   │   │       │   ├── UnityAssertionsReference.md
│   │   │   │   │       │   ├── UnityConfigurationGuide.md
│   │   │   │   │       │   ├── UnityGettingStartedGuide.md
│   │   │   │   │       │   ├── UnityHelperScriptsGuide.md
│   │   │   │   │       │   └── license.txt
│   │   │   │   │       ├── examples/
│   │   │   │   │       │   ├── example_1/
│   │   │   │   │       │   │   ├── makefile
│   │   │   │   │       │   │   ├── readme.txt
│   │   │   │   │       │   │   └── src/
│   │   │   │   │       │   │       ├── ProductionCode.c
│   │   │   │   │       │   │       ├── ProductionCode.h
│   │   │   │   │       │   │       ├── ProductionCode2.c
│   │   │   │   │       │   │       └── ProductionCode2.h
│   │   │   │   │       │   ├── example_2/
│   │   │   │   │       │   │   ├── makefile
│   │   │   │   │       │   │   ├── readme.txt
│   │   │   │   │       │   │   └── src/
│   │   │   │   │       │   │       ├── ProductionCode.c
│   │   │   │   │       │   │       ├── ProductionCode.h
│   │   │   │   │       │   │       ├── ProductionCode2.c
│   │   │   │   │       │   │       └── ProductionCode2.h
│   │   │   │   │       │   ├── example_3/
│   │   │   │   │       │   │   ├── helper/
│   │   │   │   │       │   │   │   ├── UnityHelper.c
│   │   │   │   │       │   │   │   └── UnityHelper.h
│   │   │   │   │       │   │   ├── rakefile.rb
│   │   │   │   │       │   │   ├── rakefile_helper.rb
│   │   │   │   │       │   │   ├── readme.txt
│   │   │   │   │       │   │   ├── src/
│   │   │   │   │       │   │   │   ├── ProductionCode.c
│   │   │   │   │       │   │   │   ├── ProductionCode.h
│   │   │   │   │       │   │   │   ├── ProductionCode2.c
│   │   │   │   │       │   │   │   └── ProductionCode2.h
│   │   │   │   │       │   │   └── target_gcc_32.yml
│   │   │   │   │       │   └── unity_config.h
│   │   │   │   │       ├── extras/
│   │   │   │   │       │   ├── eclipse/
│   │   │   │   │       │   │   └── error_parsers.txt
│   │   │   │   │       │   └── fixture/
│   │   │   │   │       │       ├── rakefile.rb
│   │   │   │   │       │       ├── rakefile_helper.rb
│   │   │   │   │       │       ├── readme.txt
│   │   │   │   │       │       └── src/
│   │   │   │   │       │           ├── unity_fixture.c
│   │   │   │   │       │           ├── unity_fixture.h
│   │   │   │   │       │           ├── unity_fixture_internals.h
│   │   │   │   │       │           └── unity_fixture_malloc_overrides.h
│   │   │   │   │       ├── release/
│   │   │   │   │       │   ├── build.info
│   │   │   │   │       │   └── version.info
│   │   │   │   │       └── src/
│   │   │   │   │           ├── unity.c
│   │   │   │   │           ├── unity.h
│   │   │   │   │           └── unity_internals.h
│   │   │   │   └── valgrind.supp
│   │   │   └── component.mk
│   │   ├── crc/
│   │   │   ├── README.md
│   │   │   ├── crc.c
│   │   │   └── crc.h
│   │   ├── debug/
│   │   │   ├── debug.h
│   │   │   └── debug2.h
│   │   ├── http-parser/
│   │   │   ├── component.mk
│   │   │   └── http-parser/
│   │   │       ├── .gitignore
│   │   │       ├── .mailmap
│   │   │       ├── .travis.yml
│   │   │       ├── AUTHORS
│   │   │       ├── LICENSE-MIT
│   │   │       ├── Makefile
│   │   │       ├── README.md
│   │   │       ├── bench.c
│   │   │       ├── contrib/
│   │   │       │   ├── parsertrace.c
│   │   │       │   └── url_parser.c
│   │   │       ├── http_parser.c
│   │   │       ├── http_parser.gyp
│   │   │       ├── http_parser.h
│   │   │       └── test.c
│   │   ├── json11/
│   │   │   ├── json11.cpp
│   │   │   └── json11.hpp
│   │   ├── msg_queue/
│   │   │   ├── msg_queue.c
│   │   │   └── msg_queue.h
│   │   └── qrcode/
│   │       ├── QrCode.cc
│   │       └── QrCode.hpp
│   ├── SYS/
│   │   ├── _K&R_format.bat
│   │   ├── sys_command_line.c
│   │   ├── sys_command_line.h
│   │   ├── sys_queue.c
│   │   └── sys_queue.h
│   ├── global.h
│   ├── main.c
│   ├── project_conf.h
│   ├── stm32f10x_conf.h
│   ├── stm32f10x_it.c
│   └── stm32f10x_it.h
└── keilkill.bat
Download .txt
SYMBOL INDEX (1774 symbols across 141 files)

FILE: Libraries/CMSIS/core_cm3.c
  function __ASM (line 58) | __ASM uint32_t __get_PSP(void)
  function __ASM (line 72) | __ASM void __set_PSP(uint32_t topOfProcStack)
  function __ASM (line 86) | __ASM uint32_t __get_MSP(void)
  function __ASM (line 100) | __ASM void __set_MSP(uint32_t mainStackPointer)
  function __ASM (line 114) | __ASM uint32_t __REV16(uint16_t value)
  function __ASM (line 128) | __ASM int32_t __REVSH(int16_t value)
  function __ASM (line 142) | __ASM void __CLREX(void)
  function __ASM (line 154) | __ASM uint32_t  __get_BASEPRI(void)
  function __ASM (line 167) | __ASM void __set_BASEPRI(uint32_t basePri)
  function __ASM (line 180) | __ASM uint32_t __get_PRIMASK(void)
  function __ASM (line 193) | __ASM void __set_PRIMASK(uint32_t priMask)
  function __ASM (line 206) | __ASM uint32_t  __get_FAULTMASK(void)
  function __ASM (line 219) | __ASM void __set_FAULTMASK(uint32_t faultMask)
  function __ASM (line 232) | __ASM uint32_t __get_CONTROL(void)
  function __ASM (line 245) | __ASM void __set_CONTROL(uint32_t control)
  function __get_PSP (line 266) | uint32_t __get_PSP(void)
  function __set_PSP (line 280) | void __set_PSP(uint32_t topOfProcStack)
  function __get_MSP (line 294) | uint32_t __get_MSP(void)
  function __set_MSP (line 308) | void __set_MSP(uint32_t topOfMainStack)
  function __REV16 (line 322) | uint32_t __REV16(uint16_t value)
  function __RBIT (line 336) | uint32_t __RBIT(uint32_t value)
  function __LDREXB (line 350) | uint8_t __LDREXB(uint8_t *addr)
  function __LDREXH (line 364) | uint16_t __LDREXH(uint16_t *addr)
  function __LDREXW (line 378) | uint32_t __LDREXW(uint32_t *addr)
  function __STREXB (line 393) | uint32_t __STREXB(uint8_t value, uint8_t *addr)
  function __STREXH (line 408) | uint32_t __STREXH(uint16_t value, uint16_t *addr)
  function __STREXW (line 423) | uint32_t __STREXW(uint32_t value, uint32_t *addr)
  function __get_PSP (line 443) | uint32_t __get_PSP(void)
  function __set_PSP (line 462) | void __set_PSP(uint32_t topOfProcStack)
  function __get_MSP (line 477) | uint32_t __get_MSP(void)
  function __set_MSP (line 496) | void __set_MSP(uint32_t topOfMainStack)
  function __get_BASEPRI (line 509) | uint32_t __get_BASEPRI(void)
  function __set_BASEPRI (line 524) | void __set_BASEPRI(uint32_t value)
  function __get_PRIMASK (line 536) | uint32_t __get_PRIMASK(void)
  function __set_PRIMASK (line 551) | void __set_PRIMASK(uint32_t priMask)
  function __get_FAULTMASK (line 563) | uint32_t __get_FAULTMASK(void)
  function __set_FAULTMASK (line 578) | void __set_FAULTMASK(uint32_t faultMask)
  function __get_CONTROL (line 590) | uint32_t __get_CONTROL(void)
  function __set_CONTROL (line 605) | void __set_CONTROL(uint32_t control)
  function __REV (line 619) | uint32_t __REV(uint32_t value)
  function __REV16 (line 635) | uint32_t __REV16(uint16_t value)
  function __REVSH (line 651) | int32_t __REVSH(int16_t value)
  function __RBIT (line 667) | uint32_t __RBIT(uint32_t value)
  function __LDREXB (line 683) | uint8_t __LDREXB(uint8_t *addr)
  function __LDREXH (line 699) | uint16_t __LDREXH(uint16_t *addr)
  function __LDREXW (line 715) | uint32_t __LDREXW(uint32_t *addr)
  function __STREXB (line 732) | uint32_t __STREXB(uint8_t value, uint8_t *addr)
  function __STREXH (line 749) | uint32_t __STREXH(uint16_t value, uint16_t *addr)
  function __STREXW (line 766) | uint32_t __STREXW(uint32_t value, uint32_t *addr)

FILE: Libraries/CMSIS/core_cm3.h
  type NVIC_Type (line 132) | typedef struct
  type SCB_Type (line 155) | typedef struct
  type SysTick_Type (line 365) | typedef struct
  type InterruptType_Type (line 503) | typedef struct
  type MPU_Type (line 535) | typedef struct
  type CoreDebug_Type (line 620) | typedef struct
  function __INLINE (line 948) | static __INLINE uint32_t  __get_BASEPRI(void)
  function __INLINE (line 961) | static __INLINE void __set_BASEPRI(uint32_t basePri)
  function __INLINE (line 974) | static __INLINE uint32_t __get_PRIMASK(void)
  function __INLINE (line 987) | static __INLINE void __set_PRIMASK(uint32_t priMask)
  function __INLINE (line 1000) | static __INLINE uint32_t __get_FAULTMASK(void)
  function __INLINE (line 1013) | static __INLINE void __set_FAULTMASK(uint32_t faultMask)
  function __INLINE (line 1026) | static __INLINE uint32_t __get_CONTROL(void)
  function __INLINE (line 1039) | static __INLINE void __set_CONTROL(uint32_t control)
  function __INLINE (line 1055) | static __INLINE void __enable_fault_irq()         { __ASM ("cpsie f"); }
  function __INLINE (line 1056) | static __INLINE void __disable_fault_irq()        { __ASM ("cpsid f"); }
  function __INLINE (line 1060) | static __INLINE  void __WFE()                     { __ASM ("wfe"); }
  function __INLINE (line 1061) | static __INLINE  void __SEV()                     { __ASM ("sev"); }
  function __INLINE (line 1062) | static __INLINE  void __CLREX()                   { __ASM ("clrex"); }
  function __INLINE (line 1210) | static __INLINE void __NOP()                      { __ASM volatile ("nop...
  function __INLINE (line 1211) | static __INLINE void __WFI()                      { __ASM volatile ("wfi...
  function __INLINE (line 1212) | static __INLINE void __WFE()                      { __ASM volatile ("wfe...
  function __INLINE (line 1213) | static __INLINE void __SEV()                      { __ASM volatile ("sev...
  function __INLINE (line 1214) | static __INLINE void __ISB()                      { __ASM volatile ("isb...
  function __INLINE (line 1215) | static __INLINE void __DSB()                      { __ASM volatile ("dsb...
  function __INLINE (line 1216) | static __INLINE void __DMB()                      { __ASM volatile ("dmb...
  function __INLINE (line 1217) | static __INLINE void __CLREX()                    { __ASM volatile ("clr...
  function __INLINE (line 1468) | static __INLINE void NVIC_SetPriorityGrouping(uint32_t PriorityGroup)
  function __INLINE (line 1489) | static __INLINE uint32_t NVIC_GetPriorityGrouping(void)
  function __INLINE (line 1502) | static __INLINE void NVIC_EnableIRQ(IRQn_Type IRQn)
  function __INLINE (line 1515) | static __INLINE void NVIC_DisableIRQ(IRQn_Type IRQn)
  function __INLINE (line 1529) | static __INLINE uint32_t NVIC_GetPendingIRQ(IRQn_Type IRQn)
  function __INLINE (line 1542) | static __INLINE void NVIC_SetPendingIRQ(IRQn_Type IRQn)
  function __INLINE (line 1555) | static __INLINE void NVIC_ClearPendingIRQ(IRQn_Type IRQn)
  function __INLINE (line 1569) | static __INLINE uint32_t NVIC_GetActive(IRQn_Type IRQn)
  function __INLINE (line 1586) | static __INLINE void NVIC_SetPriority(IRQn_Type IRQn, uint32_t priority)
  function __INLINE (line 1609) | static __INLINE uint32_t NVIC_GetPriority(IRQn_Type IRQn)
  function __INLINE (line 1634) | static __INLINE uint32_t NVIC_EncodePriority (uint32_t PriorityGroup, ui...
  function __INLINE (line 1665) | static __INLINE void NVIC_DecodePriority (uint32_t Priority, uint32_t Pr...
  function __INLINE (line 1694) | static __INLINE uint32_t SysTick_Config(uint32_t ticks)
  function __INLINE (line 1719) | static __INLINE void NVIC_SystemReset(void)
  function __INLINE (line 1756) | static __INLINE uint32_t ITM_SendChar (uint32_t ch)
  function __INLINE (line 1778) | static __INLINE int ITM_ReceiveChar (void) {
  function __INLINE (line 1798) | static __INLINE int ITM_CheckChar (void) {

FILE: Libraries/CMSIS/stm32f10x.h
  type IRQn_Type (line 167) | typedef enum IRQn
  type s32 (line 487) | typedef int32_t  s32;
  type s16 (line 488) | typedef int16_t s16;
  type s8 (line 489) | typedef int8_t  s8;
  type sc32 (line 491) | typedef const int32_t sc32;
  type sc16 (line 492) | typedef const int16_t sc16;
  type sc8 (line 493) | typedef const int8_t sc8;
  type __IO (line 495) | typedef __IO int32_t  vs32;
  type __IO (line 496) | typedef __IO int16_t  vs16;
  type __IO (line 497) | typedef __IO int8_t   vs8;
  type __I (line 499) | typedef __I int32_t vsc32;
  type __I (line 500) | typedef __I int16_t vsc16;
  type __I (line 501) | typedef __I int8_t vsc8;
  type u32 (line 503) | typedef uint32_t  u32;
  type u16 (line 504) | typedef uint16_t u16;
  type u8 (line 505) | typedef uint8_t  u8;
  type uc32 (line 507) | typedef const uint32_t uc32;
  type uc16 (line 508) | typedef const uint16_t uc16;
  type uc8 (line 509) | typedef const uint8_t uc8;
  type __IO (line 511) | typedef __IO uint32_t  vu32;
  type __IO (line 512) | typedef __IO uint16_t vu16;
  type __IO (line 513) | typedef __IO uint8_t  vu8;
  type __I (line 515) | typedef __I uint32_t vuc32;
  type __I (line 516) | typedef __I uint16_t vuc16;
  type __I (line 517) | typedef __I uint8_t vuc8;
  type FlagStatus (line 519) | typedef enum {RESET = 0, SET = !RESET} FlagStatus, ITStatus;
  type FunctionalState (line 521) | typedef enum {DISABLE = 0, ENABLE = !DISABLE} FunctionalState;
  type ErrorStatus (line 524) | typedef enum {ERROR = 0, SUCCESS = !ERROR} ErrorStatus;
  type ADC_TypeDef (line 542) | typedef struct
  type BKP_TypeDef (line 570) | typedef struct
  type CAN_TxMailBox_TypeDef (line 669) | typedef struct
  type CAN_FIFOMailBox_TypeDef (line 681) | typedef struct
  type CAN_FilterRegister_TypeDef (line 693) | typedef struct
  type CAN_TypeDef (line 703) | typedef struct
  type CEC_TypeDef (line 736) | typedef struct
  type CRC_TypeDef (line 751) | typedef struct
  type DAC_TypeDef (line 764) | typedef struct
  type DBGMCU_TypeDef (line 788) | typedef struct
  type DMA_Channel_TypeDef (line 798) | typedef struct
  type DMA_TypeDef (line 806) | typedef struct
  type ETH_TypeDef (line 816) | typedef struct
  type EXTI_TypeDef (line 887) | typedef struct
  type FLASH_TypeDef (line 901) | typedef struct
  type OB_TypeDef (line 926) | typedef struct
  type FSMC_Bank1_TypeDef (line 942) | typedef struct
  type FSMC_Bank1E_TypeDef (line 951) | typedef struct
  type FSMC_Bank2_TypeDef (line 960) | typedef struct
  type FSMC_Bank3_TypeDef (line 974) | typedef struct
  type FSMC_Bank4_TypeDef (line 988) | typedef struct
  type GPIO_TypeDef (line 1001) | typedef struct
  type AFIO_TypeDef (line 1016) | typedef struct
  type I2C_TypeDef (line 1028) | typedef struct
  type IWDG_TypeDef (line 1054) | typedef struct
  type PWR_TypeDef (line 1066) | typedef struct
  type RCC_TypeDef (line 1076) | typedef struct
  type RTC_TypeDef (line 1104) | typedef struct
  type SDIO_TypeDef (line 1132) | typedef struct
  type SPI_TypeDef (line 1160) | typedef struct
  type TIM_TypeDef (line 1186) | typedef struct
  type USART_TypeDef (line 1234) | typedef struct
  type WWDG_TypeDef (line 1256) | typedef struct

FILE: Libraries/CMSIS/system_stm32f10x.c
  function SystemInit (line 212) | void SystemInit (void)
  function SystemCoreClockUpdate (line 306) | void SystemCoreClockUpdate (void)
  function SetSysClock (line 419) | static void SetSysClock(void)
  function SystemInit_ExtMemCtl (line 455) | void SystemInit_ExtMemCtl(void)
  function SetSysClockToHSE (line 500) | static void SetSysClockToHSE(void)
  function SetSysClockTo24 (line 579) | static void SetSysClockTo24(void)
  function SetSysClockTo36 (line 683) | static void SetSysClockTo36(void)
  function SetSysClockTo48 (line 784) | static void SetSysClockTo48(void)
  function SetSysClockTo56 (line 885) | static void SetSysClockTo56(void)
  function SetSysClockTo72 (line 987) | static void SetSysClockTo72(void)

FILE: Libraries/FWlib/inc/misc.h
  type NVIC_InitTypeDef (line 50) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_adc.h
  type ADC_InitTypeDef (line 50) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_can.h
  type CAN_InitTypeDef (line 53) | typedef struct
  type CAN_FilterInitTypeDef (line 106) | typedef struct
  type CanTxMsg (line 145) | typedef struct
  type CanRxMsg (line 173) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_cec.h
  type CEC_InitTypeDef (line 50) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_dac.h
  type DAC_InitTypeDef (line 50) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_dma.h
  type DMA_InitTypeDef (line 50) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_exti.h
  type EXTIMode_TypeDef (line 50) | typedef enum
  type EXTITrigger_TypeDef (line 62) | typedef enum
  type EXTI_InitTypeDef (line 76) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_flash.h
  type FLASH_Status (line 50) | typedef enum

FILE: Libraries/FWlib/inc/stm32f10x_fsmc.h
  type FSMC_NORSRAMTimingInitTypeDef (line 50) | typedef struct
  type FSMC_NORSRAMInitTypeDef (line 92) | typedef struct
  type FSMC_NAND_PCCARDTimingInitTypeDef (line 151) | typedef struct
  type FSMC_NANDInitTypeDef (line 183) | typedef struct
  type FSMC_PCCARDInitTypeDef (line 217) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_gpio.h
  type GPIOSpeed_TypeDef (line 58) | typedef enum
  type GPIOMode_TypeDef (line 71) | typedef enum
  type GPIO_InitTypeDef (line 91) | typedef struct
  type BitAction (line 108) | typedef enum

FILE: Libraries/FWlib/inc/stm32f10x_i2c.h
  type I2C_InitTypeDef (line 50) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_rcc.h
  type RCC_ClocksTypeDef (line 46) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_sdio.h
  type SDIO_InitTypeDef (line 46) | typedef struct
  type SDIO_CmdInitTypeDef (line 70) | typedef struct
  type SDIO_DataInitTypeDef (line 90) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_spi.h
  type SPI_InitTypeDef (line 50) | typedef struct
  type I2S_InitTypeDef (line 87) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_tim.h
  type TIM_TimeBaseInitTypeDef (line 51) | typedef struct
  type TIM_OCInitTypeDef (line 80) | typedef struct
  type TIM_ICInitTypeDef (line 115) | typedef struct
  type TIM_BDTRInitTypeDef (line 139) | typedef struct

FILE: Libraries/FWlib/inc/stm32f10x_usart.h
  type USART_InitTypeDef (line 50) | typedef struct
  type USART_ClockInitTypeDef (line 82) | typedef struct

FILE: Libraries/FWlib/src/misc.c
  function NVIC_PriorityGroupConfig (line 96) | void NVIC_PriorityGroupConfig(uint32_t NVIC_PriorityGroup)
  function NVIC_Init (line 112) | void NVIC_Init(NVIC_InitTypeDef* NVIC_InitStruct)
  function NVIC_SetVectorTable (line 156) | void NVIC_SetVectorTable(uint32_t NVIC_VectTab, uint32_t Offset)
  function NVIC_SystemLPConfig (line 175) | void NVIC_SystemLPConfig(uint8_t LowPowerMode, FunctionalState NewState)
  function SysTick_CLKSourceConfig (line 199) | void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)

FILE: Libraries/FWlib/src/stm32f10x_adc.c
  function ADC_DeInit (line 179) | void ADC_DeInit(ADC_TypeDef* ADCx)
  function ADC_Init (line 218) | void ADC_Init(ADC_TypeDef* ADCx, ADC_InitTypeDef* ADC_InitStruct)
  function ADC_StructInit (line 275) | void ADC_StructInit(ADC_InitTypeDef* ADC_InitStruct)
  function ADC_Cmd (line 299) | void ADC_Cmd(ADC_TypeDef* ADCx, FunctionalState NewState)
  function ADC_DMACmd (line 324) | void ADC_DMACmd(ADC_TypeDef* ADCx, FunctionalState NewState)
  function ADC_ITConfig (line 353) | void ADC_ITConfig(ADC_TypeDef* ADCx, uint16_t ADC_IT, FunctionalState Ne...
  function ADC_ResetCalibration (line 379) | void ADC_ResetCalibration(ADC_TypeDef* ADCx)
  function FlagStatus (line 392) | FlagStatus ADC_GetResetCalibrationStatus(ADC_TypeDef* ADCx)
  function ADC_StartCalibration (line 417) | void ADC_StartCalibration(ADC_TypeDef* ADCx)
  function FlagStatus (line 430) | FlagStatus ADC_GetCalibrationStatus(ADC_TypeDef* ADCx)
  function ADC_SoftwareStartConvCmd (line 457) | void ADC_SoftwareStartConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
  function FlagStatus (line 481) | FlagStatus ADC_GetSoftwareStartConvStatus(ADC_TypeDef* ADCx)
  function ADC_DiscModeChannelCountConfig (line 509) | void ADC_DiscModeChannelCountConfig(ADC_TypeDef* ADCx, uint8_t Number)
  function ADC_DiscModeCmd (line 536) | void ADC_DiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
  function ADC_RegularChannelConfig (line 590) | void ADC_RegularChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, ui...
  function ADC_ExternalTrigConvCmd (line 686) | void ADC_ExternalTrigConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
  function ADC_GetConversionValue (line 708) | uint16_t ADC_GetConversionValue(ADC_TypeDef* ADCx)
  function ADC_GetDualModeConversionValue (line 720) | uint32_t ADC_GetDualModeConversionValue(void)
  function ADC_AutoInjectedConvCmd (line 734) | void ADC_AutoInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
  function ADC_InjectedDiscModeCmd (line 760) | void ADC_InjectedDiscModeCmd(ADC_TypeDef* ADCx, FunctionalState NewState)
  function ADC_ExternalTrigInjectedConvConfig (line 799) | void ADC_ExternalTrigInjectedConvConfig(ADC_TypeDef* ADCx, uint32_t ADC_...
  function ADC_ExternalTrigInjectedConvCmd (line 824) | void ADC_ExternalTrigInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState ...
  function ADC_SoftwareStartInjectedConvCmd (line 849) | void ADC_SoftwareStartInjectedConvCmd(ADC_TypeDef* ADCx, FunctionalState...
  function FlagStatus (line 873) | FlagStatus ADC_GetSoftwareStartInjectedConvCmdStatus(ADC_TypeDef* ADCx)
  function ADC_InjectedChannelConfig (line 930) | void ADC_InjectedChannelConfig(ADC_TypeDef* ADCx, uint8_t ADC_Channel, u...
  function ADC_InjectedSequencerLengthConfig (line 993) | void ADC_InjectedSequencerLengthConfig(ADC_TypeDef* ADCx, uint8_t Length)
  function ADC_SetInjectedOffset (line 1025) | void ADC_SetInjectedOffset(ADC_TypeDef* ADCx, uint8_t ADC_InjectedChanne...
  function ADC_GetInjectedConversionValue (line 1052) | uint16_t ADC_GetInjectedConversionValue(ADC_TypeDef* ADCx, uint8_t ADC_I...
  function ADC_AnalogWatchdogCmd (line 1082) | void ADC_AnalogWatchdogCmd(ADC_TypeDef* ADCx, uint32_t ADC_AnalogWatchdog)
  function ADC_AnalogWatchdogThresholdsConfig (line 1107) | void ADC_AnalogWatchdogThresholdsConfig(ADC_TypeDef* ADCx, uint16_t High...
  function ADC_AnalogWatchdogSingleChannelConfig (line 1145) | void ADC_AnalogWatchdogSingleChannelConfig(ADC_TypeDef* ADCx, uint8_t AD...
  function ADC_TempSensorVrefintCmd (line 1167) | void ADC_TempSensorVrefintCmd(FunctionalState NewState)
  function FlagStatus (line 1195) | FlagStatus ADC_GetFlagStatus(ADC_TypeDef* ADCx, uint8_t ADC_FLAG)
  function ADC_ClearFlag (line 1228) | void ADC_ClearFlag(ADC_TypeDef* ADCx, uint8_t ADC_FLAG)
  function ITStatus (line 1247) | ITStatus ADC_GetITStatus(ADC_TypeDef* ADCx, uint16_t ADC_IT)
  function ADC_ClearITPendingBit (line 1283) | void ADC_ClearITPendingBit(ADC_TypeDef* ADCx, uint16_t ADC_IT)

FILE: Libraries/FWlib/src/stm32f10x_bkp.c
  function BKP_DeInit (line 120) | void BKP_DeInit(void)
  function BKP_TamperPinLevelConfig (line 134) | void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel)
  function BKP_TamperPinCmd (line 147) | void BKP_TamperPinCmd(FunctionalState NewState)
  function BKP_ITConfig (line 160) | void BKP_ITConfig(FunctionalState NewState)
  function BKP_RTCOutputConfig (line 180) | void BKP_RTCOutputConfig(uint16_t BKP_RTCOutputSource)
  function BKP_SetRTCCalibrationValue (line 201) | void BKP_SetRTCCalibrationValue(uint8_t CalibrationValue)
  function BKP_WriteBackupRegister (line 222) | void BKP_WriteBackupRegister(uint16_t BKP_DR, uint16_t Data)
  function BKP_ReadBackupRegister (line 241) | uint16_t BKP_ReadBackupRegister(uint16_t BKP_DR)
  function FlagStatus (line 259) | FlagStatus BKP_GetFlagStatus(void)
  function BKP_ClearFlag (line 269) | void BKP_ClearFlag(void)
  function ITStatus (line 280) | ITStatus BKP_GetITStatus(void)
  function BKP_ClearITPendingBit (line 290) | void BKP_ClearITPendingBit(void)

FILE: Libraries/FWlib/src/stm32f10x_can.c
  function CAN_DeInit (line 122) | void CAN_DeInit(CAN_TypeDef* CANx)
  function CAN_Init (line 154) | uint8_t CAN_Init(CAN_TypeDef* CANx, CAN_InitTypeDef* CAN_InitStruct)
  function CAN_FilterInit (line 292) | void CAN_FilterInit(CAN_FilterInitTypeDef* CAN_FilterInitStruct)
  function CAN_StructInit (line 384) | void CAN_StructInit(CAN_InitTypeDef* CAN_InitStruct)
  function CAN_SlaveStartBank (line 428) | void CAN_SlaveStartBank(uint8_t CAN_BankNumber)
  function CAN_DBGFreeze (line 451) | void CAN_DBGFreeze(CAN_TypeDef* CANx, FunctionalState NewState)
  function CAN_TTComModeCmd (line 481) | void CAN_TTComModeCmd(CAN_TypeDef* CANx, FunctionalState NewState)
  function CAN_Transmit (line 515) | uint8_t CAN_Transmit(CAN_TypeDef* CANx, CanTxMsg* TxMessage)
  function CAN_TransmitStatus (line 589) | uint8_t CAN_TransmitStatus(CAN_TypeDef* CANx, uint8_t TransmitMailbox)
  function CAN_CancelTransmit (line 643) | void CAN_CancelTransmit(CAN_TypeDef* CANx, uint8_t Mailbox)
  function CAN_Receive (line 671) | void CAN_Receive(CAN_TypeDef* CANx, uint8_t FIFONumber, CanRxMsg* RxMess...
  function CAN_FIFORelease (line 720) | void CAN_FIFORelease(CAN_TypeDef* CANx, uint8_t FIFONumber)
  function CAN_MessagePending (line 743) | uint8_t CAN_MessagePending(CAN_TypeDef* CANx, uint8_t FIFONumber)
  function CAN_OperatingModeRequest (line 774) | uint8_t CAN_OperatingModeRequest(CAN_TypeDef* CANx, uint8_t CAN_Operatin...
  function CAN_Sleep (line 856) | uint8_t CAN_Sleep(CAN_TypeDef* CANx)
  function CAN_WakeUp (line 882) | uint8_t CAN_WakeUp(CAN_TypeDef* CANx)
  function CAN_GetLastErrorCode (line 922) | uint8_t CAN_GetLastErrorCode(CAN_TypeDef* CANx)
  function CAN_GetReceiveErrorCounter (line 946) | uint8_t CAN_GetReceiveErrorCounter(CAN_TypeDef* CANx)
  function CAN_GetLSBTransmitErrorCounter (line 966) | uint8_t CAN_GetLSBTransmitErrorCounter(CAN_TypeDef* CANx)
  function CAN_ITConfig (line 1003) | void CAN_ITConfig(CAN_TypeDef* CANx, uint32_t CAN_IT, FunctionalState Ne...
  function FlagStatus (line 1043) | FlagStatus CAN_GetFlagStatus(CAN_TypeDef* CANx, uint32_t CAN_FLAG)
  function CAN_ClearFlag (line 1143) | void CAN_ClearFlag(CAN_TypeDef* CANx, uint32_t CAN_FLAG)
  function ITStatus (line 1203) | ITStatus CAN_GetITStatus(CAN_TypeDef* CANx, uint32_t CAN_IT)
  function CAN_ClearITPendingBit (line 1306) | void CAN_ClearITPendingBit(CAN_TypeDef* CANx, uint32_t CAN_IT)
  function ITStatus (line 1385) | static ITStatus CheckITStatus(uint32_t CAN_Reg, uint32_t It_Bit)

FILE: Libraries/FWlib/src/stm32f10x_cec.c
  function CEC_DeInit (line 118) | void CEC_DeInit(void)
  function CEC_Init (line 135) | void CEC_Init(CEC_InitTypeDef* CEC_InitStruct)
  function CEC_Cmd (line 164) | void CEC_Cmd(FunctionalState NewState)
  function CEC_ITConfig (line 186) | void CEC_ITConfig(FunctionalState NewState)
  function CEC_OwnAddressConfig (line 199) | void CEC_OwnAddressConfig(uint8_t CEC_OwnAddress)
  function CEC_SetPrescaler (line 213) | void CEC_SetPrescaler(uint16_t CEC_Prescaler)
  function CEC_SendDataByte (line 227) | void CEC_SendDataByte(uint8_t Data)
  function CEC_ReceiveDataByte (line 239) | uint8_t CEC_ReceiveDataByte(void)
  function CEC_StartOfMessage (line 250) | void CEC_StartOfMessage(void)
  function CEC_EndOfMessageCmd (line 262) | void CEC_EndOfMessageCmd(FunctionalState NewState)
  function FlagStatus (line 291) | FlagStatus CEC_GetFlagStatus(uint32_t CEC_FLAG)
  function CEC_ClearFlag (line 349) | void CEC_ClearFlag(uint32_t CEC_FLAG)
  function ITStatus (line 372) | ITStatus CEC_GetITStatus(uint8_t CEC_IT)
  function CEC_ClearITPendingBit (line 408) | void CEC_ClearITPendingBit(uint16_t CEC_IT)

FILE: Libraries/FWlib/src/stm32f10x_crc.c
  function CRC_ResetDR (line 83) | void CRC_ResetDR(void)
  function CRC_CalcCRC (line 94) | uint32_t CRC_CalcCRC(uint32_t Data)
  function CRC_CalcBlockCRC (line 107) | uint32_t CRC_CalcBlockCRC(uint32_t pBuffer[], uint32_t BufferLength)
  function CRC_GetCRC (line 123) | uint32_t CRC_GetCRC(void)
  function CRC_SetIDRegister (line 133) | void CRC_SetIDRegister(uint8_t IDValue)
  function CRC_GetIDRegister (line 143) | uint8_t CRC_GetIDRegister(void)

FILE: Libraries/FWlib/src/stm32f10x_dac.c
  function DAC_DeInit (line 98) | void DAC_DeInit(void)
  function DAC_Init (line 117) | void DAC_Init(uint32_t DAC_Channel, DAC_InitTypeDef* DAC_InitStruct)
  function DAC_StructInit (line 150) | void DAC_StructInit(DAC_InitTypeDef* DAC_InitStruct)
  function DAC_Cmd (line 173) | void DAC_Cmd(uint32_t DAC_Channel, FunctionalState NewState)
  function DAC_ITConfig (line 203) | void DAC_ITConfig(uint32_t DAC_Channel, uint32_t DAC_IT, FunctionalState...
  function DAC_DMACmd (line 233) | void DAC_DMACmd(uint32_t DAC_Channel, FunctionalState NewState)
  function DAC_SoftwareTriggerCmd (line 260) | void DAC_SoftwareTriggerCmd(uint32_t DAC_Channel, FunctionalState NewState)
  function DAC_DualSoftwareTriggerCmd (line 284) | void DAC_DualSoftwareTriggerCmd(FunctionalState NewState)
  function DAC_WaveGenerationCmd (line 314) | void DAC_WaveGenerationCmd(uint32_t DAC_Channel, uint32_t DAC_Wave, Func...
  function DAC_SetChannel1Data (line 342) | void DAC_SetChannel1Data(uint32_t DAC_Align, uint16_t Data)
  function DAC_SetChannel2Data (line 367) | void DAC_SetChannel2Data(uint32_t DAC_Align, uint16_t Data)
  function DAC_SetDualChannelData (line 396) | void DAC_SetDualChannelData(uint32_t DAC_Align, uint16_t Data2, uint16_t...
  function DAC_GetDataOutputValue (line 430) | uint16_t DAC_GetDataOutputValue(uint32_t DAC_Channel)
  function FlagStatus (line 456) | FlagStatus DAC_GetFlagStatus(uint32_t DAC_Channel, uint32_t DAC_FLAG)
  function DAC_ClearFlag (line 489) | void DAC_ClearFlag(uint32_t DAC_Channel, uint32_t DAC_FLAG)
  function ITStatus (line 510) | ITStatus DAC_GetITStatus(uint32_t DAC_Channel, uint32_t DAC_IT)
  function DAC_ClearITPendingBit (line 548) | void DAC_ClearITPendingBit(uint32_t DAC_Channel, uint32_t DAC_IT)

FILE: Libraries/FWlib/src/stm32f10x_dbgmcu.c
  function DBGMCU_GetREVID (line 84) | uint32_t DBGMCU_GetREVID(void)
  function DBGMCU_GetDEVID (line 94) | uint32_t DBGMCU_GetDEVID(void)
  function DBGMCU_Config (line 134) | void DBGMCU_Config(uint32_t DBGMCU_Periph, FunctionalState NewState)

FILE: Libraries/FWlib/src/stm32f10x_dma.c
  function DMA_DeInit (line 108) | void DMA_DeInit(DMA_Channel_TypeDef* DMAy_Channelx)
  function DMA_Init (line 202) | void DMA_Init(DMA_Channel_TypeDef* DMAy_Channelx, DMA_InitTypeDef* DMA_I...
  function DMA_StructInit (line 259) | void DMA_StructInit(DMA_InitTypeDef* DMA_InitStruct)
  function DMA_Cmd (line 294) | void DMA_Cmd(DMA_Channel_TypeDef* DMAy_Channelx, FunctionalState NewState)
  function DMA_ITConfig (line 326) | void DMA_ITConfig(DMA_Channel_TypeDef* DMAy_Channelx, uint32_t DMA_IT, F...
  function DMA_SetCurrDataCounter (line 353) | void DMA_SetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx, uint16_t...
  function DMA_GetCurrDataCounter (line 371) | uint16_t DMA_GetCurrDataCounter(DMA_Channel_TypeDef* DMAy_Channelx)
  function FlagStatus (line 433) | FlagStatus DMA_GetFlagStatus(uint32_t DMAy_FLAG)
  function DMA_ClearFlag (line 523) | void DMA_ClearFlag(uint32_t DMAy_FLAG)
  function ITStatus (line 595) | ITStatus DMA_GetITStatus(uint32_t DMAy_IT)
  function DMA_ClearITPendingBit (line 684) | void DMA_ClearITPendingBit(uint32_t DMAy_IT)

FILE: Libraries/FWlib/src/stm32f10x_exti.c
  function EXTI_DeInit (line 85) | void EXTI_DeInit(void)
  function EXTI_Init (line 101) | void EXTI_Init(EXTI_InitTypeDef* EXTI_InitStruct)
  function EXTI_StructInit (line 157) | void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct)
  function EXTI_GenerateSWInterrupt (line 171) | void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line)
  function FlagStatus (line 186) | FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line)
  function EXTI_ClearFlag (line 209) | void EXTI_ClearFlag(uint32_t EXTI_Line)
  function ITStatus (line 224) | ITStatus EXTI_GetITStatus(uint32_t EXTI_Line)
  function EXTI_ClearITPendingBit (line 249) | void EXTI_ClearITPendingBit(uint32_t EXTI_Line)

FILE: Libraries/FWlib/src/stm32f10x_flash.c
  function FLASH_SetLatency (line 254) | void FLASH_SetLatency(uint32_t FLASH_Latency)
  function FLASH_HalfCycleAccessCmd (line 281) | void FLASH_HalfCycleAccessCmd(uint32_t FLASH_HalfCycleAccess)
  function FLASH_PrefetchBufferCmd (line 300) | void FLASH_PrefetchBufferCmd(uint32_t FLASH_PrefetchBuffer)
  function FLASH_Unlock (line 319) | void FLASH_Unlock(void)
  function FLASH_UnlockBank1 (line 340) | void FLASH_UnlockBank1(void)
  function FLASH_UnlockBank2 (line 354) | void FLASH_UnlockBank2(void)
  function FLASH_Lock (line 372) | void FLASH_Lock(void)
  function FLASH_LockBank1 (line 392) | void FLASH_LockBank1(void)
  function FLASH_LockBank2 (line 405) | void FLASH_LockBank2(void)
  function FLASH_Status (line 419) | FLASH_Status FLASH_ErasePage(uint32_t Page_Address)
  function FLASH_Status (line 492) | FLASH_Status FLASH_EraseAllPages(void)
  function FLASH_Status (line 555) | FLASH_Status FLASH_EraseAllBank1Pages(void)
  function FLASH_Status (line 585) | FLASH_Status FLASH_EraseAllBank2Pages(void)
  function FLASH_Status (line 616) | FLASH_Status FLASH_EraseOptionBytes(void)
  function FLASH_Status (line 681) | FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data)
  function FLASH_Status (line 858) | FLASH_Status FLASH_ProgramHalfWord(uint32_t Address, uint16_t Data)
  function FLASH_Status (line 929) | FLASH_Status FLASH_ProgramOptionByteData(uint32_t Address, uint8_t Data)
  function FLASH_Status (line 975) | FLASH_Status FLASH_EnableWriteProtection(uint32_t FLASH_Pages)
  function FLASH_Status (line 1049) | FLASH_Status FLASH_ReadOutProtection(FunctionalState NewState)
  function FLASH_Status (line 1118) | FLASH_Status FLASH_UserOptionByteConfig(uint16_t OB_IWDG, uint16_t OB_ST...
  function FLASH_Status (line 1172) | FLASH_Status FLASH_BootConfig(uint16_t FLASH_BOOT)
  function FLASH_GetUserOptionByte (line 1216) | uint32_t FLASH_GetUserOptionByte(void)
  function FLASH_GetWriteProtectionOptionByte (line 1228) | uint32_t FLASH_GetWriteProtectionOptionByte(void)
  function FlagStatus (line 1240) | FlagStatus FLASH_GetReadOutProtectionStatus(void)
  function FlagStatus (line 1260) | FlagStatus FLASH_GetPrefetchBufferStatus(void)
  function FLASH_ITConfig (line 1290) | void FLASH_ITConfig(uint32_t FLASH_IT, FunctionalState NewState)
  function FlagStatus (line 1357) | FlagStatus FLASH_GetFlagStatus(uint32_t FLASH_FLAG)
  function FLASH_ClearFlag (line 1443) | void FLASH_ClearFlag(uint32_t FLASH_FLAG)
  function FLASH_Status (line 1477) | FLASH_Status FLASH_GetStatus(void)
  function FLASH_Status (line 1515) | FLASH_Status FLASH_GetBank1Status(void)
  function FLASH_Status (line 1553) | FLASH_Status FLASH_GetBank2Status(void)
  function FLASH_Status (line 1595) | FLASH_Status FLASH_WaitForLastOperation(uint32_t Timeout)
  function FLASH_Status (line 1623) | FLASH_Status FLASH_WaitForLastBank1Operation(uint32_t Timeout)
  function FLASH_Status (line 1651) | FLASH_Status FLASH_WaitForLastBank2Operation(uint32_t Timeout)

FILE: Libraries/FWlib/src/stm32f10x_fsmc.c
  function FSMC_NORSRAMDeInit (line 102) | void FSMC_NORSRAMDeInit(uint32_t FSMC_Bank)
  function FSMC_NANDDeInit (line 129) | void FSMC_NANDDeInit(uint32_t FSMC_Bank)
  function FSMC_PCCARDDeInit (line 158) | void FSMC_PCCARDDeInit(void)
  function FSMC_NORSRAMInit (line 176) | void FSMC_NORSRAMInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStruct)
  function FSMC_NANDInit (line 262) | void FSMC_NANDInit(FSMC_NANDInitTypeDef* FSMC_NANDInitStruct)
  function FSMC_PCCARDInit (line 328) | void FSMC_PCCARDInit(FSMC_PCCARDInitTypeDef* FSMC_PCCARDInitStruct)
  function FSMC_NORSRAMStructInit (line 380) | void FSMC_NORSRAMStructInit(FSMC_NORSRAMInitTypeDef* FSMC_NORSRAMInitStr...
  function FSMC_NANDStructInit (line 418) | void FSMC_NANDStructInit(FSMC_NANDInitTypeDef* FSMC_NANDInitStruct)
  function FSMC_PCCARDStructInit (line 444) | void FSMC_PCCARDStructInit(FSMC_PCCARDInitTypeDef* FSMC_PCCARDInitStruct)
  function FSMC_NORSRAMCmd (line 475) | void FSMC_NORSRAMCmd(uint32_t FSMC_Bank, FunctionalState NewState)
  function FSMC_NANDCmd (line 501) | void FSMC_NANDCmd(uint32_t FSMC_Bank, FunctionalState NewState)
  function FSMC_PCCARDCmd (line 538) | void FSMC_PCCARDCmd(FunctionalState NewState)
  function FSMC_NANDECCCmd (line 564) | void FSMC_NANDECCCmd(uint32_t FSMC_Bank, FunctionalState NewState)
  function FSMC_GetECC (line 603) | uint32_t FSMC_GetECC(uint32_t FSMC_Bank)
  function FSMC_ITConfig (line 637) | void FSMC_ITConfig(uint32_t FSMC_Bank, uint32_t FSMC_IT, FunctionalState...
  function FlagStatus (line 697) | FlagStatus FSMC_GetFlagStatus(uint32_t FSMC_Bank, uint32_t FSMC_FLAG)
  function FSMC_ClearFlag (line 747) | void FSMC_ClearFlag(uint32_t FSMC_Bank, uint32_t FSMC_FLAG)
  function ITStatus (line 782) | ITStatus FSMC_GetITStatus(uint32_t FSMC_Bank, uint32_t FSMC_IT)
  function FSMC_ClearITPendingBit (line 833) | void FSMC_ClearITPendingBit(uint32_t FSMC_Bank, uint32_t FSMC_IT)

FILE: Libraries/FWlib/src/stm32f10x_gpio.c
  function GPIO_DeInit (line 108) | void GPIO_DeInit(GPIO_TypeDef* GPIOx)
  function GPIO_AFIODeInit (line 159) | void GPIO_AFIODeInit(void)
  function GPIO_Init (line 173) | void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
  function GPIO_StructInit (line 266) | void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct)
  function GPIO_ReadInputDataBit (line 281) | uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
  function GPIO_ReadInputData (line 305) | uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx)
  function GPIO_ReadOutputDataBit (line 320) | uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
  function GPIO_ReadOutputData (line 343) | uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx)
  function GPIO_SetBits (line 358) | void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
  function GPIO_ResetBits (line 374) | void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
  function GPIO_WriteBit (line 394) | void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction Bit...
  function GPIO_Write (line 417) | void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal)
  function GPIO_PinLockConfig (line 432) | void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin)
  function GPIO_EventOutputConfig (line 462) | void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSou...
  function GPIO_EventOutputCmd (line 483) | void GPIO_EventOutputCmd(FunctionalState NewState)
  function GPIO_PinRemapConfig (line 549) | void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState)
  function GPIO_EXTILineConfig (line 609) | void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
  function GPIO_ETH_MediaInterfaceConfig (line 630) | void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface)

FILE: Libraries/FWlib/src/stm32f10x_i2c.c
  function I2C_DeInit (line 162) | void I2C_DeInit(I2C_TypeDef* I2Cx)
  function I2C_Init (line 191) | void I2C_Init(I2C_TypeDef* I2Cx, I2C_InitTypeDef* I2C_InitStruct)
  function I2C_StructInit (line 298) | void I2C_StructInit(I2C_InitTypeDef* I2C_InitStruct)
  function I2C_Cmd (line 322) | void I2C_Cmd(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_DMACmd (line 346) | void I2C_DMACmd(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_DMALastTransferCmd (line 370) | void I2C_DMALastTransferCmd(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_GenerateSTART (line 394) | void I2C_GenerateSTART(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_GenerateSTOP (line 418) | void I2C_GenerateSTOP(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_AcknowledgeConfig (line 442) | void I2C_AcknowledgeConfig(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_OwnAddress2Config (line 465) | void I2C_OwnAddress2Config(I2C_TypeDef* I2Cx, uint8_t Address)
  function I2C_DualAddressCmd (line 492) | void I2C_DualAddressCmd(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_GeneralCallCmd (line 516) | void I2C_GeneralCallCmd(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_ITConfig (line 545) | void I2C_ITConfig(I2C_TypeDef* I2Cx, uint16_t I2C_IT, FunctionalState Ne...
  function I2C_SendData (line 570) | void I2C_SendData(I2C_TypeDef* I2Cx, uint8_t Data)
  function I2C_ReceiveData (line 583) | uint8_t I2C_ReceiveData(I2C_TypeDef* I2Cx)
  function I2C_Send7bitAddress (line 601) | void I2C_Send7bitAddress(I2C_TypeDef* I2Cx, uint8_t Address, uint8_t I2C...
  function I2C_ReadRegister (line 636) | uint16_t I2C_ReadRegister(I2C_TypeDef* I2Cx, uint8_t I2C_Register)
  function I2C_SoftwareResetCmd (line 658) | void I2C_SoftwareResetCmd(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_NACKPositionConfig (line 696) | void I2C_NACKPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_NACKPosition)
  function I2C_SMBusAlertConfig (line 724) | void I2C_SMBusAlertConfig(I2C_TypeDef* I2Cx, uint16_t I2C_SMBusAlert)
  function I2C_TransmitPEC (line 748) | void I2C_TransmitPEC(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_PECPositionConfig (line 779) | void I2C_PECPositionConfig(I2C_TypeDef* I2Cx, uint16_t I2C_PECPosition)
  function I2C_CalculatePEC (line 803) | void I2C_CalculatePEC(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_GetPEC (line 825) | uint8_t I2C_GetPEC(I2C_TypeDef* I2Cx)
  function I2C_ARPCmd (line 840) | void I2C_ARPCmd(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_StretchClockCmd (line 864) | void I2C_StretchClockCmd(I2C_TypeDef* I2Cx, FunctionalState NewState)
  function I2C_FastModeDutyCycleConfig (line 890) | void I2C_FastModeDutyCycleConfig(I2C_TypeDef* I2Cx, uint16_t I2C_DutyCycle)
  function ErrorStatus (line 1030) | ErrorStatus I2C_CheckEvent(I2C_TypeDef* I2Cx, uint32_t I2C_EVENT)
  function I2C_GetLastEvent (line 1078) | uint32_t I2C_GetLastEvent(I2C_TypeDef* I2Cx)
  function FlagStatus (line 1133) | FlagStatus I2C_GetFlagStatus(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG)
  function I2C_ClearFlag (line 1212) | void I2C_ClearFlag(I2C_TypeDef* I2Cx, uint32_t I2C_FLAG)
  function ITStatus (line 1246) | ITStatus I2C_GetITStatus(I2C_TypeDef* I2Cx, uint32_t I2C_IT)
  function I2C_ClearITPendingBit (line 1307) | void I2C_ClearITPendingBit(I2C_TypeDef* I2Cx, uint32_t I2C_IT)

FILE: Libraries/FWlib/src/stm32f10x_iwdg.c
  function IWDG_WriteAccessCmd (line 92) | void IWDG_WriteAccessCmd(uint16_t IWDG_WriteAccess)
  function IWDG_SetPrescaler (line 112) | void IWDG_SetPrescaler(uint8_t IWDG_Prescaler)
  function IWDG_SetReload (line 125) | void IWDG_SetReload(uint16_t Reload)
  function IWDG_ReloadCounter (line 138) | void IWDG_ReloadCounter(void)
  function IWDG_Enable (line 148) | void IWDG_Enable(void)
  function FlagStatus (line 161) | FlagStatus IWDG_GetFlagStatus(uint16_t IWDG_FLAG)

FILE: Libraries/FWlib/src/stm32f10x_pwr.c
  function PWR_DeInit (line 112) | void PWR_DeInit(void)
  function PWR_BackupAccessCmd (line 124) | void PWR_BackupAccessCmd(FunctionalState NewState)
  function PWR_PVDCmd (line 137) | void PWR_PVDCmd(FunctionalState NewState)
  function PWR_PVDLevelConfig (line 158) | void PWR_PVDLevelConfig(uint32_t PWR_PVDLevel)
  function PWR_WakeUpPinCmd (line 178) | void PWR_WakeUpPinCmd(FunctionalState NewState)
  function PWR_EnterSTOPMode (line 197) | void PWR_EnterSTOPMode(uint32_t PWR_Regulator, uint8_t PWR_STOPEntry)
  function PWR_EnterSTANDBYMode (line 236) | void PWR_EnterSTANDBYMode(void)
  function FlagStatus (line 261) | FlagStatus PWR_GetFlagStatus(uint32_t PWR_FLAG)
  function PWR_ClearFlag (line 287) | void PWR_ClearFlag(uint32_t PWR_FLAG)

FILE: Libraries/FWlib/src/stm32f10x_rcc.c
  function RCC_DeInit (line 217) | void RCC_DeInit(void)
  function RCC_HSEConfig (line 270) | void RCC_HSEConfig(uint32_t RCC_HSE)
  function ErrorStatus (line 304) | ErrorStatus RCC_WaitForHSEStartUp(void)
  function RCC_AdjustHSICalibrationValue (line 334) | void RCC_AdjustHSICalibrationValue(uint8_t HSICalibrationValue)
  function RCC_HSICmd (line 354) | void RCC_HSICmd(FunctionalState NewState)
  function RCC_PLLConfig (line 378) | void RCC_PLLConfig(uint32_t RCC_PLLSource, uint32_t RCC_PLLMul)
  function RCC_PLLCmd (line 401) | void RCC_PLLCmd(FunctionalState NewState)
  function RCC_PREDIV1Config (line 426) | void RCC_PREDIV1Config(uint32_t RCC_PREDIV1_Source, uint32_t RCC_PREDIV1...
  function RCC_PREDIV2Config (line 454) | void RCC_PREDIV2Config(uint32_t RCC_PREDIV2_Div)
  function RCC_PLL2Config (line 479) | void RCC_PLL2Config(uint32_t RCC_PLL2Mul)
  function RCC_PLL2Cmd (line 505) | void RCC_PLL2Cmd(FunctionalState NewState)
  function RCC_PLL3Config (line 523) | void RCC_PLL3Config(uint32_t RCC_PLL3Mul)
  function RCC_PLL3Cmd (line 546) | void RCC_PLL3Cmd(FunctionalState NewState)
  function RCC_SYSCLKConfig (line 564) | void RCC_SYSCLKConfig(uint32_t RCC_SYSCLKSource)
  function RCC_GetSYSCLKSource (line 587) | uint8_t RCC_GetSYSCLKSource(void)
  function RCC_HCLKConfig (line 608) | void RCC_HCLKConfig(uint32_t RCC_SYSCLK)
  function RCC_PCLK1Config (line 634) | void RCC_PCLK1Config(uint32_t RCC_HCLK)
  function RCC_PCLK2Config (line 660) | void RCC_PCLK2Config(uint32_t RCC_HCLK)
  function RCC_ITConfig (line 700) | void RCC_ITConfig(uint8_t RCC_IT, FunctionalState NewState)
  function RCC_USBCLKConfig (line 728) | void RCC_USBCLKConfig(uint32_t RCC_USBCLKSource)
  function RCC_OTGFSCLKConfig (line 746) | void RCC_OTGFSCLKConfig(uint32_t RCC_OTGFSCLKSource)
  function RCC_ADCCLKConfig (line 766) | void RCC_ADCCLKConfig(uint32_t RCC_PCLK2)
  function RCC_I2S2CLKConfig (line 792) | void RCC_I2S2CLKConfig(uint32_t RCC_I2S2CLKSource)
  function RCC_I2S3CLKConfig (line 811) | void RCC_I2S3CLKConfig(uint32_t RCC_I2S3CLKSource)
  function RCC_LSEConfig (line 829) | void RCC_LSEConfig(uint8_t RCC_LSE)
  function RCC_LSICmd (line 862) | void RCC_LSICmd(FunctionalState NewState)
  function RCC_RTCCLKConfig (line 879) | void RCC_RTCCLKConfig(uint32_t RCC_RTCCLKSource)
  function RCC_RTCCLKCmd (line 893) | void RCC_RTCCLKCmd(FunctionalState NewState)
  function RCC_GetClocksFreq (line 908) | void RCC_GetClocksFreq(RCC_ClocksTypeDef* RCC_Clocks)
  function RCC_AHBPeriphClockCmd (line 1064) | void RCC_AHBPeriphClockCmd(uint32_t RCC_AHBPeriph, FunctionalState NewSt...
  function RCC_APB2PeriphClockCmd (line 1095) | void RCC_APB2PeriphClockCmd(uint32_t RCC_APB2Periph, FunctionalState New...
  function RCC_APB1PeriphClockCmd (line 1126) | void RCC_APB1PeriphClockCmd(uint32_t RCC_APB1Periph, FunctionalState New...
  function RCC_AHBPeriphResetCmd (line 1153) | void RCC_AHBPeriphResetCmd(uint32_t RCC_AHBPeriph, FunctionalState NewSt...
  function RCC_APB2PeriphResetCmd (line 1185) | void RCC_APB2PeriphResetCmd(uint32_t RCC_APB2Periph, FunctionalState New...
  function RCC_APB1PeriphResetCmd (line 1216) | void RCC_APB1PeriphResetCmd(uint32_t RCC_APB1Periph, FunctionalState New...
  function RCC_BackupResetCmd (line 1237) | void RCC_BackupResetCmd(FunctionalState NewState)
  function RCC_ClockSecuritySystemCmd (line 1250) | void RCC_ClockSecuritySystemCmd(FunctionalState NewState)
  function RCC_MCOConfig (line 1282) | void RCC_MCOConfig(uint8_t RCC_MCO)
  function FlagStatus (line 1326) | FlagStatus RCC_GetFlagStatus(uint8_t RCC_FLAG)
  function RCC_ClearFlag (line 1371) | void RCC_ClearFlag(void)
  function ITStatus (line 1402) | ITStatus RCC_GetITStatus(uint8_t RCC_IT)
  function RCC_ClearITPendingBit (line 1448) | void RCC_ClearITPendingBit(uint8_t RCC_IT)

FILE: Libraries/FWlib/src/stm32f10x_rtc.c
  function RTC_ITConfig (line 90) | void RTC_ITConfig(uint16_t RTC_IT, FunctionalState NewState)
  function RTC_EnterConfigMode (line 111) | void RTC_EnterConfigMode(void)
  function RTC_ExitConfigMode (line 122) | void RTC_ExitConfigMode(void)
  function RTC_GetCounter (line 133) | uint32_t RTC_GetCounter(void)
  function RTC_SetCounter (line 145) | void RTC_SetCounter(uint32_t CounterValue)
  function RTC_SetPrescaler (line 160) | void RTC_SetPrescaler(uint32_t PrescalerValue)
  function RTC_SetAlarm (line 178) | void RTC_SetAlarm(uint32_t AlarmValue)
  function RTC_GetDivider (line 193) | uint32_t RTC_GetDivider(void)
  function RTC_WaitForLastTask (line 207) | void RTC_WaitForLastTask(void)
  function RTC_WaitForSynchro (line 223) | void RTC_WaitForSynchro(void)
  function FlagStatus (line 244) | FlagStatus RTC_GetFlagStatus(uint16_t RTC_FLAG)
  function RTC_ClearFlag (line 273) | void RTC_ClearFlag(uint16_t RTC_FLAG)
  function ITStatus (line 291) | ITStatus RTC_GetITStatus(uint16_t RTC_IT)
  function RTC_ClearITPendingBit (line 318) | void RTC_ClearITPendingBit(uint16_t RTC_IT)

FILE: Libraries/FWlib/src/stm32f10x_sdio.c
  function SDIO_DeInit (line 161) | void SDIO_DeInit(void)
  function SDIO_Init (line 181) | void SDIO_Init(SDIO_InitTypeDef* SDIO_InitStruct)
  function SDIO_StructInit (line 219) | void SDIO_StructInit(SDIO_InitTypeDef* SDIO_InitStruct)
  function SDIO_ClockCmd (line 235) | void SDIO_ClockCmd(FunctionalState NewState)
  function SDIO_SetPowerState (line 251) | void SDIO_SetPowerState(uint32_t SDIO_PowerState)
  function SDIO_GetPowerState (line 269) | uint32_t SDIO_GetPowerState(void)
  function SDIO_ITConfig (line 307) | void SDIO_ITConfig(uint32_t SDIO_IT, FunctionalState NewState)
  function SDIO_DMACmd (line 331) | void SDIO_DMACmd(FunctionalState NewState)
  function SDIO_SendCommand (line 346) | void SDIO_SendCommand(SDIO_CmdInitTypeDef *SDIO_CmdInitStruct)
  function SDIO_CmdStructInit (line 382) | void SDIO_CmdStructInit(SDIO_CmdInitTypeDef* SDIO_CmdInitStruct)
  function SDIO_GetCommandResponse (line 397) | uint8_t SDIO_GetCommandResponse(void)
  function SDIO_GetResponse (line 412) | uint32_t SDIO_GetResponse(uint32_t SDIO_RESP)
  function SDIO_DataConfig (line 431) | void SDIO_DataConfig(SDIO_DataInitTypeDef* SDIO_DataInitStruct)
  function SDIO_DataStructInit (line 472) | void SDIO_DataStructInit(SDIO_DataInitTypeDef* SDIO_DataInitStruct)
  function SDIO_GetDataCounter (line 488) | uint32_t SDIO_GetDataCounter(void)
  function SDIO_ReadData (line 498) | uint32_t SDIO_ReadData(void)
  function SDIO_WriteData (line 508) | void SDIO_WriteData(uint32_t Data)
  function SDIO_GetFIFOCount (line 518) | uint32_t SDIO_GetFIFOCount(void)
  function SDIO_StartSDIOReadWait (line 529) | void SDIO_StartSDIOReadWait(FunctionalState NewState)
  function SDIO_StopSDIOReadWait (line 543) | void SDIO_StopSDIOReadWait(FunctionalState NewState)
  function SDIO_SetSDIOReadWaitMode (line 559) | void SDIO_SetSDIOReadWaitMode(uint32_t SDIO_ReadWaitMode)
  function SDIO_SetSDIOOperation (line 573) | void SDIO_SetSDIOOperation(FunctionalState NewState)
  function SDIO_SendSDIOSuspendCmd (line 587) | void SDIO_SendSDIOSuspendCmd(FunctionalState NewState)
  function SDIO_CommandCompletionCmd (line 601) | void SDIO_CommandCompletionCmd(FunctionalState NewState)
  function SDIO_CEATAITCmd (line 614) | void SDIO_CEATAITCmd(FunctionalState NewState)
  function SDIO_SendCEATACmd (line 627) | void SDIO_SendCEATACmd(FunctionalState NewState)
  function FlagStatus (line 666) | FlagStatus SDIO_GetFlagStatus(uint32_t SDIO_FLAG)
  function SDIO_ClearFlag (line 704) | void SDIO_ClearFlag(uint32_t SDIO_FLAG)
  function ITStatus (line 743) | ITStatus SDIO_GetITStatus(uint32_t SDIO_IT)
  function SDIO_ClearITPendingBit (line 779) | void SDIO_ClearITPendingBit(uint32_t SDIO_IT)

FILE: Libraries/FWlib/src/stm32f10x_spi.c
  function SPI_I2S_DeInit (line 119) | void SPI_I2S_DeInit(SPI_TypeDef* SPIx)
  function SPI_Init (line 158) | void SPI_Init(SPI_TypeDef* SPIx, SPI_InitTypeDef* SPI_InitStruct)
  function I2S_Init (line 219) | void I2S_Init(SPI_TypeDef* SPIx, I2S_InitTypeDef* I2S_InitStruct)
  function SPI_StructInit (line 370) | void SPI_StructInit(SPI_InitTypeDef* SPI_InitStruct)
  function I2S_StructInit (line 398) | void I2S_StructInit(I2S_InitTypeDef* I2S_InitStruct)
  function SPI_Cmd (line 427) | void SPI_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState)
  function I2S_Cmd (line 451) | void I2S_Cmd(SPI_TypeDef* SPIx, FunctionalState NewState)
  function SPI_I2S_ITConfig (line 482) | void SPI_I2S_ITConfig(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT, FunctionalS...
  function SPI_I2S_DMACmd (line 521) | void SPI_I2S_DMACmd(SPI_TypeDef* SPIx, uint16_t SPI_I2S_DMAReq, Function...
  function SPI_I2S_SendData (line 547) | void SPI_I2S_SendData(SPI_TypeDef* SPIx, uint16_t Data)
  function SPI_I2S_ReceiveData (line 563) | uint16_t SPI_I2S_ReceiveData(SPI_TypeDef* SPIx)
  function SPI_NSSInternalSoftwareConfig (line 581) | void SPI_NSSInternalSoftwareConfig(SPI_TypeDef* SPIx, uint16_t SPI_NSSIn...
  function SPI_SSOutputCmd (line 605) | void SPI_SSOutputCmd(SPI_TypeDef* SPIx, FunctionalState NewState)
  function SPI_DataSizeConfig (line 631) | void SPI_DataSizeConfig(SPI_TypeDef* SPIx, uint16_t SPI_DataSize)
  function SPI_TransmitCRC (line 647) | void SPI_TransmitCRC(SPI_TypeDef* SPIx)
  function SPI_CalculateCRC (line 663) | void SPI_CalculateCRC(SPI_TypeDef* SPIx, FunctionalState NewState)
  function SPI_GetCRC (line 689) | uint16_t SPI_GetCRC(SPI_TypeDef* SPIx, uint8_t SPI_CRC)
  function SPI_GetCRCPolynomial (line 714) | uint16_t SPI_GetCRCPolynomial(SPI_TypeDef* SPIx)
  function SPI_BiDirectionalLineConfig (line 732) | void SPI_BiDirectionalLineConfig(SPI_TypeDef* SPIx, uint16_t SPI_Direction)
  function FlagStatus (line 766) | FlagStatus SPI_I2S_GetFlagStatus(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG)
  function SPI_I2S_ClearFlag (line 804) | void SPI_I2S_ClearFlag(SPI_TypeDef* SPIx, uint16_t SPI_I2S_FLAG)
  function ITStatus (line 829) | ITStatus SPI_I2S_GetITStatus(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT)
  function SPI_I2S_ClearITPendingBit (line 883) | void SPI_I2S_ClearITPendingBit(SPI_TypeDef* SPIx, uint8_t SPI_I2S_IT)

FILE: Libraries/FWlib/src/stm32f10x_tim.c
  function TIM_DeInit (line 122) | void TIM_DeInit(TIM_TypeDef* TIMx)
  function TIM_TimeBaseInit (line 226) | void TIM_TimeBaseInit(TIM_TypeDef* TIMx, TIM_TimeBaseInitTypeDef* TIM_Ti...
  function TIM_OC1Init (line 279) | void TIM_OC1Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct)
  function TIM_OC2Init (line 362) | void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct)
  function TIM_OC3Init (line 444) | void TIM_OC3Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct)
  function TIM_OC4Init (line 523) | void TIM_OC4Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct)
  function TIM_ICInit (line 587) | void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
  function TIM_PWMIConfig (line 654) | void TIM_PWMIConfig(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
  function TIM_BDTRConfig (line 712) | void TIM_BDTRConfig(TIM_TypeDef* TIMx, TIM_BDTRInitTypeDef *TIM_BDTRInit...
  function TIM_TimeBaseStructInit (line 736) | void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStr...
  function TIM_OCStructInit (line 752) | void TIM_OCStructInit(TIM_OCInitTypeDef* TIM_OCInitStruct)
  function TIM_ICStructInit (line 771) | void TIM_ICStructInit(TIM_ICInitTypeDef* TIM_ICInitStruct)
  function TIM_BDTRStructInit (line 787) | void TIM_BDTRStructInit(TIM_BDTRInitTypeDef* TIM_BDTRInitStruct)
  function TIM_Cmd (line 806) | void TIM_Cmd(TIM_TypeDef* TIMx, FunctionalState NewState)
  function TIM_CtrlPWMOutputs (line 831) | void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState)
  function TIM_ITConfig (line 872) | void TIM_ITConfig(TIM_TypeDef* TIMx, uint16_t TIM_IT, FunctionalState Ne...
  function TIM_GenerateEvent (line 909) | void TIM_GenerateEvent(TIM_TypeDef* TIMx, uint16_t TIM_EventSource)
  function TIM_DMAConfig (line 937) | void TIM_DMAConfig(TIM_TypeDef* TIMx, uint16_t TIM_DMABase, uint16_t TIM...
  function TIM_DMACmd (line 964) | void TIM_DMACmd(TIM_TypeDef* TIMx, uint16_t TIM_DMASource, FunctionalSta...
  function TIM_InternalClockConfig (line 989) | void TIM_InternalClockConfig(TIM_TypeDef* TIMx)
  function TIM_ITRxExternalClockConfig (line 1008) | void TIM_ITRxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_InputTr...
  function TIM_TIxExternalClockConfig (line 1035) | void TIM_TIxExternalClockConfig(TIM_TypeDef* TIMx, uint16_t TIM_TIxExter...
  function TIM_ETRClockMode1Config (line 1075) | void TIM_ETRClockMode1Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPresc...
  function TIM_ETRClockMode2Config (line 1117) | void TIM_ETRClockMode2Config(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPresc...
  function TIM_ETRConfig (line 1148) | void TIM_ETRConfig(TIM_TypeDef* TIMx, uint16_t TIM_ExtTRGPrescaler, uint...
  function TIM_PrescalerConfig (line 1176) | void TIM_PrescalerConfig(TIM_TypeDef* TIMx, uint16_t Prescaler, uint16_t...
  function TIM_CounterModeConfig (line 1199) | void TIM_CounterModeConfig(TIM_TypeDef* TIMx, uint16_t TIM_CounterMode)
  function TIM_SelectInputTrigger (line 1229) | void TIM_SelectInputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_InputTrigger...
  function TIM_EncoderInterfaceConfig (line 1264) | void TIM_EncoderInterfaceConfig(TIM_TypeDef* TIMx, uint16_t TIM_EncoderM...
  function TIM_ForcedOC1Config (line 1315) | void TIM_ForcedOC1Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction)
  function TIM_ForcedOC2Config (line 1339) | void TIM_ForcedOC2Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction)
  function TIM_ForcedOC3Config (line 1363) | void TIM_ForcedOC3Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction)
  function TIM_ForcedOC4Config (line 1387) | void TIM_ForcedOC4Config(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction)
  function TIM_ARRPreloadConfig (line 1409) | void TIM_ARRPreloadConfig(TIM_TypeDef* TIMx, FunctionalState NewState)
  function TIM_SelectCOM (line 1433) | void TIM_SelectCOM(TIM_TypeDef* TIMx, FunctionalState NewState)
  function TIM_SelectCCDMA (line 1458) | void TIM_SelectCCDMA(TIM_TypeDef* TIMx, FunctionalState NewState)
  function TIM_CCPreloadControl (line 1483) | void TIM_CCPreloadControl(TIM_TypeDef* TIMx, FunctionalState NewState)
  function TIM_OC1PreloadConfig (line 1509) | void TIM_OC1PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload)
  function TIM_OC2PreloadConfig (line 1534) | void TIM_OC2PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload)
  function TIM_OC3PreloadConfig (line 1558) | void TIM_OC3PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload)
  function TIM_OC4PreloadConfig (line 1582) | void TIM_OC4PreloadConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPreload)
  function TIM_OC1FastConfig (line 1606) | void TIM_OC1FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast)
  function TIM_OC2FastConfig (line 1632) | void TIM_OC2FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast)
  function TIM_OC3FastConfig (line 1657) | void TIM_OC3FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast)
  function TIM_OC4FastConfig (line 1682) | void TIM_OC4FastConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCFast)
  function TIM_ClearOC1Ref (line 1707) | void TIM_ClearOC1Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear)
  function TIM_ClearOC2Ref (line 1733) | void TIM_ClearOC2Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear)
  function TIM_ClearOC3Ref (line 1757) | void TIM_ClearOC3Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear)
  function TIM_ClearOC4Ref (line 1781) | void TIM_ClearOC4Ref(TIM_TypeDef* TIMx, uint16_t TIM_OCClear)
  function TIM_OC1PolarityConfig (line 1805) | void TIM_OC1PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity)
  function TIM_OC1NPolarityConfig (line 1828) | void TIM_OC1NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity)
  function TIM_OC2PolarityConfig (line 1852) | void TIM_OC2PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity)
  function TIM_OC2NPolarityConfig (line 1875) | void TIM_OC2NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity)
  function TIM_OC3PolarityConfig (line 1899) | void TIM_OC3PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity)
  function TIM_OC3NPolarityConfig (line 1922) | void TIM_OC3NPolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCNPolarity)
  function TIM_OC4PolarityConfig (line 1947) | void TIM_OC4PolarityConfig(TIM_TypeDef* TIMx, uint16_t TIM_OCPolarity)
  function TIM_CCxCmd (line 1974) | void TIM_CCxCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_CCx)
  function TIM_CCxNCmd (line 2004) | void TIM_CCxNCmd(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TIM_C...
  function TIM_SelectOCxM (line 2045) | void TIM_SelectOCxM(TIM_TypeDef* TIMx, uint16_t TIM_Channel, uint16_t TI...
  function TIM_UpdateDisableConfig (line 2092) | void TIM_UpdateDisableConfig(TIM_TypeDef* TIMx, FunctionalState NewState)
  function TIM_UpdateRequestConfig (line 2120) | void TIM_UpdateRequestConfig(TIM_TypeDef* TIMx, uint16_t TIM_UpdateSource)
  function TIM_SelectHallSensor (line 2144) | void TIM_SelectHallSensor(TIM_TypeDef* TIMx, FunctionalState NewState)
  function TIM_SelectOnePulseMode (line 2170) | void TIM_SelectOnePulseMode(TIM_TypeDef* TIMx, uint16_t TIM_OPMode)
  function TIM_SelectOutputTrigger (line 2202) | void TIM_SelectOutputTrigger(TIM_TypeDef* TIMx, uint16_t TIM_TRGOSource)
  function TIM_SelectSlaveMode (line 2225) | void TIM_SelectSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_SlaveMode)
  function TIM_SelectMasterSlaveMode (line 2246) | void TIM_SelectMasterSlaveMode(TIM_TypeDef* TIMx, uint16_t TIM_MasterSla...
  function TIM_SetCounter (line 2264) | void TIM_SetCounter(TIM_TypeDef* TIMx, uint16_t Counter)
  function TIM_SetAutoreload (line 2278) | void TIM_SetAutoreload(TIM_TypeDef* TIMx, uint16_t Autoreload)
  function TIM_SetCompare1 (line 2292) | void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1)
  function TIM_SetCompare2 (line 2306) | void TIM_SetCompare2(TIM_TypeDef* TIMx, uint16_t Compare2)
  function TIM_SetCompare3 (line 2320) | void TIM_SetCompare3(TIM_TypeDef* TIMx, uint16_t Compare3)
  function TIM_SetCompare4 (line 2334) | void TIM_SetCompare4(TIM_TypeDef* TIMx, uint16_t Compare4)
  function TIM_SetIC1Prescaler (line 2353) | void TIM_SetIC1Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC)
  function TIM_SetIC2Prescaler (line 2375) | void TIM_SetIC2Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC)
  function TIM_SetIC3Prescaler (line 2397) | void TIM_SetIC3Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC)
  function TIM_SetIC4Prescaler (line 2419) | void TIM_SetIC4Prescaler(TIM_TypeDef* TIMx, uint16_t TIM_ICPSC)
  function TIM_SetClockDivision (line 2441) | void TIM_SetClockDivision(TIM_TypeDef* TIMx, uint16_t TIM_CKD)
  function TIM_GetCapture1 (line 2457) | uint16_t TIM_GetCapture1(TIM_TypeDef* TIMx)
  function TIM_GetCapture2 (line 2470) | uint16_t TIM_GetCapture2(TIM_TypeDef* TIMx)
  function TIM_GetCapture3 (line 2483) | uint16_t TIM_GetCapture3(TIM_TypeDef* TIMx)
  function TIM_GetCapture4 (line 2496) | uint16_t TIM_GetCapture4(TIM_TypeDef* TIMx)
  function TIM_GetCounter (line 2509) | uint16_t TIM_GetCounter(TIM_TypeDef* TIMx)
  function TIM_GetPrescaler (line 2522) | uint16_t TIM_GetPrescaler(TIM_TypeDef* TIMx)
  function FlagStatus (line 2556) | FlagStatus TIM_GetFlagStatus(TIM_TypeDef* TIMx, uint16_t TIM_FLAG)
  function TIM_ClearFlag (line 2600) | void TIM_ClearFlag(TIM_TypeDef* TIMx, uint16_t TIM_FLAG)
  function ITStatus (line 2632) | ITStatus TIM_GetITStatus(TIM_TypeDef* TIMx, uint16_t TIM_IT)
  function TIM_ClearITPendingBit (line 2676) | void TIM_ClearITPendingBit(TIM_TypeDef* TIMx, uint16_t TIM_IT)
  function TI1_Config (line 2701) | static void TI1_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint1...
  function TI2_Config (line 2748) | static void TI2_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint1...
  function TI3_Config (line 2797) | static void TI3_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint1...
  function TI4_Config (line 2845) | static void TI4_Config(TIM_TypeDef* TIMx, uint16_t TIM_ICPolarity, uint1...

FILE: Libraries/FWlib/src/stm32f10x_usart.c
  function USART_DeInit (line 130) | void USART_DeInit(USART_TypeDef* USARTx)
  function USART_Init (line 176) | void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct)
  function USART_StructInit (line 281) | void USART_StructInit(USART_InitTypeDef* USART_InitStruct)
  function USART_ClockInit (line 302) | void USART_ClockInit(USART_TypeDef* USARTx, USART_ClockInitTypeDef* USAR...
  function USART_ClockStructInit (line 333) | void USART_ClockStructInit(USART_ClockInitTypeDef* USART_ClockInitStruct)
  function USART_Cmd (line 351) | void USART_Cmd(USART_TypeDef* USARTx, FunctionalState NewState)
  function USART_ITConfig (line 388) | void USART_ITConfig(USART_TypeDef* USARTx, uint16_t USART_IT, Functional...
  function USART_DMACmd (line 448) | void USART_DMACmd(USART_TypeDef* USARTx, uint16_t USART_DMAReq, Function...
  function USART_SetAddress (line 476) | void USART_SetAddress(USART_TypeDef* USARTx, uint8_t USART_Address)
  function USART_WakeUpConfig (line 499) | void USART_WakeUpConfig(USART_TypeDef* USARTx, uint16_t USART_WakeUp)
  function USART_ReceiverWakeUpCmd (line 518) | void USART_ReceiverWakeUpCmd(USART_TypeDef* USARTx, FunctionalState NewS...
  function USART_LINBreakDetectLengthConfig (line 547) | void USART_LINBreakDetectLengthConfig(USART_TypeDef* USARTx, uint16_t US...
  function USART_LINCmd (line 566) | void USART_LINCmd(USART_TypeDef* USARTx, FunctionalState NewState)
  function USART_SendData (line 592) | void USART_SendData(USART_TypeDef* USARTx, uint16_t Data)
  function USART_ReceiveData (line 609) | uint16_t USART_ReceiveData(USART_TypeDef* USARTx)
  function USART_SendBreak (line 625) | void USART_SendBreak(USART_TypeDef* USARTx)
  function USART_SetGuardTime (line 641) | void USART_SetGuardTime(USART_TypeDef* USARTx, uint8_t USART_GuardTime)
  function USART_SetPrescaler (line 661) | void USART_SetPrescaler(USART_TypeDef* USARTx, uint8_t USART_Prescaler)
  function USART_SmartCardCmd (line 680) | void USART_SmartCardCmd(USART_TypeDef* USARTx, FunctionalState NewState)
  function USART_SmartCardNACKCmd (line 705) | void USART_SmartCardNACKCmd(USART_TypeDef* USARTx, FunctionalState NewSt...
  function USART_HalfDuplexCmd (line 731) | void USART_HalfDuplexCmd(USART_TypeDef* USARTx, FunctionalState NewState)
  function USART_OverSampling8Cmd (line 762) | void USART_OverSampling8Cmd(USART_TypeDef* USARTx, FunctionalState NewSt...
  function USART_OneBitMethodCmd (line 789) | void USART_OneBitMethodCmd(USART_TypeDef* USARTx, FunctionalState NewState)
  function USART_IrDAConfig (line 818) | void USART_IrDAConfig(USART_TypeDef* USARTx, uint16_t USART_IrDAMode)
  function USART_IrDACmd (line 837) | void USART_IrDACmd(USART_TypeDef* USARTx, FunctionalState NewState)
  function FlagStatus (line 874) | FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG)
  function USART_ClearFlag (line 923) | void USART_ClearFlag(USART_TypeDef* USARTx, uint16_t USART_FLAG)
  function ITStatus (line 956) | ITStatus USART_GetITStatus(USART_TypeDef* USARTx, uint16_t USART_IT)
  function USART_ClearITPendingBit (line 1030) | void USART_ClearITPendingBit(USART_TypeDef* USARTx, uint16_t USART_IT)

FILE: Libraries/FWlib/src/stm32f10x_wwdg.c
  function WWDG_DeInit (line 102) | void WWDG_DeInit(void)
  function WWDG_SetPrescaler (line 118) | void WWDG_SetPrescaler(uint32_t WWDG_Prescaler)
  function WWDG_SetWindowValue (line 137) | void WWDG_SetWindowValue(uint8_t WindowValue)
  function WWDG_EnableIT (line 159) | void WWDG_EnableIT(void)
  function WWDG_SetCounter (line 170) | void WWDG_SetCounter(uint8_t Counter)
  function WWDG_Enable (line 185) | void WWDG_Enable(uint8_t Counter)
  function FlagStatus (line 197) | FlagStatus WWDG_GetFlagStatus(void)
  function WWDG_ClearFlag (line 207) | void WWDG_ClearFlag(void)

FILE: User/APP/app_led.c
  function LED_Init (line 16) | void LED_Init(void)
  function CLI_LED_Init (line 27) | uint8_t CLI_LED_Init(void)
  function CLI_LED (line 40) | uint8_t CLI_LED(void *para, uint8_t len)

FILE: User/BSP/bsp_led.c
  function LED_GPIO_Config (line 11) | void LED_GPIO_Config(void)

FILE: User/BSP/bsp_usart.c
  function DEBUG_USART_TX_IRQHandler (line 14) | void DEBUG_USART_TX_IRQHandler(void)
  function DEBUG_USART_RX_IRQHandler (line 25) | void DEBUG_USART_RX_IRQHandler(void)
  function NVIC_Configuration (line 41) | static void NVIC_Configuration(void)
  function debug_usart_init (line 60) | void debug_usart_init(uint32_t baud)
  function Usart_SendByte (line 104) | void Usart_SendByte( USART_TypeDef * pUSARTx, uint8_t ch)
  function Usart_SendArray (line 114) | void Usart_SendArray( USART_TypeDef * pUSARTx, uint8_t *array, uint16_t ...
  function Usart_SendString (line 128) | void Usart_SendString( USART_TypeDef * pUSARTx, char *str)
  function Usart_SendHalfWord (line 142) | void Usart_SendHalfWord( USART_TypeDef * pUSARTx, uint16_t ch)
  function fputc (line 161) | int fputc(int ch, FILE *f)
  function fgetc (line 173) | int fgetc(FILE *f)

FILE: User/COMPONENT/AES/aes.c
  function CalcPowLog (line 59) | static void CalcPowLog(unsigned char *powTbl, unsigned char *logTbl)
  function CalcSBox (line 76) | static void CalcSBox(unsigned char *sBox)
  function CalcSBoxInv (line 109) | static void CalcSBoxInv(unsigned char *sBox, unsigned char *sBoxInv)
  function CycleLeft (line 128) | static void CycleLeft(unsigned char *row)
  function InvMixColumn (line 139) | static void InvMixColumn(unsigned char *column)
  function SubBytes (line 185) | static void SubBytes(unsigned char *bytes, unsigned char count)
  function InvSubBytesAndXOR (line 193) | static void InvSubBytesAndXOR(unsigned char *bytes, unsigned char *key,
  function InvShiftRows (line 205) | static void InvShiftRows(unsigned char *state)
  function InvMixColumns (line 234) | static void InvMixColumns(unsigned char *state)
  function XORBytes (line 242) | static void XORBytes(unsigned char *bytes1, unsigned char *bytes2,
  function CopyBytes (line 252) | static void CopyBytes(unsigned char *to, unsigned char *from, unsigned c...
  function KeyExpansion (line 261) | static void KeyExpansion(unsigned char *expandedKey)
  function InvCipher (line 319) | static void InvCipher(unsigned char *block, unsigned char *expandedKey)
  function aesDecInit (line 338) | static void aesDecInit(void)
  function aesDecrypt (line 354) | static void aesDecrypt(unsigned char *buffer, unsigned char *chainBlock)
  function Multiply (line 364) | static unsigned char Multiply(unsigned char num, unsigned char factor)
  function DotProduct (line 386) | static unsigned char DotProduct(unsigned char *vector1, unsigned char *v...
  function MixColumn (line 398) | static void MixColumn(unsigned char *column)
  function MixColumns (line 418) | static void MixColumns(unsigned char *state)
  function ShiftRows (line 426) | static void ShiftRows(unsigned char *state)
  function Cipher (line 455) | static void Cipher(unsigned char *block, unsigned char *expandedKey)
  function aesEncInit (line 475) | static void aesEncInit(void)
  function aesEncrypt (line 488) | static void aesEncrypt(unsigned char *buffer, unsigned char *chainBlock)
  function aes_encode (line 502) | unsigned char aes_encode(unsigned char *key, unsigned char *databuf,
  function aes_decode (line 533) | unsigned char aes_decode(const unsigned char *key, unsigned char *databuf,

FILE: User/COMPONENT/AT/at.c
  function at_send_char (line 30) | static void at_send_char(AT_S* p_at, uint8_t c)
  function at_send_pack (line 43) | static void at_send_pack(AT_S* p_at, uint8_t* data, uint16_t num)
  function at_get_char (line 59) | void at_get_char(AT_S* p_at, uint8_t c)
  function at_get_cmd_len (line 77) | static int8_t at_get_cmd_len(uint8_t* p_cmd)
  function at_cmd_match (line 106) | static void at_cmd_match(AT_S* p_at)
  function at_process (line 184) | static void at_process(AT_S* p_at)
  function at_init (line 252) | uint8_t at_init(AT_S* p_at,
  function at_task (line 283) | void at_task(void)

FILE: User/COMPONENT/AT/at.h
  type AT_CMD_S (line 30) | typedef struct {
  type AT_S (line 40) | typedef struct AT_S {

FILE: User/COMPONENT/BASE64/base64.c
  function base64_decode (line 44) | int base64_decode(  char * base64, unsigned char * bindata )

FILE: User/COMPONENT/BUTTON/button.c
  type Button (line 18) | struct Button
  function button_init (line 27) | void button_init(struct Button* handle, uint8_t(*pin_level)(), uint8_t a...
  function button_attach (line 43) | void button_attach(struct Button* handle, PressEvent event, BtnCallback cb)
  function PressEvent (line 53) | PressEvent get_button_event(struct Button* handle)
  function button_handler (line 63) | void button_handler(struct Button* handle)
  function button_start (line 173) | int button_start(struct Button* handle)
  function button_stop (line 193) | void button_stop(struct Button* handle)
  function button_ticks (line 213) | void button_ticks()

FILE: User/COMPONENT/BUTTON/button.h
  type PressEvent (line 24) | typedef enum {
  type Button (line 36) | typedef struct Button {
  type Button (line 49) | struct Button
  type Button (line 50) | struct Button
  type Button (line 51) | struct Button
  type Button (line 52) | struct Button
  type Button (line 53) | struct Button

FILE: User/COMPONENT/MD5/md5.c
  function md5_init (line 84) | void md5_init(MD5_CTX *context)
  function md5_update (line 106) | void md5_update(MD5_CTX *context, unsigned char * input, unsigned int in...
  function md5_final (line 158) | void md5_final(unsigned char digest[16], MD5_CTX *context)
  function md5_transform (line 204) | static void md5_transform(UINT4 state[4], unsigned char block[64])
  function md5_encode (line 299) | static void md5_encode(unsigned char *output, UINT4 *input, unsigned int...
  function md5_decode (line 319) | static void md5_decode(UINT4 *output, unsigned char *input, unsigned int...
  function md5_calculation (line 336) | void md5_calculation(unsigned char * input, unsigned long blen, unsigned...

FILE: User/COMPONENT/MD5/md5.h
  type UINT4 (line 10) | typedef unsigned long UINT4;
  type MD5_CTX (line 15) | typedef struct {

FILE: User/COMPONENT/RSA/Rsa.c
  type NN_DIGIT (line 20) | typedef unsigned int NN_DIGIT;
  type NN_HALF_DIGIT (line 21) | typedef unsigned short NN_HALF_DIGIT;
  function __asm (line 23) | static __asm void dmult(unsigned int a, unsigned int b, unsigned int *cH...
  function NN_Decode (line 56) | static void NN_Decode (NN_DIGIT *a, unsigned int digits, unsigned char *...
  function NN_Encode (line 76) | static void NN_Encode (unsigned char *a, unsigned int len, NN_DIGIT *b, ...
  function NN_Assign (line 93) | static void NN_Assign (NN_DIGIT *a, NN_DIGIT *b, unsigned int digits)
  function NN_AssignZero (line 104) | static void NN_AssignZero (NN_DIGIT *a, unsigned int digits)
  function NN_DigitBits (line 115) | static unsigned int NN_DigitBits (NN_DIGIT a)
  function NN_Digits (line 128) | static unsigned int NN_Digits (NN_DIGIT *a, unsigned int digits)
  function NN_Cmp (line 141) | static int NN_Cmp (NN_DIGIT *a, NN_DIGIT *b, unsigned int digits)
  function NN_DIGIT (line 156) | static NN_DIGIT NN_Add (NN_DIGIT *a, NN_DIGIT *b, NN_DIGIT *c, unsigned ...
  function NN_DIGIT (line 178) | static NN_DIGIT NN_Sub (NN_DIGIT *a, NN_DIGIT *b, NN_DIGIT *c, unsigned ...
  function NN_DIGIT (line 199) | static NN_DIGIT NN_LShift (NN_DIGIT *a, NN_DIGIT *b, unsigned int c, uns...
  function NN_DIGIT (line 221) | static NN_DIGIT NN_RShift (NN_DIGIT *a, NN_DIGIT *b, unsigned int c, uns...
  function NN_Mult (line 245) | static void NN_Mult (NN_DIGIT *a, NN_DIGIT *b, NN_DIGIT *c, unsigned int...
  function NN_Div (line 281) | static void NN_Div (NN_DIGIT *a, NN_DIGIT *b, NN_DIGIT *c, unsigned int ...
  function NN_Mod (line 394) | static void NN_Mod (NN_DIGIT *a, NN_DIGIT *b, unsigned int bDigits, NN_D...
  function NN_ModMult (line 403) | static void NN_ModMult (NN_DIGIT *a, NN_DIGIT *b, NN_DIGIT *c, NN_DIGIT ...
  function NN_ModExp (line 413) | static void NN_ModExp (NN_DIGIT *a, NN_DIGIT *b, NN_DIGIT *c, unsigned i...
  function RSAPublicBlock (line 456) | static int RSAPublicBlock ( void *output,                  /* output blo...
  function RSAPrivateBlock (line 488) | static int RSAPrivateBlock ( void *output,                /* output bloc...
  function RSAPublicDecrypt (line 567) | int RSAPublicDecrypt(  void *output,				/* output block */
  function RSAPrivateEncrypt (line 616) | int RSAPrivateEncrypt ( void *output,					/* output block */

FILE: User/COMPONENT/RSA/Rsa.h
  type R_RSA_PUBLIC_KEY (line 41) | typedef struct     // Կṹ
  type R_RSA_PRIVATE_KEY (line 49) | typedef struct    // ˽Կṹ

FILE: User/COMPONENT/SECURE_BOOT/secure_boot.c
  function get_chip_id (line 70) | void get_chip_id(uint8_t *id, uint8_t chip_id_len)
  function get_chip_flash_size (line 100) | void get_chip_flash_size(uint16_t *size)
  function write_to_flash (line 117) | static void write_to_flash(uint32_t addr, uint8_t *buff, uint16_t len)
  function get_secure_id (line 149) | static void get_secure_id(uint8_t *chip_id, uint8_t chip_id_len, uint8_t...
  function first_boot_encrypt (line 191) | static void first_boot_encrypt(void)
  function boot_encrypt_check (line 221) | static uint8_t boot_encrypt_check(void)
  function secure_boot_check (line 267) | uint8_t secure_boot_check(void)

FILE: User/COMPONENT/SHA1/sha1.c
  function SHA1Transform (line 54) | void SHA1Transform(
  function SHA1Init (line 182) | void SHA1Init(
  function SHA1Update (line 198) | void SHA1Update(
  function SHA1Final (line 231) | void SHA1Final(
  function SHA1 (line 282) | void SHA1(

FILE: User/COMPONENT/SHA1/sha1.h
  type SHA1_CTX (line 12) | typedef struct

FILE: User/COMPONENT/SHA256/sha256.c
  function _bswapw (line 74) | static void _bswapw(uint32_t *p, uint32_t i)
  function _rtrf (line 93) | static void _rtrf(uint32_t *b, uint32_t *p, uint32_t i, uint32_t j)
  function _hash (line 109) | static void _hash(sha256_context *ctx)
  function sha256_init (line 132) | void sha256_init(sha256_context ctx[1])
  function sha256_hash (line 143) | void sha256_hash(sha256_context *ctx, uint8_t *dat, uint32_t sz)
  function sha256_done (line 160) | void sha256_done(sha256_context *ctx, uint8_t *buf)
  function HAL_SHA256_Once (line 186) | void  HAL_SHA256_Once(uint8_t * send_buffer,uint32_t  send_buffer_len,ui...

FILE: User/COMPONENT/SHA256/sha256.h
  type __int64 (line 26) | typedef __int64 int64_t;
  type sha256_context (line 38) | typedef struct {

FILE: User/COMPONENT/SOFTWEAR_UART/s_uart.c
  function __weak (line 17) | __weak void S_UART_TC_Handler()
  function __weak (line 24) | __weak void S_UART_RXNE_Handler()
  function S_GPIO_Set_Bit (line 34) | static void S_GPIO_Set_Bit(GPIO_TypeDef* port, uint16_t pin)
  function S_GPIO_Clear_Bit (line 45) | static void S_GPIO_Clear_Bit(GPIO_TypeDef* port, uint16_t pin)
  function S_GPIO_Read_Bit (line 56) | static uint8_t S_GPIO_Read_Bit(GPIO_TypeDef* port, uint16_t pin)
  function majority_function (line 71) | static uint8_t majority_function(uint8_t* middle_sample)
  function S_UART_periph_init (line 78) | static void S_UART_periph_init(S_UART_init_struct* struct_init)
  function send_byte (line 172) | static void send_byte(soft_uart* s_uart, uint8_t byte)
  function S_UART_init (line 184) | void S_UART_init(soft_uart* s_uart)
  function S_UART_Timer_Handler (line 204) | void S_UART_Timer_Handler(soft_uart* s_uart)
  function S_UART_SendData (line 342) | uint8_t S_UART_SendData(soft_uart* s_uart, uint8_t data)
  function S_UART_ReceiveData (line 353) | uint8_t S_UART_ReceiveData(soft_uart* s_uart, uint8_t* data)

FILE: User/COMPONENT/SOFTWEAR_UART/s_uart.h
  type S_UART_init_struct (line 74) | typedef struct {
  type soft_uart (line 82) | typedef struct {

FILE: User/COMPONENT/STDIO/printf.c
  function PrintChar (line 18) | void PrintChar(char c)
  type _reent (line 31) | struct _reent
  type _reent (line 32) | struct _reent
  function PutChar (line 40) | signed int PutChar(char *pStr, char c)
  function PutString (line 54) | signed int PutString(char *pStr, const char *pSource)
  function PutUnsignedInt (line 77) | signed int PutUnsignedInt(
  function PutSignedInt (line 123) | signed int PutSignedInt(
  function PutHexa (line 202) | signed int PutHexa(
  function vsnprintf (line 266) | signed int vsnprintf(char *pStr, size_t length, const char *pFormat, va_...
  function snprintf (line 367) | signed int snprintf(char *pString, size_t length, const char *pFormat, ...)
  function vsprintf (line 391) | signed int vsprintf(char *pString, const char *pFormat, va_list ap)
  function vfprintf (line 404) | signed int vfprintf(FILE *pStream, const char *pFormat, va_list ap)
  function vprintf (line 428) | signed int vprintf(const char *pFormat, va_list ap)
  function fprintf (line 441) | signed int fprintf(FILE *pStream, const char *pFormat, ...)
  function printf (line 461) | signed int printf(const char *pFormat, ...)
  function sprintf (line 481) | signed int sprintf(char *pStr, const char *pFormat, ...)
  function puts (line 500) | signed int puts(const char *pStr)
  function fputc (line 515) | signed int fputc(signed int c, FILE *pStream)
  function fputs (line 540) | signed int fputs(const char *pStr, FILE *pStream)

FILE: User/COMPONENT/TEA/tea.c
  function TEA_ErrorCode_t (line 23) | static TEA_ErrorCode_t TEA_EncryptGroup(TEA_U32 *text, TEA_U32 *key)
  function TEA_ErrorCode_t (line 44) | static TEA_ErrorCode_t TEA_DecryptGroup(TEA_U32 *text, TEA_U32 *key)
  function TEA_ErrorCode_t (line 69) | TEA_ErrorCode_t TEA_Config128bitsKey(TEA_U8 *key)
  function TEA_ErrorCode_t (line 85) | TEA_ErrorCode_t TEA_ConfigEncryptTimes(TEA_U8 t)
  function TEA_ErrorCode_t (line 93) | TEA_ErrorCode_t TEA_Encrypt(TEA_U8 *text, TEA_U32 size)
  function TEA_ErrorCode_t (line 111) | TEA_ErrorCode_t TEA_Decrypt(TEA_U8 *text, TEA_U32 size)

FILE: User/COMPONENT/TEA/tea.h
  type TEA_U8 (line 14) | typedef unsigned char  TEA_U8;
  type TEA_S8 (line 15) | typedef signed char    TEA_S8;
  type TEA_U16 (line 16) | typedef unsigned short TEA_U16;
  type TEA_S16 (line 17) | typedef signed short   TEA_S16;
  type TEA_U32 (line 18) | typedef unsigned int   TEA_U32;
  type TEA_S32 (line 19) | typedef signed int     TEA_S32;
  type TEA_ErrorCode_t (line 36) | typedef enum {

FILE: User/COMPONENT/TIMER/timer.c
  type Timer (line 9) | struct Timer
  function timer_init (line 21) | void timer_init(struct Timer* handle, void(*timeout_cb)(), uint32_t time...
  function timer_start (line 34) | int timer_start(struct Timer* handle)
  function timer_stop (line 51) | void timer_stop(struct Timer* handle)
  function timer_loop (line 69) | void timer_loop()
  function timer_ticks (line 89) | void timer_ticks()

FILE: User/COMPONENT/TIMER/timer.h
  type Timer (line 11) | typedef struct Timer {
  type Timer (line 23) | struct Timer
  type Timer (line 24) | struct Timer

FILE: User/COMPONENT/UTIL/util.c
  function big_little_endian_check (line 11) | int big_little_endian_check(void)
  function str_is_digit (line 35) | int str_is_digit(char *p_str)
  function strcmpnum (line 55) | int strcmpnum(char *s, char *t)
  function my_delete_char (line 70) | void my_delete_char(char str[], char target)
  function my_str_remove_blank (line 88) | void my_str_remove_blank(char *str)
  function my_hex_to_str (line 121) | void my_hex_to_str(unsigned char *pHex, unsigned char *pAscii, int nLen)
  function my_str_to_hex (line 147) | int my_str_to_hex(char *str, unsigned char *out, unsigned int *outlen)
  function my_str_to_upper (line 171) | void my_str_to_upper(char* str)
  function my_str_to_lower (line 193) | void my_str_to_lower(char* str)
  function my_tolower (line 210) | char my_tolower(char c)
  function my_htoi (line 225) | int my_htoi(char s[])
  function my_atoi (line 252) | int my_atoi(char *str)

FILE: User/COMPONENT/UTIL/util.h
  type bool_ (line 19) | enum bool_ {

FILE: User/COMPONENT/assert/HAPAssert.c
  function HAP_NORETURN (line 12) | HAP_NORETURN
  function HAP_NORETURN (line 17) | HAP_NORETURN
  function HAP_NORETURN (line 23) | HAP_NORETURN
  function HAP_NORETURN (line 29) | HAP_NORETURN
  function HAP_NORETURN (line 35) | HAP_NORETURN
  function HAP_NORETURN (line 41) | HAP_NORETURN

FILE: User/COMPONENT/base64_2/base64.c
  function base64_encode (line 72) | unsigned int
  function base64_decode (line 121) | unsigned int

FILE: User/COMPONENT/base64_2/main.c
  function test (line 8) | static void
  function main (line 29) | int

FILE: User/COMPONENT/cJSON/cJSON/cJSON.c
  type error (line 64) | typedef struct {
  function cJSON_GetErrorPtr (line 70) | CJSON_PUBLIC(const char *) cJSON_GetErrorPtr(void)
  function cJSON_GetStringValue (line 75) | CJSON_PUBLIC(char *) cJSON_GetStringValue(cJSON *item) {
  function cJSON_Version (line 88) | CJSON_PUBLIC(const char*) cJSON_Version(void)
  function case_insensitive_strcmp (line 97) | static int case_insensitive_strcmp(const unsigned char *string1, const u...
  type internal_hooks (line 120) | typedef struct internal_hooks
  function internal_free (line 133) | static void internal_free(void *pointer)
  function cJSON_InitHooks (line 170) | CJSON_PUBLIC(void) cJSON_InitHooks(cJSON_Hooks* hooks)
  function cJSON (line 202) | static cJSON *cJSON_New_Item(const internal_hooks * const hooks)
  function cJSON_Delete (line 214) | CJSON_PUBLIC(void) cJSON_Delete(cJSON *item)
  function get_decimal_point (line 238) | static unsigned char get_decimal_point(void)
  type parse_buffer (line 248) | typedef struct
  function cJSON_bool (line 266) | static cJSON_bool parse_number(cJSON * const item, parse_buffer * const ...
  function cJSON_SetNumberHelper (line 343) | CJSON_PUBLIC(double) cJSON_SetNumberHelper(cJSON *object, double number)
  type printbuffer (line 361) | typedef struct
  function update_offset (line 461) | static void update_offset(printbuffer * const buffer)
  function cJSON_bool (line 474) | static cJSON_bool print_number(const cJSON * const item, printbuffer * c...
  function parse_hex4 (line 540) | static unsigned parse_hex4(const unsigned char * const input)
  function utf16_literal_to_utf8 (line 577) | static unsigned char utf16_literal_to_utf8(const unsigned char * const i...
  function cJSON_bool (line 698) | static cJSON_bool parse_string(cJSON * const item, parse_buffer * const ...
  function cJSON_bool (line 827) | static cJSON_bool print_string_ptr(const unsigned char * const input, pr...
  function cJSON_bool (line 949) | static cJSON_bool print_string(const cJSON * const item, printbuffer * c...
  function parse_buffer (line 963) | static parse_buffer *buffer_skip_whitespace(parse_buffer * const buffer)
  function parse_buffer (line 984) | static parse_buffer *skip_utf8_bom(parse_buffer * const buffer)
  function cJSON_ParseWithOpts (line 1000) | CJSON_PUBLIC(cJSON *) cJSON_ParseWithOpts(const char *value, const char ...
  function cJSON_Parse (line 1080) | CJSON_PUBLIC(cJSON *) cJSON_Parse(const char *value)
  function cJSON_Print (line 1152) | CJSON_PUBLIC(char *) cJSON_Print(const cJSON *item)
  function cJSON_PrintUnformatted (line 1157) | CJSON_PUBLIC(char *) cJSON_PrintUnformatted(const cJSON *item)
  function cJSON_PrintBuffered (line 1162) | CJSON_PUBLIC(char *) cJSON_PrintBuffered(const cJSON *item, int prebuffe...
  function cJSON_PrintPreallocated (line 1192) | CJSON_PUBLIC(cJSON_bool) cJSON_PrintPreallocated(cJSON *item, char *buf,...
  function cJSON_bool (line 1212) | static cJSON_bool parse_value(cJSON * const item, parse_buffer * const i...
  function cJSON_bool (line 1267) | static cJSON_bool print_value(const cJSON * const item, printbuffer * co...
  function cJSON_bool (line 1341) | static cJSON_bool parse_array(cJSON * const item, parse_buffer * const i...
  function cJSON_bool (line 1435) | static cJSON_bool print_array(const cJSON * const item, printbuffer * co...
  function cJSON_bool (line 1497) | static cJSON_bool parse_object(cJSON * const item, parse_buffer * const ...
  function cJSON_bool (line 1606) | static cJSON_bool print_object(const cJSON * const item, printbuffer * c...
  function cJSON_GetArraySize (line 1720) | CJSON_PUBLIC(int) cJSON_GetArraySize(const cJSON *array)
  function cJSON (line 1743) | static cJSON* get_array_item(const cJSON *array, size_t index)
  function cJSON_GetArrayItem (line 1762) | CJSON_PUBLIC(cJSON *) cJSON_GetArrayItem(const cJSON *array, int index)
  function cJSON (line 1772) | static cJSON *get_object_item(const cJSON * const object, const char * c...
  function cJSON_GetObjectItem (line 1800) | CJSON_PUBLIC(cJSON *) cJSON_GetObjectItem(const cJSON * const object, co...
  function cJSON_GetObjectItemCaseSensitive (line 1805) | CJSON_PUBLIC(cJSON *) cJSON_GetObjectItemCaseSensitive(const cJSON * con...
  function cJSON_HasObjectItem (line 1810) | CJSON_PUBLIC(cJSON_bool) cJSON_HasObjectItem(const cJSON *object, const ...
  function suffix_object (line 1816) | static void suffix_object(cJSON *prev, cJSON *item)
  function cJSON (line 1823) | static cJSON *create_reference(const cJSON *item, const internal_hooks *...
  function cJSON_bool (line 1844) | static cJSON_bool add_item_to_array(cJSON *array, cJSON *item)
  function cJSON_AddItemToArray (line 1874) | CJSON_PUBLIC(void) cJSON_AddItemToArray(cJSON *array, cJSON *item)
  function cJSON_bool (line 1895) | static cJSON_bool add_item_to_object(cJSON * const object, const char * ...
  function cJSON_AddItemToObject (line 1932) | CJSON_PUBLIC(void) cJSON_AddItemToObject(cJSON *object, const char *stri...
  function cJSON_AddItemToObjectCS (line 1938) | CJSON_PUBLIC(void) cJSON_AddItemToObjectCS(cJSON *object, const char *st...
  function cJSON_AddItemReferenceToArray (line 1943) | CJSON_PUBLIC(void) cJSON_AddItemReferenceToArray(cJSON *array, cJSON *item)
  function cJSON_AddItemReferenceToObject (line 1953) | CJSON_PUBLIC(void) cJSON_AddItemReferenceToObject(cJSON *object, const c...
  function cJSON_AddNullToObject (line 1963) | CJSON_PUBLIC(cJSON*) cJSON_AddNullToObject(cJSON * const object, const c...
  function cJSON_AddTrueToObject (line 1975) | CJSON_PUBLIC(cJSON*) cJSON_AddTrueToObject(cJSON * const object, const c...
  function cJSON_AddFalseToObject (line 1987) | CJSON_PUBLIC(cJSON*) cJSON_AddFalseToObject(cJSON * const object, const ...
  function cJSON_AddBoolToObject (line 1999) | CJSON_PUBLIC(cJSON*) cJSON_AddBoolToObject(cJSON * const object, const c...
  function cJSON_AddNumberToObject (line 2011) | CJSON_PUBLIC(cJSON*) cJSON_AddNumberToObject(cJSON * const object, const...
  function cJSON_AddStringToObject (line 2023) | CJSON_PUBLIC(cJSON*) cJSON_AddStringToObject(cJSON * const object, const...
  function cJSON_AddRawToObject (line 2035) | CJSON_PUBLIC(cJSON*) cJSON_AddRawToObject(cJSON * const object, const ch...
  function cJSON_AddObjectToObject (line 2047) | CJSON_PUBLIC(cJSON*) cJSON_AddObjectToObject(cJSON * const object, const...
  function cJSON_AddArrayToObject (line 2059) | CJSON_PUBLIC(cJSON*) cJSON_AddArrayToObject(cJSON * const object, const ...
  function cJSON_DetachItemViaPointer (line 2071) | CJSON_PUBLIC(cJSON *) cJSON_DetachItemViaPointer(cJSON *parent, cJSON * ...
  function cJSON_DetachItemFromArray (line 2101) | CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromArray(cJSON *array, int which)
  function cJSON_DeleteItemFromArray (line 2111) | CJSON_PUBLIC(void) cJSON_DeleteItemFromArray(cJSON *array, int which)
  function cJSON_DetachItemFromObject (line 2116) | CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObject(cJSON *object, const ch...
  function cJSON_DetachItemFromObjectCaseSensitive (line 2123) | CJSON_PUBLIC(cJSON *) cJSON_DetachItemFromObjectCaseSensitive(cJSON *obj...
  function cJSON_DeleteItemFromObject (line 2130) | CJSON_PUBLIC(void) cJSON_DeleteItemFromObject(cJSON *object, const char ...
  function cJSON_DeleteItemFromObjectCaseSensitive (line 2135) | CJSON_PUBLIC(void) cJSON_DeleteItemFromObjectCaseSensitive(cJSON *object...
  function cJSON_InsertItemInArray (line 2141) | CJSON_PUBLIC(void) cJSON_InsertItemInArray(cJSON *array, int which, cJSO...
  function cJSON_ReplaceItemViaPointer (line 2170) | CJSON_PUBLIC(cJSON_bool) cJSON_ReplaceItemViaPointer(cJSON * const paren...
  function cJSON_ReplaceItemInArray (line 2205) | CJSON_PUBLIC(void) cJSON_ReplaceItemInArray(cJSON *array, int which, cJS...
  function cJSON_bool (line 2215) | static cJSON_bool replace_item_in_object(cJSON *object, const char *stri...
  function cJSON_ReplaceItemInObject (line 2235) | CJSON_PUBLIC(void) cJSON_ReplaceItemInObject(cJSON *object, const char *...
  function cJSON_ReplaceItemInObjectCaseSensitive (line 2240) | CJSON_PUBLIC(void) cJSON_ReplaceItemInObjectCaseSensitive(cJSON *object,...
  function cJSON_CreateNull (line 2246) | CJSON_PUBLIC(cJSON *) cJSON_CreateNull(void)
  function cJSON_CreateTrue (line 2257) | CJSON_PUBLIC(cJSON *) cJSON_CreateTrue(void)
  function cJSON_CreateFalse (line 2268) | CJSON_PUBLIC(cJSON *) cJSON_CreateFalse(void)
  function cJSON_CreateBool (line 2279) | CJSON_PUBLIC(cJSON *) cJSON_CreateBool(cJSON_bool b)
  function cJSON_CreateNumber (line 2290) | CJSON_PUBLIC(cJSON *) cJSON_CreateNumber(double num)
  function cJSON_CreateString (line 2316) | CJSON_PUBLIC(cJSON *) cJSON_CreateString(const char *string)
  function cJSON_CreateStringReference (line 2333) | CJSON_PUBLIC(cJSON *) cJSON_CreateStringReference(const char *string)
  function cJSON_CreateObjectReference (line 2345) | CJSON_PUBLIC(cJSON *) cJSON_CreateObjectReference(const cJSON *child)
  function cJSON_CreateArrayReference (line 2356) | CJSON_PUBLIC(cJSON *) cJSON_CreateArrayReference(const cJSON *child) {
  function cJSON_CreateRaw (line 2366) | CJSON_PUBLIC(cJSON *) cJSON_CreateRaw(const char *raw)
  function cJSON_CreateArray (line 2383) | CJSON_PUBLIC(cJSON *) cJSON_CreateArray(void)
  function cJSON_CreateObject (line 2394) | CJSON_PUBLIC(cJSON *) cJSON_CreateObject(void)
  function cJSON_CreateIntArray (line 2406) | CJSON_PUBLIC(cJSON *) cJSON_CreateIntArray(const int *numbers, int count)
  function cJSON_CreateFloatArray (line 2441) | CJSON_PUBLIC(cJSON *) cJSON_CreateFloatArray(const float *numbers, int c...
  function cJSON_CreateDoubleArray (line 2477) | CJSON_PUBLIC(cJSON *) cJSON_CreateDoubleArray(const double *numbers, int...
  function cJSON_CreateStringArray (line 2513) | CJSON_PUBLIC(cJSON *) cJSON_CreateStringArray(const char **strings, int ...
  function cJSON_Duplicate (line 2550) | CJSON_PUBLIC(cJSON *) cJSON_Duplicate(const cJSON *item, cJSON_bool recu...
  function cJSON_Minify (line 2629) | CJSON_PUBLIC(void) cJSON_Minify(char *json)
  function cJSON_IsInvalid (line 2699) | CJSON_PUBLIC(cJSON_bool) cJSON_IsInvalid(const cJSON * const item)
  function cJSON_IsFalse (line 2709) | CJSON_PUBLIC(cJSON_bool) cJSON_IsFalse(const cJSON * const item)
  function cJSON_IsTrue (line 2719) | CJSON_PUBLIC(cJSON_bool) cJSON_IsTrue(const cJSON * const item)
  function cJSON_IsBool (line 2730) | CJSON_PUBLIC(cJSON_bool) cJSON_IsBool(const cJSON * const item)
  function cJSON_IsNull (line 2739) | CJSON_PUBLIC(cJSON_bool) cJSON_IsNull(const cJSON * const item)
  function cJSON_IsNumber (line 2749) | CJSON_PUBLIC(cJSON_bool) cJSON_IsNumber(const cJSON * const item)
  function cJSON_IsString (line 2759) | CJSON_PUBLIC(cJSON_bool) cJSON_IsString(const cJSON * const item)
  function cJSON_IsArray (line 2769) | CJSON_PUBLIC(cJSON_bool) cJSON_IsArray(const cJSON * const item)
  function cJSON_IsObject (line 2779) | CJSON_PUBLIC(cJSON_bool) cJSON_IsObject(const cJSON * const item)
  function cJSON_IsRaw (line 2789) | CJSON_PUBLIC(cJSON_bool) cJSON_IsRaw(const cJSON * const item)
  function cJSON_Compare (line 2799) | CJSON_PUBLIC(cJSON_bool) cJSON_Compare(const cJSON * const a, const cJSO...
  function cJSON_malloc (line 2924) | CJSON_PUBLIC(void *) cJSON_malloc(size_t size)
  function cJSON_free (line 2929) | CJSON_PUBLIC(void) cJSON_free(void *object)

FILE: User/COMPONENT/cJSON/cJSON/cJSON.h
  type cJSON (line 53) | typedef struct cJSON
  type cJSON_Hooks (line 75) | typedef struct cJSON_Hooks
  type cJSON_bool (line 81) | typedef int cJSON_bool;

FILE: User/COMPONENT/cJSON/cJSON/cJSON_Utils.c
  function compare_strings (line 73) | static int compare_strings(const unsigned char *string1, const unsigned ...
  function cJSON_bool (line 102) | static cJSON_bool compare_pointers(const unsigned char *name, const unsi...
  function pointer_encoded_length (line 139) | static size_t pointer_encoded_length(const unsigned char *string)
  function encode_string_as_pointer (line 155) | static void encode_string_as_pointer(unsigned char *destination, const u...
  function cJSONUtils_FindPointerFromObjectTo (line 179) | CJSON_PUBLIC(char *) cJSONUtils_FindPointerFromObjectTo(const cJSON * co...
  function cJSON (line 242) | static cJSON *get_array_item(const cJSON *array, size_t item)
  function cJSON_bool (line 254) | static cJSON_bool decode_array_index_from_pointer(const unsigned char * ...
  function cJSON (line 281) | static cJSON *get_item_from_pointer(cJSON * const object, const char * p...
  function cJSONUtils_GetPointer (line 328) | CJSON_PUBLIC(cJSON *) cJSONUtils_GetPointer(cJSON * const object, const ...
  function cJSONUtils_GetPointerCaseSensitive (line 333) | CJSON_PUBLIC(cJSON *) cJSONUtils_GetPointerCaseSensitive(cJSON * const o...
  function decode_pointer_inplace (line 339) | static void decode_pointer_inplace(unsigned char *string)
  function cJSON (line 373) | static cJSON *detach_item_from_array(cJSON *array, size_t which)
  function cJSON (line 406) | static cJSON *detach_path(cJSON *object, const unsigned char *path, cons...
  function cJSON (line 460) | static cJSON *sort_list(cJSON *list, const cJSON_bool case_sensitive)
  function sort_object (line 570) | static void sort_object(cJSON * const object, const cJSON_bool case_sens...
  function cJSON_bool (line 579) | static cJSON_bool compare_json(cJSON *a, cJSON *b, const cJSON_bool case...
  function cJSON_bool (line 668) | static cJSON_bool insert_item_in_array(cJSON *array, size_t which, cJSON...
  function cJSON (line 705) | static cJSON *get_object_item(const cJSON * const object, const char* na...
  type patch_operation (line 715) | enum patch_operation { INVALID, ADD, REMOVE, REPLACE, MOVE, COPY, TEST }
  function decode_patch_operation (line 717) | static enum patch_operation decode_patch_operation(const cJSON * const p...
  function overwrite_item (line 759) | static void overwrite_item(cJSON * const root, const cJSON replacement)
  function apply_patch (line 782) | static int apply_patch(cJSON *object, const cJSON *patch, const cJSON_bo...
  function cJSONUtils_ApplyPatches (line 1011) | CJSON_PUBLIC(int) cJSONUtils_ApplyPatches(cJSON * const object, const cJ...
  function cJSONUtils_ApplyPatchesCaseSensitive (line 1040) | CJSON_PUBLIC(int) cJSONUtils_ApplyPatchesCaseSensitive(cJSON * const obj...
  function compose_patch (line 1069) | static void compose_patch(cJSON * const patches, const unsigned char * c...
  function cJSONUtils_AddPatchToArray (line 1109) | CJSON_PUBLIC(void) cJSONUtils_AddPatchToArray(cJSON * const array, const...
  function create_patches (line 1114) | static void create_patches(cJSON * const patches, const unsigned char * ...
  function cJSONUtils_GeneratePatches (line 1254) | CJSON_PUBLIC(cJSON *) cJSONUtils_GeneratePatches(cJSON * const from, cJS...
  function cJSONUtils_GeneratePatchesCaseSensitive (line 1269) | CJSON_PUBLIC(cJSON *) cJSONUtils_GeneratePatchesCaseSensitive(cJSON * co...
  function cJSONUtils_SortObject (line 1284) | CJSON_PUBLIC(void) cJSONUtils_SortObject(cJSON * const object)
  function cJSONUtils_SortObjectCaseSensitive (line 1289) | CJSON_PUBLIC(void) cJSONUtils_SortObjectCaseSensitive(cJSON * const object)
  function cJSON (line 1294) | static cJSON *merge_patch(cJSON *target, const cJSON * const patch, cons...
  function cJSONUtils_MergePatch (line 1353) | CJSON_PUBLIC(cJSON *) cJSONUtils_MergePatch(cJSON *target, const cJSON *...
  function cJSONUtils_MergePatchCaseSensitive (line 1358) | CJSON_PUBLIC(cJSON *) cJSONUtils_MergePatchCaseSensitive(cJSON *target, ...
  function cJSON (line 1363) | static cJSON *generate_merge_patch(cJSON * const from, cJSON * const to,...
  function cJSONUtils_GenerateMergePatch (line 1441) | CJSON_PUBLIC(cJSON *) cJSONUtils_GenerateMergePatch(cJSON * const from, ...
  function cJSONUtils_GenerateMergePatchCaseSensitive (line 1446) | CJSON_PUBLIC(cJSON *) cJSONUtils_GenerateMergePatchCaseSensitive(cJSON *...

FILE: User/COMPONENT/cJSON/cJSON/fuzzing/afl.c
  function main (line 85) | int main(int argc, char** argv)

FILE: User/COMPONENT/cJSON/cJSON/test.c
  type record (line 29) | struct record
  function print_preallocated (line 43) | static int print_preallocated(cJSON *root)
  function create_objects (line 109) | static void create_objects(void)
  function main (line 259) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/cjson_add.c
  function cjson_add_null_should_add_null (line 42) | static void cjson_add_null_should_add_null(void)
  function cjson_add_null_should_fail_with_null_pointers (line 55) | static void cjson_add_null_should_fail_with_null_pointers(void)
  function cjson_add_null_should_fail_on_allocation_failure (line 65) | static void cjson_add_null_should_fail_on_allocation_failure(void)
  function cjson_add_true_should_add_true (line 78) | static void cjson_add_true_should_add_true(void)
  function cjson_add_true_should_fail_with_null_pointers (line 91) | static void cjson_add_true_should_fail_with_null_pointers(void)
  function cjson_add_true_should_fail_on_allocation_failure (line 101) | static void cjson_add_true_should_fail_on_allocation_failure(void)
  function cjson_add_false_should_add_false (line 114) | static void cjson_add_false_should_add_false(void)
  function cjson_add_false_should_fail_with_null_pointers (line 127) | static void cjson_add_false_should_fail_with_null_pointers(void)
  function cjson_add_false_should_fail_on_allocation_failure (line 137) | static void cjson_add_false_should_fail_on_allocation_failure(void)
  function cjson_add_bool_should_add_bool (line 150) | static void cjson_add_bool_should_add_bool(void)
  function cjson_add_bool_should_fail_with_null_pointers (line 169) | static void cjson_add_bool_should_fail_with_null_pointers(void)
  function cjson_add_bool_should_fail_on_allocation_failure (line 179) | static void cjson_add_bool_should_fail_on_allocation_failure(void)
  function cjson_add_number_should_add_number (line 192) | static void cjson_add_number_should_add_number(void)
  function cjson_add_number_should_fail_with_null_pointers (line 208) | static void cjson_add_number_should_fail_with_null_pointers(void)
  function cjson_add_number_should_fail_on_allocation_failure (line 218) | static void cjson_add_number_should_fail_on_allocation_failure(void)
  function cjson_add_string_should_add_string (line 231) | static void cjson_add_string_should_add_string(void)
  function cjson_add_string_should_fail_with_null_pointers (line 245) | static void cjson_add_string_should_fail_with_null_pointers(void)
  function cjson_add_string_should_fail_on_allocation_failure (line 255) | static void cjson_add_string_should_fail_on_allocation_failure(void)
  function cjson_add_raw_should_add_raw (line 268) | static void cjson_add_raw_should_add_raw(void)
  function cjson_add_raw_should_fail_with_null_pointers (line 282) | static void cjson_add_raw_should_fail_with_null_pointers(void)
  function cjson_add_raw_should_fail_on_allocation_failure (line 292) | static void cjson_add_raw_should_fail_on_allocation_failure(void)
  function cJSON_add_object_should_add_object (line 305) | static void cJSON_add_object_should_add_object(void)
  function cjson_add_object_should_fail_with_null_pointers (line 317) | static void cjson_add_object_should_fail_with_null_pointers(void)
  function cjson_add_object_should_fail_on_allocation_failure (line 327) | static void cjson_add_object_should_fail_on_allocation_failure(void)
  function cJSON_add_array_should_add_array (line 340) | static void cJSON_add_array_should_add_array(void)
  function cjson_add_array_should_fail_with_null_pointers (line 352) | static void cjson_add_array_should_fail_with_null_pointers(void)
  function cjson_add_array_should_fail_on_allocation_failure (line 362) | static void cjson_add_array_should_fail_on_allocation_failure(void)
  function main (line 375) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/common.h
  function reset (line 29) | void reset(cJSON *item) {

FILE: User/COMPONENT/cJSON/cJSON/tests/compare_tests.c
  function cJSON_bool (line 27) | static cJSON_bool compare_from_string(const char * const a, const char *...
  function cjson_compare_should_compare_null_pointer_as_not_equal (line 46) | static void cjson_compare_should_compare_null_pointer_as_not_equal(void)
  function cjson_compare_should_compare_invalid_as_not_equal (line 52) | static void cjson_compare_should_compare_invalid_as_not_equal(void)
  function cjson_compare_should_compare_numbers (line 61) | static void cjson_compare_should_compare_numbers(void)
  function cjson_compare_should_compare_booleans (line 72) | static void cjson_compare_should_compare_booleans(void)
  function cjson_compare_should_compare_null (line 89) | static void cjson_compare_should_compare_null(void)
  function cjson_compare_should_not_accept_invalid_types (line 98) | static void cjson_compare_should_not_accept_invalid_types(void)
  function cjson_compare_should_compare_strings (line 109) | static void cjson_compare_should_compare_strings(void)
  function cjson_compare_should_compare_raw (line 118) | static void cjson_compare_should_compare_raw(void)
  function cjson_compare_should_compare_arrays (line 138) | static void cjson_compare_should_compare_arrays(void)
  function cjson_compare_should_compare_objects (line 157) | static void cjson_compare_should_compare_objects(void)
  function main (line 189) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/json_patch_tests.c
  function cJSON (line 32) | static cJSON *parse_test_file(const char * const filename)
  function cJSON_bool (line 49) | static cJSON_bool test_apply_patch(const cJSON * const test)
  function cJSON_bool (line 122) | static cJSON_bool test_generate_test(cJSON *test)
  function cjson_utils_should_pass_json_patch_test_tests (line 183) | static void cjson_utils_should_pass_json_patch_test_tests(void)
  function cjson_utils_should_pass_json_patch_test_spec_tests (line 200) | static void cjson_utils_should_pass_json_patch_test_spec_tests(void)
  function cjson_utils_should_pass_json_patch_test_cjson_utils_tests (line 217) | static void cjson_utils_should_pass_json_patch_test_cjson_utils_tests(void)
  function main (line 234) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/misc_tests.c
  function cjson_array_foreach_should_loop_over_arrays (line 32) | static void cjson_array_foreach_should_loop_over_arrays(void)
  function cjson_array_foreach_should_not_dereference_null_pointer (line 60) | static void cjson_array_foreach_should_not_dereference_null_pointer(void)
  function cjson_get_object_item_should_get_object_items (line 67) | static void cjson_get_object_item_should_get_object_items(void)
  function cjson_get_object_item_case_sensitive_should_get_object_items (line 99) | static void cjson_get_object_item_case_sensitive_should_get_object_items...
  function typecheck_functions_should_check_type (line 130) | static void typecheck_functions_should_check_type(void)
  function cjson_should_not_parse_to_deeply_nested_jsons (line 186) | static void cjson_should_not_parse_to_deeply_nested_jsons(void)
  function cjson_set_number_value_should_set_numbers (line 200) | static void cjson_set_number_value_should_set_numbers(void)
  function cjson_detach_item_via_pointer_should_detach_items (line 221) | static void cjson_detach_item_via_pointer_should_detach_items(void)
  function cjson_replace_item_via_pointer_should_replace_items (line 260) | static void cjson_replace_item_via_pointer_should_replace_items(void)
  function cjson_replace_item_in_object_should_preserve_name (line 307) | static void cjson_replace_item_in_object_should_preserve_name(void)
  function cjson_functions_shouldnt_crash_with_null_pointers (line 327) | static void cjson_functions_shouldnt_crash_with_null_pointers(void)
  function ensure_should_fail_on_failed_realloc (line 420) | static void ensure_should_fail_on_failed_realloc(void)
  function skip_utf8_bom_should_skip_bom (line 429) | static void skip_utf8_bom_should_skip_bom(void)
  function skip_utf8_bom_should_not_skip_bom_if_not_at_beginning (line 441) | static void skip_utf8_bom_should_not_skip_bom_if_not_at_beginning(void)
  function cjson_get_string_value_should_get_a_string (line 453) | static void cjson_get_string_value_should_get_a_string(void)
  function cjson_create_string_reference_should_create_a_string_reference (line 466) | static void cjson_create_string_reference_should_create_a_string_referen...
  function cjson_create_object_reference_should_create_an_object_reference (line 476) | static void cjson_create_object_reference_should_create_an_object_refere...
  function cjson_create_array_reference_should_create_an_array_reference (line 494) | static void cjson_create_array_reference_should_create_an_array_referenc...
  function cjson_add_item_to_object_should_not_use_after_free_when_string_is_aliased (line 511) | static void cjson_add_item_to_object_should_not_use_after_free_when_stri...
  function main (line 530) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/misc_utils_tests.c
  function cjson_utils_functions_shouldnt_crash_with_null_pointers (line 32) | static void cjson_utils_functions_shouldnt_crash_with_null_pointers(void)
  function main (line 73) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/old_utils_tests.c
  function json_pointer_tests (line 52) | static void json_pointer_tests(void)
  function misc_tests (line 88) | static void misc_tests(void)
  function sort_tests (line 118) | static void sort_tests(void)
  function merge_tests (line 148) | static void merge_tests(void)
  function generate_merge_tests (line 172) | static void generate_merge_tests(void)
  function main (line 194) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/parse_array.c
  function assert_is_array (line 33) | static void assert_is_array(cJSON *array_item)
  function assert_not_array (line 45) | static void assert_not_array(const char *json)
  function assert_parse_array (line 56) | static void assert_parse_array(const char *json)
  function parse_array_should_parse_empty_arrays (line 67) | static void parse_array_should_parse_empty_arrays(void)
  function parse_array_should_parse_arrays_with_one_element (line 77) | static void parse_array_should_parse_arrays_with_one_element(void)
  function parse_array_should_parse_arrays_with_multiple_elements (line 103) | static void parse_array_should_parse_arrays_with_multiple_elements(void)
  function parse_array_should_not_parse_non_arrays (line 144) | static void parse_array_should_not_parse_non_arrays(void)
  function main (line 155) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/parse_examples.c
  function cJSON (line 31) | static cJSON *parse_file(const char *filename)
  function do_test (line 46) | static void do_test(const char *test_name)
  function file_test1_should_be_parsed_and_printed (line 109) | static void file_test1_should_be_parsed_and_printed(void)
  function file_test2_should_be_parsed_and_printed (line 114) | static void file_test2_should_be_parsed_and_printed(void)
  function file_test3_should_be_parsed_and_printed (line 119) | static void file_test3_should_be_parsed_and_printed(void)
  function file_test4_should_be_parsed_and_printed (line 124) | static void file_test4_should_be_parsed_and_printed(void)
  function file_test5_should_be_parsed_and_printed (line 129) | static void file_test5_should_be_parsed_and_printed(void)
  function file_test6_should_not_be_parsed (line 134) | static void file_test6_should_not_be_parsed(void)
  function file_test7_should_be_parsed_and_printed (line 157) | static void file_test7_should_be_parsed_and_printed(void)
  function file_test8_should_be_parsed_and_printed (line 162) | static void file_test8_should_be_parsed_and_printed(void)
  function file_test9_should_be_parsed_and_printed (line 167) | static void file_test9_should_be_parsed_and_printed(void)
  function file_test10_should_be_parsed_and_printed (line 172) | static void file_test10_should_be_parsed_and_printed(void)
  function file_test11_should_be_parsed_and_printed (line 177) | static void file_test11_should_be_parsed_and_printed(void)
  function test12_should_not_be_parsed (line 182) | static void test12_should_not_be_parsed(void)
  function main (line 198) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/parse_hex4.c
  function parse_hex4_should_parse_all_combinations (line 31) | static void parse_hex4_should_parse_all_combinations(void)
  function parse_hex4_should_parse_mixed_case (line 47) | static void parse_hex4_should_parse_mixed_case(void)
  function main (line 67) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/parse_number.c
  function assert_is_number (line 33) | static void assert_is_number(cJSON *number_item)
  function assert_parse_number (line 46) | static void assert_parse_number(const char *string, int integer, double ...
  function parse_number_should_parse_zero (line 58) | static void parse_number_should_parse_zero(void)
  function parse_number_should_parse_negative_integers (line 65) | static void parse_number_should_parse_negative_integers(void)
  function parse_number_should_parse_positive_integers (line 72) | static void parse_number_should_parse_positive_integers(void)
  function parse_number_should_parse_positive_reals (line 79) | static void parse_number_should_parse_positive_reals(void)
  function parse_number_should_parse_negative_reals (line 89) | static void parse_number_should_parse_negative_reals(void)
  function main (line 99) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/parse_object.c
  function assert_is_object (line 33) | static void assert_is_object(cJSON *object_item)
  function assert_is_child (line 45) | static void assert_is_child(cJSON *child_item, const char *name, int type)
  function assert_not_object (line 53) | static void assert_not_object(const char *json)
  function assert_parse_object (line 65) | static void assert_parse_object(const char *json)
  function parse_object_should_parse_empty_objects (line 76) | static void parse_object_should_parse_empty_objects(void)
  function parse_object_should_parse_objects_with_one_element (line 87) | static void parse_object_should_parse_objects_with_one_element(void)
  function parse_object_should_parse_objects_with_multiple_elements (line 107) | static void parse_object_should_parse_objects_with_multiple_elements(void)
  function parse_object_should_not_parse_non_objects (line 154) | static void parse_object_should_not_parse_non_objects(void)
  function main (line 165) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/parse_string.c
  function assert_is_string (line 33) | static void assert_is_string(cJSON *string_item)
  function assert_parse_string (line 46) | static void assert_parse_string(const char *string, const char *expected)
  function assert_not_parse_string (line 60) | static void assert_not_parse_string(const char * const string)
  function parse_string_should_parse_strings (line 73) | static void parse_string_should_parse_strings(void)
  function parse_string_should_parse_utf16_surrogate_pairs (line 87) | static void parse_string_should_parse_utf16_surrogate_pairs(void)
  function parse_string_should_not_parse_non_strings (line 93) | static void parse_string_should_not_parse_non_strings(void)
  function parse_string_should_not_parse_invalid_backslash (line 101) | static void parse_string_should_not_parse_invalid_backslash(void)
  function parse_string_should_not_overflow_with_closing_backslash (line 109) | static void parse_string_should_not_overflow_with_closing_backslash(void)
  function parse_string_should_parse_bug_94 (line 115) | static void parse_string_should_parse_bug_94(void)
  function main (line 122) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/parse_value.c
  function assert_is_value (line 33) | static void assert_is_value(cJSON *value_item, int type)
  function assert_parse_value (line 44) | static void assert_parse_value(const char *string, int type)
  function parse_value_should_parse_null (line 55) | static void parse_value_should_parse_null(void)
  function parse_value_should_parse_true (line 61) | static void parse_value_should_parse_true(void)
  function parse_value_should_parse_false (line 67) | static void parse_value_should_parse_false(void)
  function parse_value_should_parse_number (line 73) | static void parse_value_should_parse_number(void)
  function parse_value_should_parse_string (line 79) | static void parse_value_should_parse_string(void)
  function parse_value_should_parse_array (line 87) | static void parse_value_should_parse_array(void)
  function parse_value_should_parse_object (line 93) | static void parse_value_should_parse_object(void)
  function main (line 99) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/parse_with_opts.c
  function parse_with_opts_should_handle_null (line 27) | static void parse_with_opts_should_handle_null(void)
  function parse_with_opts_should_handle_empty_strings (line 39) | static void parse_with_opts_should_handle_empty_strings(void)
  function parse_with_opts_should_handle_incomplete_json (line 52) | static void parse_with_opts_should_handle_incomplete_json(void)
  function parse_with_opts_should_require_null_if_requested (line 62) | static void parse_with_opts_should_require_null_if_requested(void)
  function parse_with_opts_should_return_parse_end (line 73) | static void parse_with_opts_should_return_parse_end(void)
  function parse_with_opts_should_parse_utf8_bom (line 84) | static void parse_with_opts_should_parse_utf8_bom(void)
  function main (line 100) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/print_array.c
  function assert_print_array (line 27) | static void assert_print_array(const char * const expected, const char *...
  function print_array_should_print_empty_arrays (line 70) | static void print_array_should_print_empty_arrays(void)
  function print_array_should_print_arrays_with_one_element (line 75) | static void print_array_should_print_arrays_with_one_element(void)
  function print_array_should_print_arrays_with_multiple_elements (line 84) | static void print_array_should_print_arrays_with_multiple_elements(void)
  function main (line 90) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/print_number.c
  function assert_print_number (line 27) | static void assert_print_number(const char *expected, double input)
  function print_number_should_print_zero (line 45) | static void print_number_should_print_zero(void)
  function print_number_should_print_negative_integers (line 50) | static void print_number_should_print_negative_integers(void)
  function print_number_should_print_positive_integers (line 57) | static void print_number_should_print_positive_integers(void)
  function print_number_should_print_positive_reals (line 64) | static void print_number_should_print_positive_reals(void)
  function print_number_should_print_negative_reals (line 74) | static void print_number_should_print_negative_reals(void)
  function print_number_should_print_non_number (line 83) | static void print_number_should_print_non_number(void)
  function main (line 92) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/print_object.c
  function assert_print_object (line 27) | static void assert_print_object(const char * const expected, const char ...
  function print_object_should_print_empty_objects (line 71) | static void print_object_should_print_empty_objects(void)
  function print_object_should_print_objects_with_one_element (line 76) | static void print_object_should_print_objects_with_one_element(void)
  function print_object_should_print_objects_with_multiple_elements (line 85) | static void print_object_should_print_objects_with_multiple_elements(void)
  function main (line 91) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/print_string.c
  function assert_print_string (line 27) | static void assert_print_string(const char *expected, const char *input)
  function print_string_should_print_empty_strings (line 41) | static void print_string_should_print_empty_strings(void)
  function print_string_should_print_ascii (line 47) | static void print_string_should_print_ascii(void)
  function print_string_should_print_utf8 (line 63) | static void print_string_should_print_utf8(void)
  function main (line 68) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/print_value.c
  function assert_print_value (line 31) | static void assert_print_value(const char *input)
  function print_value_should_print_null (line 57) | static void print_value_should_print_null(void)
  function print_value_should_print_true (line 62) | static void print_value_should_print_true(void)
  function print_value_should_print_false (line 67) | static void print_value_should_print_false(void)
  function print_value_should_print_number (line 72) | static void print_value_should_print_number(void)
  function print_value_should_print_string (line 77) | static void print_value_should_print_string(void)
  function print_value_should_print_array (line 83) | static void print_value_should_print_array(void)
  function print_value_should_print_object (line 88) | static void print_value_should_print_object(void)
  function main (line 93) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/readme_examples.c
  function supports_full_hd (line 169) | static int supports_full_hd(const char * const monitor)
  function create_monitor_should_create_a_monitor (line 217) | static void create_monitor_should_create_a_monitor(void)
  function create_monitor_with_helpers_should_create_a_monitor (line 226) | static void create_monitor_with_helpers_should_create_a_monitor(void)
  function supports_full_hd_should_check_for_full_hd_support (line 235) | static void supports_full_hd_should_check_for_full_hd_support(void)
  function main (line 249) | int main(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/auto/colour_prompt.rb
  class ColourCommandLine (line 22) | class ColourCommandLine
    method initialize (line 23) | def initialize
    method change_to (line 31) | def change_to(new_colour)
    method win32_colour (line 39) | def win32_colour(colour)
    method posix_colour (line 62) | def posix_colour(colour)
    method out_c (line 98) | def out_c(mode, colour, str)
  function colour_puts (line 112) | def colour_puts(role, str)
  function colour_print (line 116) | def colour_print(role, str)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/auto/colour_reporter.rb
  function report (line 11) | def report(message)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/auto/generate_module.rb
  class UnityModuleGenerator (line 45) | class UnityModuleGenerator
    method initialize (line 47) | def initialize(options = nil)
    method default_options (line 97) | def self.default_options
    method grab_config (line 113) | def self.grab_config(config_file)
    method files_to_operate_on (line 125) | def files_to_operate_on(module_name, pattern = nil)
    method create_filename (line 168) | def create_filename(part1, part2 = '')
    method generate (line 189) | def generate(module_name, pattern = nil)
    method destroy (line 229) | def destroy(module_name, pattern = nil)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/auto/generate_test_runner.rb
  class UnityTestRunnerGenerator (line 9) | class UnityTestRunnerGenerator
    method initialize (line 10) | def initialize(options = nil)
    method default_options (line 21) | def self.default_options
    method grab_config (line 38) | def self.grab_config(config_file)
    method run (line 49) | def run(input_file, output_file, options = nil)
    method generate (line 73) | def generate(input_file, output_file, tests, used_mocks, testfile_incl...
    method find_tests (line 91) | def find_tests(source)
    method find_includes (line 132) | def find_includes(source)
    method find_mocks (line 147) | def find_mocks(includes)
    method create_header (line 156) | def create_header(output, mocks, testfile_includes = [])
    method create_externs (line 193) | def create_externs(output, tests, _mocks)
    method create_mock_management (line 203) | def create_mock_management(output, mock_headers)
    method create_suite_setup (line 240) | def create_suite_setup(output)
    method create_suite_teardown (line 256) | def create_suite_teardown(output)
    method create_runtest (line 274) | def create_runtest(output, used_mocks)
    method create_reset (line 307) | def create_reset(output, used_mocks)
    method create_main (line 320) | def create_main(output, filename, tests, used_mocks)
    method create_h_file (line 381) | def create_h_file(output, filename, tests, testfile_includes, used_mocks)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/auto/parse_output.rb
  class ParseOutput (line 19) | class ParseOutput
    method initialize (line 20) | def initialize
    method set_xml_output (line 29) | def set_xml_output
    method write_xml_output (line 34) | def write_xml_output
    method test_suite_verify (line 45) | def test_suite_verify(test_suite_name)
    method test_passed (line 58) | def test_passed(array)
    method test_passed_unity_fixture (line 71) | def test_passed_unity_fixture(array)
    method test_ignored (line 82) | def test_ignored(array)
    method test_failed (line 104) | def test_failed(array)
    method detect_os (line 127) | def detect_os
    method process (line 141) | def process(name)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/auto/stylize_as_junit.rb
  class ArgvParser (line 14) | class ArgvParser
    method parse (line 18) | def self.parse(args)
  class UnityToJUnit (line 67) | class UnityToJUnit
    method initialize (line 72) | def initialize
    method run (line 77) | def run
    method usage (line 120) | def usage(err_msg = nil)
    method get_details (line 139) | def get_details(_result_file, lines)
    method parse_test_summary (line 153) | def parse_test_summary(summary)
    method here (line 158) | def here
    method results_structure (line 164) | def results_structure
    method write_xml_header (line 175) | def write_xml_header(stream)
    method write_suites_header (line 179) | def write_suites_header(stream)
    method write_suite_header (line 183) | def write_suite_header(counts, stream)
    method write_failures (line 187) | def write_failures(results, stream)
    method write_tests (line 198) | def write_tests(results, stream)
    method write_ignored (line 205) | def write_ignored(results, stream)
    method write_suite_footer (line 217) | def write_suite_footer(stream)
    method write_suites_footer (line 221) | def write_suites_footer(stream)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/auto/test_file_filter.rb
  type RakefileHelpers (line 9) | module RakefileHelpers
    class TestFileFilter (line 10) | class TestFileFilter
      method initialize (line 11) | def initialize(all_files = false)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/auto/type_sanitizer.rb
  type TypeSanitizer (line 1) | module TypeSanitizer
    function sanitize_c_identifier (line 2) | def self.sanitize_c_identifier(unsanitized)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/auto/unity_test_summary.py
  class UnityTestSummary (line 13) | class UnityTestSummary:
    method __init__ (line 14) | def __init__(self):
    method run (line 20) | def run(self):
    method set_targets (line 68) | def set_targets(self, target_array):
    method set_root_path (line 71) | def set_root_path(self, path):
    method usage (line 74) | def usage(self, err_msg=None):
    method get_details (line 85) | def get_details(self, result_file, lines):
    method parse_test_summary (line 108) | def parse_test_summary(self, summary):

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/auto/unity_test_summary.rb
  class UnityTestSummary (line 14) | class UnityTestSummary
    method initialize (line 20) | def initialize(_opts = {})
    method run (line 27) | def run
    method usage (line 73) | def usage(err_msg = nil)
    method get_details (line 86) | def get_details(_result_file, lines)
    method parse_test_summary (line 100) | def parse_test_summary(summary)
    method here (line 105) | def here

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/auto/unity_to_junit.py
  class UnityTestSummary (line 9) | class UnityTestSummary:
    method __init__ (line 10) | def __init__(self):
    method run (line 19) | def run(self):
    method set_targets (line 104) | def set_targets(self, target_array):
    method set_root_path (line 107) | def set_root_path(self, path):
    method usage (line 111) | def usage(err_msg=None):

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/examples/example_1/src/ProductionCode.c
  function FindFunction_WhichIsBroken (line 11) | int FindFunction_WhichIsBroken(int NumberToFind)
  function FunctionWhichReturnsLocalVariable (line 21) | int FunctionWhichReturnsLocalVariable(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/examples/example_2/src/ProductionCode.c
  function FindFunction_WhichIsBroken (line 11) | int FindFunction_WhichIsBroken(int NumberToFind)
  function FunctionWhichReturnsLocalVariable (line 21) | int FunctionWhichReturnsLocalVariable(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/examples/example_3/helper/UnityHelper.c
  function AssertEqualExampleStruct (line 6) | void AssertEqualExampleStruct(const EXAMPLE_STRUCT_T expected, const EXA...

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/examples/example_3/rakefile_helper.rb
  type RakefileHelpers (line 7) | module RakefileHelpers
    function load_configuration (line 10) | def load_configuration(config_file)
    function configure_clean (line 15) | def configure_clean
    function configure_toolchain (line 19) | def configure_toolchain(config_file = DEFAULT_CONFIG_FILE)
    function unit_test_files (line 25) | def unit_test_files
    function local_include_dirs (line 31) | def local_include_dirs
    function extract_headers (line 37) | def extract_headers(filename)
    function find_source_file (line 47) | def find_source_file(header, paths)
    function tackit (line 55) | def tackit(strings)
    function squash (line 64) | def squash(prefix, items)
    function build_compiler_fields (line 70) | def build_compiler_fields
    function compile (line 84) | def compile(file, _defines = [])
    function build_linker_fields (line 93) | def build_linker_fields
    function link_it (line 109) | def link_it(exe_name, obj_list)
    function build_simulator_fields (line 119) | def build_simulator_fields
    function execute (line 140) | def execute(command_string, verbose = true, raise_on_fail = true)
    function report_summary (line 150) | def report_summary
    function run_tests (line 161) | def run_tests(test_files)
    function build_application (line 221) | def build_application(main)
    function fail_out (line 243) | def fail_out(msg)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/examples/example_3/src/ProductionCode.c
  function FindFunction_WhichIsBroken (line 11) | int FindFunction_WhichIsBroken(int NumberToFind)
  function FunctionWhichReturnsLocalVariable (line 21) | int FunctionWhichReturnsLocalVariable(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/extras/fixture/rakefile_helper.rb
  type RakefileHelpers (line 13) | module RakefileHelpers
    function load_configuration (line 16) | def load_configuration(config_file)
    function configure_clean (line 25) | def configure_clean
    function configure_toolchain (line 29) | def configure_toolchain(config_file = DEFAULT_CONFIG_FILE)
    function tackit (line 36) | def tackit(strings)
    function squash (line 45) | def squash(prefix, items)
    function build_compiler_fields (line 51) | def build_compiler_fields
    function compile (line 65) | def compile(file, _defines = [])
    function build_linker_fields (line 75) | def build_linker_fields
    function link_it (line 91) | def link_it(exe_name, obj_list)
    function build_simulator_fields (line 101) | def build_simulator_fields
    function execute (line 121) | def execute(command_string, verbose = true)
    function report_summary (line 129) | def report_summary
    function run_tests (line 139) | def run_tests

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/extras/fixture/src/unity_fixture.c
  type UNITY_FIXTURE_T (line 12) | struct UNITY_FIXTURE_T
  function setUp (line 19) | void setUp(void)    { /*does nothing*/ }
  function tearDown (line 20) | void tearDown(void) { /*does nothing*/ }
  function announceTestRun (line 23) | static void announceTestRun(unsigned int runNumber)
  function UnityMain (line 32) | int UnityMain(int argc, const char* argv[], void (*runAllTests)(void))
  function selected (line 51) | static int selected(const char* filter, const char* name)
  function testSelected (line 58) | static int testSelected(const char* test)
  function groupSelected (line 63) | static int groupSelected(const char* group)
  function UnityTestRunner (line 68) | void UnityTestRunner(unityfunction* setup,
  function UnityIgnoreTest (line 115) | void UnityIgnoreTest(const char* printableName, const char* group, const...
  function UnityMalloc_StartTest (line 138) | void UnityMalloc_StartTest(void)
  function UnityMalloc_EndTest (line 144) | void UnityMalloc_EndTest(void)
  function UnityMalloc_MakeMallocFailAfterCount (line 153) | void UnityMalloc_MakeMallocFailAfterCount(int countdown)
  type Guard (line 172) | typedef struct GuardBytes
  function isOverrun (line 218) | static int isOverrun(void* mem)
  function release_memory (line 227) | static void release_memory(void* mem)
  function unity_free (line 243) | void unity_free(void* mem)
  type PointerPair (line 308) | struct PointerPair
  type PointerPair (line 314) | struct PointerPair
  function UnityPointer_Init (line 317) | void UnityPointer_Init(void)
  function UnityPointer_Set (line 322) | void UnityPointer_Set(void** pointer, void* newValue, UNITY_LINE_TYPE line)
  function UnityPointer_UndoAllSets (line 337) | void UnityPointer_UndoAllSets(void)
  function UnityGetCommandLineOptions (line 347) | int UnityGetCommandLineOptions(int argc, const char* argv[])
  function UnityConcludeFixtureTest (line 409) | void UnityConcludeFixtureTest(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/extras/fixture/src/unity_fixture_internals.h
  type UNITY_FIXTURE_T (line 16) | struct UNITY_FIXTURE_T
  type UNITY_FIXTURE_T (line 23) | struct UNITY_FIXTURE_T

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/src/unity.c
  type UNITY_STORAGE_T (line 21) | struct UNITY_STORAGE_T
  function UnityPrint (line 70) | void UnityPrint(const char* string)
  function UnityPrintLen (line 119) | void UnityPrintLen(const char* string, const UNITY_UINT32 length)
  function UnityPrintNumberByStyle (line 157) | void UnityPrintNumberByStyle(const UNITY_INT number, const UNITY_DISPLAY...
  function UnityPrintNumber (line 176) | void UnityPrintNumber(const UNITY_INT number_to_print)
  function UnityPrintNumberUnsigned (line 191) | void UnityPrintNumberUnsigned(const UNITY_UINT number)
  function UnityPrintNumberHex (line 210) | void UnityPrintNumberHex(const UNITY_UINT number, const char nibbles_to_...
  function UnityPrintMask (line 233) | void UnityPrintMask(const UNITY_UINT mask, const UNITY_UINT number)
  function UnityPrintFloat (line 266) | void UnityPrintFloat(const UNITY_DOUBLE input_number)
  function UnityTestResultsBegin (line 357) | static void UnityTestResultsBegin(const char* file, const UNITY_LINE_TYP...
  function UnityTestResultsFailBegin (line 368) | static void UnityTestResultsFailBegin(const UNITY_LINE_TYPE line)
  function UnityConcludeTest (line 376) | void UnityConcludeTest(void)
  function UnityAddMsgIfSpecified (line 399) | static void UnityAddMsgIfSpecified(const char* msg)
  function UnityPrintExpectedAndActualStrings (line 422) | static void UnityPrintExpectedAndActualStrings(const char* expected, con...
  function UnityPrintExpectedAndActualStringsLen (line 449) | static void UnityPrintExpectedAndActualStringsLen(const char* expected,
  function UnityIsOneArrayNull (line 481) | static int UnityIsOneArrayNull(UNITY_INTERNAL_PTR expected,
  function UnityAssertBits (line 513) | void UnityAssertBits(const UNITY_INT mask,
  function UnityAssertEqualNumber (line 534) | void UnityAssertEqualNumber(const UNITY_INT expected,
  function UnityAssertGreaterOrLessOrEqualNumber (line 555) | void UnityAssertGreaterOrLessOrEqualNumber(const UNITY_INT threshold,
  function UnityAssertEqualIntArray (line 601) | void UnityAssertEqualIntArray(UNITY_INTERNAL_PTR expected,
  function UnityFloatsWithin (line 706) | static int UnityFloatsWithin(UNITY_FLOAT delta, UNITY_FLOAT expected, UN...
  function UnityAssertEqualFloatArray (line 712) | void UnityAssertEqualFloatArray(UNITY_PTR_ATTRIBUTE const UNITY_FLOAT* e...
  function UnityAssertFloatsWithin (line 754) | void UnityAssertFloatsWithin(const UNITY_FLOAT delta,
  function UnityAssertFloatSpecial (line 773) | void UnityAssertFloatSpecial(const UNITY_FLOAT actual,
  function UnityDoublesWithin (line 836) | static int UnityDoublesWithin(UNITY_DOUBLE delta, UNITY_DOUBLE expected,...
  function UnityAssertEqualDoubleArray (line 842) | void UnityAssertEqualDoubleArray(UNITY_PTR_ATTRIBUTE const UNITY_DOUBLE*...
  function UnityAssertDoublesWithin (line 884) | void UnityAssertDoublesWithin(const UNITY_DOUBLE delta,
  function UnityAssertDoubleSpecial (line 903) | void UnityAssertDoubleSpecial(const UNITY_DOUBLE actual,
  function UnityAssertNumbersWithin (line 965) | void UnityAssertNumbersWithin(const UNITY_UINT delta,
  function UnityAssertEqualString (line 1004) | void UnityAssertEqualString(const char* expected,
  function UnityAssertEqualStringLen (line 1043) | void UnityAssertEqualStringLen(const char* expected,
  function UnityAssertEqualStringArray (line 1083) | void UnityAssertEqualStringArray(UNITY_INTERNAL_PTR expected,
  function UnityAssertEqualMemory (line 1162) | void UnityAssertEqualMemory(UNITY_INTERNAL_PTR expected,
  function UNITY_INTERNAL_PTR (line 1237) | UNITY_INTERNAL_PTR UnityNumToPtr(const UNITY_INT num, const UNITY_UINT8 ...
  function UNITY_INTERNAL_PTR (line 1261) | UNITY_INTERNAL_PTR UnityFloatToPtr(const float num)
  function UNITY_INTERNAL_PTR (line 1269) | UNITY_INTERNAL_PTR UnityDoubleToPtr(const double num)
  function UnityFail (line 1280) | void UnityFail(const char* msg, const UNITY_LINE_TYPE line)
  function UnityIgnore (line 1314) | void UnityIgnore(const char* msg, const UNITY_LINE_TYPE line)
  function UnityDefaultTestRun (line 1330) | void UnityDefaultTestRun(UnityTestFunction Func, const char* FuncName, c...
  function UnityBegin (line 1349) | void UnityBegin(const char* filename)
  function UnityEnd (line 1365) | int UnityEnd(void)
  function UnityParseOptions (line 1403) | int UnityParseOptions(int argc, char** argv)
  function IsStringInBiggerString (line 1459) | int IsStringInBiggerString(const char* longstring, const char* shortstring)
  function UnityStringArgumentMatches (line 1500) | int UnityStringArgumentMatches(const char* str)
  function UnityTestMatches (line 1549) | int UnityTestMatches(void)

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/src/unity.h
  function UNITY_WEAK_ATTRIBUTE (line 39) | UNITY_WEAK_ATTRIBUTE void setUp(void) { }
  function UNITY_WEAK_ATTRIBUTE (line 40) | UNITY_WEAK_ATTRIBUTE void tearDown(void) { }
  function UNITY_WEAK_ATTRIBUTE (line 41) | UNITY_WEAK_ATTRIBUTE void suiteSetUp(void) { }
  function UNITY_WEAK_ATTRIBUTE (line 42) | UNITY_WEAK_ATTRIBUTE int suiteTearDown(int num_failures) { return num_fa...
  function setUp (line 45) | void setUp(void) { }
  function tearDown (line 47) | void tearDown(void) { }
  function suiteSetUp (line 49) | void suiteSetUp(void) { }
  function suiteTearDown (line 51) | int suiteTearDown(int num_failures) { return num_failures; }

FILE: User/COMPONENT/cJSON/cJSON/tests/unity/src/unity_internals.h
  type UNITY_UINT8 (line 90) | typedef unsigned char   UNITY_UINT8;
  type UNITY_UINT16 (line 91) | typedef unsigned short  UNITY_UINT16;
  type UNITY_UINT32 (line 92) | typedef unsigned int    UNITY_UINT32;
  type UNITY_INT8 (line 93) | typedef signed char     UNITY_INT8;
  type UNITY_INT16 (line 94) | typedef signed short    UNITY_INT16;
  type UNITY_INT32 (line 95) | typedef signed int      UNITY_INT32;
  type UNITY_UINT8 (line 97) | typedef unsigned char   UNITY_UINT8;
  type UNITY_UINT16 (line 98) | typedef unsigned int    UNITY_UINT16;
  type UNITY_UINT32 (line 99) | typedef unsigned long   UNITY_UINT32;
  type UNITY_INT8 (line 100) | typedef signed char     UNITY_INT8;
  type UNITY_INT16 (line 101) | typedef signed int      UNITY_INT16;
  type UNITY_INT32 (line 102) | typedef signed long     UNITY_INT32;
  type UNITY_UINT32 (line 119) | typedef UNITY_UINT32 UNITY_UINT;
  type UNITY_INT32 (line 120) | typedef UNITY_INT32 UNITY_INT;
  type UNITY_UINT64 (line 125) | typedef unsigned long long UNITY_UINT64;
  type UNITY_INT64 (line 126) | typedef signed long long   UNITY_INT64;
  type UNITY_UINT64 (line 128) | typedef unsigned long      UNITY_UINT64;
  type UNITY_INT64 (line 129) | typedef signed long        UNITY_INT64;
  type UNITY_UINT64 (line 133) | typedef UNITY_UINT64 UNITY_UINT;
  type UNITY_INT64 (line 134) | typedef UNITY_INT64 UNITY_INT;
  type UNITY_FLOAT_TYPE (line 186) | typedef UNITY_FLOAT_TYPE UNITY_FLOAT;
  type UNITY_FLOAT (line 220) | typedef UNITY_FLOAT UNITY_DOUBLE;
  type UNITY_DOUBLE_TYPE (line 234) | typedef UNITY_DOUBLE_TYPE UNITY_DOUBLE;
  type UNITY_DISPLAY_STYLE_T (line 325) | typedef enum
  type UNITY_COMPARISON_T (line 353) | typedef enum
  type UNITY_FLOAT_TRAIT_T (line 363) | typedef enum UNITY_FLOAT_TRAIT
  type UNITY_FLAGS_T (line 377) | typedef enum
  type UNITY_STORAGE_T (line 383) | struct UNITY_STORAGE_T
  type UNITY_STORAGE_T (line 402) | struct UNITY_STORAGE_T

FILE: User/COMPONENT/crc/crc.c
  function crc4_itu (line 22) | uint8_t crc4_itu(uint8_t *data, uint16_t length)
  function crc5_epc (line 49) | uint8_t crc5_epc(uint8_t *data, uint16_t length)
  function crc5_itu (line 76) | uint8_t crc5_itu(uint8_t *data, uint16_t length)
  function crc5_usb (line 103) | uint8_t crc5_usb(uint8_t *data, uint16_t length)
  function crc6_itu (line 130) | uint8_t crc6_itu(uint8_t *data, uint16_t length)
  function crc7_mmc (line 157) | uint8_t crc7_mmc(uint8_t *data, uint16_t length)
  function crc8 (line 184) | uint8_t crc8(uint8_t *data, uint16_t length)
  function crc8_itu (line 211) | uint8_t crc8_itu(uint8_t *data, uint16_t length)
  function crc8_rohc (line 238) | uint8_t crc8_rohc(uint8_t *data, uint16_t length)
  function crc8_maxim (line 266) | uint8_t crc8_maxim(uint8_t *data, uint16_t length)
  function crc16_ibm (line 293) | uint16_t crc16_ibm(uint8_t *data, uint16_t length)
  function crc16_maxim (line 320) | uint16_t crc16_maxim(uint8_t *data, uint16_t length)
  function crc16_usb (line 347) | uint16_t crc16_usb(uint8_t *data, uint16_t length)
  function crc16_modbus (line 374) | uint16_t crc16_modbus(uint8_t *data, uint16_t length)
  function crc16_ccitt (line 401) | uint16_t crc16_ccitt(uint8_t *data, uint16_t length)
  function crc16_ccitt_false (line 428) | uint16_t crc16_ccitt_false(uint8_t *data, uint16_t length)
  function crc16_x25 (line 455) | uint16_t crc16_x25(uint8_t *data, uint16_t length)
  function crc16_xmodem (line 482) | uint16_t crc16_xmodem(uint8_t *data, uint16_t length)
  function crc16_dnp (line 509) | uint16_t crc16_dnp(uint8_t *data, uint16_t length)
  function crc32 (line 537) | uint32_t crc32(uint8_t *data, uint16_t length)
  function crc32_mpeg_2 (line 564) | uint32_t crc32_mpeg_2(uint8_t *data, uint16_t length)

FILE: User/COMPONENT/http-parser/http-parser/bench.c
  function on_info (line 44) | static int on_info(http_parser* p) {
  function on_data (line 49) | static int on_data(http_parser* p, const char *at, size_t length) {
  function bench (line 64) | int bench(int iter_count, int silent) {
  function main (line 103) | int main(int argc, char** argv) {

FILE: User/COMPONENT/http-parser/http-parser/contrib/parsertrace.c
  function on_message_begin (line 32) | int on_message_begin(http_parser* _) {
  function on_headers_complete (line 38) | int on_headers_complete(http_parser* _) {
  function on_message_complete (line 44) | int on_message_complete(http_parser* _) {
  function on_url (line 50) | int on_url(http_parser* _, const char* at, size_t length) {
  function on_header_field (line 56) | int on_header_field(http_parser* _, const char* at, size_t length) {
  function on_header_value (line 62) | int on_header_value(http_parser* _, const char* at, size_t length) {
  function on_body (line 68) | int on_body(http_parser* _, const char* at, size_t length) {
  function usage (line 74) | void usage(const char* name) {
  function main (line 83) | int main(int argc, char* argv[]) {

FILE: User/COMPONENT/http-parser/http-parser/contrib/url_parser.c
  function dump_url (line 5) | void
  function main (line 26) | int main(int argc, char ** argv) {

FILE: User/COMPONENT/http-parser/http-parser/http_parser.c
  type state (line 279) | enum state
  type header_states (line 363) | enum header_states
  type http_host_state (line 393) | enum http_host_state
  function parse_url_char (line 486) | static enum state
  function http_parser_execute (line 634) | size_t http_parser_execute (http_parser *parser,
  function http_message_needs_eof (line 2095) | int
  function http_should_keep_alive (line 2118) | int
  type http_method (line 2138) | enum http_method
  function http_parser_init (line 2144) | void
  function http_parser_settings_init (line 2155) | void
  type http_errno (line 2162) | enum http_errno
  type http_errno (line 2168) | enum http_errno
  function http_parse_host_char (line 2173) | static enum http_host_state
  function http_parse_host (line 2255) | static int
  function http_parser_url_init (line 2337) | void
  function http_parser_parse_url (line 2342) | int
  function http_parser_pause (line 2446) | void
  function http_body_is_final (line 2460) | int
  function http_parser_version (line 2465) | unsigned long

FILE: User/COMPONENT/http-parser/http-parser/http_parser.h
  type __int8 (line 37) | typedef __int8 int8_t;
  type __int16 (line 39) | typedef __int16 int16_t;
  type __int32 (line 41) | typedef __int32 int32_t;
  type __int64 (line 43) | typedef __int64 int64_t;
  type http_parser (line 67) | typedef struct http_parser http_parser;
  type http_parser_settings (line 68) | typedef struct http_parser_settings http_parser_settings;
  type http_status (line 155) | enum http_status
  type http_method (line 206) | enum http_method
  type http_parser_type (line 214) | enum http_parser_type { HTTP_REQUEST, HTTP_RESPONSE, HTTP_BOTH }
  type flags (line 218) | enum flags
  type http_errno (line 282) | enum http_errno {
  type http_parser (line 292) | struct http_parser {
  type http_parser_settings (line 323) | struct http_parser_settings {
  type http_parser_url_fields (line 340) | enum http_parser_url_fields
  type http_parser_url (line 359) | struct http_parser_url {
  type http_parser_type (line 382) | enum http_parser_type
  type http_method (line 407) | enum http_method
  type http_errno (line 410) | enum http_errno
  type http_errno (line 413) | enum http_errno
  type http_parser_url (line 416) | struct http_parser_url
  type http_parser_url (line 421) | struct http_parser_url

FILE: User/COMPONENT/http-parser/http-parser/test.c
  type message (line 48) | struct message {
  type message (line 87) | struct message
  type message (line 92) | struct message
  type message (line 1160) | struct message
  function strnlen (line 1780) | size_t
  function strlncat (line 1792) | size_t
  function strlcat (line 1814) | size_t
  function strlncpy (line 1820) | size_t
  function strlcpy (line 1838) | size_t
  function request_url_cb (line 1844) | int
  function header_field_cb (line 1855) | int
  function header_value_cb (line 1874) | int
  function check_body_is_final (line 1890) | void
  function body_cb (line 1903) | int
  function count_body_cb (line 1917) | int
  function message_begin_cb (line 1927) | int
  function headers_complete_cb (line 1935) | int
  function message_complete_cb (line 1948) | int
  function response_status_cb (line 1980) | int
  function chunk_header_cb (line 1991) | int
  function chunk_complete_cb (line 2004) | int
  function dontcall_message_begin_cb (line 2022) | int
  function dontcall_header_field_cb (line 2030) | int
  function dontcall_header_value_cb (line 2038) | int
  function dontcall_request_url_cb (line 2046) | int
  function dontcall_body_cb (line 2054) | int
  function dontcall_headers_complete_cb (line 2062) | int
  function dontcall_message_complete_cb (line 2071) | int
  function dontcall_response_status_cb (line 2080) | int
  function dontcall_chunk_header_cb (line 2088) | int
  function dontcall_chunk_complete_cb (line 2096) | int
  function pause_message_begin_cb (line 2122) | int
  function pause_header_field_cb (line 2130) | int
  function pause_header_value_cb (line 2138) | int
  function pause_request_url_cb (line 2146) | int
  function pause_body_cb (line 2154) | int
  function pause_headers_complete_cb (line 2162) | int
  function pause_message_complete_cb (line 2170) | int
  function pause_response_status_cb (line 2178) | int
  function pause_chunk_header_cb (line 2186) | int
  function pause_chunk_complete_cb (line 2194) | int
  function connect_headers_complete_cb (line 2202) | int
  function connect_message_complete_cb (line 2209) | int
  function parser_init (line 2281) | void
  function parser_free (line 2296) | void
  function parse (line 2304) | size_t parse (const char *buf, size_t len)
  function parse_count_body (line 2312) | size_t parse_count_body (const char *buf, size_t len)
  function parse_pause (line 2320) | size_t parse_pause (const char *buf, size_t len)
  function parse_connect (line 2331) | size_t parse_connect (const char *buf, size_t len)
  function check_str_eq (line 2339) | static inline int
  function check_num_eq (line 2359) | static inline int
  function message_eq (line 2394) | int
  function count_parsed_messages (line 2488) | size_t
  function upgrade_message_fix (line 2511) | void
  function print_error (line 2548) | static void
  function test_preserve_data (line 2589) | void
  type url_test (line 2602) | struct url_test {
  type url_test (line 2610) | struct url_test
  function dump_url (line 3145) | void
  function test_parse_url (line 3166) | void
  function test_method_str (line 3212) | void
  function test_message (line 3219) | void
  function test_message_count_body (line 3279) | void
  type http_errno (line 3316) | enum http_errno
  type http_errno (line 3320) | enum http_errno
  function test_invalid_header_content (line 3342) | void
  function test_invalid_header_field_content_error (line 3369) | void
  function test_invalid_header_field (line 3376) | void
  function test_invalid_header_field_token_error (line 3403) | void
  function test_double_content_length_error (line 3410) | void
  function test_chunked_content_length_error (line 3437) | void
  function test_header_cr_no_lf_error (line 3464) | void
  function test_header_overflow_error (line 3491) | void
  function test_header_nread_value (line 3520) | void
  function test_content_length_overflow (line 3535) | static void
  function test_header_content_length_overflow_error (line 3548) | void
  function test_chunk_content_length_overflow_error (line 3564) | void
  function test_no_overflow_long_body (line 3582) | void
  function test_multiple3 (line 3615) | void
  function test_scan (line 3672) | void
  function test_message_pause (line 3822) | void
  function test_message_connect (line 3874) | void
  function main (line 3894) | int

FILE: User/COMPONENT/json11/json11.cpp
  type json11 (line 29) | namespace json11 {
    type NullStruct (line 44) | struct NullStruct {
    function dump (line 53) | static void dump(NullStruct, string &out) {
    function dump (line 57) | static void dump(double value, string &out) {
    function dump (line 67) | static void dump(int value, string &out) {
    function dump (line 73) | static void dump(bool value, string &out) {
    function dump (line 77) | static void dump(const string &value, string &out) {
    function dump (line 114) | static void dump(const Json::array &values, string &out) {
    function dump (line 126) | static void dump(const Json::object &values, string &out) {
    class Value (line 149) | class Value : public JsonValue {
      method Value (line 153) | explicit Value(const T &value) : m_value(value) {}
      method Value (line 154) | explicit Value(T &&value)      : m_value(move(value)) {}
      method type (line 157) | Json::Type type() const override {
      method equals (line 162) | bool equals(const JsonValue * other) const override {
      method less (line 165) | bool less(const JsonValue * other) const override {
      method dump (line 170) | void dump(string &out) const override { json11::dump(m_value, out); }
    class JsonDouble (line 173) | class JsonDouble final : public Value<Json::NUMBER, double> {
      method number_value (line 174) | double number_value() const override { return m_value; }
      method int_value (line 175) | int int_value() const override { return static_cast<int>(m_value); }
      method equals (line 176) | bool equals(const JsonValue * other) const override { return m_value...
      method less (line 177) | bool less(const JsonValue * other)   const override { return m_value...
      method JsonDouble (line 179) | explicit JsonDouble(double value) : Value(value) {}
    class JsonInt (line 182) | class JsonInt final : public Value<Json::NUMBER, int> {
      method number_value (line 183) | double number_value() const override { return m_value; }
      method int_value (line 184) | int int_value() const override { return m_value; }
      method equals (line 185) | bool equals(const JsonValue * other) const override { return m_value...
      method less (line 186) | bool less(const JsonValue * other)   const override { return m_value...
      method JsonInt (line 188) | explicit JsonInt(int value) : Value(value) {}
    class JsonBoolean (line 191) | class JsonBoolean final : public Value<Json::BOOL, bool> {
      method bool_value (line 192) | bool bool_value() const override { return m_value; }
      method JsonBoolean (line 194) | explicit JsonBoolean(bool value) : Value(value) {}
    class JsonString (line 197) | class JsonString final : public Value<Json::STRING, string> {
      method string (line 198) | const string &string_value() const override { return m_value; }
      method JsonString (line 200) | explicit JsonString(const string &value) : Value(value) {}
      method JsonString (line 201) | explicit JsonString(string &&value)      : Value(move(value)) {}
    class JsonArray (line 204) | class JsonArray final : public Value<Json::ARRAY, Json::array> {
      method JsonArray (line 208) | explicit JsonArray(const Json::array &value) : Value(value) {}
      method JsonArray (line 209) | explicit JsonArray(Json::array &&value)      : Value(move(value)) {}
    class JsonObject (line 212) | class JsonObject final : public Value<Json::OBJECT, Json::object> {
      method JsonObject (line 216) | explicit JsonObject(const Json::object &value) : Value(value) {}
      method JsonObject (line 217) | explicit JsonObject(Json::object &&value)      : Value(move(value)) {}
    class JsonNull (line 220) | class JsonNull final : public Value<Json::NUL, NullStruct> {
      method JsonNull (line 222) | JsonNull() : Value({}) {}
    type Statics (line 228) | struct Statics {
      method Statics (line 235) | Statics() {}
    function Statics (line 238) | static const Statics & statics() {
      method Statics (line 235) | Statics() {}
    function Json (line 243) | static const Json & static_null() {
    function string (line 274) | const string & Json::string_value()               const { return m_ptr...
    function Json (line 277) | const Json & Json::operator[] (size_t i)          const { return (*m_p...
    function Json (line 278) | const Json & Json::operator[] (const string &key) const { return (*m_p...
    function string (line 283) | const string &            JsonValue::string_value()              const...
    function Json (line 286) | const Json &              JsonValue::operator[] (size_t)         const...
    function Json (line 287) | const Json &              JsonValue::operator[] (const string &) const...
    function Json (line 289) | const Json & JsonObject::operator[] (const string &key) const {
    function Json (line 293) | const Json & JsonArray::operator[] (size_t i) const {
    function string (line 324) | static inline string esc(char c) {
    function in_range (line 334) | static inline bool in_range(long x, long lower, long upper) {
    type JsonParser (line 343) | struct JsonParser final {
      method Json (line 357) | Json fail(string &&msg) {
      method T (line 362) | T fail(string &&msg, const T err_ret) {
      method consume_whitespace (line 373) | void consume_whitespace() {
      method consume_comment (line 382) | bool consume_comment() {
      method consume_garbage (line 420) | void consume_garbage() {
      method get_next_token (line 438) | char get_next_token() {
      method encode_utf8 (line 451) | void encode_utf8(long pt, string & out) {
      method string (line 476) | string parse_string() {
      method Json (line 569) | Json parse_number() {
      method Json (line 625) | Json expect(const string &expected, Json res) {
      method Json (line 640) | Json parse_json(int depth) {
    function Json (line 728) | Json Json::parse(const string &in, string &err, JsonParse strategy) {

FILE: User/COMPONENT/json11/json11.hpp
  type json11 (line 71) | namespace json11 {
    type JsonParse (line 73) | enum JsonParse {
    class JsonValue (line 77) | class JsonValue
    class Json (line 79) | class Json final {
      type Type (line 82) | enum Type {
      method Json (line 106) | Json(const T & t) : Json(t.to_json()) {}
      method Json (line 113) | Json(const M & m) : Json(object(m.begin(), m.end())) {}
      method Json (line 119) | Json(const V & v) : Json(array(v.begin(), v.end())) {}
      method Json (line 123) | Json(void *) = delete;
      method is_null (line 128) | bool is_null()   const { return type() == NUL; }
      method is_number (line 129) | bool is_number() const { return type() == NUMBER; }
      method is_bool (line 130) | bool is_bool()   const { return type() == BOOL; }
      method is_string (line 131) | bool is_string() const { return type() == STRING; }
      method is_array (line 132) | bool is_array()  const { return type() == ARRAY; }
      method is_object (line 133) | bool is_object() const { return type() == OBJECT; }
      method dump (line 157) | std::string dump() const {
      method Json (line 167) | static Json parse(const char * in,
      method parse_multi (line 184) | static inline std::vector<Json> parse_multi(
    class JsonValue (line 212) | class JsonValue {

FILE: User/COMPONENT/msg_queue/msg_queue.c
  function msg_queue_get_size (line 19) | uint16_t msg_queue_get_size(t_msg_queue *p_m_q)
  function msg_queue_get_used (line 31) | uint16_t msg_queue_get_used(t_msg_queue *p_m_q)
  function msg_queue_get_free (line 47) | uint16_t msg_queue_get_free(t_msg_queue *p_m_q)
  function msg_queue_clear_all_msg (line 57) | void msg_queue_clear_all_msg(t_msg_queue *p_m_q)
  function msg_queue_get_msg (line 63) | uint8_t msg_queue_get_msg(t_msg_queue *p_m_q, uint8_t *msg, uint16_t num)
  function msg_queue_put_msg (line 90) | uint8_t msg_queue_put_msg(t_msg_queue *p_m_q, uint8_t *msg, uint16_t num)
  function msg_queue_put_msg_renew (line 117) | uint8_t msg_queue_put_msg_renew(t_msg_queue *p_m_q, uint8_t *msg, uint16...
  function msg_queue_init (line 158) | void msg_queue_init(t_msg_queue *p_m_q, const void *buffer, const uint16...

FILE: User/COMPONENT/msg_queue/msg_queue.h
  type t_msg_queue (line 22) | typedef struct {

FILE: User/COMPONENT/qrcode/QrCode.cc
  type qrcodegen (line 40) | namespace qrcodegen {
    function QrSegment (line 67) | QrSegment QrSegment::makeBytes(const vector<uint8_t> &data) {
    function QrSegment (line 77) | QrSegment QrSegment::makeNumeric(const char *digits) {
    function QrSegment (line 100) | QrSegment QrSegment::makeAlphanumeric(const char *text) {
    function QrSegment (line 141) | QrSegment QrSegment::makeEci(long assignVal) {
    function QrCode (line 243) | QrCode QrCode::encodeText(const char *text, Ecc ecl) {
    function QrCode (line 249) | QrCode QrCode::encodeBinary(const vector<uint8_t> &data, Ecc ecl) {
    function QrCode (line 255) | QrCode QrCode::encodeSegments(const vector<QrSegment> &segs, Ecc ecl,

FILE: User/COMPONENT/qrcode/QrCode.hpp
  type qrcodegen (line 33) | namespace qrcodegen {
    class QrSegment (line 46) | class QrSegment final {
      class Mode (line 53) | class Mode final {
    class QrCode (line 236) | class QrCode final {
      type Ecc (line 243) | enum class Ecc {
    class data_too_long (line 528) | class data_too_long : public std::length_error {
    class BitBuffer (line 539) | class BitBuffer final : public std::vector<bool> {

FILE: User/SYS/sys_command_line.c
  function __packed (line 28) | __packed typedef struct {
  function cli_help (line 87) | static uint8_t cli_help(void *para, uint8_t len)
  function cli_clear (line 106) | static uint8_t cli_clear(void *para, uint8_t len)
  function cli_echo (line 127) | static uint8_t cli_echo(void *para, uint8_t len)
  function cli_reboot (line 158) | static uint8_t cli_reboot(void *para, uint8_t len)
  function __packed (line 176) | __packed typedef struct {
  function cli_history_add (line 191) | static void cli_history_add(char* buff)
  function cli_history_show (line 232) | static uint8_t cli_history_show(uint8_t mode, char** p_history)
  function cli_init (line 278) | void cli_init(uint32_t baud)
  function cli_rx_handle (line 322) | static void cli_rx_handle(RX_BUFF_TYPE *rx_buff)
  function cli_tx_handle (line 488) | static void cli_tx_handle(void)
  function cli_run (line 499) | void cli_run(void)

FILE: User/SYS/sys_command_line.h
  function __packed (line 276) | __packed typedef struct {

FILE: User/SYS/sys_queue.c
  function queue_init (line 21) | uint8_t queue_init(uint16_t *Front, uint16_t *Rear, uint8_t *PBase, uint...
  function queue_full (line 39) | uint8_t queue_full(uint16_t *Front, uint16_t *Rear, uint8_t *PBase, uint...
  function queue_empty (line 53) | uint8_t queue_empty(uint16_t *Front, uint16_t *Rear, uint8_t *PBase, uin...
  function queue_in (line 68) | uint8_t queue_in(uint16_t *Front, uint16_t *Rear, uint8_t *PBase, uint16...
  function queue_out (line 91) | uint8_t queue_out(uint16_t *Front, uint16_t *Rear, uint8_t *PBase, uint1...

FILE: User/SYS/sys_queue.h
  type queue8 (line 43) | struct queue8 {
  type queue16 (line 50) | struct queue16 {
  type queue32 (line 57) | struct queue32 {
  type queue64 (line 64) | struct queue64 {
  type queue128 (line 71) | struct queue128 {
  type queue256 (line 78) | struct queue256 {
  type queue1024 (line 84) | struct queue1024 {
  type queue2048 (line 90) | struct queue2048 {

FILE: User/global.h
  type BYTE (line 45) | typedef union

FILE: User/main.c
  function Delay (line 9) | void Delay(__IO uint32_t nCount)	 //delay
  function main (line 20) | int main(void)

FILE: User/stm32f10x_it.c
  function NMI_Handler (line 49) | void NMI_Handler(void)
  function HardFault_Handler (line 58) | void HardFault_Handler(void)
  function MemManage_Handler (line 71) | void MemManage_Handler(void)
  function BusFault_Handler (line 84) | void BusFault_Handler(void)
  function UsageFault_Handler (line 97) | void UsageFault_Handler(void)
  function SVC_Handler (line 110) | void SVC_Handler(void)
  function DebugMon_Handler (line 119) | void DebugMon_Handler(void)
  function PendSV_Handler (line 128) | void PendSV_Handler(void)
  function SysTick_Handler (line 137) | void SysTick_Handler(void)
  function DEBUG_USART_IRQHandler (line 142) | void DEBUG_USART_IRQHandler(void)
Condensed preview — 423 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (3,782K chars).
[
  {
    "path": ".gitattributes",
    "chars": 429,
    "preview": "* text=auto\n\n*.S text\n*.asm text\n*.c text\n*.cc text\n*.cpp text\n*.cxx text\n*.h text\n*.htm text\n*.html text\n*.in text\n*.ld"
  },
  {
    "path": "LICENSE",
    "chars": 1103,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2017-2018 ShareCat (sharecat73@gmail.com)\n\nPermission is hereby granted, free of ch"
  },
  {
    "path": "Libraries/CMSIS/core_cm3.c",
    "chars": 16489,
    "preview": "/**************************************************************************//**\n * @file     core_cm3.c\n * @brief    CMS"
  },
  {
    "path": "Libraries/CMSIS/core_cm3.h",
    "chars": 83896,
    "preview": "/**************************************************************************//**\n * @file     core_cm3.h\n * @brief    CMS"
  },
  {
    "path": "Libraries/CMSIS/startup/startup_stm32f10x_cl.s",
    "chars": 15398,
    "preview": ";******************** (C) COPYRIGHT 2011 STMicroelectronics ********************\n;* File Name          : startup_stm32f1"
  },
  {
    "path": "Libraries/CMSIS/startup/startup_stm32f10x_hd.s",
    "chars": 15145,
    "preview": ";******************** (C) COPYRIGHT 2011 STMicroelectronics ********************\n;* File Name          : startup_stm32f1"
  },
  {
    "path": "Libraries/CMSIS/startup/startup_stm32f10x_hd_vl.s",
    "chars": 15346,
    "preview": ";******************** (C) COPYRIGHT 2011 STMicroelectronics ********************\n;* File Name          : startup_stm32f1"
  },
  {
    "path": "Libraries/CMSIS/startup/startup_stm32f10x_ld.s",
    "chars": 12079,
    "preview": ";******************** (C) COPYRIGHT 2011 STMicroelectronics ********************\n;* File Name          : startup_stm32f1"
  },
  {
    "path": "Libraries/CMSIS/startup/startup_stm32f10x_ld_vl.s",
    "chars": 13352,
    "preview": ";******************** (C) COPYRIGHT 2011 STMicroelectronics ********************\n;* File Name          : startup_stm32f1"
  },
  {
    "path": "Libraries/CMSIS/startup/startup_stm32f10x_md.s",
    "chars": 12458,
    "preview": ";******************** (C) COPYRIGHT 2011 STMicroelectronics ********************\n;* File Name          : startup_stm32f1"
  },
  {
    "path": "Libraries/CMSIS/startup/startup_stm32f10x_md_vl.s",
    "chars": 13758,
    "preview": ";******************** (C) COPYRIGHT 2011 STMicroelectronics ********************\n;* File Name          : startup_stm32f1"
  },
  {
    "path": "Libraries/CMSIS/startup/startup_stm32f10x_xl.s",
    "chars": 15597,
    "preview": ";******************** (C) COPYRIGHT 2011 STMicroelectronics ********************\n;* File Name          : startup_stm32f1"
  },
  {
    "path": "Libraries/CMSIS/stm32f10x.h",
    "chars": 625602,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x.h\n  * @autho"
  },
  {
    "path": "Libraries/CMSIS/system_stm32f10x.c",
    "chars": 35463,
    "preview": "/**\n  ******************************************************************************\n  * @file    system_stm32f10x.c\n  *"
  },
  {
    "path": "Libraries/CMSIS/system_stm32f10x.h",
    "chars": 1987,
    "preview": "/**\n  ******************************************************************************\n  * @file    system_stm32f10x.h\n  *"
  },
  {
    "path": "Libraries/FWlib/inc/misc.h",
    "chars": 8762,
    "preview": "/**\n  ******************************************************************************\n  * @file    misc.h\n  * @author  MC"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_adc.h",
    "chars": 21207,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_adc.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_bkp.h",
    "chars": 7360,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_bkp.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_can.h",
    "chars": 26862,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_can.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_cec.h",
    "chars": 6363,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_cec.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_crc.h",
    "chars": 2068,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_crc.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_dac.h",
    "chars": 14916,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_dac.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_dbgmcu.h",
    "chars": 3699,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_dbgmcu.h\n  *"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_dma.h",
    "chars": 20315,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_dma.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_exti.h",
    "chars": 6640,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_exti.h\n  * @"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_flash.h",
    "chars": 25019,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_flash.h\n  * "
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_fsmc.h",
    "chars": 26283,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_fsmc.h\n  * @"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_gpio.h",
    "chars": 19790,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_gpio.h\n  * @"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_i2c.h",
    "chars": 29345,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_i2c.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_iwdg.h",
    "chars": 3688,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_iwdg.h\n  * @"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_pwr.h",
    "chars": 4227,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_pwr.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_rcc.h",
    "chars": 29725,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_rcc.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_rtc.h",
    "chars": 3722,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_rtc.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_sdio.h",
    "chars": 21332,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_sdio.h\n  * @"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_spi.h",
    "chars": 17238,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_spi.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_tim.h",
    "chars": 51263,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_tim.h\n  * @a"
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_usart.h",
    "chars": 16136,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_usart.h\n  * "
  },
  {
    "path": "Libraries/FWlib/inc/stm32f10x_wwdg.h",
    "chars": 2851,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_wwdg.h\n  * @"
  },
  {
    "path": "Libraries/FWlib/src/misc.c",
    "chars": 6821,
    "preview": "/**\n  ******************************************************************************\n  * @file    misc.c\n  * @author  MC"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_adc.c",
    "chars": 45894,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_adc.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_bkp.c",
    "chars": 8155,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_bkp.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_can.c",
    "chars": 43688,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_can.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_cec.c",
    "chars": 11223,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_cec.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_crc.c",
    "chars": 3187,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_crc.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_dac.c",
    "chars": 18516,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_dac.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_dbgmcu.c",
    "chars": 4987,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_dbgmcu.c\n  *"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_dma.c",
    "chars": 28893,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_dma.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_exti.c",
    "chars": 6690,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_exti.c\n  * @"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_flash.c",
    "chars": 60865,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_flash.c\n  * "
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_fsmc.c",
    "chars": 34618,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_fsmc.c\n  * @"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_gpio.c",
    "chars": 22571,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_gpio.c\n  * @"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_i2c.c",
    "chars": 44449,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_i2c.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_iwdg.c",
    "chars": 4726,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_iwdg.c\n  * @"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_pwr.c",
    "chars": 8452,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_pwr.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_rcc.c",
    "chars": 49801,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_rcc.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_rtc.c",
    "chars": 8259,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_rtc.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_sdio.c",
    "chars": 28134,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_sdio.c\n  * @"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_spi.c",
    "chars": 29316,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_spi.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_tim.c",
    "chars": 106269,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_tim.c\n  * @a"
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_usart.c",
    "chars": 37246,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_usart.c\n  * "
  },
  {
    "path": "Libraries/FWlib/src/stm32f10x_wwdg.c",
    "chars": 5511,
    "preview": "/**\n  ******************************************************************************\n  * @file    stm32f10x_wwdg.c\n  * @"
  },
  {
    "path": "Project/RVMDK/DebugConfig/STM32F103_CLI_STM32F103C8.dbgconf",
    "chars": 6860,
    "preview": "// <<< Use Configuration Wizard in Context Menu >>>\n// <h> Debug MCU Configuration\n//   <o0.0>    DBG_SLEEP\n// <i> Debug"
  },
  {
    "path": "Project/RVMDK/DebugConfig/USART_STM32F103ZE.dbgconf",
    "chars": 6860,
    "preview": "// <<< Use Configuration Wizard in Context Menu >>>\n// <h> Debug MCU Configuration\n//   <o0.0>    DBG_SLEEP\n// <i> Debug"
  },
  {
    "path": "Project/RVMDK/JLinkSettings.ini",
    "chars": 716,
    "preview": "[BREAKPOINTS]\nForceImpTypeAny = 0\nShowInfoWin = 1\nEnableFlashBP = 2\nBPDuringExecution = 0\n[CFI]\nCFISize = 0x00\nCFIAddr ="
  },
  {
    "path": "Project/RVMDK/Listing/startup_stm32f10x_md.lst",
    "chars": 43797,
    "preview": "\n\n\nARM Macro Assembler    Page 1 \n\n\n    1 00000000         ;******************** (C) COPYRIGHT 2011 STMicroelectron\n    "
  },
  {
    "path": "Project/RVMDK/Output/STM32F103_CLI.build_log.htm",
    "chars": 2923,
    "preview": "<html>\n<body>\n<pre>\n<h1>Vision Build Log</h1>\n<h2>Tool Versions:</h2>\nIDE-Version: Vision V5.26.2.0\nCopyright (C) 2018 A"
  },
  {
    "path": "Project/RVMDK/Output/STM32F103_CLI.hex",
    "chars": 22384,
    "preview": ":020000040800F2\n:10000000000A002001010008031B0008051B00086E\n:10001000091B00080D1B0008111B00080000000050\n:100020000000000"
  },
  {
    "path": "Project/RVMDK/Output/STM32F103_CLI.htm",
    "chars": 53962,
    "preview": "<!doctype html public \"-//w3c//dtd html 4.0 transitional//en\">\n<html><head>\n<title>Static Call Graph - [.\\Output\\STM32F1"
  },
  {
    "path": "Project/RVMDK/Output/STM32F103_CLI.lnp",
    "chars": 1176,
    "preview": "--cpu Cortex-M3\n\".\\output\\startup_stm32f10x_md.o\"\n\".\\output\\core_cm3.o\"\n\".\\output\\system_stm32f10x.o\"\n\".\\output\\misc.o\"\n"
  },
  {
    "path": "Project/RVMDK/Output/STM32F103_CLI.sct",
    "chars": 494,
    "preview": "; *************************************************************\r\n; *** Scatter-Loading Description File generated by uVi"
  },
  {
    "path": "Project/RVMDK/Output/STM32F103_CLI_STM32F103_CLI.dep",
    "chars": 35730,
    "preview": "Dependencies for Project 'STM32F103_CLI', Target 'STM32F103_CLI': (DO NOT MODIFY !)\r\nF (..\\..\\Libraries\\CMSIS\\startup\\st"
  },
  {
    "path": "Project/RVMDK/Output/STM32F103_CLI_sct.Bak",
    "chars": 464,
    "preview": "; *************************************************************\n; *** Scatter-Loading Description File generated by uVis"
  },
  {
    "path": "Project/RVMDK/Output/app_led.d",
    "chars": 1176,
    "preview": ".\\output\\app_led.o: ..\\..\\User\\APP\\app_led.c\n.\\output\\app_led.o: C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdio.h\n.\\output\\ap"
  },
  {
    "path": "Project/RVMDK/Output/bsp_led.d",
    "chars": 667,
    "preview": ".\\output\\bsp_led.o: ..\\..\\User\\BSP\\bsp_led.c\n.\\output\\bsp_led.o: ..\\..\\User\\BSP\\bsp_led.h\n.\\output\\bsp_led.o: ..\\..\\Libr"
  },
  {
    "path": "Project/RVMDK/Output/bsp_usart.d",
    "chars": 1168,
    "preview": ".\\output\\bsp_usart.o: ..\\..\\User\\BSP\\bsp_usart.c\n.\\output\\bsp_usart.o: ..\\..\\User\\BSP\\bsp_usart.h\n.\\output\\bsp_usart.o: "
  },
  {
    "path": "Project/RVMDK/Output/core_cm3.d",
    "chars": 120,
    "preview": ".\\output\\core_cm3.o: ..\\..\\Libraries\\CMSIS\\core_cm3.c\n.\\output\\core_cm3.o: C:\\Keil_v5\\ARM\\ARMCC\\Bin\\..\\include\\stdint.h\n"
  },
  {
    "path": "Project/RVMDK/Output/main.d",
    "chars": 1051,
    "preview": ".\\output\\main.o: ..\\..\\User\\main.c\n.\\output\\main.o: ..\\..\\Libraries\\CMSIS\\stm32f10x.h\n.\\output\\main.o: ..\\..\\Libraries\\C"
  },
  {
    "path": "Project/RVMDK/Output/misc.d",
    "chars": 647,
    "preview": ".\\output\\misc.o: ..\\..\\Libraries\\FWlib\\src\\misc.c\n.\\output\\misc.o: ..\\..\\Libraries\\FWlib\\inc\\misc.h\n.\\output\\misc.o: ..\\"
  },
  {
    "path": "Project/RVMDK/Output/startup_stm32f10x_md.d",
    "chars": 86,
    "preview": ".\\output\\startup_stm32f10x_md.o: ..\\..\\Libraries\\CMSIS\\startup\\startup_stm32f10x_md.s\n"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_adc.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_adc.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_adc.c\n.\\output\\stm32f10x_adc.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_bkp.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_bkp.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_bkp.c\n.\\output\\stm32f10x_bkp.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_can.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_can.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_can.c\n.\\output\\stm32f10x_can.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_cec.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_cec.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_cec.c\n.\\output\\stm32f10x_cec.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_crc.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_crc.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_crc.c\n.\\output\\stm32f10x_crc.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_dac.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_dac.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_dac.c\n.\\output\\stm32f10x_dac.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_dbgmcu.d",
    "chars": 815,
    "preview": ".\\output\\stm32f10x_dbgmcu.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_dbgmcu.c\n.\\output\\stm32f10x_dbgmcu.o: ..\\..\\Libraries\\F"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_dma.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_dma.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_dma.c\n.\\output\\stm32f10x_dma.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_exti.d",
    "chars": 787,
    "preview": ".\\output\\stm32f10x_exti.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_exti.c\n.\\output\\stm32f10x_exti.o: ..\\..\\Libraries\\FWlib\\i"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_flash.d",
    "chars": 801,
    "preview": ".\\output\\stm32f10x_flash.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_flash.c\n.\\output\\stm32f10x_flash.o: ..\\..\\Libraries\\FWli"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_fsmc.d",
    "chars": 787,
    "preview": ".\\output\\stm32f10x_fsmc.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_fsmc.c\n.\\output\\stm32f10x_fsmc.o: ..\\..\\Libraries\\FWlib\\i"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_gpio.d",
    "chars": 787,
    "preview": ".\\output\\stm32f10x_gpio.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_gpio.c\n.\\output\\stm32f10x_gpio.o: ..\\..\\Libraries\\FWlib\\i"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_i2c.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_i2c.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_i2c.c\n.\\output\\stm32f10x_i2c.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_it.d",
    "chars": 859,
    "preview": ".\\output\\stm32f10x_it.o: ..\\..\\User\\stm32f10x_it.c\n.\\output\\stm32f10x_it.o: ..\\..\\User\\stm32f10x_it.h\n.\\output\\stm32f10x"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_iwdg.d",
    "chars": 787,
    "preview": ".\\output\\stm32f10x_iwdg.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_iwdg.c\n.\\output\\stm32f10x_iwdg.o: ..\\..\\Libraries\\FWlib\\i"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_pwr.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_pwr.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_pwr.c\n.\\output\\stm32f10x_pwr.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_rcc.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_rcc.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_rcc.c\n.\\output\\stm32f10x_rcc.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_rtc.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_rtc.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_rtc.c\n.\\output\\stm32f10x_rtc.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_sdio.d",
    "chars": 787,
    "preview": ".\\output\\stm32f10x_sdio.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_sdio.c\n.\\output\\stm32f10x_sdio.o: ..\\..\\Libraries\\FWlib\\i"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_spi.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_spi.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_spi.c\n.\\output\\stm32f10x_spi.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_tim.d",
    "chars": 773,
    "preview": ".\\output\\stm32f10x_tim.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_tim.c\n.\\output\\stm32f10x_tim.o: ..\\..\\Libraries\\FWlib\\inc\\"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_usart.d",
    "chars": 801,
    "preview": ".\\output\\stm32f10x_usart.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_usart.c\n.\\output\\stm32f10x_usart.o: ..\\..\\Libraries\\FWli"
  },
  {
    "path": "Project/RVMDK/Output/stm32f10x_wwdg.d",
    "chars": 787,
    "preview": ".\\output\\stm32f10x_wwdg.o: ..\\..\\Libraries\\FWlib\\src\\stm32f10x_wwdg.c\n.\\output\\stm32f10x_wwdg.o: ..\\..\\Libraries\\FWlib\\i"
  },
  {
    "path": "Project/RVMDK/Output/sys_command_line.d",
    "chars": 1373,
    "preview": ".\\output\\sys_command_line.o: ..\\..\\User\\SYS\\sys_command_line.c\n.\\output\\sys_command_line.o: ..\\..\\User\\SYS\\sys_command_l"
  },
  {
    "path": "Project/RVMDK/Output/sys_queue.d",
    "chars": 1049,
    "preview": ".\\output\\sys_queue.o: ..\\..\\User\\SYS\\sys_queue.c\n.\\output\\sys_queue.o: ..\\..\\User\\SYS\\sys_queue.h\n.\\output\\sys_queue.o: "
  },
  {
    "path": "Project/RVMDK/Output/system_stm32f10x.d",
    "chars": 737,
    "preview": ".\\output\\system_stm32f10x.o: ..\\..\\Libraries\\CMSIS\\system_stm32f10x.c\n.\\output\\system_stm32f10x.o: ..\\..\\Libraries\\CMSIS"
  },
  {
    "path": "Project/RVMDK/STM32F103_CLI.uvguix.Administrator",
    "chars": 90260,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n<ProjectGui xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance"
  },
  {
    "path": "Project/RVMDK/STM32F103_CLI.uvguix.yf22",
    "chars": 86072,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n<ProjectGui xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance"
  },
  {
    "path": "Project/RVMDK/STM32F103_CLI.uvoptx",
    "chars": 22280,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n<ProjectOpt xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance"
  },
  {
    "path": "Project/RVMDK/STM32F103_CLI.uvprojx",
    "chars": 22270,
    "preview": "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\" ?>\n<Project xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" x"
  },
  {
    "path": "README.md",
    "chars": 1652,
    "preview": "# STM32CommandLine\n\n___\n\n## 1. DEMO\n- **1.1** :Connect the MCU and Xshell with UART port.\n```\n   | | |                _."
  },
  {
    "path": "Tool/README.md",
    "chars": 51,
    "preview": "\nSome tools that will help you get the bin file :)\n"
  },
  {
    "path": "Tool/TrueSTUDIO_elf2bin.bat",
    "chars": 1898,
    "preview": "@echo off\r\n\r\nif exist .\\..\\..\\Project\\Device_Firmware_Upgrade\\binary_template\\TrueSTUDIO\\STM3210C-EVAL\\Debug\\STM3210C-EV"
  },
  {
    "path": "Tool/axf_to_bin.bat",
    "chars": 623,
    "preview": "@echo off\r\n\r\nREM set fromelf.exe directory\r\nset FROMELF=C:\\Keil_v5\\ARM\\ARMCC\\bin\\fromelf.exe\r\n\r\nREM check fromelf.exe ex"
  },
  {
    "path": "Tool/hex_to_bin.bat",
    "chars": 342,
    "preview": "@echo off\r\n\r\nREM if .\\..\\Output\\STM32F103_CLI.hex exit, then convert it to bin\r\nif exist .\\..\\Output\\STM32F103_CLI.hex ("
  },
  {
    "path": "User/APP/_K&R_format.bat",
    "chars": 218,
    "preview": "REM Ŀ¼еC++ļAstyleд\nREM AstyleλúͲ\n@echo off\nREM ѭĿ¼\nfor /r . %%f in (*.cpp;*.c) do astyle --style=kr \"%%f\"\nfor /r . %%f i"
  },
  {
    "path": "User/APP/app_led.c",
    "chars": 1112,
    "preview": "\n\n\n#include <stdio.h>\n#include \"../sys/sys_command_line.h\"\n#include \"../sys/sys_queue.h\"\n#include \"../bsp/bsp_led.h\"\n#in"
  },
  {
    "path": "User/APP/app_led.h",
    "chars": 312,
    "preview": "#ifndef __APP_LED_H\n#define\t__APP_LED_H\n\n#include \"stm32f10x.h\"\n\n\n/* LED help */\n#define CLI_Cmd_LED \\\n    \"[led]\\r\\n\"\\\n"
  },
  {
    "path": "User/BSP/_K&R_format.bat",
    "chars": 218,
    "preview": "REM Ŀ¼еC++ļAstyleд\nREM AstyleλúͲ\n@echo off\nREM ѭĿ¼\nfor /r . %%f in (*.cpp;*.c) do astyle --style=kr \"%%f\"\nfor /r . %%f i"
  },
  {
    "path": "User/BSP/bsp_led.c",
    "chars": 519,
    "preview": "\n\n\n#include \"bsp_led.h\"\n\n/**\n * @brief  LED GPIO init\n * @param  null\n * @retval null\n */\nvoid LED_GPIO_Config(void)\n{\n "
  },
  {
    "path": "User/BSP/bsp_led.h",
    "chars": 843,
    "preview": "#ifndef __LED_H\n#define\t__LED_H\n\n#include \"stm32f10x.h\"\n\n\n/************************************************************/"
  },
  {
    "path": "User/BSP/bsp_usart.c",
    "chars": 4386,
    "preview": "\n\n\n#include \"bsp_usart.h\"\n#include \"../sys/sys_queue.h\"\n#include \"../sys/sys_command_line.h\"\n\n\n/**\n * @brief  UART inter"
  },
  {
    "path": "User/BSP/bsp_usart.h",
    "chars": 3943,
    "preview": "#ifndef __USART_H\n#define\t__USART_H\n\n#include <stdio.h>\n#include <stdint.h>\n#include \"stm32f10x.h\"\n\n\n// USART1\n#define  "
  },
  {
    "path": "User/COMPONENT/AES/README.md",
    "chars": 17,
    "preview": "# AES encryption\n"
  },
  {
    "path": "User/COMPONENT/AES/aes.c",
    "chars": 14709,
    "preview": "\n\n#include \"aes.h\"\n\n#if 0\n/* ʵaes_key\"LongHorn For DEFENDO CabhAjCfGPS\"֮ÿֽڶȥ\n        AES_KEY_HIDEǷֹ˷Ƿȡbinļͨbinļ\n        "
  },
  {
    "path": "User/COMPONENT/AES/aes.h",
    "chars": 1504,
    "preview": "\n\n#ifndef __AES_H\n#define __AES_H\n\n#include <stdint.h>\n#include <string.h>\n\n/*\n * AESܽܲοվhttp://aes.online-domain-tools."
  },
  {
    "path": "User/COMPONENT/AT/README.md",
    "chars": 21,
    "preview": "# AT command engine.\n"
  },
  {
    "path": "User/COMPONENT/AT/at.c",
    "chars": 6154,
    "preview": "/**\n  ******************************************************************************\n  * @file:      at.c\n  * @author:  "
  },
  {
    "path": "User/COMPONENT/AT/at.h",
    "chars": 1759,
    "preview": "/**\n  ******************************************************************************\n  * @file:      at.h\n  * @author:  "
  },
  {
    "path": "User/COMPONENT/BASE64/README.md",
    "chars": 18,
    "preview": "base64 encryption\n"
  },
  {
    "path": "User/COMPONENT/BASE64/base64.c",
    "chars": 2701,
    "preview": "#include\"base64.h\"\n\nconst char * base64char = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n\nchar "
  },
  {
    "path": "User/COMPONENT/BASE64/base64.h",
    "chars": 192,
    "preview": "#ifndef _BASE64_H__\n#define _BASE64_H__\n\nchar * base64_encode(  unsigned char * bindata, char * base64, int binlength );"
  },
  {
    "path": "User/COMPONENT/BUTTON/README.md",
    "chars": 15,
    "preview": "# Button scan.\n"
  },
  {
    "path": "User/COMPONENT/BUTTON/button.c",
    "chars": 6502,
    "preview": "\n\n/* Includes ------------------------------------------------------------------*/\n#include \"button.h\"\n\n\n/* Private type"
  },
  {
    "path": "User/COMPONENT/BUTTON/button.h",
    "chars": 1790,
    "preview": "\n\n/* Define to prevent recursive inclusion -------------------------------------*/\n#ifndef __BUTTON_H\n#define __BUTTON_H"
  },
  {
    "path": "User/COMPONENT/MD5/README.md",
    "chars": 16,
    "preview": "# MD5 algorithm\n"
  },
  {
    "path": "User/COMPONENT/MD5/md5.c",
    "chars": 10414,
    "preview": "/*************************************************\n  Copyright (C),\n  File name:       md5.c\n  Author:\n  Version:       "
  },
  {
    "path": "User/COMPONENT/MD5/md5.h",
    "chars": 938,
    "preview": "\n\n#ifndef __MD5_H\n#define __MD5_H\n\n#include <string.h>\n\n\n//-------------------------------------------------------------"
  },
  {
    "path": "User/COMPONENT/RSA/README.md",
    "chars": 15,
    "preview": "RSA encryption\n"
  },
  {
    "path": "User/COMPONENT/RSA/Rsa.c",
    "chars": 14702,
    "preview": "/*************************************************\n  Copyright (C),   \n  File name:       Rsa.c\n  Author:          \n  Ve"
  },
  {
    "path": "User/COMPONENT/RSA/Rsa.h",
    "chars": 2628,
    "preview": "\n#ifndef POS_RSA_H\n#define POS_RSA_H\n\n// ֵ\n#define RE_DATA 0x0401\n#define RE_LEN  0x0406\n\n/* RSA key lengths.\n */\n#defin"
  },
  {
    "path": "User/COMPONENT/SECURE_BOOT/README.md",
    "chars": 12,
    "preview": "secure boot\n"
  },
  {
    "path": "User/COMPONENT/SECURE_BOOT/secure_boot.c",
    "chars": 6510,
    "preview": "/**\n  ******************************************************************************\n  * @file:      secure_boot.c\n  * @"
  },
  {
    "path": "User/COMPONENT/SECURE_BOOT/secure_boot.h",
    "chars": 490,
    "preview": "/**\n  ******************************************************************************\n  * @file:      secure_boot.h\n  * @"
  },
  {
    "path": "User/COMPONENT/SHA1/README.md",
    "chars": 16,
    "preview": "SHA1 encryption\n"
  },
  {
    "path": "User/COMPONENT/SHA1/sha1.c",
    "chars": 7648,
    "preview": "/*\nSHA-1 in C\nBy Steve Reid <steve@edmweb.com>\n100% Public Domain\n\nTest Vectors (from FIPS PUB 180-1)\n\"abc\"\n  A9993E36 4"
  },
  {
    "path": "User/COMPONENT/SHA1/sha1.h",
    "chars": 632,
    "preview": "#ifndef SHA1_H\n#define SHA1_H\n\n/*\n   SHA-1 in C\n   By Steve Reid <steve@edmweb.com>\n   100% Public Domain\n */\n\n#include "
  },
  {
    "path": "User/COMPONENT/SHA256/README.md",
    "chars": 18,
    "preview": "SHA256 encryption\n"
  },
  {
    "path": "User/COMPONENT/SHA256/sha256.c",
    "chars": 6502,
    "preview": "/*\n*   SHA-256 implementation.\n*\n*   Copyright (c) 2010 Ilya O. Levin, http://www.literatecode.com\n*\n*   Permission to u"
  },
  {
    "path": "User/COMPONENT/SHA256/sha256.h",
    "chars": 1537,
    "preview": "/*\n*   SHA-256 implementation.\n*\n*   Copyright (c) 2010 Ilya O. Levin, http://www.literatecode.com\n*\n*   Permission to u"
  },
  {
    "path": "User/COMPONENT/SOFTWEAR_UART/README.md",
    "chars": 17,
    "preview": "# Softwear UART.\n"
  },
  {
    "path": "User/COMPONENT/SOFTWEAR_UART/s_uart.c",
    "chars": 13069,
    "preview": "\n#include \"s_uart.h\"\n\n/******************************************************************************/\n/****************"
  },
  {
    "path": "User/COMPONENT/SOFTWEAR_UART/s_uart.h",
    "chars": 3759,
    "preview": "#ifndef __S_UART_H_\n#define __S_UART_H_\n\n/******************************************************************************"
  },
  {
    "path": "User/COMPONENT/STDIO/README.md",
    "chars": 199,
    "preview": "1. Implementation of several stdio.h methods, such as printf(), sprintf() and so on.\n2. This reduces the memory footprin"
  },
  {
    "path": "User/COMPONENT/STDIO/printf.c",
    "chars": 12155,
    "preview": "/**************************************************************************//*****\n * @file     printf.c\n * @brief    Im"
  },
  {
    "path": "User/COMPONENT/TEA/README.md",
    "chars": 32,
    "preview": "TEA (Tiny Encryption Algorithm)\n"
  },
  {
    "path": "User/COMPONENT/TEA/tea.c",
    "chars": 3445,
    "preview": "/******************************************************************************\n * File: TEA_Encrypt.c\n * Author: Bean\n "
  },
  {
    "path": "User/COMPONENT/TEA/tea.h",
    "chars": 1942,
    "preview": "/******************************************************************************\n * File: TEA_Encrypt.h\n * Author: Bean\n "
  },
  {
    "path": "User/COMPONENT/TIMER/README.md",
    "chars": 19,
    "preview": "# Timer component.\n"
  },
  {
    "path": "User/COMPONENT/TIMER/timer.c",
    "chars": 1949,
    "preview": "/*\n * Copyright (c) 2016 Zibin Zheng <znbin@qq.com>\n * All rights reserved\n */\n\n#include \"timer.h\"\n\n//timer handle list "
  },
  {
    "path": "User/COMPONENT/TIMER/timer.h",
    "chars": 682,
    "preview": "/*\n * Copyright (c) 2016 Zibin Zheng <znbin@qq.com>\n * All rights reserved\n */\n \n#ifndef _TIMER_H_\n#define _TIMER_H_\n\n#i"
  },
  {
    "path": "User/COMPONENT/UTIL/README.md",
    "chars": 35,
    "preview": "# Sone standard library functions.\n"
  },
  {
    "path": "User/COMPONENT/UTIL/util.c",
    "chars": 6904,
    "preview": "#include \"./util.h\"\n#include <string.h>\n\n\nunion endian_node\n{\n    unsigned int m;\n    char c;\n};\n\nint big_little_endian_"
  },
  {
    "path": "User/COMPONENT/UTIL/util.h",
    "chars": 1197,
    "preview": "\n\n#ifndef __APP_UTIL_H\n#define __APP_UTIL_H\n\n#include <stdint.h>\n\n\n/* 大小端转换宏 */\n#define BIG_LITTLE_SWAP16(A)        (((("
  },
  {
    "path": "User/COMPONENT/assert/HAPAssert.c",
    "chars": 1567,
    "preview": "// Copyright (c) 2015-2019 The HomeKit ADK Contributors\n//\n// Licensed under the Apache License, Version 2.0 (the “Licen"
  },
  {
    "path": "User/COMPONENT/assert/HAPAssert.h",
    "chars": 4098,
    "preview": "// Copyright (c) 2015-2019 The HomeKit ADK Contributors\n//\n// Licensed under the Apache License, Version 2.0 (the “Licen"
  },
  {
    "path": "User/COMPONENT/assert/README.md",
    "chars": 1,
    "preview": "\n"
  },
  {
    "path": "User/COMPONENT/base64_2/base64.c",
    "chars": 3618,
    "preview": "/* This is a public domain base64 implementation written by WEI Zhicheng. */\n\n#include \"base64.h\"\n\n#define BASE64_PAD '="
  },
  {
    "path": "User/COMPONENT/base64_2/base64.h",
    "chars": 515,
    "preview": "#ifndef BASE64_H\n#define BASE64_H\n\n#define BASE64_ENCODE_OUT_SIZE(s) ((unsigned int)((((s) + 2) / 3) * 4 + 1))\n#define B"
  },
  {
    "path": "User/COMPONENT/base64_2/main.c",
    "chars": 991,
    "preview": "#include <stdio.h>\n#include <stdlib.h>\n#include <string.h>\n#include <assert.h>\n\n#include \"base64.h\"\n\nstatic void\ntest(un"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/.github/CONTRIBUTING.md",
    "chars": 2386,
    "preview": "Contribution Guidelines\n=======================\n\nContributions to cJSON are welcome. If you find a bug or want to improv"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/.gitignore",
    "chars": 134,
    "preview": ".svn\ntest\n*.o\n*.a\n*.so\n*.swp\n*.patch\ntags\n*.dylib\nbuild/\ncJSON_test\ncJSON_test_utils\nlibcjson.so.*\nlibcjson_utils.so.*\n*"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/.travis.yml",
    "chars": 602,
    "preview": "dist: trusty\nsudo: false\nlanguage: c\nenv:\n  matrix:\n    - VALGRIND=On SANITIZERS=Off\n    - VALGRIND=Off SANITIZERS=Off\n "
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/CHANGELOG.md",
    "chars": 13939,
    "preview": "1.7.7\n=====\nFixes:\n------\n* Fix a memory leak when realloc fails (see #267), thanks @AlfieDeng for reporting\n* Fix a typ"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/CMakeLists.txt",
    "chars": 9125,
    "preview": "set(CMAKE_LEGACY_CYGWIN_WIN32 0)\ncmake_minimum_required(VERSION 2.8.5)\n\nproject(cJSON C)\n\ninclude(GNUInstallDirs)\n\nset(P"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/CONTRIBUTORS.md",
    "chars": 2091,
    "preview": "Contributors\n============\n\nOriginal Author: [Dave Gamble](https://github.com/DaveGamble)\nCurrent Maintainer: [Max Bruckn"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/LICENSE",
    "chars": 1084,
    "preview": "Copyright (c) 2009-2017 Dave Gamble and cJSON contributors\n\nPermission is hereby granted, free of charge, to any person "
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/Makefile",
    "chars": 4476,
    "preview": "CJSON_OBJ = cJSON.o\nUTILS_OBJ = cJSON_Utils.o\nCJSON_LIBNAME = libcjson\nUTILS_LIBNAME = libcjson_utils\nCJSON_TEST = cJSON"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/README.md",
    "chars": 25978,
    "preview": "# cJSON\n\nUltralightweight JSON parser in ANSI C.\n\n## Table of contents\n* [License](#license)\n* [Usage](#usage)\n  * [Welc"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/appveyor.yml",
    "chars": 2284,
    "preview": "os: Visual Studio 2015\n\n# ENABLE_CUSTOM_COMPILER_FLAGS - on by default\n# ENABLE_SANITIZERS - off by default\n# ENABLE_PUB"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/cJSON.c",
    "chars": 73192,
    "preview": "/*\n  Copyright (c) 2009-2017 Dave Gamble and cJSON contributors\n\n  Permission is hereby granted, free of charge, to any "
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/cJSON.h",
    "chars": 14567,
    "preview": "/*\n  Copyright (c) 2009-2017 Dave Gamble and cJSON contributors\n\n  Permission is hereby granted, free of charge, to any "
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/cJSON_Utils.c",
    "chars": 40019,
    "preview": "/*\n  Copyright (c) 2009-2017 Dave Gamble and cJSON contributors\n\n  Permission is hereby granted, free of charge, to any "
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/cJSON_Utils.h",
    "chars": 3938,
    "preview": "/*\n  Copyright (c) 2009-2017 Dave Gamble and cJSON contributors\n\n  Permission is hereby granted, free of charge, to any "
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/.gitignore",
    "chars": 10,
    "preview": "afl-build\n"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/CMakeLists.txt",
    "chars": 1032,
    "preview": "option(ENABLE_FUZZING \"Create executables and targets for fuzzing cJSON with afl.\" Off)\nif (ENABLE_FUZZING)\n    find_pro"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/afl-prepare-linux.sh",
    "chars": 153,
    "preview": "#!/bin/bash\n\nset -x\necho core | sudo tee /proc/sys/kernel/core_pattern\necho performance | sudo tee /sys/devices/system/c"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/afl.c",
    "chars": 4192,
    "preview": "/*\n  Copyright (c) 2009-2017 Dave Gamble and cJSON contributors\n\n  Permission is hereby granted, free of charge, to any "
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/afl.sh",
    "chars": 192,
    "preview": "#!/bin/bash\n\nmkdir -p afl-build || exit 1\ncd afl-build || exit 1\n#cleanup\nrm -r -- *\n\nCC=afl-clang-fast cmake ../.. -DEN"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/inputs/test1",
    "chars": 585,
    "preview": "bf{\n    \"glossary\": {\n        \"title\": \"example glossary\",\n\t\t\"GlossDiv\": {\n            \"title\": \"S\",\n\t\t\t\"GlossList\": {\n "
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/inputs/test10",
    "chars": 81,
    "preview": "bf[\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"]\n"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/inputs/test11",
    "chars": 151,
    "preview": "bf{\n\"name\": \"Jack (\\\"Bee\\\") Nimble\",\n\"format\": {\"type\":       \"rect\",\n\"width\":      1920,\n\"height\":     1080,\n\"interlace"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/inputs/test2",
    "chars": 244,
    "preview": "bf{\"menu\": {\n  \"id\": \"file\",\n  \"value\": \"File\",\n  \"popup\": {\n    \"menuitem\": [\n      {\"value\": \"New\", \"onclick\": \"Create"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/inputs/test3",
    "chars": 603,
    "preview": "bf{\"widget\": {\n    \"debug\": \"on\",\n    \"window\": {\n        \"title\": \"Sample Konfabulator Widget\",\n        \"name\": \"main_w"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/inputs/test3.bu",
    "chars": 603,
    "preview": "bu{\"widget\": {\n    \"debug\": \"on\",\n    \"window\": {\n        \"title\": \"Sample Konfabulator Widget\",\n        \"name\": \"main_w"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/inputs/test3.uf",
    "chars": 603,
    "preview": "uf{\"widget\": {\n    \"debug\": \"on\",\n    \"window\": {\n        \"title\": \"Sample Konfabulator Widget\",\n        \"name\": \"main_w"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/inputs/test3.uu",
    "chars": 603,
    "preview": "uu{\"widget\": {\n    \"debug\": \"on\",\n    \"window\": {\n        \"title\": \"Sample Konfabulator Widget\",\n        \"name\": \"main_w"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/inputs/test4",
    "chars": 3465,
    "preview": "bf{\"web-app\": {\n  \"servlet\": [\n    {\n      \"servlet-name\": \"cofaxCDS\",\n      \"servlet-class\": \"org.cofax.cds.CDSServlet\""
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/inputs/test5",
    "chars": 875,
    "preview": "bf{\"menu\": {\n    \"header\": \"SVG Viewer\",\n    \"items\": [\n        {\"id\": \"Open\"},\n        {\"id\": \"OpenNew\", \"label\": \"Open"
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/inputs/test6",
    "chars": 487,
    "preview": "bf<!DOCTYPE html>\n    <html>\n    <head>\n      <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n     "
  },
  {
    "path": "User/COMPONENT/cJSON/cJSON/fuzzing/inputs/test7",
    "chars": 401,
    "preview": "bf[\n\t {\n\t \"precision\": \"zip\",\n\t \"Latitude\":  37.7668,\n\t \"Longitude\": -122.3959,\n\t \"Address\":   \"\",\n\t \"City\":      \"SAN F"
  }
]

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

About this extraction

This page contains the full source code of the ShareCat/STM32CommandLine GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 423 files (3.5 MB), approximately 928.0k tokens, and a symbol index with 1774 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!