From 864e9cde77047033c2bcdc626a3ff7c592aa432b Mon Sep 17 00:00:00 2001 From: ahmed Date: Wed, 21 Apr 2021 14:56:58 +0200 Subject: [PATCH] app, doc, dev: Add basic_azurertos app app: Improve basic_azurertos app comments doc: Add basic_azurertos config link dev: Add basic_azurertos STM32CubeIDE support --- Software/CMakeLists.txt | 3 +- Software/README.md | 2 +- Software/app/README.md | 6 +- Software/app/basic_azurertos/.cproject | 396 ++++ Software/app/basic_azurertos/.project | 2216 ++++++++++++++++++ Software/app/basic_azurertos/CMakeLists.txt | 63 + Software/app/basic_azurertos/conf/app_conf.h | 42 + Software/app/basic_azurertos/main.c | 196 ++ Software/app/basic_azurertos/stm32wlxx_it.c | 80 + Software/app/basic_azurertos/stm32wlxx_it.h | 38 + Software/lib/README.md | 2 +- 11 files changed, 3040 insertions(+), 4 deletions(-) create mode 100644 Software/app/basic_azurertos/.cproject create mode 100644 Software/app/basic_azurertos/.project create mode 100644 Software/app/basic_azurertos/CMakeLists.txt create mode 100644 Software/app/basic_azurertos/conf/app_conf.h create mode 100644 Software/app/basic_azurertos/main.c create mode 100644 Software/app/basic_azurertos/stm32wlxx_it.c create mode 100644 Software/app/basic_azurertos/stm32wlxx_it.h diff --git a/Software/CMakeLists.txt b/Software/CMakeLists.txt index 865a09da02..d8cc690acc 100644 --- a/Software/CMakeLists.txt +++ b/Software/CMakeLists.txt @@ -41,7 +41,8 @@ set (APP_LIST "basic_freertos" "freefall_lorawan" "freertos_lorawan" -"secure_element_lorawan") +"secure_element_lorawan" +"basic_azurertos") #------------------- # MCU Setup #------------------- diff --git a/Software/README.md b/Software/README.md index c6942fd4ca..5076468e8c 100644 --- a/Software/README.md +++ b/Software/README.md @@ -5,7 +5,7 @@ The software provides a boilerplate of applications and libraries that can be us - [target](./target/README.md) folder contains STM32WL low level target files - [lib](./lib/README.md) folder contains SW libraries used by the various applications -- [app](./app/README.md) folder contains SW applicattions +- [app](./app/README.md) folder contains SW applications ## Documentation diff --git a/Software/app/README.md b/Software/app/README.md index eafde2691d..aeaa616176 100644 --- a/Software/app/README.md +++ b/Software/app/README.md @@ -11,7 +11,7 @@ The device enters stop mode in between transmissions to reduce power consumption [basic_bootloader](./basic_bootloader) contains a bootloader that allows for application/internal bootloader jumps. -[basic_freertos](./basic_freertos) contains a basic FreeRTOS low power application that creates two threads and passes messages via a queue triggering a blinking LED with each passed message. +[basic_freertos](./basic_freertos) contains a basic FreeRTOS low power application that creates two threads that pass a message via a queue triggering a blinking LED with each passed message. [freefall_lorawan](./freefall_lorawan) contains a simple application to join via OTAA and waits to send a message until the device is free-falling. A downlink on port 1 will cause the buzzer to beep, which can be turned off with a button press. @@ -20,6 +20,8 @@ The device enters stop mode in between transmissions to reduce power consumption [secure_element_lorawan](./secure_element_lorawan) contains a LoRaWAN application where a class A device joins via OTAA (LoRaWAN v1.0.2) using a HW secure element (ATECC608A-TNGLORA) and sends dummy payloads triggered by a time interval. This app doesn't require LoRaWAN keys/EUI configurations. Follow this [tutorial](https://www.thethingsindustries.com/docs/devices/claim-atecc608a/) to claim your device, and your device will join via OTAA automatically. +[basic_azurertos](./basic_azurertos) contains a simple AzureRTOS (ThreadX) application. It includes examples of two threads that pass a message via a queue triggering a blinking LED with each passed message. + ## Applications configuration Each application contains a configuration folder that facilitates minor adjustments to the application behavior. @@ -42,3 +44,5 @@ To quickly get started, navigate to your application `app_conf.h`, and adjust th [freertos_lorawan app configurations](./basic_freertos/conf/app_conf.h) [secure_element_lorawan app configurations](./secure_element_lorawan/conf/app_conf.h) + +[basic_azurertos app configurations](./basic_azurertos/conf/app_conf.h) diff --git a/Software/app/basic_azurertos/.cproject b/Software/app/basic_azurertos/.cproject new file mode 100644 index 0000000000..479f50a97e --- /dev/null +++ b/Software/app/basic_azurertos/.cproject @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Software/app/basic_azurertos/.project b/Software/app/basic_azurertos/.project new file mode 100644 index 0000000000..c404c99126 --- /dev/null +++ b/Software/app/basic_azurertos/.project @@ -0,0 +1,2216 @@ + + + basic_azurertos + + + + + + org.eclipse.cdt.managedbuilder.core.genmakebuilder + clean,full,incremental, + + + + + org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder + full,incremental, + + + + + + com.st.stm32cube.ide.mcu.MCUProjectNature + org.eclipse.cdt.core.cnature + com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature + com.st.stm32cube.ide.mcu.MCUNonUnderRootProjectNature + com.st.stm32cube.ide.mcu.MCUCubeProjectNature + com.st.stm32cube.ide.mcu.MCUEndUserDisabledTrustZoneProjectNature + com.st.stm32cube.ide.mcu.MCUEndUserDisabledMultiCpuProjectNature + com.st.stm32cube.ide.mcu.MCUMultiCpuProjectNature + com.st.stm32cube.ide.mcu.MCURootProjectNature + org.eclipse.cdt.managedbuilder.core.managedBuildNature + org.eclipse.cdt.managedbuilder.core.ScannerConfigNature + + + + lib + 2 + virtual:/virtual + + + target + 2 + virtual:/virtual + + + lib/BUZZER + 2 + PARENT-2-PROJECT_LOC/lib/BUZZER + + + lib/GNSE_BSP + 2 + PARENT-2-PROJECT_LOC/lib/GNSE_BSP + + + lib/GNSE_TRACER + 2 + virtual:/virtual + + + lib/LIS2DH12 + 2 + PARENT-2-PROJECT_LOC/lib/LIS2DH12 + + + lib/MCU_FLASH + 2 + PARENT-2-PROJECT_LOC/lib/MCU_FLASH + + + lib/MX25R1635 + 2 + PARENT-2-PROJECT_LOC/lib/MX25R1635 + + + lib/SHTC3 + 2 + PARENT-2-PROJECT_LOC/lib/SHTC3 + + + lib/Utilities + 2 + virtual:/virtual + + + lib/cryptoauthlib + 2 + virtual:/virtual + + + lib/threadx + 2 + virtual:/virtual + + + target/startup_stm32wl55xx.s + 1 + PARENT-2-PROJECT_LOC/target/startup_stm32wl55xx.s + + + target/stm32wlxx_hal_driver + 2 + virtual:/virtual + + + target/stm32wlxx_hal_msp.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_msp.c + + + target/syscalls.c + 1 + PARENT-2-PROJECT_LOC/target/syscalls.c + + + target/sysmem.c + 1 + PARENT-2-PROJECT_LOC/target/sysmem.c + + + target/system_stm32wlxx.c + 1 + PARENT-2-PROJECT_LOC/target/system_stm32wlxx.c + + + lib/GNSE_TRACER/.DS_Store + 1 + PARENT-2-PROJECT_LOC/lib/GNSE_TRACER/.DS_Store + + + lib/GNSE_TRACER/GNSE_tracer.h + 1 + PARENT-2-PROJECT_LOC/lib/GNSE_TRACER/GNSE_tracer.h + + + lib/GNSE_TRACER/adv_tracer + 2 + virtual:/virtual + + + lib/GNSE_TRACER/tiny_printf + 2 + virtual:/virtual + + + lib/Utilities/.DS_Store + 1 + PARENT-2-PROJECT_LOC/lib/Utilities/.DS_Store + + + lib/Utilities/stm32_lpm.c + 1 + PARENT-2-PROJECT_LOC/lib/Utilities/stm32_lpm.c + + + lib/Utilities/stm32_lpm.h + 1 + PARENT-2-PROJECT_LOC/lib/Utilities/stm32_lpm.h + + + lib/Utilities/stm32_mem.c + 1 + PARENT-2-PROJECT_LOC/lib/Utilities/stm32_mem.c + + + lib/Utilities/stm32_mem.h + 1 + PARENT-2-PROJECT_LOC/lib/Utilities/stm32_mem.h + + + lib/Utilities/threadx + 2 + virtual:/virtual + + + lib/Utilities/utilities_conf.h + 1 + PARENT-2-PROJECT_LOC/lib/Utilities/utilities_conf.h + + + lib/cryptoauthlib/atca_basic.c + 1 + PARENT-2-PROJECT_LOC/lib/cryptoauthlib/lib/atca_basic.c + + + lib/cryptoauthlib/atca_cfgs.c + 1 + PARENT-2-PROJECT_LOC/lib/cryptoauthlib/lib/atca_cfgs.c + + + lib/cryptoauthlib/atca_command.c + 1 + PARENT-2-PROJECT_LOC/lib/cryptoauthlib/lib/atca_command.c + + + lib/cryptoauthlib/atca_debug.c + 1 + PARENT-2-PROJECT_LOC/lib/cryptoauthlib/lib/atca_debug.c + + + lib/cryptoauthlib/atca_device.c + 1 + PARENT-2-PROJECT_LOC/lib/cryptoauthlib/lib/atca_device.c + + + lib/cryptoauthlib/atca_hal.c + 1 + PARENT-2-PROJECT_LOC/lib/cryptoauthlib/lib/hal/atca_hal.c + + + lib/cryptoauthlib/atca_helpers.c + 1 + PARENT-2-PROJECT_LOC/lib/cryptoauthlib/lib/atca_helpers.c + + + lib/cryptoauthlib/atca_iface.c + 1 + PARENT-2-PROJECT_LOC/lib/cryptoauthlib/lib/atca_iface.c + + + lib/cryptoauthlib/calib + 2 + PARENT-2-PROJECT_LOC/lib/cryptoauthlib/lib/calib + + + lib/cryptoauthlib/crypto + 2 + PARENT-2-PROJECT_LOC/lib/cryptoauthlib/lib/crypto + + + lib/cryptoauthlib/host + 2 + PARENT-2-PROJECT_LOC/lib/cryptoauthlib/lib/host + + + lib/threadx/common + 2 + virtual:/virtual + + + lib/threadx/ports + 2 + virtual:/virtual + + + target/stm32wlxx_hal_driver/.DS_Store + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/.DS_Store + + + target/stm32wlxx_hal_driver/.github + 2 + virtual:/virtual + + + target/stm32wlxx_hal_driver/CODE_OF_CONDUCT.md + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/CODE_OF_CONDUCT.md + + + target/stm32wlxx_hal_driver/CONTRIBUTING.md + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/CONTRIBUTING.md + + + target/stm32wlxx_hal_driver/Inc + 2 + virtual:/virtual + + + target/stm32wlxx_hal_driver/License.md + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/License.md + + + target/stm32wlxx_hal_driver/README.md + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/README.md + + + target/stm32wlxx_hal_driver/Release_Notes.html + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Release_Notes.html + + + target/stm32wlxx_hal_driver/Src + 2 + virtual:/virtual + + + target/stm32wlxx_hal_driver/_htmresc + 2 + virtual:/virtual + + + lib/GNSE_TRACER/adv_tracer/stm32_adv_tracer.c + 1 + PARENT-2-PROJECT_LOC/lib/GNSE_TRACER/adv_tracer/stm32_adv_tracer.c + + + lib/GNSE_TRACER/adv_tracer/stm32_adv_tracer.h + 1 + PARENT-2-PROJECT_LOC/lib/GNSE_TRACER/adv_tracer/stm32_adv_tracer.h + + + lib/GNSE_TRACER/adv_tracer/stm32_adv_tracer_conf.h + 1 + PARENT-2-PROJECT_LOC/lib/GNSE_TRACER/adv_tracer/stm32_adv_tracer_conf.h + + + lib/GNSE_TRACER/adv_tracer/stm32_adv_usart.c + 1 + PARENT-2-PROJECT_LOC/lib/GNSE_TRACER/adv_tracer/stm32_adv_usart.c + + + lib/GNSE_TRACER/adv_tracer/stm32_adv_usart.h + 1 + PARENT-2-PROJECT_LOC/lib/GNSE_TRACER/adv_tracer/stm32_adv_usart.h + + + lib/GNSE_TRACER/adv_tracer/stm32_tiny_vsnprintf.c + 1 + PARENT-2-PROJECT_LOC/lib/GNSE_TRACER/adv_tracer/stm32_tiny_vsnprintf.c + + + lib/GNSE_TRACER/adv_tracer/stm32_tiny_vsnprintf.h + 1 + PARENT-2-PROJECT_LOC/lib/GNSE_TRACER/adv_tracer/stm32_tiny_vsnprintf.h + + + lib/GNSE_TRACER/tiny_printf/tiny_printf.c + 1 + PARENT-2-PROJECT_LOC/lib/GNSE_TRACER/tiny_printf/tiny_printf.c + + + lib/GNSE_TRACER/tiny_printf/tiny_printf.h + 1 + PARENT-2-PROJECT_LOC/lib/GNSE_TRACER/tiny_printf/tiny_printf.h + + + lib/GNSE_TRACER/tiny_printf/tiny_printf_conf.h + 1 + PARENT-2-PROJECT_LOC/lib/GNSE_TRACER/tiny_printf/tiny_printf_conf.h + + + lib/Utilities/threadx/stm32wlxx_hal_timebase_tim.c + 1 + PARENT-2-PROJECT_LOC/lib/Utilities/threadx/stm32wlxx_hal_timebase_tim.c + + + lib/Utilities/threadx/tx_initialize_low_level.S + 1 + PARENT-2-PROJECT_LOC/lib/Utilities/threadx/tx_initialize_low_level.S + + + lib/threadx/common/.DS_Store + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/.DS_Store + + + lib/threadx/common/CMakeLists.txt + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/CMakeLists.txt + + + lib/threadx/common/inc + 2 + virtual:/virtual + + + lib/threadx/common/src + 2 + virtual:/virtual + + + lib/threadx/ports/cortex_m4 + 2 + virtual:/virtual + + + target/stm32wlxx_hal_driver/.github/ISSUE_TEMPLATE.md + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/.github/ISSUE_TEMPLATE.md + + + target/stm32wlxx_hal_driver/.github/PULL_REQUEST_TEMPLATE.md + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/.github/PULL_REQUEST_TEMPLATE.md + + + target/stm32wlxx_hal_driver/Inc/.DS_Store + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/.DS_Store + + + target/stm32wlxx_hal_driver/Inc/Legacy + 2 + virtual:/virtual + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_adc.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_adc.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_adc_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_adc_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_comp.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_comp.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_cortex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_cortex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_crc.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_crc.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_crc_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_crc_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_cryp.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_cryp.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_cryp_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_cryp_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_dac.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_dac.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_dac_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_dac_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_def.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_def.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_dma.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_dma.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_dma_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_dma_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_exti.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_exti.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_flash.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_flash.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_flash_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_flash_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_gpio.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_gpio.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_gpio_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_gpio_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_gtzc.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_gtzc.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_hsem.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_hsem.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_i2c.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_i2c.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_i2c_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_i2c_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_i2s.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_i2s.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_ipcc.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_ipcc.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_irda.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_irda.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_irda_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_irda_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_iwdg.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_iwdg.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_lptim.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_lptim.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_pka.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_pka.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_pwr.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_pwr.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_pwr_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_pwr_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_rcc.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_rcc.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_rcc_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_rcc_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_rng.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_rng.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_rng_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_rng_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_rtc.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_rtc.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_rtc_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_rtc_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_smartcard.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_smartcard.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_smartcard_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_smartcard_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_smbus.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_smbus.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_spi.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_spi.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_spi_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_spi_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_subghz.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_subghz.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_tim.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_tim.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_tim_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_tim_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_uart.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_uart.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_uart_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_uart_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_usart.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_usart.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_usart_ex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_usart_ex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_wwdg.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_hal_wwdg.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_adc.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_adc.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_bus.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_bus.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_comp.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_comp.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_cortex.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_cortex.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_crc.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_crc.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_dac.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_dac.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_dma.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_dma.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_dmamux.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_dmamux.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_exti.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_exti.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_gpio.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_gpio.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_hsem.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_hsem.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_i2c.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_i2c.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_ipcc.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_ipcc.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_iwdg.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_iwdg.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_lptim.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_lptim.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_lpuart.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_lpuart.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_pka.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_pka.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_pwr.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_pwr.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_rcc.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_rcc.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_rng.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_rng.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_rtc.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_rtc.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_spi.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_spi.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_system.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_system.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_tim.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_tim.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_usart.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_usart.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_utils.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_utils.h + + + target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_wwdg.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/stm32wlxx_ll_wwdg.h + + + target/stm32wlxx_hal_driver/Src/.DS_Store + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/.DS_Store + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_adc.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_adc.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_adc_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_adc_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_comp.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_comp.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_cortex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_cortex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_crc.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_crc.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_crc_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_crc_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_cryp.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_cryp.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_cryp_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_cryp_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_dac.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_dac.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_dac_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_dac_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_dma.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_dma.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_dma_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_dma_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_exti.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_exti.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_flash.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_flash.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_flash_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_flash_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_gpio.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_gpio.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_gtzc.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_gtzc.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_hsem.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_hsem.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_i2c.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_i2c.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_i2c_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_i2c_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_i2s.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_i2s.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_ipcc.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_ipcc.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_irda.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_irda.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_iwdg.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_iwdg.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_lptim.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_lptim.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_pka.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_pka.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_pwr.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_pwr.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_pwr_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_pwr_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_rcc.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_rcc.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_rcc_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_rcc_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_rng.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_rng.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_rng_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_rng_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_rtc.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_rtc.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_rtc_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_rtc_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_smartcard.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_smartcard.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_smartcard_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_smartcard_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_smbus.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_smbus.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_spi.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_spi.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_spi_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_spi_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_subghz.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_subghz.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_tim.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_tim.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_tim_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_tim_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_uart.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_uart.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_uart_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_uart_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_usart.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_usart.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_usart_ex.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_usart_ex.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_wwdg.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_hal_wwdg.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_adc.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_adc.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_comp.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_comp.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_crc.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_crc.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_dac.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_dac.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_dma.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_dma.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_exti.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_exti.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_gpio.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_gpio.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_i2c.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_i2c.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_lptim.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_lptim.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_lpuart.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_lpuart.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_pka.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_pka.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_pwr.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_pwr.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_rcc.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_rcc.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_rng.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_rng.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_rtc.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_rtc.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_spi.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_spi.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_tim.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_tim.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_usart.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_usart.c + + + target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_utils.c + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Src/stm32wlxx_ll_utils.c + + + target/stm32wlxx_hal_driver/_htmresc/favicon.png + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/_htmresc/favicon.png + + + target/stm32wlxx_hal_driver/_htmresc/mini-st.css + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/_htmresc/mini-st.css + + + target/stm32wlxx_hal_driver/_htmresc/mini-st_2020.css + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/_htmresc/mini-st_2020.css + + + target/stm32wlxx_hal_driver/_htmresc/st_logo.png + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/_htmresc/st_logo.png + + + target/stm32wlxx_hal_driver/_htmresc/st_logo_2020.png + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/_htmresc/st_logo_2020.png + + + lib/threadx/common/inc/tx_api.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/inc/tx_api.h + + + lib/threadx/common/inc/tx_block_pool.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/inc/tx_block_pool.h + + + lib/threadx/common/inc/tx_byte_pool.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/inc/tx_byte_pool.h + + + lib/threadx/common/inc/tx_event_flags.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/inc/tx_event_flags.h + + + lib/threadx/common/inc/tx_initialize.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/inc/tx_initialize.h + + + lib/threadx/common/inc/tx_mutex.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/inc/tx_mutex.h + + + lib/threadx/common/inc/tx_queue.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/inc/tx_queue.h + + + lib/threadx/common/inc/tx_semaphore.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/inc/tx_semaphore.h + + + lib/threadx/common/inc/tx_thread.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/inc/tx_thread.h + + + lib/threadx/common/inc/tx_timer.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/inc/tx_timer.h + + + lib/threadx/common/inc/tx_trace.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/inc/tx_trace.h + + + lib/threadx/common/inc/tx_user_sample.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/inc/tx_user_sample.h + + + lib/threadx/common/src/tx_block_allocate.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_block_allocate.c + + + lib/threadx/common/src/tx_block_pool_cleanup.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_block_pool_cleanup.c + + + lib/threadx/common/src/tx_block_pool_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_block_pool_create.c + + + lib/threadx/common/src/tx_block_pool_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_block_pool_delete.c + + + lib/threadx/common/src/tx_block_pool_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_block_pool_info_get.c + + + lib/threadx/common/src/tx_block_pool_initialize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_block_pool_initialize.c + + + lib/threadx/common/src/tx_block_pool_performance_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_block_pool_performance_info_get.c + + + lib/threadx/common/src/tx_block_pool_performance_system_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_block_pool_performance_system_info_get.c + + + lib/threadx/common/src/tx_block_pool_prioritize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_block_pool_prioritize.c + + + lib/threadx/common/src/tx_block_release.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_block_release.c + + + lib/threadx/common/src/tx_byte_allocate.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_byte_allocate.c + + + lib/threadx/common/src/tx_byte_pool_cleanup.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_byte_pool_cleanup.c + + + lib/threadx/common/src/tx_byte_pool_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_byte_pool_create.c + + + lib/threadx/common/src/tx_byte_pool_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_byte_pool_delete.c + + + lib/threadx/common/src/tx_byte_pool_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_byte_pool_info_get.c + + + lib/threadx/common/src/tx_byte_pool_initialize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_byte_pool_initialize.c + + + lib/threadx/common/src/tx_byte_pool_performance_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_byte_pool_performance_info_get.c + + + lib/threadx/common/src/tx_byte_pool_performance_system_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_byte_pool_performance_system_info_get.c + + + lib/threadx/common/src/tx_byte_pool_prioritize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_byte_pool_prioritize.c + + + lib/threadx/common/src/tx_byte_pool_search.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_byte_pool_search.c + + + lib/threadx/common/src/tx_byte_release.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_byte_release.c + + + lib/threadx/common/src/tx_event_flags_cleanup.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_event_flags_cleanup.c + + + lib/threadx/common/src/tx_event_flags_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_event_flags_create.c + + + lib/threadx/common/src/tx_event_flags_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_event_flags_delete.c + + + lib/threadx/common/src/tx_event_flags_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_event_flags_get.c + + + lib/threadx/common/src/tx_event_flags_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_event_flags_info_get.c + + + lib/threadx/common/src/tx_event_flags_initialize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_event_flags_initialize.c + + + lib/threadx/common/src/tx_event_flags_performance_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_event_flags_performance_info_get.c + + + lib/threadx/common/src/tx_event_flags_performance_system_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_event_flags_performance_system_info_get.c + + + lib/threadx/common/src/tx_event_flags_set.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_event_flags_set.c + + + lib/threadx/common/src/tx_event_flags_set_notify.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_event_flags_set_notify.c + + + lib/threadx/common/src/tx_initialize_high_level.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_initialize_high_level.c + + + lib/threadx/common/src/tx_initialize_kernel_enter.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_initialize_kernel_enter.c + + + lib/threadx/common/src/tx_initialize_kernel_setup.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_initialize_kernel_setup.c + + + lib/threadx/common/src/tx_misra.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_misra.c + + + lib/threadx/common/src/tx_mutex_cleanup.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_mutex_cleanup.c + + + lib/threadx/common/src/tx_mutex_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_mutex_create.c + + + lib/threadx/common/src/tx_mutex_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_mutex_delete.c + + + lib/threadx/common/src/tx_mutex_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_mutex_get.c + + + lib/threadx/common/src/tx_mutex_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_mutex_info_get.c + + + lib/threadx/common/src/tx_mutex_initialize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_mutex_initialize.c + + + lib/threadx/common/src/tx_mutex_performance_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_mutex_performance_info_get.c + + + lib/threadx/common/src/tx_mutex_performance_system_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_mutex_performance_system_info_get.c + + + lib/threadx/common/src/tx_mutex_prioritize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_mutex_prioritize.c + + + lib/threadx/common/src/tx_mutex_priority_change.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_mutex_priority_change.c + + + lib/threadx/common/src/tx_mutex_put.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_mutex_put.c + + + lib/threadx/common/src/tx_queue_cleanup.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_cleanup.c + + + lib/threadx/common/src/tx_queue_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_create.c + + + lib/threadx/common/src/tx_queue_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_delete.c + + + lib/threadx/common/src/tx_queue_flush.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_flush.c + + + lib/threadx/common/src/tx_queue_front_send.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_front_send.c + + + lib/threadx/common/src/tx_queue_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_info_get.c + + + lib/threadx/common/src/tx_queue_initialize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_initialize.c + + + lib/threadx/common/src/tx_queue_performance_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_performance_info_get.c + + + lib/threadx/common/src/tx_queue_performance_system_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_performance_system_info_get.c + + + lib/threadx/common/src/tx_queue_prioritize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_prioritize.c + + + lib/threadx/common/src/tx_queue_receive.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_receive.c + + + lib/threadx/common/src/tx_queue_send.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_send.c + + + lib/threadx/common/src/tx_queue_send_notify.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_queue_send_notify.c + + + lib/threadx/common/src/tx_semaphore_ceiling_put.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_semaphore_ceiling_put.c + + + lib/threadx/common/src/tx_semaphore_cleanup.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_semaphore_cleanup.c + + + lib/threadx/common/src/tx_semaphore_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_semaphore_create.c + + + lib/threadx/common/src/tx_semaphore_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_semaphore_delete.c + + + lib/threadx/common/src/tx_semaphore_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_semaphore_get.c + + + lib/threadx/common/src/tx_semaphore_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_semaphore_info_get.c + + + lib/threadx/common/src/tx_semaphore_initialize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_semaphore_initialize.c + + + lib/threadx/common/src/tx_semaphore_performance_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_semaphore_performance_info_get.c + + + lib/threadx/common/src/tx_semaphore_performance_system_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_semaphore_performance_system_info_get.c + + + lib/threadx/common/src/tx_semaphore_prioritize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_semaphore_prioritize.c + + + lib/threadx/common/src/tx_semaphore_put.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_semaphore_put.c + + + lib/threadx/common/src/tx_semaphore_put_notify.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_semaphore_put_notify.c + + + lib/threadx/common/src/tx_thread_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_create.c + + + lib/threadx/common/src/tx_thread_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_delete.c + + + lib/threadx/common/src/tx_thread_entry_exit_notify.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_entry_exit_notify.c + + + lib/threadx/common/src/tx_thread_identify.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_identify.c + + + lib/threadx/common/src/tx_thread_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_info_get.c + + + lib/threadx/common/src/tx_thread_initialize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_initialize.c + + + lib/threadx/common/src/tx_thread_performance_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_performance_info_get.c + + + lib/threadx/common/src/tx_thread_performance_system_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_performance_system_info_get.c + + + lib/threadx/common/src/tx_thread_preemption_change.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_preemption_change.c + + + lib/threadx/common/src/tx_thread_priority_change.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_priority_change.c + + + lib/threadx/common/src/tx_thread_relinquish.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_relinquish.c + + + lib/threadx/common/src/tx_thread_reset.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_reset.c + + + lib/threadx/common/src/tx_thread_resume.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_resume.c + + + lib/threadx/common/src/tx_thread_shell_entry.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_shell_entry.c + + + lib/threadx/common/src/tx_thread_sleep.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_sleep.c + + + lib/threadx/common/src/tx_thread_stack_analyze.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_stack_analyze.c + + + lib/threadx/common/src/tx_thread_stack_error_handler.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_stack_error_handler.c + + + lib/threadx/common/src/tx_thread_stack_error_notify.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_stack_error_notify.c + + + lib/threadx/common/src/tx_thread_suspend.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_suspend.c + + + lib/threadx/common/src/tx_thread_system_preempt_check.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_system_preempt_check.c + + + lib/threadx/common/src/tx_thread_system_resume.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_system_resume.c + + + lib/threadx/common/src/tx_thread_system_suspend.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_system_suspend.c + + + lib/threadx/common/src/tx_thread_terminate.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_terminate.c + + + lib/threadx/common/src/tx_thread_time_slice.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_time_slice.c + + + lib/threadx/common/src/tx_thread_time_slice_change.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_time_slice_change.c + + + lib/threadx/common/src/tx_thread_timeout.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_timeout.c + + + lib/threadx/common/src/tx_thread_wait_abort.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_thread_wait_abort.c + + + lib/threadx/common/src/tx_time_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_time_get.c + + + lib/threadx/common/src/tx_time_set.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_time_set.c + + + lib/threadx/common/src/tx_timer_activate.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_activate.c + + + lib/threadx/common/src/tx_timer_change.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_change.c + + + lib/threadx/common/src/tx_timer_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_create.c + + + lib/threadx/common/src/tx_timer_deactivate.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_deactivate.c + + + lib/threadx/common/src/tx_timer_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_delete.c + + + lib/threadx/common/src/tx_timer_expiration_process.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_expiration_process.c + + + lib/threadx/common/src/tx_timer_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_info_get.c + + + lib/threadx/common/src/tx_timer_initialize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_initialize.c + + + lib/threadx/common/src/tx_timer_performance_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_performance_info_get.c + + + lib/threadx/common/src/tx_timer_performance_system_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_performance_system_info_get.c + + + lib/threadx/common/src/tx_timer_system_activate.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_system_activate.c + + + lib/threadx/common/src/tx_timer_system_deactivate.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_system_deactivate.c + + + lib/threadx/common/src/tx_timer_thread_entry.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_timer_thread_entry.c + + + lib/threadx/common/src/tx_trace_buffer_full_notify.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_trace_buffer_full_notify.c + + + lib/threadx/common/src/tx_trace_disable.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_trace_disable.c + + + lib/threadx/common/src/tx_trace_enable.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_trace_enable.c + + + lib/threadx/common/src/tx_trace_event_filter.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_trace_event_filter.c + + + lib/threadx/common/src/tx_trace_event_unfilter.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_trace_event_unfilter.c + + + lib/threadx/common/src/tx_trace_initialize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_trace_initialize.c + + + lib/threadx/common/src/tx_trace_interrupt_control.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_trace_interrupt_control.c + + + lib/threadx/common/src/tx_trace_isr_enter_insert.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_trace_isr_enter_insert.c + + + lib/threadx/common/src/tx_trace_isr_exit_insert.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_trace_isr_exit_insert.c + + + lib/threadx/common/src/tx_trace_object_register.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_trace_object_register.c + + + lib/threadx/common/src/tx_trace_object_unregister.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_trace_object_unregister.c + + + lib/threadx/common/src/tx_trace_user_event_insert.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/tx_trace_user_event_insert.c + + + lib/threadx/common/src/txe_block_allocate.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_block_allocate.c + + + lib/threadx/common/src/txe_block_pool_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_block_pool_create.c + + + lib/threadx/common/src/txe_block_pool_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_block_pool_delete.c + + + lib/threadx/common/src/txe_block_pool_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_block_pool_info_get.c + + + lib/threadx/common/src/txe_block_pool_prioritize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_block_pool_prioritize.c + + + lib/threadx/common/src/txe_block_release.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_block_release.c + + + lib/threadx/common/src/txe_byte_allocate.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_byte_allocate.c + + + lib/threadx/common/src/txe_byte_pool_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_byte_pool_create.c + + + lib/threadx/common/src/txe_byte_pool_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_byte_pool_delete.c + + + lib/threadx/common/src/txe_byte_pool_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_byte_pool_info_get.c + + + lib/threadx/common/src/txe_byte_pool_prioritize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_byte_pool_prioritize.c + + + lib/threadx/common/src/txe_byte_release.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_byte_release.c + + + lib/threadx/common/src/txe_event_flags_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_event_flags_create.c + + + lib/threadx/common/src/txe_event_flags_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_event_flags_delete.c + + + lib/threadx/common/src/txe_event_flags_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_event_flags_get.c + + + lib/threadx/common/src/txe_event_flags_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_event_flags_info_get.c + + + lib/threadx/common/src/txe_event_flags_set.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_event_flags_set.c + + + lib/threadx/common/src/txe_event_flags_set_notify.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_event_flags_set_notify.c + + + lib/threadx/common/src/txe_mutex_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_mutex_create.c + + + lib/threadx/common/src/txe_mutex_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_mutex_delete.c + + + lib/threadx/common/src/txe_mutex_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_mutex_get.c + + + lib/threadx/common/src/txe_mutex_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_mutex_info_get.c + + + lib/threadx/common/src/txe_mutex_prioritize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_mutex_prioritize.c + + + lib/threadx/common/src/txe_mutex_put.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_mutex_put.c + + + lib/threadx/common/src/txe_queue_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_queue_create.c + + + lib/threadx/common/src/txe_queue_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_queue_delete.c + + + lib/threadx/common/src/txe_queue_flush.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_queue_flush.c + + + lib/threadx/common/src/txe_queue_front_send.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_queue_front_send.c + + + lib/threadx/common/src/txe_queue_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_queue_info_get.c + + + lib/threadx/common/src/txe_queue_prioritize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_queue_prioritize.c + + + lib/threadx/common/src/txe_queue_receive.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_queue_receive.c + + + lib/threadx/common/src/txe_queue_send.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_queue_send.c + + + lib/threadx/common/src/txe_queue_send_notify.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_queue_send_notify.c + + + lib/threadx/common/src/txe_semaphore_ceiling_put.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_semaphore_ceiling_put.c + + + lib/threadx/common/src/txe_semaphore_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_semaphore_create.c + + + lib/threadx/common/src/txe_semaphore_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_semaphore_delete.c + + + lib/threadx/common/src/txe_semaphore_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_semaphore_get.c + + + lib/threadx/common/src/txe_semaphore_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_semaphore_info_get.c + + + lib/threadx/common/src/txe_semaphore_prioritize.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_semaphore_prioritize.c + + + lib/threadx/common/src/txe_semaphore_put.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_semaphore_put.c + + + lib/threadx/common/src/txe_semaphore_put_notify.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_semaphore_put_notify.c + + + lib/threadx/common/src/txe_thread_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_create.c + + + lib/threadx/common/src/txe_thread_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_delete.c + + + lib/threadx/common/src/txe_thread_entry_exit_notify.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_entry_exit_notify.c + + + lib/threadx/common/src/txe_thread_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_info_get.c + + + lib/threadx/common/src/txe_thread_preemption_change.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_preemption_change.c + + + lib/threadx/common/src/txe_thread_priority_change.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_priority_change.c + + + lib/threadx/common/src/txe_thread_relinquish.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_relinquish.c + + + lib/threadx/common/src/txe_thread_reset.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_reset.c + + + lib/threadx/common/src/txe_thread_resume.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_resume.c + + + lib/threadx/common/src/txe_thread_suspend.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_suspend.c + + + lib/threadx/common/src/txe_thread_terminate.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_terminate.c + + + lib/threadx/common/src/txe_thread_time_slice_change.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_time_slice_change.c + + + lib/threadx/common/src/txe_thread_wait_abort.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_thread_wait_abort.c + + + lib/threadx/common/src/txe_timer_activate.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_timer_activate.c + + + lib/threadx/common/src/txe_timer_change.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_timer_change.c + + + lib/threadx/common/src/txe_timer_create.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_timer_create.c + + + lib/threadx/common/src/txe_timer_deactivate.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_timer_deactivate.c + + + lib/threadx/common/src/txe_timer_delete.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_timer_delete.c + + + lib/threadx/common/src/txe_timer_info_get.c + 1 + PARENT-2-PROJECT_LOC/lib/threadx/common/src/txe_timer_info_get.c + + + lib/threadx/ports/cortex_m4/gnu + 2 + virtual:/virtual + + + target/stm32wlxx_hal_driver/Inc/Legacy/stm32_hal_legacy.h + 1 + PARENT-2-PROJECT_LOC/target/stm32wlxx_hal_driver/Inc/Legacy/stm32_hal_legacy.h + + + lib/threadx/ports/cortex_m4/gnu/.DS_Store + 1 + PARENT-2-PROJECT_LOC/lib/threadx/ports/cortex_m4/gnu/.DS_Store + + + lib/threadx/ports/cortex_m4/gnu/CMakeLists.txt + 1 + PARENT-2-PROJECT_LOC/lib/threadx/ports/cortex_m4/gnu/CMakeLists.txt + + + lib/threadx/ports/cortex_m4/gnu/inc + 2 + virtual:/virtual + + + lib/threadx/ports/cortex_m4/gnu/readme_threadx.txt + 1 + PARENT-2-PROJECT_LOC/lib/threadx/ports/cortex_m4/gnu/readme_threadx.txt + + + lib/threadx/ports/cortex_m4/gnu/src + 2 + virtual:/virtual + + + lib/threadx/ports/cortex_m4/gnu/inc/tx_port.h + 1 + PARENT-2-PROJECT_LOC/lib/threadx/ports/cortex_m4/gnu/inc/tx_port.h + + + lib/threadx/ports/cortex_m4/gnu/src/tx_thread_context_restore.S + 1 + PARENT-2-PROJECT_LOC/lib/threadx/ports/cortex_m4/gnu/src/tx_thread_context_restore.S + + + lib/threadx/ports/cortex_m4/gnu/src/tx_thread_context_save.S + 1 + PARENT-2-PROJECT_LOC/lib/threadx/ports/cortex_m4/gnu/src/tx_thread_context_save.S + + + lib/threadx/ports/cortex_m4/gnu/src/tx_thread_interrupt_control.S + 1 + PARENT-2-PROJECT_LOC/lib/threadx/ports/cortex_m4/gnu/src/tx_thread_interrupt_control.S + + + lib/threadx/ports/cortex_m4/gnu/src/tx_thread_schedule.S + 1 + PARENT-2-PROJECT_LOC/lib/threadx/ports/cortex_m4/gnu/src/tx_thread_schedule.S + + + lib/threadx/ports/cortex_m4/gnu/src/tx_thread_stack_build.S + 1 + PARENT-2-PROJECT_LOC/lib/threadx/ports/cortex_m4/gnu/src/tx_thread_stack_build.S + + + lib/threadx/ports/cortex_m4/gnu/src/tx_thread_system_return.S + 1 + PARENT-2-PROJECT_LOC/lib/threadx/ports/cortex_m4/gnu/src/tx_thread_system_return.S + + + lib/threadx/ports/cortex_m4/gnu/src/tx_timer_interrupt.S + 1 + PARENT-2-PROJECT_LOC/lib/threadx/ports/cortex_m4/gnu/src/tx_timer_interrupt.S + + + diff --git a/Software/app/basic_azurertos/CMakeLists.txt b/Software/app/basic_azurertos/CMakeLists.txt new file mode 100644 index 0000000000..9171fd6715 --- /dev/null +++ b/Software/app/basic_azurertos/CMakeLists.txt @@ -0,0 +1,63 @@ +#------------------- +# Main elf +#------------------- +file(GLOB MAIN_SRC + "${PROJECT_SOURCE_DIR}/app/basic_azurertos/*.c" + "${PROJECT_SOURCE_DIR}/target/*.c" + "${PROJECT_SOURCE_DIR}/lib/GNSE_BSP/*.c" + "${PROJECT_SOURCE_DIR}/lib/Utilities/*.c" + "${PROJECT_SOURCE_DIR}/lib/GNSE_TRACER/adv_tracer/*.c" + "${PROJECT_SOURCE_DIR}/lib/GNSE_TRACER/tiny_printf/*.c" + "${PROJECT_SOURCE_DIR}/lib/Utilities/threadx/*.c" + "${PROJECT_SOURCE_DIR}/lib/Utilities/threadx/*.S" + "${PROJECT_SOURCE_DIR}/lib/SHTC3/*.c" + "${PROJECT_SOURCE_DIR}/lib/MX25R1635/*.c" + "${PROJECT_SOURCE_DIR}/lib/threadx/common/src/*.c" + "${PROJECT_SOURCE_DIR}/lib/threadx/ports/cortex_m4/gnu/src/*.S" + ) +set(SOURCES + ${MAIN_SRC} + ${PROJECT_SOURCE_DIR}/${STARTUP_FILE} + ${PROJECT_SOURCE_DIR}/${SYSTEM_FILE} + ) +add_executable(${PROJECT_NAME}.elf + ${SOURCES} + ) +target_include_directories(${PROJECT_NAME}.elf + PUBLIC + ${PROJECT_SOURCE_DIR}/target + ${PROJECT_SOURCE_DIR}/app + ${PROJECT_SOURCE_DIR}/app/basic_azurertos + ${PROJECT_SOURCE_DIR}/app/basic_azurertos/conf + ${PROJECT_SOURCE_DIR}/lib/GNSE_BSP + ${PROJECT_SOURCE_DIR}/lib/Utilities + ${PROJECT_SOURCE_DIR}/lib/GNSE_TRACER + ${PROJECT_SOURCE_DIR}/lib/GNSE_TRACER/adv_tracer + ${PROJECT_SOURCE_DIR}/lib/GNSE_TRACER/tiny_printf + ${PROJECT_SOURCE_DIR}/lib/Utilities/threadx + ${PROJECT_SOURCE_DIR}/lib/SHTC3 + ${PROJECT_SOURCE_DIR}/lib/MX25R1635 + ${PROJECT_SOURCE_DIR}/lib/LIS2DH12 + ${PROJECT_SOURCE_DIR}/lib/BUZZER + ${PROJECT_SOURCE_DIR}/lib/ATECC608A-TNGLORA + ${PROJECT_SOURCE_DIR}/lib/threadx/common/inc + ${PROJECT_SOURCE_DIR}/lib/threadx/ports/cortex_m4/gnu/inc + ) +target_link_libraries(${PROJECT_NAME}.elf + PUBLIC + hal + ) +target_compile_definitions(${PROJECT_NAME}.elf + PUBLIC + ${MCU} + SEMIHOSTING=${SEMIHOSTING} + ) + # Create output in hex and binary format + create_bin_output(${PROJECT_NAME}) + create_hex_output(${PROJECT_NAME}) + # Add additional files to the make clean + set_property(DIRECTORY PROPERTY ADDITIONAL_MAKE_CLEAN_FILES + "${PROJECT_NAME}.map" + "${PROJECT_NAME}.bin" + "${PROJECT_NAME}.hex" + ) diff --git a/Software/app/basic_azurertos/conf/app_conf.h b/Software/app/basic_azurertos/conf/app_conf.h new file mode 100644 index 0000000000..2468e4ecf6 --- /dev/null +++ b/Software/app/basic_azurertos/conf/app_conf.h @@ -0,0 +1,42 @@ +/** Copyright © 2021 The Things Industries B.V. +* +* Licensed under the Apache License, Version 2.0 (the "License"); +* you may not use this file except in compliance with the License. +* You may obtain a copy of the License at +* +* http://www.apache.org/licenses/LICENSE-2.0 +* +* Unless required by applicable law or agreed to in writing, software +* distributed under the License is distributed on an "AS IS" BASIS, +* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +* See the License for the specific language governing permissions and +* limitations under the License. +*/ + +/** + * @file app_conf.h + * @brief Common configuration file for GNSE applications + * + * @copyright Copyright (c) 2021 The Things Industries B.V. + * + */ + +#ifndef APP_CONF_H +#define APP_CONF_H + +#define GNSE_TINY_TRACER_ENABLE 1 + +#define THREAD_STACK_SIZE 1024 +#define MEM_BYTE_POOL_SIZE 9120 +#define QUEUE_SIZE 100 + +/* The rate at which the Tx task sends to the queue. */ +#define TX_DELAY (5000) + +/* The length of time the LED will remain on for. It is on just long enough +to be able to see with the human eye so as not to distort the power readings too +much. */ +#define LED_TOGGLE_DELAY (20) + + +#endif /* APP_CONF_H */ diff --git a/Software/app/basic_azurertos/main.c b/Software/app/basic_azurertos/main.c new file mode 100644 index 0000000000..faa1a9ada5 --- /dev/null +++ b/Software/app/basic_azurertos/main.c @@ -0,0 +1,196 @@ +/** Copyright © 2021 The Things Industries B.V. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +/** + * @file main.c + * + * @copyright Copyright (c) 2021 The Things Industries B.V. + * + */ + +#include "tx_api.h" +#include "app.h" + +static void SystemClock_Config(void); +static void Error_Handler(void); + +static int32_t Queue_value = 100; + +/* Define the ThreadX object control blocks */ +TX_THREAD thread_1; +TX_THREAD thread_2; +TX_QUEUE queue_0; +TX_BYTE_POOL byte_pool_0; + +/* Define thread prototypes */ +void thread_1_entry(ULONG thread_input); +void thread_2_entry(ULONG thread_input); + +int main(void) +{ + /* Reset of all peripherals, Initializes the Flash interface and the Systick */ + HAL_Init(); + + /* Configure the system clock */ + SystemClock_Config(); + +#if (GNSE_TINY_TRACER_ENABLE) + /* Initialize Tracer/Logger */ + GNSE_TRACER_INIT() +#endif + + /* Initialize LED */ + GNSE_BSP_LED_Init(LED_BLUE); + + /* Enter the ThreadX kernel */ + tx_kernel_enter(); +} + +/* Define what the initial system looks like */ +void tx_application_define(void *first_unused_memory) +{ + + CHAR *pointer; + + /* Create a byte memory pool from which to allocate the thread stacks */ + tx_byte_pool_create(&byte_pool_0, "byte pool 0", first_unused_memory, + MEM_BYTE_POOL_SIZE); + + /* Allocate the stack for thread 1 */ + tx_byte_allocate(&byte_pool_0, (VOID **)&pointer, THREAD_STACK_SIZE, + TX_NO_WAIT); + + /* Create threads 1 and 2. These threads pass information through a ThreadX + message queue */ + tx_thread_create(&thread_1, "thread 1", thread_1_entry, 1, pointer, + THREAD_STACK_SIZE, 2, 2, TX_NO_TIME_SLICE, TX_AUTO_START); + + /* Allocate the stack for thread 2 */ + tx_byte_allocate(&byte_pool_0, (VOID **)&pointer, THREAD_STACK_SIZE, + TX_NO_WAIT); + + tx_thread_create(&thread_2, "thread 2", thread_2_entry, 2, pointer, + THREAD_STACK_SIZE, 1, 1, TX_NO_TIME_SLICE, TX_AUTO_START); + + /* Allocate the message queue */ + tx_byte_allocate(&byte_pool_0, (VOID **)&pointer, + QUEUE_SIZE * sizeof(ULONG), TX_NO_WAIT); + + /* Create the message queue shared by threads 1 and 2 */ + tx_queue_create(&queue_0, "queue 0", TX_1_ULONG, pointer, + QUEUE_SIZE * sizeof(ULONG)); +} + +void thread_1_entry(ULONG thread_input) +{ + UINT status; + + /* This thread simply sends messages to a queue shared by thread 2 */ + while (1) + { + /* Send message to queue 0 */ + APP_PPRINTF(("\r\n Send Tx msg \r\n")); + status = tx_queue_send(&queue_0, &Queue_value, + TX_WAIT_FOREVER); + + /* Check completion status */ + if (status == TX_SUCCESS) + { + tx_thread_sleep(TX_DELAY); + } + else + { + // Should stop the application if we fail to send one message + break; + } + } +} + +void thread_2_entry(ULONG thread_input) +{ + ULONG received_message; + UINT status; + + /* This thread retrieves messages placed on the queue by thread 1 */ + while (1) + { + /* Retrieve a message from the queue */ + status = tx_queue_receive(&queue_0, &received_message, TX_WAIT_FOREVER); + + /* Check completion status and make sure the message is what we + expected */ + if ((status == TX_SUCCESS) && (received_message == Queue_value)) + { + APP_PPRINTF(("\r\n Received Rx msg \r\n")); + GNSE_BSP_LED_On(LED_BLUE); + tx_thread_sleep(LED_TOGGLE_DELAY); + GNSE_BSP_LED_Off(LED_BLUE); + } + else + { + // Should stop the application if we fail to receive one message + break; + } + } +} + +/** + * @brief System Clock Configuration + * @retval None + */ +void SystemClock_Config(void) +{ + RCC_OscInitTypeDef RCC_OscInitStruct = {0}; + RCC_ClkInitTypeDef RCC_ClkInitStruct = {0}; + + /** Configure the main internal regulator output voltage + */ + __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1); + /** Initializes the CPU, AHB and APB busses clocks + */ + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_MSI; + RCC_OscInitStruct.MSIState = RCC_MSI_ON; + RCC_OscInitStruct.MSICalibrationValue = RCC_MSICALIBRATION_DEFAULT; + RCC_OscInitStruct.MSIClockRange = RCC_MSIRANGE_11; + RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE; + if (HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK) + { + Error_Handler(); + } + /** Configure the SYSCLKSource, HCLK, PCLK1 and PCLK2 clocks dividers + */ + RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_HCLK3 | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2; + RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_MSI; + RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1; + RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1; + RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1; + RCC_ClkInitStruct.AHBCLK3Divider = RCC_SYSCLK_DIV1; + + if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_2) != HAL_OK) + { + Error_Handler(); + } +} + +/** + * @brief This function is executed in case of error occurrence. + * @return None + */ +static void Error_Handler(void) +{ + while (1) + { + } +} diff --git a/Software/app/basic_azurertos/stm32wlxx_it.c b/Software/app/basic_azurertos/stm32wlxx_it.c new file mode 100644 index 0000000000..7de3b7fabd --- /dev/null +++ b/Software/app/basic_azurertos/stm32wlxx_it.c @@ -0,0 +1,80 @@ +/** + ****************************************************************************** + * @file FreeRTOS/FreeRTOS_LowPower/Src/stm32wlxx_it.c + * @author MCD Application Team + * @brief Main Interrupt Service Routines. + * This file provides template for all exceptions handler and + * peripherals interrupt service routine. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under Ultimate Liberty license + * SLA0044, the "License"; You may not use this file except in compliance with + * the License. You may obtain a copy of the License at: + * www.st.com/SLA0044 + * + ****************************************************************************** + */ + +#include "GNSE_bsp.h" +#include "stm32wlxx_it.h" + +extern TIM_HandleTypeDef htim17; + +/******************************************************************************/ +/* Cortex Processor Interruption and Exception Handlers */ +/******************************************************************************/ +/** + * @brief This function handles Hard fault interrupt. + */ +void HardFault_Handler(void) +{ + while (1) + { + } +} + +/** + * @brief This function handles Prefetch fault, memory access fault. + */ +void BusFault_Handler(void) +{ + while (1) + { + } +} + +/** + * @brief This function handles Debug monitor. + */ +void DebugMon_Handler(void) +{ +} + +/******************************************************************************/ +/* STM32WLxx Peripheral Interrupt Handlers */ +/* Add here the Interrupt Handlers for the used peripherals. */ +/* For the available peripheral interrupt handler names, */ +/* please refer to the startup file (startup_stm32wlxx.s). */ +/******************************************************************************/ + +/** + * @brief This function handles TIM17 Global Interrupt. + */ +void TIM17_IRQHandler(void) +{ + HAL_TIM_IRQHandler(&htim17); +} + +void USART2_IRQHandler(void) +{ + HAL_UART_IRQHandler(&GNSE_BSP_debug_usart); +} + +void DMA1_Channel5_IRQHandler(void) +{ + HAL_DMA_IRQHandler(&GNSE_BSP_hdma_tx); +} diff --git a/Software/app/basic_azurertos/stm32wlxx_it.h b/Software/app/basic_azurertos/stm32wlxx_it.h new file mode 100644 index 0000000000..033089adfb --- /dev/null +++ b/Software/app/basic_azurertos/stm32wlxx_it.h @@ -0,0 +1,38 @@ +/** + ****************************************************************************** + * @file FreeRTOS/FreeRTOS_LowPower/Inc/stm32wlxx_it.h + * @author MCD Application Team + * @brief This file contains the headers of the interrupt handlers. + ****************************************************************************** + * @attention + * + *

© Copyright (c) 2020 STMicroelectronics. + * All rights reserved.

+ * + * This software component is licensed by ST under Ultimate Liberty license + * SLA0044, the "License"; You may not use this file except in compliance with + * the License. You may obtain a copy of the License at: + * www.st.com/SLA0044 + * + ****************************************************************************** + */ + +#ifndef __STM32WLxx_IT_H +#define __STM32WLxx_IT_H + +#ifdef __cplusplus + extern "C" { +#endif + +void HardFault_Handler(void); +void BusFault_Handler(void); +void DebugMon_Handler(void); +void TIM17_IRQHandler(void); + +#ifdef __cplusplus +} +#endif + +#endif /* __STM32WLxx_IT_H */ + +/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/ diff --git a/Software/lib/README.md b/Software/lib/README.md index fbdec59f27..15bda32e84 100644 --- a/Software/lib/README.md +++ b/Software/lib/README.md @@ -23,6 +23,6 @@ This folder contains the libraries developed to support the application layer. [FreeRTOS-LoRaWAN](./FreeRTOS-LoRaWAN) contains the FreeRTOS LoRaWAN abstraction layer. -[SPIFFS] contains SPI flash file system library that can be used to abstract external SPI flash operation. +[SPIFFS](./SPIFFS) contains SPI flash file system library that can be used to abstract external SPI flash operation. [threadx](./threadx) contains threadx (AzureRTOS) kernel.