Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Flipper-Zero/STM32CubeWB.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrihab kouki <rihab.kouki@st.com>2021-11-23 17:29:35 +0300
committerrihab kouki <rihab.kouki@st.com>2021-11-23 17:52:54 +0300
commit11042898d71249ed9c698355fd7b7812b741a161 (patch)
tree8ba372ad357d2a044cfcb665b64c0caec1a7946f /Projects/STM32WB5MM-DK/Applications
parentf8793c3e2ab6d2c84897405a6fcf529703185063 (diff)
Release v1.13.0
Diffstat (limited to 'Projects/STM32WB5MM-DK/Applications')
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/.extSettings3
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/BLE_HeartRate.ioc520
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_common.h21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_conf.h61
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_debug.h22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_entry.h25
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/hw_conf.h22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/hw_if.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/main.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32_lpm_if.h34
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wb5mm_dk_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wbxx_hal_conf.h17
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wbxx_it.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/utilities_conf.h25
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/app_debug.c36
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/app_entry.c243
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/hw_timerserver.c23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/hw_uart.c21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/main.c78
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32_lpm_if.c30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32wbxx_hal_msp.c35
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32wbxx_it.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/system_stm32wbxx.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/BLE_HeartRate.ewp2546
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/startup_stm32wb5mxx_cm4.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/stm32wb5mxx_flash_cm4.icf8
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/stm32wb5mxx_sram_cm4.icf39
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/BLE_HeartRate.uvprojx2
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/startup_stm32wb5mxx_cm4.s13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/stm32wb5mxx_flash_cm4.sct15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/.cproject8
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/.project5
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/User/Core/syscalls.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/User/Core/sysmem.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/app_ble.c162
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/app_ble.h23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/ble_conf.h22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/ble_dbg_conf.h23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/dis_app.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/dis_app.h20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/hrs_app.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/hrs_app.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/tl_dbg_conf.h21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/Target/hw_ipcc.c26
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/readme.txt10
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_common.h119
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_conf.h613
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_debug.h42
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_entry.h42
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_stts22h.h43
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_vl53l0x.h43
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_conf.h246
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_flash.h84
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_if.h250
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/lp_timer.h57
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/main.h37
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32_lpm_if.h79
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wb5mm_dk_conf.h93
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wbxx_hal_conf.h351
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wbxx_it.h62
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/utilities_conf.h65
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/vcp_conf.h50
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_debug.c367
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_entry.c521
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_stts22h.c131
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_vl53l0x.c139
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_flash.c149
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_timerserver.c891
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_uart.c468
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/lp_timer.c132
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/main.c460
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/stm32_lpm_if.c349
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/stm32wbxx_it.c224
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/system_stm32wbxx.c340
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api.c2977
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api.h1943
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c1259
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h110
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.c2243
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.h112
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c28
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h33
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.c448
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.h266
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_def.h619
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_device.h243
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h179
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_platform.h43
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.c59
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.h110
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_tof.c330
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_tof.h230
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_tuning.h131
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_types.h96
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/BLE_Mesh_Model_Sensor.ewd1419
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/BLE_Mesh_Model_Sensor.ewp1447
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/Project.eww7
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/startup_stm32wb55xx_cm4.s515
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/stm32wb5mxx_flash_cm4.icf (renamed from Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/stm32wb55xx_flash_cm4.icf)6
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/BLE_Mesh_Model_Sensor.uvoptx1529
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/BLE_Mesh_Model_Sensor.uvprojx1005
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/startup_stm32wb5mxx_cm4.s367
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct26
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/.cproject128
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/.project524
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/Application/Core/syscalls.c155
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/Application/Core/sysmem.c79
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s443
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld171
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_config.c108
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_config.h69
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_handlers.c277
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_handlers.h33
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/app_ble.c672
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/app_ble.h76
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config.c355
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config.h50
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config_client.c1915
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config_client.h91
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic.c481
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic.h156
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic_client.c343
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic_client.h38
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light.c1357
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light.h275
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_client.c1204
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_client.h109
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_lc.c452
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_lc.h79
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_mesh.c1810
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_mesh.h136
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_nvm.c749
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_nvm.h97
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensor.c798
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensor.h109
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensors_client.c359
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensors_client.h70
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_vendor.c600
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_vendor.h46
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/ble_conf.h71
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/ble_dbg_conf.h204
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/cube_hal.h46
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/data.s28
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/hal_common.h51
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/mesh_cfg_usr.h625
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/models_if.c1151
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/models_if.h49
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/pal_nvm.c441
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/sensor_cfg_usr.h695
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/svcctl_conf.c80
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/tl_conf.h30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/tl_dbg_conf.h124
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/tl_if.c45
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/user_if.c341
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/user_if.h39
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/vcp_conf.h49
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/target/hw_ipcc.c673
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/readme.txt269
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_common.h29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_conf.h89
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_debug.h26
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_entry.h16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_stts22h.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_vl53l0x.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_conf.h21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_flash.h29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_if.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/lp_timer.h29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/main.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32_lpm_if.h34
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wb5mm_dk_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wbxx_hal_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wbxx_it.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/utilities_conf.h23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/vcp_conf.h29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_debug.c39
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_entry.c188
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_stts22h.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_vl53l0x.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_flash.c31
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_timerserver.c16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_uart.c29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/lp_timer.c16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/main.c29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/stm32_lpm_if.c30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/stm32wbxx_it.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/system_stm32wbxx.c29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api.c11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_core.c11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_core.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_strings.c11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_strings.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_def.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_device.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_platform.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_platform_log.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tof.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tof.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tuning.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_types.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/BLE_Mesh_ThermometerSensor.ewp16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/startup_stm32wb55xx_cm4.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/stm32wb5mxx_flash_cm4.icf42
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/BLE_Mesh_ThermometerSensor.uvoptx24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/BLE_Mesh_ThermometerSensor.uvprojx19
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/startup_stm32wb5mxx_cm4.s13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Core/syscalls.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Core/sysmem.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_config.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_handlers.c49
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_handlers.h16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/app_ble.c22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/app_ble.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config.c30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config.h30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config_client.c37
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config_client.h28
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic_client.c28
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic_client.h26
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_client.c28
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_client.h28
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_lc.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_lc.h28
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_mesh.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_mesh.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_nvm.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_nvm.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensor.c18
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensor.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensors_client.c28
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensors_client.h26
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_vendor.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_vendor.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/ble_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/ble_dbg_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/cube_hal.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/data.s32
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/hal_common.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/mesh_cfg_usr.h17
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/models_if.c16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/models_if.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/pal_nvm.c16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/sensor_cfg_usr.h31
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/svcctl_conf.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_dbg_conf.h27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_if.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/user_if.c53
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/user_if.h51
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/vcp_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/target/hw_ipcc.c21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/readme.txt96
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/.extSettings9
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/BLE_Sensor.ioc527
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_common.h21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_conf.h75
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_debug.h22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_entry.h25
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_vl53l0x.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/hw_conf.h70
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/hw_if.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/main.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/s25fl128s_conf.h23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32_lpm_if.h34
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wb5mm_dk_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wbxx_hal_conf.h19
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wbxx_it.h17
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/utilities_conf.h25
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_debug.c40
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_entry.c243
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_vl53l0x.c54
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/hw_timerserver.c23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/hw_uart.c317
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/main.c154
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32_lpm_if.c30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32wbxx_hal_msp.c127
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32wbxx_it.c43
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/system_stm32wbxx.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api.c11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.c11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.c11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_def.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_device.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_platform.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tof.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tof.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tuning.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_types.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/BLE_Sensor.ewp2691
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/startup_stm32wb5mxx_cm4.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/stm32wb5mxx_flash_cm4.icf8
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/stm32wb5mxx_sram_cm4.icf39
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/BLE_Sensor.uvoptx48
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/BLE_Sensor.uvprojx24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/startup_stm32wb5mxx_cm4.s13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/.cproject4
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/.project30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/User/Core/syscalls.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/User/Core/sysmem.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/app_ble.c147
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/app_ble.h23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/ble_conf.h22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/ble_dbg_conf.h23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/env_server_app.c21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/env_server_app.h20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motenv_server_app.c20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motenv_server_app.h20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motion_server_app.c20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motion_server_app.h20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/p2p_server_app.c22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/p2p_server_app.h20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/tl_dbg_conf.h21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/wb5m_sensor_stm.c23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/wb5m_sensor_stm.h23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/Target/hw_ipcc.c26
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/readme.txt20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/.extSettings3
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/BLE_TransparentMode.ioc515
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_common.h21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_conf.h63
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_debug.h22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_entry.h25
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/hw_conf.h22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/hw_if.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/main.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32_lpm_if.h34
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wb5mm_dk_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wbxx_hal_conf.h17
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wbxx_it.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/utilities_conf.h25
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/app_debug.c36
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/app_entry.c92
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/hw_timerserver.c23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/hw_uart.c21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/main.c78
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32_lpm_if.c30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32wbxx_hal_msp.c35
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32wbxx_it.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/system_stm32wbxx.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/BLE_TransparentMode.ewp2475
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/startup_stm32wb5mxx_cm4.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/stm32wb5mxx_flash_cm4.icf8
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/stm32wb5mxx_sram_cm4.icf39
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/BLE_TransparentMode.uvprojx2
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/startup_stm32wb5mxx_cm4.s13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/stm32wb5mxx_flash_cm4.sct15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/.cproject8
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/.project5
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/User/Core/syscalls.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/User/Core/sysmem.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/ble_conf.h22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/ble_dbg_conf.h23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tl_dbg_conf.h21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tm.c29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tm.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/hw_ipcc.c26
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/readme.txt10
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/.extSettings3
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/BLE_p2pServer.ioc517
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_common.h21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_conf.h61
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_debug.h22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_entry.h25
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/hw_conf.h22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/hw_if.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/main.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32_lpm_if.h34
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wb5mm_dk_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wbxx_hal_conf.h17
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wbxx_it.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/utilities_conf.h25
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/app_debug.c36
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/app_entry.c243
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/hw_timerserver.c23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/hw_uart.c21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/main.c78
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32_lpm_if.c30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32wbxx_hal_msp.c35
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32wbxx_it.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/system_stm32wbxx.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/BLE_p2pServer.ewp2534
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/startup_stm32wb5mxx_cm4.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/stm32wb5mxx_flash_cm4.icf8
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/stm32wb5mxx_sram_cm4.icf39
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/BLE_p2pServer.uvoptx1045
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/BLE_p2pServer.uvprojx793
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/startup_stm32wb5mxx_cm4.s367
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/stm32wb5mxx_flash_cm4.sct26
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/.cproject4
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/.project5
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/User/Core/syscalls.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/User/Core/sysmem.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/app_ble.c147
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/app_ble.h23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/ble_conf.h22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/ble_dbg_conf.h23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/p2p_server_app.c22
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/p2p_server_app.h20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/tl_dbg_conf.h21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/Target/hw_ipcc.c26
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/readme.txt10
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_common.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_conf.h23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_entry.h23
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/hw_conf.h16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/hw_if.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/main.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32_lpm_if.h29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wb5mm_dk_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wbxx_hal_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wbxx_it.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm_logging.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/utilities_conf.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/app_entry.c28
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/gpio_lld.c32
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/hw_uart.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/main.c28
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32_lpm_if.c24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32wbxx_hal_msp.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32wbxx_it.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm_logging.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/system_stm32wbxx.c15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/EWARM/startup_stm32wb5mxx_cm4.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/MDK-ARM/startup_stm32wb5mxx_cm4.s13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/MDK-ARM/stm32wb5mxx_flash_cm4.sct15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/User/Core/syscalls.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/User/Core/sysmem.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/app_ble_lld.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/app_ble_lld.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/chat_app.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/chat_app.h16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/tl_dbg_conf.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/Target/hw_ipcc.c21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/readme.txt10
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Demontrations/Audio_BVLINKWB/readme.txt40
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_common.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_entry.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/hw_conf.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/hw_if.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/main.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32_lpm_if.h29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wb5mm_dk_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wbxx_hal_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wbxx_it.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm_logging.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/utilities_conf.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/app_entry.c16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/hw_timerserver.c16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/hw_uart.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/main.c26
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32_lpm_if.c24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32wbxx_hal_msp.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32wbxx_it.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm_logging.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/system_stm32wbxx.c15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/EWARM/startup_stm32wb55xx_cm4.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/MDK-ARM/startup_stm32wb5mxx_cm4.s13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/User/Core/syscalls.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/User/Core/sysmem.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/app_thread.c24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/app_thread.h18
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/tl_dbg_conf.h18
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/Target/hw_ipcc.c21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/readme.txt10
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/EWARM/startup_stm32wb5mxx_cm4.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/EWARM/stm32wb5mxx_flash_cm4.icf2
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/main.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wb5mm_dk_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wbxx_hal_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wbxx_it.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stmCriticalSection.h30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/touchsensing.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/tsl_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/tsl_user.h16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/MDK-ARM/startup_stm32wb5mxx_cm4.s13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/User/syscalls.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/User/sysmem.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/main.c31
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stm32wbxx_hal_msp.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stm32wbxx_it.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stmCriticalSection.c30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/system_stm32wbxx.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/touchsensing.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/tsl_user.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/TouchSensing_1touchkey.ioc17
-rw-r--r--Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/readme.txt10
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_common.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_entry.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/hw_conf.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/hw_if.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/main.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32_lpm_if.h29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wb5mm_dk_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wbxx_hal_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wbxx_it.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm_logging.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/utilities_conf.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/app_entry.c20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/hw_timerserver.c16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/hw_uart.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/main.c24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32_lpm_if.c24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32wbxx_hal_msp.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32wbxx_it.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm_logging.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/system_stm32wbxx.c15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/EWARM/startup_stm32wb55xx_cm4.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/MDK-ARM/startup_stm32wb55xx_cm4.s13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/User/Core/syscalls.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/User/Core/sysmem.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/app_zigbee.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/app_zigbee.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/tl_dbg_conf.h18
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/Target/hw_ipcc.c21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/readme.txt12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_common.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_entry.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/hw_conf.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/hw_if.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/main.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32_lpm_if.h29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wb5mm_dk_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wbxx_hal_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wbxx_it.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm_logging.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/utilities_conf.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/app_entry.c20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/hw_timerserver.c16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/hw_uart.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/main.c24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32_lpm_if.c24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32wbxx_hal_msp.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32wbxx_it.c15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm_logging.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/system_stm32wbxx.c15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/EWARM/startup_stm32wb55xx_cm4.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/MDK-ARM/startup_stm32wb55xx_cm4.s13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/User/Core/syscalls.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/User/Core/sysmem.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/app_zigbee.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/app_zigbee.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/tl_dbg_conf.h18
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/Target/hw_ipcc.c21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/readme.txt12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_common.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_entry.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/hw_conf.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/hw_if.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/main.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32_lpm_if.h29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wb5mm_dk_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wbxx_hal_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wbxx_it.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm_logging.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/utilities_conf.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/app_entry.c20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/hw_timerserver.c16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/hw_uart.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/main.c24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32_lpm_if.c24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32wbxx_hal_msp.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32wbxx_it.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm_logging.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/system_stm32wbxx.c15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/EWARM/startup_stm32wb55xx_cm4.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/MDK-ARM/startup_stm32wb5mxx_cm4.s13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/User/Core/syscalls.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/User/Core/sysmem.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/app_zigbee.c29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/app_zigbee.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/tl_dbg_conf.h18
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/Target/hw_ipcc.c21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/readme.txt12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_common.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_entry.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_stts22h.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_vl53l0x.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/hw_conf.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/hw_if.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/main.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32_lpm_if.h29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wb5mm_dk_conf.h13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wbxx_hal_conf.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wbxx_it.h15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm_logging.h11
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/utilities_conf.h12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/vcp_conf.h29
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/app_entry.c20
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/app_stts22h.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/hw_timerserver.c16
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/hw_uart.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/main.c24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32_lpm_if.c24
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32wbxx_hal_msp.c12
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32wbxx_it.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm_logging.c13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/system_stm32wbxx.c15
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/EWARM/startup_stm32wb55xx_cm4.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/MDK-ARM/startup_stm32wb5mxx_cm4.s13
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/User/Core/syscalls.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/User/Core/sysmem.c27
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld30
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/app_zigbee.c14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/app_zigbee.h14
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/tl_dbg_conf.h18
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/Target/hw_ipcc.c21
-rw-r--r--Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/readme.txt12
656 files changed, 59365 insertions, 11098 deletions
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/.extSettings b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/.extSettings
index 8bafa9b25..45631b545 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/.extSettings
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/.extSettings
@@ -1,8 +1,7 @@
[ProjectFiles]
HeaderPath=..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK;..\..\..\..\..\..\Drivers\BSP\Components\ssd1315;..\..\..\..\..\..\Drivers\BSP\Components\Common;..\..\..\..\..\..\Utilities\Fonts;..\..\..\..\..\..\Utilities\LCD;
[Others]
-Define=STM32WL55MM_DK
-HALModule=IPCC;
+Define=USE_STM32WB5M_DK
[Groups]
Drivers/BSP/STM32WB5MM-DK=../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_lcd.c;../../../../../../Drivers/BSP/Components/ssd1315/ssd1315.c;../../../../../../Drivers/BSP/Components/ssd1315/ssd1315_reg.c;
Doc=../readme.txt;
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/BLE_HeartRate.ioc b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/BLE_HeartRate.ioc
new file mode 100644
index 000000000..84f143439
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/BLE_HeartRate.ioc
@@ -0,0 +1,520 @@
+#MicroXplorer Configuration settings - do not modify
+Dma.Request0=USART1_TX
+Dma.RequestsNb=1
+Dma.USART1_TX.0.Direction=DMA_MEMORY_TO_PERIPH
+Dma.USART1_TX.0.EventEnable=DISABLE
+Dma.USART1_TX.0.Instance=DMA2_Channel4
+Dma.USART1_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART1_TX.0.MemInc=DMA_MINC_ENABLE
+Dma.USART1_TX.0.Mode=DMA_NORMAL
+Dma.USART1_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART1_TX.0.PeriphInc=DMA_PINC_DISABLE
+Dma.USART1_TX.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.USART1_TX.0.Priority=DMA_PRIORITY_LOW
+Dma.USART1_TX.0.RequestNumber=1
+Dma.USART1_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.USART1_TX.0.SignalID=NONE
+Dma.USART1_TX.0.SyncEnable=DISABLE
+Dma.USART1_TX.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.USART1_TX.0.SyncRequestNumber=1
+Dma.USART1_TX.0.SyncSignalID=NONE
+File.Version=6
+GPIO.groupedBy=Group By Peripherals
+I2C3.IPParameters=Timing
+I2C3.Timing=0x00707CBB
+KeepUserPlacement=false
+Mcu.Family=STM32WB
+Mcu.IP0=DMA
+Mcu.IP1=HSEM
+Mcu.IP10=STM32_WPAN
+Mcu.IP11=SYS
+Mcu.IP12=TIM17
+Mcu.IP13=TINY_LPM
+Mcu.IP14=USART1
+Mcu.IP2=I2C3
+Mcu.IP3=IPCC
+Mcu.IP4=NVIC
+Mcu.IP5=RCC
+Mcu.IP6=RF
+Mcu.IP7=RTC
+Mcu.IP8=SEQUENCER
+Mcu.IP9=SPI1
+Mcu.IPNb=15
+Mcu.Name=STM32WB5MMGHx
+Mcu.Package=LGA86
+Mcu.Pin0=PA2
+Mcu.Pin1=PA1
+Mcu.Pin10=PB5
+Mcu.Pin11=PB4
+Mcu.Pin12=PB3
+Mcu.Pin13=PC10
+Mcu.Pin14=PC11
+Mcu.Pin15=PC12
+Mcu.Pin16=PA13
+Mcu.Pin17=PA14
+Mcu.Pin18=PA15
+Mcu.Pin19=PA10
+Mcu.Pin2=PA0
+Mcu.Pin20=PA12
+Mcu.Pin21=PA11
+Mcu.Pin22=PD0
+Mcu.Pin23=PD1
+Mcu.Pin24=PB13
+Mcu.Pin25=PC6
+Mcu.Pin26=PB14
+Mcu.Pin27=PB15
+Mcu.Pin28=PB6
+Mcu.Pin29=PC13
+Mcu.Pin3=PC3
+Mcu.Pin30=PB12
+Mcu.Pin31=PE4
+Mcu.Pin32=PC5
+Mcu.Pin33=PB11
+Mcu.Pin34=PB10
+Mcu.Pin35=PB2
+Mcu.Pin36=PC4
+Mcu.Pin37=PA8
+Mcu.Pin38=PA9
+Mcu.Pin39=PA7
+Mcu.Pin4=PC2
+Mcu.Pin40=PA6
+Mcu.Pin41=PA5
+Mcu.Pin42=PA4
+Mcu.Pin43=PA3
+Mcu.Pin44=PH0
+Mcu.Pin45=PH1
+Mcu.Pin46=PD14
+Mcu.Pin47=PE1
+Mcu.Pin48=PD13
+Mcu.Pin49=PD12
+Mcu.Pin5=PC1
+Mcu.Pin50=PD2
+Mcu.Pin51=PC9
+Mcu.Pin52=PD3
+Mcu.Pin53=PC7
+Mcu.Pin54=PE3
+Mcu.Pin55=PD4
+Mcu.Pin56=PD9
+Mcu.Pin57=PD8
+Mcu.Pin58=PD15
+Mcu.Pin59=PD10
+Mcu.Pin6=PB9
+Mcu.Pin60=PE2
+Mcu.Pin61=PE0
+Mcu.Pin62=PD5
+Mcu.Pin63=PD6
+Mcu.Pin64=PD11
+Mcu.Pin65=PC8
+Mcu.Pin66=VP_HSEM_VS_HSEM
+Mcu.Pin67=VP_IPCC_VS_IPCC
+Mcu.Pin68=VP_RCC_V_OSC_IN
+Mcu.Pin69=VP_RCC_V_OSC32_IN
+Mcu.Pin7=PC0
+Mcu.Pin70=VP_RF_VS_RF
+Mcu.Pin71=VP_RTC_VS_RTC_Activate
+Mcu.Pin72=VP_SEQUENCER_VS_SEQUENCER
+Mcu.Pin73=VP_STM32_WPAN_VS_BLE_HOST
+Mcu.Pin74=VP_SYS_VS_Systick
+Mcu.Pin75=VP_TIM17_VS_ClockSourceINT
+Mcu.Pin76=VP_TINY_LPM_VS_TINY_LPM
+Mcu.Pin8=PB8
+Mcu.Pin9=PB7
+Mcu.PinsNb=77
+Mcu.ThirdPartyNb=0
+Mcu.UserConstants=
+Mcu.UserName=STM32WB5MMGHx
+MxCube.Version=6.4.0
+MxDb.Version=DB.6.0.40
+NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.DMA2_Channel4_IRQn=true\:15\:0\:true\:false\:true\:false\:true
+NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.ForceEnableDMAVector=true
+NVIC.HSEM_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
+NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+PA0.Locked=true
+PA0.Signal=ADCx_IN5
+PA1.Locked=true
+PA1.Mode=Full_Duplex_Master
+PA1.Signal=SPI1_SCK
+PA10.Locked=true
+PA10.Signal=I2C1_SDA
+PA11.GPIOParameters=GPIO_Label
+PA11.GPIO_Label=USB_N
+PA11.Locked=true
+PA11.Signal=USB_DM
+PA12.GPIOParameters=GPIO_Label
+PA12.GPIO_Label=USB_P
+PA12.Locked=true
+PA12.Signal=USB_DP
+PA13.GPIOParameters=GPIO_Label
+PA13.GPIO_Label=T_SWDIO
+PA13.Locked=true
+PA13.Signal=SYS_JTMS-SWDIO
+PA14.GPIOParameters=GPIO_Label
+PA14.GPIO_Label=T_SWCLK
+PA14.Locked=true
+PA14.Signal=SYS_JTCK-SWCLK
+PA15.Locked=true
+PA15.Signal=S_TIM2_CH1
+PA2.Locked=true
+PA2.Signal=ADCx_IN7
+PA3.GPIOParameters=GPIO_Label
+PA3.GPIO_Label=QSPI_BK_SCK
+PA3.Locked=true
+PA3.Signal=QUADSPI_CLK
+PA4.Locked=true
+PA4.Signal=SPI1_NSS
+PA5.Locked=true
+PA5.Signal=ADCx_IN10
+PA6.Locked=true
+PA6.Signal=LPUART1_CTS
+PA7.Locked=true
+PA7.Mode=Full_Duplex_Master
+PA7.Signal=SPI1_MOSI
+PA8.GPIOParameters=GPIO_Label
+PA8.GPIO_Label=SAI1_CK2
+PA8.Locked=true
+PA8.Signal=SAI1_CK2
+PA9.GPIOParameters=GPIO_Label
+PA9.GPIO_Label=SAI1_D2
+PA9.Locked=true
+PA9.Signal=SAI1_D2
+PB10.Locked=true
+PB10.Signal=S_TIM2_CH3
+PB11.GPIOParameters=GPIO_Label
+PB11.GPIO_Label=I2C3_SDA
+PB11.Locked=true
+PB11.Mode=I2C
+PB11.Signal=I2C3_SDA
+PB12.Locked=true
+PB12.Signal=LPUART1_RTS
+PB13.GPIOParameters=GPIO_Label
+PB13.GPIO_Label=I2C3_SCL
+PB13.Locked=true
+PB13.Mode=I2C
+PB13.Signal=I2C3_SCL
+PB14.Locked=true
+PB14.Signal=SPI2_MISO
+PB15.Locked=true
+PB15.Signal=SPI2_MOSI
+PB2.Locked=true
+PB2.Signal=GPIO_Input
+PB3.GPIOParameters=GPIO_Label
+PB3.GPIO_Label=T_SWO
+PB3.Locked=true
+PB3.Signal=SYS_JTDO-SWO
+PB4.Locked=true
+PB4.Mode=Full_Duplex_Master
+PB4.Signal=SPI1_MISO
+PB5.GPIOParameters=GPIO_Label
+PB5.GPIO_Label=LPUART1_TX_MCU
+PB5.Locked=true
+PB5.Signal=LPUART1_TX
+PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
+PB6.GPIO_Label=VCP_TX
+PB6.GPIO_PuPd=GPIO_PULLUP
+PB6.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB6.Locked=true
+PB6.Mode=Asynchronous
+PB6.Signal=USART1_TX
+PB7.GPIOParameters=GPIO_ModeDefaultPP,GPIO_Speed,GPIO_PuPd,GPIO_Label
+PB7.GPIO_Label=VCP_RX
+PB7.GPIO_ModeDefaultPP=GPIO_MODE_AF_PP
+PB7.GPIO_PuPd=GPIO_PULLUP
+PB7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB7.Locked=true
+PB7.Mode=Asynchronous
+PB7.Signal=USART1_RX
+PB8.Locked=true
+PB8.Signal=I2C1_SCL
+PB9.GPIOParameters=GPIO_Label
+PB9.GPIO_Label=QSPI_BK_IO0
+PB9.Locked=true
+PB9.Signal=QUADSPI_BK1_IO0
+PC0.GPIOParameters=GPIO_Label
+PC0.GPIO_Label=LPUART1_RX_MCU
+PC0.Locked=true
+PC0.Signal=LPUART1_RX
+PC1.Locked=true
+PC1.Signal=ADCx_IN2
+PC10.Locked=true
+PC10.Signal=GPIO_Input
+PC11.Locked=true
+PC11.Signal=GPIO_Input
+PC12.GPIOParameters=GPIO_Label
+PC12.GPIO_Label=User-B1
+PC12.Locked=true
+PC12.Signal=SYS_WKUP3
+PC13.GPIOParameters=GPIO_Label
+PC13.GPIO_Label=User-B2
+PC13.Locked=true
+PC13.Signal=SYS_WKUP2
+PC2.Locked=true
+PC2.Signal=GPIO_Input
+PC3.Locked=true
+PC3.Signal=ADCx_IN4
+PC4.Locked=true
+PC4.Signal=ADCx_IN13
+PC5.Locked=true
+PC5.Signal=ADCx_IN14
+PC6.GPIOParameters=GPIO_Label
+PC6.GPIO_Label=TSC_G4_IO1
+PC6.Locked=true
+PC6.Signal=TSC_G4_IO1
+PC7.GPIOParameters=GPIO_Label
+PC7.GPIO_Label=TSC_G4_IO2
+PC7.Locked=true
+PC7.Signal=TSC_G4_IO2
+PC8.GPIOParameters=GPIO_Label
+PC8.GPIO_Label=RST_DISP
+PC8.Locked=true
+PC8.Signal=GPIO_Output
+PC9.GPIOParameters=GPIO_Label
+PC9.GPIO_Label=D/C_DISP
+PC9.Locked=true
+PC9.Signal=GPIO_Output
+PCC.Ble.ConnectionInterval=1000.0
+PCC.Ble.DataLength=6
+PCC.Ble.IsUsed=false
+PCC.Ble.Mode=NOT_SELECTED
+PCC.Ble.PowerLevel=Min
+PCC.Zigbee.IsUsed=false
+PCC.Zigbee.Mode=Sleepy End Device
+PCC.Zigbee.Payload=15
+PCC.Zigbee.PoolPeriodicity=480.0
+PCC.Zigbee.PowerLevel=Min
+PCC.Zigbee.RequestPeriodicity=1500.0
+PD0.Locked=true
+PD0.Signal=SPI2_NSS
+PD1.Locked=true
+PD1.Signal=SPI2_SCK
+PD10.GPIOParameters=GPIO_Label
+PD10.GPIO_Label=TSC_G6_IO1
+PD10.Locked=true
+PD10.Signal=TSC_G6_IO1
+PD11.GPIOParameters=GPIO_Label
+PD11.GPIO_Label=TSC_G6_IO2
+PD11.Locked=true
+PD11.Signal=TSC_G6_IO2
+PD12.Locked=true
+PD12.Signal=GPIO_Input
+PD13.Locked=true
+PD13.Signal=GPIO_Input
+PD14.Locked=true
+PD14.Signal=S_TIM1_CH1
+PD15.Locked=true
+PD15.Signal=S_TIM1_CH2
+PD2.GPIOParameters=GPIO_Label
+PD2.GPIO_Label=INT1
+PD2.Locked=true
+PD2.Signal=GPXTI2
+PD3.GPIOParameters=GPIO_Label
+PD3.GPIO_Label=QSPI_BK_NCS
+PD3.Locked=true
+PD3.Signal=QUADSPI_BK1_NCS
+PD4.Locked=true
+PD4.Signal=GPIO_Input
+PD5.GPIOParameters=GPIO_Label
+PD5.GPIO_Label=QSPI_BK_IO1
+PD5.Locked=true
+PD5.Signal=QUADSPI_BK1_IO1
+PD6.GPIOParameters=GPIO_Label
+PD6.GPIO_Label=QSPI_BK_IO2
+PD6.Locked=true
+PD6.Signal=QUADSPI_BK1_IO2
+PD8.Locked=true
+PD8.Signal=GPIO_Output
+PD9.GPIOParameters=GPIO_Label
+PD9.GPIO_Label=INT2
+PD9.Locked=true
+PD9.Signal=GPXTI9
+PE0.Locked=true
+PE0.Signal=S_TIM16_CH1
+PE1.GPIOParameters=GPIO_Label
+PE1.GPIO_Label=DRDY
+PE1.Locked=true
+PE1.Signal=GPIO_Input
+PE2.GPIOParameters=GPIO_Label
+PE2.GPIO_Label=GPIO_SELECT1
+PE2.Locked=true
+PE2.Signal=GPIO_Output
+PE3.Locked=true
+PE3.Signal=GPXTI3
+PE4.Locked=true
+PE4.Signal=GPIO_Input
+PH0.GPIOParameters=GPIO_Label
+PH0.GPIO_Label=CS_DISP
+PH0.Locked=true
+PH0.Signal=GPIO_Output
+PH1.GPIOParameters=GPIO_Label
+PH1.GPIO_Label=GPIO_SELECT2
+PH1.Locked=true
+PH1.Signal=GPIO_Output
+PinOutPanel.CurrentBGAView=Top
+PinOutPanel.RotationAngle=0
+ProjectManager.AskForMigrate=true
+ProjectManager.BackupPrevious=false
+ProjectManager.CompilerOptimize=6
+ProjectManager.ComputerToolchain=false
+ProjectManager.CoupleFile=false
+ProjectManager.DeletePrevious=true
+ProjectManager.DeviceId=STM32WB5MMGHx
+ProjectManager.FreePins=false
+ProjectManager.HalAssertFull=false
+ProjectManager.HeapSize=0x400
+ProjectManager.KeepUserCode=true
+ProjectManager.LastFirmware=false
+ProjectManager.LibraryCopy=2
+ProjectManager.MainLocation=Core/Src
+ProjectManager.NoMain=false
+ProjectManager.PreviousToolchain=
+ProjectManager.ProjectBuild=false
+ProjectManager.ProjectFileName=BLE_HeartRate.ioc
+ProjectManager.ProjectName=BLE_HeartRate
+ProjectManager.RegisterCallBack=
+ProjectManager.StackSize=0x1000
+ProjectManager.TargetToolchain=EWARM V8
+ProjectManager.ToolChainLocation=
+ProjectManager.UnderRoot=false
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_RF_Init-RF-false-HAL-true,5-MX_RTC_Init-RTC-false-HAL-true,false-6-MX_TIM17_Init-TIM17-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-false,8-APPE_Init-STM32_WPAN-false-HAL-false,false-9-MX_I2C3_Init-I2C3-false-HAL-true,false-10-MX_SPI1_Init-SPI1-false-HAL-true,11-MX_IPCC_Init-IPCC-false-HAL-true,0-MX_HSEM_Init-HSEM-false-HAL-true
+RCC.AHBFreq_Value=32000000
+RCC.APB1Freq_Value=32000000
+RCC.APB1TimFreq_Value=32000000
+RCC.APB2Freq_Value=32000000
+RCC.APB2TimFreq_Value=32000000
+RCC.APB3Freq_Value=16000000
+RCC.Cortex2Freq_Value=32000000
+RCC.CortexFreq_Value=32000000
+RCC.FCLK2Freq_Value=32000000
+RCC.FCLKCortexFreq_Value=32000000
+RCC.FamilyName=M
+RCC.HCLK2Freq_Value=32000000
+RCC.HCLK3Freq_Value=32000000
+RCC.HCLKFreq_Value=32000000
+RCC.HCLKRFFreq_Value=16000000
+RCC.HSE_VALUE=32000000
+RCC.HSI48_VALUE=48000000
+RCC.HSI_VALUE=16000000
+RCC.I2C1Freq_Value=32000000
+RCC.I2C3Freq_Value=32000000
+RCC.IPParameters=AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,Cortex2Freq_Value,CortexFreq_Value,FCLK2Freq_Value,FCLKCortexFreq_Value,FamilyName,HCLK2Freq_Value,HCLK3Freq_Value,HCLKFreq_Value,HCLKRFFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C3Freq_Value,LCDFreq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PWRFreq_Value,RFWKPClockSelection,RFWKPFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SMPS1Freq_Value,SMPSCLockSelectionVirtual,SMPSFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value
+RCC.LCDFreq_Value=32768
+RCC.LPTIM1Freq_Value=32000000
+RCC.LPTIM2Freq_Value=32000000
+RCC.LPUART1Freq_Value=32000000
+RCC.LSCOPinFreq_Value=32000
+RCC.LSI_VALUE=32000
+RCC.MCO1PinFreq_Value=32000000
+RCC.PLLPoutputFreq_Value=16000000
+RCC.PLLQoutputFreq_Value=16000000
+RCC.PLLRCLKFreq_Value=16000000
+RCC.PLLSAI1PoutputFreq_Value=16000000
+RCC.PLLSAI1QoutputFreq_Value=16000000
+RCC.PLLSAI1RoutputFreq_Value=16000000
+RCC.PWRFreq_Value=32000000
+RCC.RFWKPClockSelection=RCC_RFWKPCLKSOURCE_LSE
+RCC.RFWKPFreq_Value=32768
+RCC.RNGFreq_Value=32000
+RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE
+RCC.RTCFreq_Value=32768
+RCC.SAI1Freq_Value=16000000
+RCC.SMPS1Freq_Value=16000000
+RCC.SMPSCLockSelectionVirtual=RCC_SMPSCLKSOURCE_HSE
+RCC.SMPSFreq_Value=8000000
+RCC.SYSCLKFreq_VALUE=32000000
+RCC.SYSCLKSource=RCC_SYSCLKSOURCE_HSE
+RCC.USART1Freq_Value=32000000
+RCC.VCOInputFreq_Value=4000000
+RCC.VCOOutputFreq_Value=32000000
+RCC.VCOSAI1OutputFreq_Value=32000000
+SH.ADCx_IN10.0=ADC1_IN10
+SH.ADCx_IN10.ConfNb=1
+SH.ADCx_IN13.0=ADC1_IN13
+SH.ADCx_IN13.ConfNb=1
+SH.ADCx_IN14.0=ADC1_IN14
+SH.ADCx_IN14.ConfNb=1
+SH.ADCx_IN2.0=ADC1_IN2
+SH.ADCx_IN2.ConfNb=1
+SH.ADCx_IN4.0=ADC1_IN4
+SH.ADCx_IN4.ConfNb=1
+SH.ADCx_IN5.0=ADC1_IN5
+SH.ADCx_IN5.ConfNb=1
+SH.ADCx_IN7.0=ADC1_IN7
+SH.ADCx_IN7.ConfNb=1
+SH.GPXTI2.0=GPIO_EXTI2
+SH.GPXTI2.ConfNb=1
+SH.GPXTI3.0=GPIO_EXTI3
+SH.GPXTI3.ConfNb=1
+SH.GPXTI9.0=GPIO_EXTI9
+SH.GPXTI9.ConfNb=1
+SH.S_TIM16_CH1.0=TIM16_CH1
+SH.S_TIM16_CH1.ConfNb=1
+SH.S_TIM1_CH1.0=TIM1_CH1
+SH.S_TIM1_CH1.ConfNb=1
+SH.S_TIM1_CH2.0=TIM1_CH2
+SH.S_TIM1_CH2.ConfNb=1
+SH.S_TIM2_CH1.0=TIM2_CH1
+SH.S_TIM2_CH1.ConfNb=1
+SH.S_TIM2_CH3.0=TIM2_CH3
+SH.S_TIM2_CH3.ConfNb=1
+SPI1.CalculateBaudRate=16.0 MBits/s
+SPI1.Direction=SPI_DIRECTION_2LINES
+SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
+SPI1.Mode=SPI_MODE_MASTER
+SPI1.VirtualType=VM_MASTER
+STM32_WPAN.BLE_CFG_SVC_MAX_NBR_CB=7
+STM32_WPAN.BLE_DBG_DIS_EN=1
+STM32_WPAN.BLE_DBG_HRS_EN=1
+STM32_WPAN.BLE_DBG_SVCCTL_EN=1
+STM32_WPAN.BT_SIG_HEART_RATE_SENSOR=Enabled
+STM32_WPAN.CFG_ADV_BD_ADDRESS=0x7257acd87a6c
+STM32_WPAN.CFG_BONDING_MODE=1
+STM32_WPAN.CFG_DEBUGGER_SUPPORTED=1
+STM32_WPAN.CFG_DEBUG_APP_TRACE=1
+STM32_WPAN.CFG_DEBUG_BLE_TRACE=1
+STM32_WPAN.CFG_DEBUG_TRACE_LIGHT=1
+STM32_WPAN.CFG_DEBUG_TRACE_UART=hw_uart1
+STM32_WPAN.CFG_HW_USART1_ENABLED=1
+STM32_WPAN.CFG_LPM_SUPPORTED=0
+STM32_WPAN.CFG_USE_SMPS=0
+STM32_WPAN.CUSTOM_P2P_SERVER=Disabled
+STM32_WPAN.IPParameters=CUSTOM_P2P_SERVER,BT_SIG_HEART_RATE_SENSOR,BLE_CFG_SVC_MAX_NBR_CB,CFG_HW_USART1_ENABLED,CFG_DEBUGGER_SUPPORTED,CFG_DEBUG_TRACE_UART,CFG_LPM_SUPPORTED,CFG_ADV_BD_ADDRESS,CFG_BONDING_MODE,BLE_DBG_DIS_EN,BLE_DBG_HRS_EN,BLE_DBG_SVCCTL_EN,CFG_DEBUG_TRACE_LIGHT,CFG_DEBUG_BLE_TRACE,CFG_DEBUG_APP_TRACE,CFG_USE_SMPS,LOCAL_NAME,LOCAL_NAME_FORMATTED
+STM32_WPAN.LOCAL_NAME=HRSTM
+STM32_WPAN.LOCAL_NAME_FORMATTED=,'H','R','S','T','M'
+USART1.IPParameters=VirtualMode-Asynchronous,OverSampling
+USART1.OverSampling=UART_OVERSAMPLING_8
+USART1.VirtualMode-Asynchronous=VM_ASYNC
+VP_HSEM_VS_HSEM.Mode=HSEM_Activate
+VP_HSEM_VS_HSEM.Signal=HSEM_VS_HSEM
+VP_IPCC_VS_IPCC.Mode=IPCC_Activate
+VP_IPCC_VS_IPCC.Signal=IPCC_VS_IPCC
+VP_RCC_V_OSC32_IN.Mode=LSE-External-Clock-Source
+VP_RCC_V_OSC32_IN.Signal=RCC_V_OSC32_IN
+VP_RCC_V_OSC_IN.Mode=HSE-External-Clock-Source
+VP_RCC_V_OSC_IN.Signal=RCC_V_OSC_IN
+VP_RF_VS_RF.Mode=RF_Activate
+VP_RF_VS_RF.Signal=RF_VS_RF
+VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
+VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
+VP_SEQUENCER_VS_SEQUENCER.Mode=SEQUENCER_Enabled
+VP_SEQUENCER_VS_SEQUENCER.Signal=SEQUENCER_VS_SEQUENCER
+VP_STM32_WPAN_VS_BLE_HOST.Mode=STM32_WPAN_Enabled
+VP_STM32_WPAN_VS_BLE_HOST.Signal=STM32_WPAN_VS_BLE_HOST
+VP_SYS_VS_Systick.Mode=SysTick
+VP_SYS_VS_Systick.Signal=SYS_VS_Systick
+VP_TIM17_VS_ClockSourceINT.Mode=Enable_Timer
+VP_TIM17_VS_ClockSourceINT.Signal=TIM17_VS_ClockSourceINT
+VP_TINY_LPM_VS_TINY_LPM.Mode=TINY_LPM_Enabled
+VP_TINY_LPM_VS_TINY_LPM.Signal=TINY_LPM_VS_TINY_LPM
+board=STM32WB5MM-DK
+boardIOC=true
+ProjectManager.Example=BLE_HeartRate
+ProjectManager.ExampleSource=CubeFw
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_common.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_common.h
index 3981eb9da..62e8ad603 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_common.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_common.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_common.h
- * Description : App Common application configuration file for STM32WPAN Middleware.
- *
+ ******************************************************************************
+ * @file app_common.h
+ * @author MCD Application Team
+ * @brief App Common application configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -115,5 +114,3 @@ extern "C"{
#endif
#endif /*APP_COMMON_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_conf.h
index a59aeb43c..4987ac13c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_conf.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_conf.h
- * Description : Application configuration file for STM32WPAN Middleware.
+ ******************************************************************************
+ * @file app_conf.h
+ * @author MCD Application Team
+ * @brief Application configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -42,8 +42,7 @@
* Define Advertising parameters
*/
#define CFG_ADV_BD_ADDRESS (0x7257acd87a6c)
-#define CFG_BLE_ADDRESS_TYPE RANDOM_ADDR /**< Bluetooth address types defined in ble_legacy.h */
-/*#define CFG_STATIC_RANDOM_ADDRESS (0xf257acd87a6c)*/ /**< Static Random Address fixed for lifetime of the device */
+#define CFG_BLE_ADDRESS_TYPE PUBLIC_ADDR /**< Bluetooth address types defined in ble_legacy.h */
#define CFG_FAST_CONN_ADV_INTERVAL_MIN (0x80) /**< 80ms */
#define CFG_FAST_CONN_ADV_INTERVAL_MAX (0xA0) /**< 100ms */
@@ -261,6 +260,10 @@
* - SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC
* - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RO
* - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW
+ * - SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV
+ * - SHCI_C2_BLE_INIT_OPTIONS_CS_ALGO2
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2
* - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_1
* - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3
* which are used to set following configuration bits:
@@ -270,11 +273,15 @@
* 0: with service change desc.
* (bit 2): 1: device name Read-Only
* 0: device name R/W
+ * (bit 3): 1: extended advertizing supported [NOT SUPPORTED]
+ * 0: extended advertizing not supported [NOT SUPPORTED]
+ * (bit 4): 1: CS Algo #2 supported
+ * 0: CS Algo #2 not supported
* (bit 7): 1: LE Power Class 1
* 0: LE Power Class 2-3
* other bits: reserved (shall be set to 0)
*/
-#define CFG_BLE_OPTIONS (SHCI_C2_BLE_INIT_OPTIONS_LL_HOST | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
+#define CFG_BLE_OPTIONS (SHCI_C2_BLE_INIT_OPTIONS_LL_HOST | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV | SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2 | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
#define CFG_BLE_MAX_COC_INITIATOR_NBR (32)
@@ -282,6 +289,18 @@
#define CFG_BLE_MAX_TX_POWER (0)
+/**
+ * BLE Rx model configuration flags to be configured with:
+ * - SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_LEGACY
+ * - SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_BLOCKER
+ * which are used to set following configuration bits:
+ * (bit 0): 1: agc_rssi model improved vs RF blockers
+ * 0: Legacy agc_rssi model
+ * other bits: reserved (shall be set to 0)
+ */
+
+#define CFG_BLE_RX_MODEL_CONFIG SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_LEGACY
+
/******************************************************************************
* Transport Layer
******************************************************************************/
@@ -429,8 +448,9 @@
#endif
-/** tick timer value in us */
+/** tick timer values */
#define CFG_TS_TICK_VAL DIVR( (CFG_RTCCLK_DIV * 1000000), LSE_VALUE )
+#define CFG_TS_TICK_VAL_PS DIVR( ((uint64_t)CFG_RTCCLK_DIV * 1e12), (uint64_t)LSE_VALUE )
typedef enum
{
@@ -545,9 +565,9 @@ typedef enum
CFG_TASK_ADV_UPDATE_ID,
CFG_TASK_MEAS_REQ_ID,
CFG_TASK_HCI_ASYNCH_EVT_ID,
-/* USER CODE BEGIN CFG_Task_Id_With_HCI_Cmd_t */
+ /* USER CODE BEGIN CFG_Task_Id_With_HCI_Cmd_t */
CFG_TASK_SW_BUTTON_PUSHED_ID,
-/* USER CODE END CFG_Task_Id_With_HCI_Cmd_t */
+ /* USER CODE END CFG_Task_Id_With_HCI_Cmd_t */
CFG_LAST_TASK_ID_WITH_HCICMD, /**< Shall be LAST in the list */
} CFG_Task_Id_With_HCI_Cmd_t;
@@ -556,11 +576,12 @@ typedef enum
{
CFG_FIRST_TASK_ID_WITH_NO_HCICMD = CFG_LAST_TASK_ID_WITH_HCICMD - 1, /**< Shall be FIRST in the list */
CFG_TASK_SYSTEM_HCI_ASYNCH_EVT_ID,
-/* USER CODE BEGIN CFG_Task_Id_With_NO_HCI_Cmd_t */
+ /* USER CODE BEGIN CFG_Task_Id_With_NO_HCI_Cmd_t */
-/* USER CODE END CFG_Task_Id_With_NO_HCI_Cmd_t */
+ /* USER CODE END CFG_Task_Id_With_NO_HCI_Cmd_t */
CFG_LAST_TASK_ID_WITHO_NO_HCICMD /**< Shall be LAST in the list */
} CFG_Task_Id_With_NO_HCI_Cmd_t;
+
#define CFG_TASK_NBR CFG_LAST_TASK_ID_WITHO_NO_HCICMD
/**
@@ -593,9 +614,9 @@ typedef enum
{
CFG_LPM_APP,
CFG_LPM_APP_BLE,
- /* USER CODE BEGIN CFG_LPM_Id_t */
+ /* USER CODE BEGIN CFG_LPM_Id_t */
- /* USER CODE END CFG_LPM_Id_t */
+ /* USER CODE END CFG_LPM_Id_t */
} CFG_LPM_Id_t;
/******************************************************************************
@@ -606,5 +627,3 @@ typedef enum
#define CFG_OTP_END_ADRESS OTP_AREA_END_ADDR
#endif /*APP_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_debug.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_debug.h
index 9354bf8a9..9237f301f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_debug.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_debug.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_debug.h
- * Description : Header for app_debug.c module
- ******************************************************************************
+ ******************************************************************************
+ * @file app_debug.h
+ * @author MCD Application Team
+ * @brief Header for app_debug.c module
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -65,5 +65,3 @@ extern "C" {
#endif
#endif /*__APP_DEBUG_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_entry.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_entry.h
index f559a7d8e..752734d7e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_entry.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/app_entry.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_entry.h
- * Description : App entry configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ ******************************************************************************
+ * @file app_entry.h
+ * @author MCD Application Team
+ * @brief Interface to the application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -60,6 +60,9 @@ extern "C" {
void MX_APPE_Config( void );
void MX_APPE_Init( void );
void MX_APPE_Process( void );
+ void Init_Exti( void );
+ void Init_Smps( void );
+
/* USER CODE BEGIN EF */
void LED_Deinit(void);
void LED_On(aPwmLedGsData_TypeDef aPwmLedGsData);
@@ -71,5 +74,3 @@ extern "C" {
#endif
#endif /*APP_ENTRY_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/hw_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/hw_conf.h
index 9ea733a63..cc426a452 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/hw_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/hw_conf.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : hw_conf.h
- * Description : Hardware configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ ******************************************************************************
+ * @file hw_conf.h
+ * @author MCD Application Team
+ * @brief Configuration of hardware interface
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -210,5 +210,3 @@
#define CFG_HW_USART1_DMA_TX_IRQHandler DMA2_Channel4_IRQHandler
#endif /*HW_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/hw_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/hw_if.h
index 92a787b69..403bf1ed7 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/hw_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/hw_if.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -150,7 +149,7 @@ extern "C" {
* @param pTimerId: Timer Id returned to the user to request operation (start, stop, delete)
* @param TimerMode: Mode of the virtual timer (Single shot or repeated)
* @param pTimerCallBack: Callback when the virtual timer expires
- * @retval HW_TS_ReturnStatus_t: Return whether the creation is sucessful or not
+ * @retval HW_TS_ReturnStatus_t: Return whether the creation is successful or not
*/
HW_TS_ReturnStatus_t HW_TS_Create(uint32_t TimerProcessID, uint8_t *pTimerId, HW_TS_Mode_t TimerMode, HW_TS_pTimerCb_t pTimerCallBack);
@@ -249,5 +248,3 @@ extern "C" {
#endif
#endif /*HW_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/main.h
index e2a9f44c2..ab3c3a4b0 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/main.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/main.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -143,5 +142,3 @@ void MX_USART1_UART_Init(void);
#endif
#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32_lpm_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32_lpm_if.h
index e1aecd591..45c31caa5 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32_lpm_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32_lpm_if.h
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
-******************************************************************************
-* @file stm32_lpm_if.h
-* @brief Header for stm32_lpm_if.c module (device specific LP management)
-******************************************************************************
-* @attention
-*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @file stm32_lpm_if.h
+ * @author MCD Application Team
+ * @brief Header for stm32_lpm_if.c module (device specific LP management)
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -77,5 +77,3 @@ void PWR_ExitSleepMode( void );
#endif
#endif /*__STM32_LPM_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wb5mm_dk_conf.h
index 12589916a..9aefd8c2d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wb5mm_dk_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wb5mm_dk_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -92,5 +91,3 @@ extern "C" {
#endif
#endif /* STM32WB5MM_DK_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wbxx_hal_conf.h
index 291c8a9e9..0de7f34ea 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wbxx_hal_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wbxx_hal_conf.h
@@ -1,3 +1,4 @@
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32wbxx_hal_conf.h
@@ -6,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32WBxx_HAL_CONF_H
@@ -46,7 +47,7 @@
/*#define HAL_LPTIM_MODULE_ENABLED */
/*#define HAL_PCD_MODULE_ENABLED */
/*#define HAL_PKA_MODULE_ENABLED */
-#define HAL_QSPI_MODULE_ENABLED
+/*#define HAL_QSPI_MODULE_ENABLED */
/*#define HAL_RNG_MODULE_ENABLED */
#define HAL_RTC_MODULE_ENABLED
/*#define HAL_SAI_MODULE_ENABLED */
@@ -349,5 +350,3 @@
#endif
#endif /* __STM32WBxx_HAL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wbxx_it.h
index 473bef7e2..5ba8bf25d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wbxx_it.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/stm32wbxx_it.h
@@ -6,15 +6,14 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
+ ******************************************************************************
*/
/* USER CODE END Header */
@@ -73,5 +72,3 @@ void PUSH_BUTTON_SW_EXTI_IRQHandler(void);
#endif
#endif /* __STM32WBxx_IT_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/utilities_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/utilities_conf.h
index 4edfbbacf..c34a6ca79 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/utilities_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Inc/utilities_conf.h
@@ -1,21 +1,20 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : utilities_conf.h
- * Description : Configuration file for STM32 Utilities.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file utilities_conf.h
+ * @author MCD Application Team
+ * @brief Configuration file for STM32 Utilities.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- *****************************************************************************
+ ******************************************************************************
*/
/* USER CODE END Header */
@@ -64,5 +63,3 @@ extern "C" {
#endif
#endif /*UTILITIES_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/app_debug.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/app_debug.c
index 7b2d278a5..ebdc12e32 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/app_debug.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/app_debug.c
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_debug.c
- * Description : Debug capabilities source file for STM32WPAN Middleware
- ******************************************************************************
+ ******************************************************************************
+ * @file app_debug.c
+ * @author MCD Application Team
+ * @brief Debug capabilities source file for STM32WPAN Middleware
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -43,7 +43,7 @@ typedef PACKED_STRUCT
/* Private defines -----------------------------------------------------------*/
/* USER CODE BEGIN PD */
#define GPIO_NBR_OF_RF_SIGNALS 9
-#define GPIO_CFG_NBR_OF_FEATURES 34
+#define GPIO_CFG_NBR_OF_FEATURES 38
#define NBR_OF_TRACES_CONFIG_PARAMETERS 4
#define NBR_OF_GENERAL_CONFIG_PARAMETERS 4
@@ -128,8 +128,16 @@ static const APPD_GpioConfig_t aGpioConfigList[GPIO_CFG_NBR_OF_FEATURES] =
/* From v1.4.0 */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* NVMA_START - Set on Entry / Reset on Exit */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_EOP - Set on Entry / Reset on Exit */
+/* From v1.5.0 */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_WRITE - Set on Entry / Reset on Exit */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_ERASE - Set on Entry / Reset on Exit */
+/* From v1.6.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_RESCHEDULE_EVENT - Set on Entry / Reset on Exit */
+/* From v1.8.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_LLD_CMD_RX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_LLD_ACK_TX - Set on Entry / Reset on Exit */
+/* From v1.9.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_ASYNCH_EVENT_NACKED - Set on Entry / Reset on Exit */
};
/**
@@ -408,5 +416,3 @@ void DbgOutputTraces( uint8_t *p_data, uint16_t size, void (*cb)(void) )
return;
}
#endif
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/app_entry.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/app_entry.c
index 98fb79035..95cfcced7 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/app_entry.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/app_entry.c
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_entry.c
- * Description : Entry application source file for STM32WPAN Middleware
- ******************************************************************************
+ ******************************************************************************
+ * @file app_entry.c
+ * @author MCD Application Team
+ * @brief Entry point of the Application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -29,6 +29,8 @@
#include "shci_tl.h"
#include "stm32_lpm.h"
#include "app_debug.h"
+#include "dbg_trace.h"
+#include "shci.h"
#include "otp.h"
/* Private includes -----------------------------------------------------------*/
@@ -66,16 +68,18 @@ PLACE_IN_SECTION("MB_MEM2") ALIGN(4) static uint8_t BleSpareEvtBuffer[sizeof(TL_
/* Private functions prototypes-----------------------------------------------*/
static void Config_HSE(void);
static void Reset_Device( void );
+#if ( CFG_HW_RESET_BY_FW == 1 )
static void Reset_IPCC( void );
static void Reset_BackupDomain( void );
+#endif /* CFG_HW_RESET_BY_FW */
static void System_Init( void );
static void SystemPower_Config( void );
static void appe_Tl_Init( void );
static void APPE_SysStatusNot( SHCI_TL_CmdStatus_t status );
static void APPE_SysUserEvtRx( void * pPayload );
-static void Init_Exti( void );
+static void APPE_SysEvtReadyProcessing( void * pPayload );
+static void APPE_SysEvtError( void * pPayload);
static void Init_Rtc( void );
-static void Init_Smps( void );
/* USER CODE BEGIN PFP */
static void Button_Init( void );
@@ -154,6 +158,33 @@ void MX_APPE_Init( void )
/* USER CODE END APPE_Init_2 */
return;
}
+
+void Init_Smps( void )
+{
+#if (CFG_USE_SMPS != 0)
+ /**
+ * Configure and enable SMPS
+ *
+ * The SMPS configuration is not yet supported by CubeMx
+ * when SMPS output voltage is set to 1.4V, the RF output power is limited to 3.7dBm
+ * the SMPS output voltage shall be increased for higher RF output power
+ */
+ LL_PWR_SMPS_SetStartupCurrent(LL_PWR_SMPS_STARTUP_CURRENT_80MA);
+ LL_PWR_SMPS_SetOutputVoltageLevel(LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
+ LL_PWR_SMPS_Enable();
+#endif
+
+ return;
+}
+
+void Init_Exti( void )
+{
+ /* Enable IPCC(36), HSEM(38) wakeup interrupts on CPU1 */
+ LL_EXTI_EnableIT_32_63( LL_EXTI_LINE_36 & LL_EXTI_LINE_38 );
+
+ return;
+}
+
/* USER CODE BEGIN FD */
void LED_Deinit(void)
@@ -199,11 +230,12 @@ static void Reset_Device( void )
Reset_BackupDomain();
Reset_IPCC();
-#endif
+#endif /* CFG_HW_RESET_BY_FW */
return;
}
+#if ( CFG_HW_RESET_BY_FW == 1 )
static void Reset_BackupDomain( void )
{
if ((LL_RCC_IsActiveFlag_PINRST() != FALSE) && (LL_RCC_IsActiveFlag_SFTRST() == FALSE))
@@ -259,6 +291,7 @@ static void Reset_IPCC( void )
return;
}
+#endif /* CFG_HW_RESET_BY_FW */
static void Config_HSE(void)
{
@@ -287,33 +320,6 @@ static void System_Init( void )
return;
}
-static void Init_Smps( void )
-{
-#if (CFG_USE_SMPS != 0)
- /**
- * Configure and enable SMPS
- *
- * The SMPS configuration is not yet supported by CubeMx
- * when SMPS output voltage is set to 1.4V, the RF output power is limited to 3.7dBm
- * the SMPS output voltage shall be increased for higher RF output power
- */
- LL_PWR_SMPS_SetStartupCurrent(LL_PWR_SMPS_STARTUP_CURRENT_80MA);
- LL_PWR_SMPS_SetOutputVoltageLevel(LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
- LL_PWR_SMPS_Enable();
-#endif
-
- return;
-}
-
-static void Init_Exti( void )
-{
- /**< Disable all wakeup interrupt on CPU1 except IPCC(36), HSEM(38) */
- LL_EXTI_DisableIT_0_31(~0);
- LL_EXTI_DisableIT_32_63( (~0) & (~(LL_EXTI_LINE_36 | LL_EXTI_LINE_38)) );
-
- return;
-}
-
static void Init_Rtc( void )
{
/* Disable RTC registers write protection */
@@ -326,6 +332,7 @@ static void Init_Rtc( void )
return;
}
+
/**
* @brief Configure the system for power optimization
*
@@ -398,12 +405,151 @@ static void APPE_SysStatusNot( SHCI_TL_CmdStatus_t status )
*/
static void APPE_SysUserEvtRx( void * pPayload )
{
- UNUSED(pPayload);
- /* Traces channel initialization */
- APPD_EnableCPU2( );
+ TL_AsynchEvt_t *p_sys_event;
+ WirelessFwInfo_t WirelessInfo;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+
+ /* Read the firmware version of both the wireless firmware and the FUS */
+ SHCI_GetWirelessFwInfo( &WirelessInfo );
+ APP_DBG_MSG("Wireless Firmware version %d.%d.%d\n", WirelessInfo.VersionMajor, WirelessInfo.VersionMinor, WirelessInfo.VersionSub);
+ APP_DBG_MSG("Wireless Firmware build %d\n", WirelessInfo.VersionReleaseType);
+ APP_DBG_MSG("FUS version %d.%d.%d\n\n", WirelessInfo.FusVersionMajor, WirelessInfo.FusVersionMinor, WirelessInfo.FusVersionSub);
+
+ switch(p_sys_event->subevtcode)
+ {
+ case SHCI_SUB_EVT_CODE_READY:
+ APPE_SysEvtReadyProcessing(pPayload);
+ break;
+
+ case SHCI_SUB_EVT_ERROR_NOTIF:
+ APPE_SysEvtError(pPayload);
+ break;
+
+ case SHCI_SUB_EVT_BLE_NVM_RAM_UPDATE:
+ APP_DBG_MSG("-- BLE NVM RAM HAS BEEN UPDATED BY CMO+ \n");
+ APP_DBG_MSG("SHCI_SUB_EVT_BLE_NVM_RAM_UPDATE : StartAddress = %lx , Size = %ld\n",
+ ((SHCI_C2_BleNvmRamUpdate_Evt_t*)p_sys_event->payload)->StartAddress,
+ ((SHCI_C2_BleNvmRamUpdate_Evt_t*)p_sys_event->payload)->Size);
+ break;
+
+ case SHCI_SUB_EVT_NVM_START_WRITE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_START_WRITE : NumberOfWords = %ld\n",
+ ((SHCI_C2_NvmStartWrite_Evt_t*)p_sys_event->payload)->NumberOfWords);
+ break;
+
+ case SHCI_SUB_EVT_NVM_END_WRITE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_END_WRITE\n");
+ break;
+
+ case SHCI_SUB_EVT_NVM_START_ERASE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_START_ERASE : NumberOfSectors = %ld\n",
+ ((SHCI_C2_NvmStartErase_Evt_t*)p_sys_event->payload)->NumberOfSectors);
+ break;
+
+ case SHCI_SUB_EVT_NVM_END_ERASE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_END_ERASE\n");
+ break;
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+/**
+ * @brief Notify a system error coming from the M0 firmware
+ * @param ErrorCode : errorCode detected by the M0 firmware
+ *
+ * @retval None
+ */
+static void APPE_SysEvtError( void * pPayload)
+{
+ TL_AsynchEvt_t *p_sys_event;
+ SCHI_SystemErrCode_t *p_sys_error_code;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+ p_sys_error_code = (SCHI_SystemErrCode_t*) p_sys_event->payload;
+
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON %x \n",(*p_sys_error_code));
+
+ if ((*p_sys_error_code) == ERR_BLE_INIT)
+ {
+ /* Error during BLE stack initialization */
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON - ERR_BLE_INIT \n");
+ }
+ else
+ {
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON - BLE ERROR \n");
+ }
+ return;
+}
+
+static void APPE_SysEvtReadyProcessing( void * pPayload )
+{
+ TL_AsynchEvt_t *p_sys_event;
+ SHCI_C2_Ready_Evt_t *p_sys_ready_event;
+
+ SHCI_C2_CONFIG_Cmd_Param_t config_param = {0};
+ uint32_t RevisionID=0;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+ p_sys_ready_event = (SHCI_C2_Ready_Evt_t*) p_sys_event->payload;
+
+ if(p_sys_ready_event->sysevt_ready_rsp == WIRELESS_FW_RUNNING)
+ {
+ /**
+ * The wireless firmware is running on the CPU2
+ */
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - WIRELESS_FW_RUNNING \n");
+
+ /* Traces channel initialization */
+ APPD_EnableCPU2( );
+
+ /* Enable all events Notification */
+ config_param.PayloadCmdSize = SHCI_C2_CONFIG_PAYLOAD_CMD_SIZE;
+ config_param.EvtMask1 = SHCI_C2_CONFIG_EVTMASK1_BIT0_ERROR_NOTIF_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT1_BLE_NVM_RAM_UPDATE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT2_THREAD_NVM_RAM_UPDATE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT3_NVM_START_WRITE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT4_NVM_END_WRITE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT5_NVM_START_ERASE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT6_NVM_END_ERASE_ENABLE;
+
+ /* Read revision identifier */
+ /**
+ * @brief Return the device revision identifier
+ * @note This field indicates the revision of the device.
+ * @rmtoll DBGMCU_IDCODE REV_ID LL_DBGMCU_GetRevisionID
+ * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF
+ */
+ RevisionID = LL_DBGMCU_GetRevisionID();
+
+ APP_DBG_MSG("DBGMCU_GetRevisionID= %lx \n\n", RevisionID);
+
+ config_param.RevisionID = RevisionID;
+ (void)SHCI_C2_Config(&config_param);
+
+ APP_BLE_Init( );
+ UTIL_LPM_SetOffMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE);
+ }
+ else if (p_sys_ready_event->sysevt_ready_rsp == FUS_FW_RUNNING)
+ {
+ /**
+ * The FUS firmware is running on the CPU2
+ * In the scope of this application, there should be no case when we get here
+ */
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - FUS_FW_RUNNING \n");
+
+ /* The packet shall not be released as this is not supported by the FUS */
+ ((tSHCI_UserEvtRxParam*)pPayload)->status = SHCI_TL_UserEventFlow_Disable;
+ }
+ else
+ {
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - UNEXPECTED CASE \n");
+ }
- APP_BLE_Init( );
- UTIL_LPM_SetOffMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE);
return;
}
@@ -487,6 +633,8 @@ void UTIL_SEQ_Idle( void )
void UTIL_SEQ_EvtIdle( UTIL_SEQ_bm_t task_id_bm, UTIL_SEQ_bm_t evt_waited_bm )
{
UTIL_SEQ_Run( UTIL_SEQ_DEFAULT );
+
+ return;
}
void shci_notify_asynch_evt(void* pdata)
@@ -528,4 +676,3 @@ void HAL_GPIO_EXTI_Callback( uint16_t GPIO_Pin )
}
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/hw_timerserver.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/hw_timerserver.c
index c0af6a14a..23a5bcdc6 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/hw_timerserver.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/hw_timerserver.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : hw_timerserver.c
- * Description : Hardware timerserver source file for STM32WPAN Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file hw_timerserver.c
+ * @author MCD Application Team
+ * @brief Hardware timerserver source file for STM32WPAN Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -891,5 +890,3 @@ __weak void HW_TS_RTC_Int_AppNot(uint32_t TimerProcessID, uint8_t TimerID, HW_TS
return;
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/hw_uart.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/hw_uart.c
index 6ae6ff9f9..43c681c1c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/hw_uart.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/hw_uart.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : Src/hw_uart.c
- * Description : HW UART source file for STM32WPAN Middleware.
- *
+ ******************************************************************************
+ * @file hw_uart.c
+ * @author MCD Application Team
+ * @brief HW UART source file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -316,5 +315,3 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
return;
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/main.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/main.c
index d375dbd25..7aaac1d55 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/main.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/main.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -58,6 +57,7 @@ DMA_HandleTypeDef hdma_usart1_tx;
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
+void PeriphCommonClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_RF_Init(void);
@@ -100,6 +100,9 @@ int main(void)
/* Configure the system clock */
SystemClock_Config();
+/* Configure the peripherals common clocks */
+ PeriphCommonClock_Config();
+
/* IPCC initialisation */
MX_IPCC_Init();
@@ -142,7 +145,6 @@ void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
- RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
/** Configure LSE Drive Capability
*/
@@ -181,17 +183,23 @@ void SystemClock_Config(void)
{
Error_Handler();
}
- /** Initializes the peripherals clocks
+}
+
+/**
+ * @brief Peripherals Common Clock Configuration
+ * @retval None
+ */
+void PeriphCommonClock_Config(void)
+{
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+
+ /** Initializes the peripherals clock
*/
- PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS|RCC_PERIPHCLK_RFWAKEUP
- |RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_USART1
- |RCC_PERIPHCLK_I2C3;
- PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
- PeriphClkInitStruct.I2c3ClockSelection = RCC_I2C3CLKSOURCE_PCLK1;
- PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS|RCC_PERIPHCLK_RFWAKEUP;
PeriphClkInitStruct.RFWakeUpClockSelection = RCC_RFWKPCLKSOURCE_LSE;
PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSE;
PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE0;
+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
@@ -414,6 +422,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+ /*Configure GPIO pin : QSPI_BK_IO0_Pin */
+ GPIO_InitStruct.Pin = QSPI_BK_IO0_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+ HAL_GPIO_Init(QSPI_BK_IO0_GPIO_Port, &GPIO_InitStruct);
+
/*Configure GPIO pin : LPUART1_RX_MCU_Pin */
GPIO_InitStruct.Pin = LPUART1_RX_MCU_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -422,6 +438,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
HAL_GPIO_Init(LPUART1_RX_MCU_GPIO_Port, &GPIO_InitStruct);
+ /*Configure GPIO pin : PB8 */
+ GPIO_InitStruct.Pin = GPIO_PIN_8;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
+ HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
/*Configure GPIO pins : LPUART1_TX_MCU_Pin PB12 */
GPIO_InitStruct.Pin = LPUART1_TX_MCU_Pin|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -438,6 +462,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ /*Configure GPIO pin : PA10 */
+ GPIO_InitStruct.Pin = GPIO_PIN_10;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
/*Configure GPIO pins : USB_P_Pin USB_N_Pin */
GPIO_InitStruct.Pin = USB_P_Pin|USB_N_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -506,6 +538,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ /*Configure GPIO pin : QSPI_BK_SCK_Pin */
+ GPIO_InitStruct.Pin = QSPI_BK_SCK_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+ HAL_GPIO_Init(QSPI_BK_SCK_GPIO_Port, &GPIO_InitStruct);
+
/*Configure GPIO pins : CS_DISP_Pin GPIO_SELECT2_Pin */
GPIO_InitStruct.Pin = CS_DISP_Pin|GPIO_SELECT2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
@@ -540,6 +580,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+ /*Configure GPIO pins : QSPI_BK_NCS_Pin QSPI_BK_IO1_Pin QSPI_BK_IO2_Pin */
+ GPIO_InitStruct.Pin = QSPI_BK_NCS_Pin|QSPI_BK_IO1_Pin|QSPI_BK_IO2_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
/*Configure GPIO pin : PE3 */
GPIO_InitStruct.Pin = GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
@@ -663,5 +711,3 @@ void assert_failed(uint8_t *file, uint32_t line)
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32_lpm_if.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32_lpm_if.c
index fba978d88..8018ad626 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32_lpm_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32_lpm_if.c
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ***************************************************************************************
- * File Name : stm32_lpm_if.c
- * Description : Low layer function to enter/exit low power modes (stop, sleep).
- ***************************************************************************************
+ ******************************************************************************
+ * @file stm32_lpm_if.c
+ * @author MCD Application Team
+ * @brief Low layer function to enter/exit low power modes (stop, sleep).
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -277,19 +277,11 @@ static void EnterLowPower( void )
/* Release ENTRY_STOP_MODE semaphore */
LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
}
else
{
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
@@ -355,5 +347,3 @@ static void Switch_On_HSI( void )
/* USER CODE END Private_Functions */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
-
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32wbxx_hal_msp.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32wbxx_hal_msp.c
index fd4d1ba8e..d9d67ab08 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32wbxx_hal_msp.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32wbxx_hal_msp.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -68,6 +67,8 @@ void HAL_MspInit(void)
/* USER CODE END MspInit 0 */
+ __HAL_RCC_HSEM_CLK_ENABLE();
+
/* System interrupt init*/
/* Peripheral interrupt init */
@@ -132,6 +133,7 @@ void HAL_IPCC_MspDeInit(IPCC_HandleTypeDef* hipcc)
*/
void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
{
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
if(hrtc->Instance==RTC)
{
/* USER CODE BEGIN RTC_MspInit 0 */
@@ -145,6 +147,15 @@ void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
__HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE); /**< Select LSI as RTC Input */
/* USER CODE END RTC_MspInit 0 */
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
+ PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
/* Peripheral clock enable */
__HAL_RCC_RTC_ENABLE();
__HAL_RCC_RTCAPB_CLK_ENABLE();
@@ -187,11 +198,21 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
if(huart->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspInit 0 */
/* USER CODE END USART1_MspInit 0 */
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART1;
+ PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
/* Peripheral clock enable */
__HAL_RCC_USART1_CLK_ENABLE();
@@ -274,5 +295,3 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
/* USER CODE END 1 */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32wbxx_it.c
index b808829e1..5ff5db0fc 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32wbxx_it.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/stm32wbxx_it.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -302,4 +301,3 @@ void TIM1_TRG_COM_TIM17_IRQHandler(void)
BSP_PWM_LED_IRQHandler();
}
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/system_stm32wbxx.c
index 706ee9182..f53552c59 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/system_stm32wbxx.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/Core/Src/system_stm32wbxx.c
@@ -60,13 +60,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -355,5 +354,3 @@ void SystemCoreClockUpdate(void)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/BLE_HeartRate.ewp b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/BLE_HeartRate.ewp
index 75665691a..534d73c0e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/BLE_HeartRate.ewp
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/BLE_HeartRate.ewp
@@ -1,1296 +1,1294 @@
<?xml version="1.0" encoding="UTF-8"?>
<project>
- <fileVersion>3</fileVersion>
- <configuration>
- <name>BLE_HeartRate</name>
- <toolchain>
- <name>ARM</name>
- </toolchain>
+ <fileVersion>3</fileVersion>
+ <configuration>
+ <name>BLE_HeartRate</name>
+ <toolchain>
+ <name>ARM</name>
+ </toolchain>
+ <debug>1</debug>
+ <settings>
+ <name>General</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <version>30</version>
+ <wantNonLocal>1</wantNonLocal>
<debug>1</debug>
- <settings>
- <name>General</name>
- <archiveVersion>3</archiveVersion>
- <data>
- <version>30</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>ExePath</name>
- <state>BLE_HeartRate/Exe</state>
- </option>
- <option>
- <name>ObjPath</name>
- <state>BLE_HeartRate/Obj</state>
- </option>
- <option>
- <name>ListPath</name>
- <state>BLE_HeartRate/List</state>
- </option>
- <option>
- <name>GEndianMode</name>
- <state>0</state>
- </option>
- <option>
- <name>Input description</name>
- <state>Full formatting, with multibyte support.</state>
- </option>
- <option>
- <name>Output description</name>
- <state>Full formatting, with multibyte support.</state>
- </option>
- <option>
- <name>GOutputBinary</name>
- <state>0</state>
- </option>
- <option>
- <name>OGCoreOrChip</name>
- <state>1</state>
- </option>
- <option>
- <name>GRuntimeLibSelect</name>
- <version>0</version>
- <state>2</state>
- </option>
- <option>
- <name>GRuntimeLibSelectSlave</name>
- <version>0</version>
- <state>2</state>
- </option>
- <option>
- <name>RTDescription</name>
- <state>Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.</state>
- </option>
- <option>
- <name>OGProductVersion</name>
- <state>4.41A</state>
- </option>
- <option>
- <name>OGLastSavedByProductVersion</name>
- <state>8.20.2.14834</state>
- </option>
- <option>
- <name>GeneralEnableMisra</name>
- <state>0</state>
- </option>
- <option>
- <name>GeneralMisraVerbose</name>
- <state>0</state>
- </option>
- <option>
- <name>OGChipSelectEditMenu</name>
- <state>STM32WB5MMG ST STM32WB5MMG</state>
- </option>
- <option>
- <name>GenLowLevelInterface</name>
- <state>1</state>
- </option>
- <option>
- <name>GEndianModeBE</name>
- <state>1</state>
- </option>
- <option>
- <name>OGBufferedTerminalOutput</name>
- <state>0</state>
- </option>
- <option>
- <name>GenStdoutInterface</name>
- <state>0</state>
- </option>
- <option>
- <name>GeneralMisraRules98</name>
- <version>0</version>
- <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
- </option>
- <option>
- <name>GeneralMisraVer</name>
- <state>0</state>
- </option>
- <option>
- <name>GeneralMisraRules04</name>
- <version>0</version>
- <state>011111111111111110111111111111011111111111111011110100111111111111111111111111111111111111111111101111111111111011111111111111111111111111111</state>
- </option>
- <option>
- <name>RTConfigPath2</name>
- <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Full.h</state>
- </option>
- <option>
- <name>GBECoreSlave</name>
- <version>26</version>
- <state>39</state>
- </option>
- <option>
- <name>OGUseCmsis</name>
- <state>0</state>
- </option>
- <option>
- <name>OGUseCmsisDspLib</name>
- <state>0</state>
- </option>
- <option>
- <name>GRuntimeLibThreads</name>
- <state>0</state>
- </option>
- <option>
- <name>CoreVariant</name>
- <version>26</version>
- <state>39</state>
- </option>
- <option>
- <name>GFPUDeviceSlave</name>
- <state>STM32WB5MMG ST STM32WB5MMG</state>
- </option>
- <option>
- <name>FPU2</name>
- <version>0</version>
- <state>4</state>
- </option>
- <option>
- <name>NrRegs</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>NEON</name>
- <state>0</state>
- </option>
- <option>
- <name>GFPUCoreSlave2</name>
- <version>26</version>
- <state>39</state>
- </option>
- <option>
- <name>OGCMSISPackSelectDevice</name>
- </option>
- <option>
- <name>OgLibHeap</name>
- <state>0</state>
- </option>
- <option>
- <name>OGLibAdditionalLocale</name>
- <state>0</state>
- </option>
- <option>
- <name>OGPrintfVariant</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>OGPrintfMultibyteSupport</name>
- <state>1</state>
- </option>
- <option>
- <name>OGScanfVariant</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>OGScanfMultibyteSupport</name>
- <state>1</state>
- </option>
- <option>
- <name>GenLocaleTags</name>
- <state></state>
- </option>
- <option>
- <name>GenLocaleDisplayOnly</name>
- <state></state>
- </option>
- <option>
- <name>DSPExtension</name>
- <state>1</state>
- </option>
- <option>
- <name>TrustZone</name>
- <state>0</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>ICCARM</name>
- <archiveVersion>2</archiveVersion>
- <data>
- <version>34</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>CCOptimizationNoSizeConstraints</name>
- <state>0</state>
- </option>
- <option>
- <name>CCDefines</name>
- <state>USE_HAL_DRIVER</state>
- <state>STM32WB5Mxx</state>
- <state>STM32WL55MM_DK</state>
- </option>
- <option>
- <name>CCPreprocFile</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPreprocComments</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPreprocLine</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListCFile</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListCMnemonics</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListCMessages</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListAssFile</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListAssSource</name>
- <state>0</state>
- </option>
- <option>
- <name>CCEnableRemarks</name>
- <state>0</state>
- </option>
- <option>
- <name>CCDiagSuppress</name>
- <state></state>
- </option>
- <option>
- <name>CCDiagRemark</name>
- <state></state>
- </option>
- <option>
- <name>CCDiagWarning</name>
- <state></state>
- </option>
- <option>
- <name>CCDiagError</name>
- <state></state>
- </option>
- <option>
- <name>CCObjPrefix</name>
- <state>1</state>
- </option>
- <option>
- <name>CCAllowList</name>
- <version>1</version>
- <state>00000000</state>
- </option>
- <option>
- <name>CCDebugInfo</name>
- <state>1</state>
- </option>
- <option>
- <name>IEndianMode</name>
- <state>1</state>
- </option>
- <option>
- <name>IProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>IExtraOptionsCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>IExtraOptions</name>
- <state></state>
- </option>
- <option>
- <name>CCLangConformance</name>
- <state>0</state>
- </option>
- <option>
- <name>CCSignedPlainChar</name>
- <state>1</state>
- </option>
- <option>
- <name>CCRequirePrototypes</name>
- <state>0</state>
- </option>
- <option>
- <name>CCDiagWarnAreErr</name>
- <state>0</state>
- </option>
- <option>
- <name>CCCompilerRuntimeInfo</name>
- <state>0</state>
- </option>
- <option>
- <name>IFpuProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>OutputFile</name>
- <state>$FILE_BNAME$.o</state>
- </option>
- <option>
- <name>CCLibConfigHeader</name>
- <state>1</state>
- </option>
- <option>
- <name>PreInclude</name>
- <state></state>
- </option>
- <option>
- <name>CompilerMisraOverride</name>
- <state>0</state>
- </option>
- <option>
- <name>CCIncludePath2</name>
- <state>$PROJ_DIR$/../Core/Inc</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Include</state>
- <state>$PROJ_DIR$/../STM32_WPAN/App</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/lpm/tiny_lpm</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/utilities</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/sequencer</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/STM32WB5MM-DK</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/ssd1315</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/Common</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/Fonts</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/LCD</state>
- </option>
- <option>
- <name>CCStdIncCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>CCCodeSection</name>
- <state>.text</state>
- </option>
- <option>
- <name>IProcessorMode2</name>
- <state>1</state>
- </option>
- <option>
- <name>CCOptLevel</name>
- <state>0</state>
- </option>
- <option>
- <name>CCOptStrategy</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>CCOptLevelSlave</name>
- <state>0</state>
- </option>
- <option>
- <name>CompilerMisraRules98</name>
- <version>0</version>
- <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
- </option>
- <option>
- <name>CompilerMisraRules04</name>
- <version>0</version>
- <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
- </option>
- <option>
- <name>CCPosIndRopi</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPosIndRwpi</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPosIndNoDynInit</name>
- <state>0</state>
- </option>
- <option>
- <name>IccLang</name>
- <state>0</state>
- </option>
- <option>
- <name>IccCDialect</name>
- <state>1</state>
- </option>
- <option>
- <name>IccAllowVLA</name>
- <state>0</state>
- </option>
- <option>
- <name>IccStaticDestr</name>
- <state>0</state>
- </option>
- <option>
- <name>IccCppInlineSemantics</name>
- <state>0</state>
- </option>
- <option>
- <name>IccCmsis</name>
- <state>1</state>
- </option>
- <option>
- <name>IccFloatSemantics</name>
- <state>0</state>
- </option>
- <option>
- <name>CCNoLiteralPool</name>
- <state>0</state>
- </option>
- <option>
- <name>CCOptStrategySlave</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>CCGuardCalls</name>
- <state>1</state>
- </option>
- <option>
- <name>CCEncSource</name>
- <state>0</state>
- </option>
- <option>
- <name>CCEncOutput</name>
- <state>0</state>
- </option>
- <option>
- <name>CCEncOutputBom</name>
- <state>1</state>
- </option>
- <option>
- <name>CCEncInput</name>
- <state>0</state>
- </option>
- <option>
- <name>IccExceptions2</name>
- <state>0</state>
- </option>
- <option>
- <name>IccRTTI2</name>
- <state>0</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>AARM</name>
- <archiveVersion>2</archiveVersion>
- <data>
- <version>10</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>AObjPrefix</name>
- <state>1</state>
- </option>
- <option>
- <name>AEndian</name>
- <state>1</state>
- </option>
- <option>
- <name>ACaseSensitivity</name>
- <state>1</state>
- </option>
- <option>
- <name>MacroChars</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>AWarnEnable</name>
- <state>0</state>
- </option>
- <option>
- <name>AWarnWhat</name>
- <state>0</state>
- </option>
- <option>
- <name>AWarnOne</name>
- <state></state>
- </option>
- <option>
- <name>AWarnRange1</name>
- <state></state>
- </option>
- <option>
- <name>AWarnRange2</name>
- <state></state>
- </option>
- <option>
- <name>ADebug</name>
- <state>1</state>
- </option>
- <option>
- <name>AltRegisterNames</name>
- <state>0</state>
- </option>
- <option>
- <name>ADefines</name>
- <state></state>
- </option>
- <option>
- <name>AList</name>
- <state>0</state>
- </option>
- <option>
- <name>AListHeader</name>
- <state>1</state>
- </option>
- <option>
- <name>AListing</name>
- <state>1</state>
- </option>
- <option>
- <name>Includes</name>
- <state>0</state>
- </option>
- <option>
- <name>MacDefs</name>
- <state>0</state>
- </option>
- <option>
- <name>MacExps</name>
- <state>1</state>
- </option>
- <option>
- <name>MacExec</name>
- <state>0</state>
- </option>
- <option>
- <name>OnlyAssed</name>
- <state>0</state>
- </option>
- <option>
- <name>MultiLine</name>
- <state>0</state>
- </option>
- <option>
- <name>PageLengthCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>PageLength</name>
- <state>80</state>
- </option>
- <option>
- <name>TabSpacing</name>
- <state>8</state>
- </option>
- <option>
- <name>AXRef</name>
- <state>0</state>
- </option>
- <option>
- <name>AXRefDefines</name>
- <state>0</state>
- </option>
- <option>
- <name>AXRefInternal</name>
- <state>0</state>
- </option>
- <option>
- <name>AXRefDual</name>
- <state>0</state>
- </option>
- <option>
- <name>AProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>AFpuProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>AOutputFile</name>
- <state>$FILE_BNAME$.o</state>
- </option>
- <option>
- <name>ALimitErrorsCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>ALimitErrorsEdit</name>
- <state>100</state>
- </option>
- <option>
- <name>AIgnoreStdInclude</name>
- <state>0</state>
- </option>
- <option>
- <name>AUserIncludes</name>
- <state></state>
- </option>
- <option>
- <name>AExtraOptionsCheckV2</name>
- <state>0</state>
- </option>
- <option>
- <name>AExtraOptionsV2</name>
- <state></state>
- </option>
- <option>
- <name>AsmNoLiteralPool</name>
- <state>0</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>OBJCOPY</name>
- <archiveVersion>0</archiveVersion>
- <data>
- <version>1</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>OOCOutputFormat</name>
- <version>3</version>
- <state>1</state>
- </option>
- <option>
- <name>OCOutputOverride</name>
- <state>1</state>
- </option>
- <option>
- <name>OOCOutputFile</name>
- <state>BLE_HeartRate.hex</state>
- </option>
- <option>
- <name>OOCCommandLineProducer</name>
- <state>1</state>
- </option>
- <option>
- <name>OOCObjCopyEnable</name>
- <state>1</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>CUSTOM</name>
- <archiveVersion>3</archiveVersion>
- <data>
- <extensions></extensions>
- <cmdline></cmdline>
- <hasPrio>0</hasPrio>
- </data>
- </settings>
- <settings>
- <name>BICOMP</name>
- <archiveVersion>0</archiveVersion>
- <data />
- </settings>
- <settings>
- <name>BUILDACTION</name>
- <archiveVersion>1</archiveVersion>
- <data>
- <prebuild></prebuild>
- <postbuild></postbuild>
- </data>
- </settings>
- <settings>
- <name>ILINK</name>
- <archiveVersion>0</archiveVersion>
- <data>
- <version>20</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>IlinkLibIOConfig</name>
- <state>1</state>
- </option>
- <option>
- <name>XLinkMisraHandler</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkInputFileSlave</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkOutputFile</name>
- <state>BLE_HeartRate.out</state>
- </option>
- <option>
- <name>IlinkDebugInfoEnable</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkKeepSymbols</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinaryFile</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinarySymbol</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinarySegment</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinaryAlign</name>
- <state></state>
- </option>
- <option>
- <name>IlinkDefines</name>
- <state></state>
- </option>
- <option>
- <name>IlinkConfigDefines</name>
- <state></state>
- </option>
- <option>
- <name>IlinkMapFile</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkLogFile</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogInitialization</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogModule</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogSection</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogVeneer</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkIcfOverride</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkIcfFile</name>
- <state>$PROJ_DIR$/stm32wb5mxx_flash_cm4.icf</state>
- </option>
- <option>
- <name>IlinkIcfFileSlave</name>
- <state></state>
- </option>
- <option>
- <name>IlinkEnableRemarks</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkSuppressDiags</name>
- <state></state>
- </option>
- <option>
- <name>IlinkTreatAsRem</name>
- <state></state>
- </option>
- <option>
- <name>IlinkTreatAsWarn</name>
- <state></state>
- </option>
- <option>
- <name>IlinkTreatAsErr</name>
- <state></state>
- </option>
- <option>
- <name>IlinkWarningsAreErrors</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkUseExtraOptions</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkExtraOptions</name>
- <state></state>
- </option>
- <option>
- <name>IlinkLowLevelInterfaceSlave</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkAutoLibEnable</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkAdditionalLibs</name>
- <state></state>
- </option>
- <option>
- <name>IlinkOverrideProgramEntryLabel</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkProgramEntryLabelSelect</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkProgramEntryLabel</name>
- <state>__iar_program_start</state>
- </option>
- <option>
- <name>DoFill</name>
- <state>0</state>
- </option>
- <option>
- <name>FillerByte</name>
- <state>0xFF</state>
- </option>
- <option>
- <name>FillerStart</name>
- <state>0x0</state>
- </option>
- <option>
- <name>FillerEnd</name>
- <state>0x0</state>
- </option>
- <option>
- <name>CrcSize</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>CrcAlign</name>
- <state>1</state>
- </option>
- <option>
- <name>CrcPoly</name>
- <state>0x11021</state>
- </option>
- <option>
- <name>CrcCompl</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>CrcBitOrder</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>CrcInitialValue</name>
- <state>0x0</state>
- </option>
- <option>
- <name>DoCrc</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkBE8Slave</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkBufferedTerminalOutput</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkStdoutInterfaceSlave</name>
- <state>1</state>
- </option>
- <option>
- <name>CrcFullSize</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkIElfToolPostProcess</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogAutoLibSelect</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogRedirSymbols</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogUnusedFragments</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkCrcReverseByteOrder</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkCrcUseAsInput</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptInline</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkOptExceptionsAllow</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptExceptionsForce</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkCmsis</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptMergeDuplSections</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkOptUseVfe</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptForceVfe</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkStackAnalysisEnable</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkStackControlFile</name>
- <state></state>
- </option>
- <option>
- <name>IlinkStackCallGraphFile</name>
- <state></state>
- </option>
- <option>
- <name>CrcAlgorithm</name>
- <version>1</version>
- <state>1</state>
- </option>
- <option>
- <name>CrcUnitSize</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>IlinkThreadsSlave</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkLogCallGraph</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkIcfFile_AltDefault</name>
- <state></state>
- </option>
- <option>
- <name>IlinkEncInput</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkEncOutput</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkEncOutputBom</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkHeapSelect</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkLocaleSelect</name>
- <state>1</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>IARCHIVE</name>
- <archiveVersion>0</archiveVersion>
- <data>
- <version>0</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>IarchiveInputs</name>
- <state></state>
- </option>
- <option>
- <name>IarchiveOverride</name>
- <state>0</state>
- </option>
- <option>
- <name>IarchiveOutput</name>
- <state>###Unitialized###</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>BILINK</name>
- <archiveVersion>0</archiveVersion>
- <data />
- </settings>
- </configuration>
+ <option>
+ <name>ExePath</name>
+ <state>BLE_HeartRate/Exe</state>
+ </option>
+ <option>
+ <name>ObjPath</name>
+ <state>BLE_HeartRate/Obj</state>
+ </option>
+ <option>
+ <name>ListPath</name>
+ <state>BLE_HeartRate/List</state>
+ </option>
+ <option>
+ <name>GEndianMode</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Input description</name>
+ <state>Full formatting, with multibyte support.</state>
+ </option>
+ <option>
+ <name>Output description</name>
+ <state>Full formatting, with multibyte support.</state>
+ </option>
+ <option>
+ <name>GOutputBinary</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGCoreOrChip</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelect</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelectSlave</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>RTDescription</name>
+ <state>Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.</state>
+ </option>
+ <option>
+ <name>OGProductVersion</name>
+ <state>4.41A</state>
+ </option>
+ <option>
+ <name>OGLastSavedByProductVersion</name>
+ <state>8.20.2.14834</state>
+ </option>
+ <option>
+ <name>GeneralEnableMisra</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraVerbose</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGChipSelectEditMenu</name>
+ <state>STM32WB5MMG ST STM32WB5MMG</state>
+ </option>
+ <option>
+ <name>GenLowLevelInterface</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GEndianModeBE</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGBufferedTerminalOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GenStdoutInterface</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>GeneralMisraVer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules04</name>
+ <version>0</version>
+ <state>011111111111111110111111111111011111111111111011110100111111111111111111111111111111111111111111101111111111111011111111111111111111111111111</state>
+ </option>
+ <option>
+ <name>RTConfigPath2</name>
+ <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Full.h</state>
+ </option>
+ <option>
+ <name>GBECoreSlave</name>
+ <version>26</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>OGUseCmsis</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGUseCmsisDspLib</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GRuntimeLibThreads</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CoreVariant</name>
+ <version>26</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>GFPUDeviceSlave</name>
+ <state>STM32WB5MMG ST STM32WB5MMG</state>
+ </option>
+ <option>
+ <name>FPU2</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>NrRegs</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>NEON</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GFPUCoreSlave2</name>
+ <version>26</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>OGCMSISPackSelectDevice</name>
+ </option>
+ <option>
+ <name>OgLibHeap</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGLibAdditionalLocale</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGPrintfVariant</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGPrintfMultibyteSupport</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGScanfVariant</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGScanfMultibyteSupport</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GenLocaleTags</name>
+ <state></state>
+ </option>
+ <option>
+ <name>GenLocaleDisplayOnly</name>
+ <state></state>
+ </option>
+ <option>
+ <name>DSPExtension</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>TrustZone</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ICCARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>34</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CCOptimizationNoSizeConstraints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDefines</name>
+ <state>USE_HAL_DRIVER</state>
+ <state>STM32WB5Mxx</state>
+ <state>USE_STM32WB5M_DK</state>
+ </option>
+ <option>
+ <name>CCPreprocFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocComments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMnemonics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMessages</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagSuppress</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagRemark</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagWarning</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagError</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCAllowList</name>
+ <version>1</version>
+ <state>00000000</state>
+ </option>
+ <option>
+ <name>CCDebugInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IEndianMode</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IExtraOptionsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCLangConformance</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSignedPlainChar</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCRequirePrototypes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagWarnAreErr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCompilerRuntimeInfo</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.o</state>
+ </option>
+ <option>
+ <name>CCLibConfigHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>PreInclude</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CompilerMisraOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$/../Core/Inc</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Include</state>
+ <state>$PROJ_DIR$/../STM32_WPAN/App</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/lpm/tiny_lpm</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/utilities</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/sequencer</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/STM32WB5MM-DK</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/ssd1315</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/Common</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/Fonts</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/LCD</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCodeSection</name>
+ <state>.text</state>
+ </option>
+ <option>
+ <name>IProcessorMode2</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCOptStrategy</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevelSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules04</name>
+ <version>0</version>
+ <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+ </option>
+ <option>
+ <name>CCPosIndRopi</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPosIndRwpi</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPosIndNoDynInit</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccLang</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCDialect</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IccAllowVLA</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccStaticDestr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCppInlineSemantics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCmsis</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IccFloatSemantics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCNoLiteralPool</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCOptStrategySlave</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCGuardCalls</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEncSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEncOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEncOutputBom</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEncInput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccExceptions2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccRTTI2</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>AARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>10</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>AObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AEndian</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ACaseSensitivity</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacroChars</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnWhat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnOne</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ADebug</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AltRegisterNames</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ADefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AList</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AListHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AListing</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Includes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacDefs</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacExps</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacExec</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OnlyAssed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MultiLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>TabSpacing</name>
+ <state>8</state>
+ </option>
+ <option>
+ <name>AXRef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDefines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefInternal</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDual</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AOutputFile</name>
+ <state>$FILE_BNAME$.o</state>
+ </option>
+ <option>
+ <name>ALimitErrorsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ALimitErrorsEdit</name>
+ <state>100</state>
+ </option>
+ <option>
+ <name>AIgnoreStdInclude</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AUserIncludes</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AExtraOptionsCheckV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AExtraOptionsV2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AsmNoLiteralPool</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>OBJCOPY</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>OOCOutputFormat</name>
+ <version>3</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCOutputOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OOCOutputFile</name>
+ <state>BLE_HeartRate.hex</state>
+ </option>
+ <option>
+ <name>OOCCommandLineProducer</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OOCObjCopyEnable</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CUSTOM</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <extensions></extensions>
+ <cmdline></cmdline>
+ <hasPrio>0</hasPrio>
+ </data>
+ </settings>
+ <settings>
+ <name>BICOMP</name>
+ <archiveVersion>0</archiveVersion>
+ <data></data>
+ </settings>
+ <settings>
+ <name>BUILDACTION</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <prebuild></prebuild>
+ <postbuild></postbuild>
+ </data>
+ </settings>
+ <settings>
+ <name>ILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>20</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>IlinkLibIOConfig</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XLinkMisraHandler</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkInputFileSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOutputFile</name>
+ <state>BLE_HeartRate.out</state>
+ </option>
+ <option>
+ <name>IlinkDebugInfoEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkKeepSymbols</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinaryFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinarySymbol</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinarySegment</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinaryAlign</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkConfigDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkMapFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLogFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogInitialization</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogModule</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogSection</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogVeneer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIcfOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkIcfFile</name>
+ <state>$PROJ_DIR$/stm32wb5mxx_flash_cm4.icf</state>
+ </option>
+ <option>
+ <name>IlinkIcfFileSlave</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkSuppressDiags</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsRem</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsWarn</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsErr</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkWarningsAreErrors</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkUseExtraOptions</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkLowLevelInterfaceSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkAutoLibEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkAdditionalLibs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkOverrideProgramEntryLabel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkProgramEntryLabelSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkProgramEntryLabel</name>
+ <state>__iar_program_start</state>
+ </option>
+ <option>
+ <name>DoFill</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FillerByte</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>FillerStart</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>FillerEnd</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>CrcSize</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcPoly</name>
+ <state>0x11021</state>
+ </option>
+ <option>
+ <name>CrcCompl</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcBitOrder</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>DoCrc</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkBE8Slave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkBufferedTerminalOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkStdoutInterfaceSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcFullSize</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIElfToolPostProcess</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogAutoLibSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogRedirSymbols</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogUnusedFragments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCrcReverseByteOrder</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCrcUseAsInput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptInline</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOptExceptionsAllow</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptExceptionsForce</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCmsis</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptMergeDuplSections</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOptUseVfe</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptForceVfe</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkStackAnalysisEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkStackControlFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkStackCallGraphFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CrcAlgorithm</name>
+ <version>1</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcUnitSize</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkThreadsSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLogCallGraph</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIcfFile_AltDefault</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkEncInput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkEncOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkEncOutputBom</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkHeapSelect</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLocaleSelect</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>IARCHIVE</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>IarchiveInputs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IarchiveOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IarchiveOutput</name>
+ <state>###Unitialized###</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>BILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data></data>
+ </settings>
+ </configuration>
+ <group>
+ <name>Application</name>
<group>
- <name>Application</name>
- <group>
- <name>EWARM</name>
- <file>
- <name>$PROJ_DIR$\startup_stm32wb5mxx_cm4.s</name>
- </file>
- </group>
- <group>
- <name>User</name>
- <group>
- <name>Core</name>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\app_debug.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\app_entry.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\hw_timerserver.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\hw_uart.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\main.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\stm32_lpm_if.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_hal_msp.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_it.c</name>
- </file>
- </group>
- <group>
- <name>STM32_WPAN</name>
- <group>
- <name>App</name>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\App\app_ble.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\App\dis_app.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\App\hrs_app.c</name>
- </file>
- </group>
- <group>
- <name>Target</name>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\Target\hw_ipcc.c</name>
- </file>
- </group>
- </group>
- </group>
+ <name>EWARM</name>
+ <file>
+ <name>$PROJ_DIR$\startup_stm32wb5mxx_cm4.s</name>
+ </file>
</group>
<group>
- <name>Doc</name>
+ <name>User</name>
+ <group>
+ <name>Core</name>
<file>
- <name>$PROJ_DIR$\..\readme.txt</name>
+ <name>$PROJ_DIR$\..\Core\Src\main.c</name>
</file>
- </group>
- <group>
- <name>Drivers</name>
- <group>
- <name>BSP</name>
- <group>
- <name>STM32WB5MM-DK</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315_reg.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_bus.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_lcd.c</name>
- </file>
- </group>
- </group>
- <group>
- <name>CMSIS</name>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\system_stm32wbxx.c</name>
- </file>
- </group>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_entry.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_debug.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\hw_timerserver.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\hw_uart.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32_lpm_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_it.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_hal_msp.c</name>
+ </file>
+ </group>
+ <group>
+ <name>STM32_WPAN</name>
<group>
- <name>STM32WBxx_HAL_Driver</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_cortex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_exti.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_gpio.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_hsem.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_ipcc.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_qspi.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart_ex.c</name>
- </file>
+ <name>App</name>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\App\app_ble.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\App\dis_app.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\App\hrs_app.c</name>
+ </file>
</group>
- </group>
- <group>
- <name>Middlewares</name>
<group>
- <name>STM32_WPAN</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gap_aci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gatt_aci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hal_aci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hci_le.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_l2cap_aci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\dbg_trace.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\dis.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl_if.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\hrs.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\template\osal.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\otp.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\shci\shci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl_if.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_list.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_queue.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\svc_ctl.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\tl_mbox.c</name>
- </file>
+ <name>Target</name>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\Target\hw_ipcc.c</name>
+ </file>
</group>
+ </group>
</group>
+ </group>
+ <group>
+ <name>Doc</name>
+ <file>
+ <name>$PROJ_DIR$\..\readme.txt</name>
+ </file>
+ </group>
+ <group>
+ <name>Drivers</name>
<group>
- <name>Utilities</name>
+ <name>BSP</name>
+ <group>
+ <name>STM32WB5MM-DK</name>
<file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\LCD\stm32_lcd.c</name>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\lpm\tiny_lpm\stm32_lpm.c</name>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_bus.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\sequencer\stm32_seq.c</name>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_lcd.c</name>
</file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315_reg.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>CMSIS</name>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\system_stm32wbxx.c</name>
+ </file>
+ </group>
+ <group>
+ <name>STM32WBxx_HAL_Driver</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_hsem.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_gpio.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_cortex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_exti.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_i2c.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_i2c_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_ipcc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart_ex.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>Middlewares</name>
+ <group>
+ <name>STM32_WPAN</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\tl_mbox.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\shci\shci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\dbg_trace.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\otp.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_list.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_queue.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\template\osal.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gap_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gatt_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hal_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hci_le.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_l2cap_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\hrs.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\dis.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\svc_ctl.c</name>
+ </file>
</group>
+ </group>
+ <group>
+ <name>Utilities</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\LCD\stm32_lcd.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\lpm\tiny_lpm\stm32_lpm.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\sequencer\stm32_seq.c</name>
+ </file>
+ </group>
</project>
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/startup_stm32wb5mxx_cm4.s
index 6d2a51d5a..690ee250e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/startup_stm32wb5mxx_cm4.s
@@ -16,13 +16,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under BSD 3-Clause license,
-;* the "License"; You may not use this file except in compliance with the
-;* License. You may obtain a copy of the License at:
-;* opensource.org/licenses/BSD-3-Clause
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;
@@ -83,7 +82,7 @@ __vector_table
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -514,4 +513,3 @@ DMAMUX1_OVR_IRQHandler
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/stm32wb5mxx_flash_cm4.icf b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/stm32wb5mxx_flash_cm4.icf
index 6a7a123fc..f13848f65 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/stm32wb5mxx_flash_cm4.icf
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/stm32wb5mxx_flash_cm4.icf
@@ -11,7 +11,7 @@ define symbol __ICFEDIT_region_RAM_start__ = 0x20000008;
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
-define symbol __ICFEDIT_size_heap__ = 0x400;
+define symbol __ICFEDIT_size_heap__ = 0x400;
/**** End of ICF editor section. ###ICF###*/
define symbol __ICFEDIT_region_RAM_SHARED_start__ = 0x20030000;
@@ -21,6 +21,7 @@ define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region RAM_SHARED_region = mem:[from __ICFEDIT_region_RAM_SHARED_start__ to __ICFEDIT_region_RAM_SHARED_end__];
+define region Total_RAM_region = RAM_region | RAM_SHARED_region ;
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
@@ -32,9 +33,10 @@ do not initialize { section .noinit,
section MB_MEM1 };
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
+place at address mem:__ICFEDIT_region_RAM_SHARED_start__ { section MAPPING_TABLE };
place in ROM_region { readonly };
-place in RAM_region { readwrite,block CSTACK, block HEAP };
-place in RAM_SHARED_region { first section MAPPING_TABLE};
+place in RAM_region { block CSTACK, block HEAP };
place in RAM_SHARED_region { section MB_MEM1};
place in RAM_SHARED_region { section MB_MEM2};
+place in Total_RAM_region { readwrite };
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/stm32wb5mxx_sram_cm4.icf b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/stm32wb5mxx_sram_cm4.icf
deleted file mode 100644
index 36cf3e51a..000000000
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/EWARM/stm32wb5mxx_sram_cm4.icf
+++ /dev/null
@@ -1,39 +0,0 @@
-/*###ICF### Section handled by ICF editor, don't touch! ****/
-/*-Editor annotation file-*/
-/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
-/*-Specials-*/
-define symbol __ICFEDIT_intvec_start__ = 0x20000000;
-/*-Memory Regions-*/
-/***** RAM dedicated to M4 *****/
-define symbol __ICFEDIT_region_ROM_start__ = 0x20000000;
-define symbol __ICFEDIT_region_ROM_end__ = 0x20017FFF;
-
-define symbol __ICFEDIT_region_RAM_start__ = 0x20018000 ;
-define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF ;
-
-/***** RAM2a *****/
-define symbol __ICFEDIT_region_RAM_SHARED_start__ = 0x20030000 ;
-define symbol __ICFEDIT_region_RAM_SHARED_end__ = 0x20037FFF ;
-
-/*-Sizes-*/
-define symbol __ICFEDIT_size_cstack__ = 0x1000;
-define symbol __ICFEDIT_size_heap__ = 0x400;
-/**** End of ICF editor section. ###ICF###*/
-
-
-define memory mem with size = 4G;
-define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
-define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
-
-
-define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
-define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
-
-initialize by copy { readwrite };
-do not initialize { section .noinit };
-
-place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
-
-place in ROM_region { readonly };
-place in RAM_region { readwrite,
- block CSTACK, block HEAP };
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/BLE_HeartRate.uvprojx b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/BLE_HeartRate.uvprojx
index a03959922..dcfa2532c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/BLE_HeartRate.uvprojx
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/BLE_HeartRate.uvprojx
@@ -337,7 +337,7 @@
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls>--diag_suppress 1296</MiscControls>
- <Define>USE_HAL_DRIVER,STM32WB5Mxx,STM32WL55MM_DK</Define>
+ <Define>USE_HAL_DRIVER,STM32WB5Mxx,USE_STM32WB5M_DK</Define>
<Undefine></Undefine>
<IncludePath>../Core/Inc;../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc;../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy;../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include;../../../../../../Drivers/CMSIS/Include;../STM32_WPAN/App;../../../../../../Utilities/lpm/tiny_lpm;../../../../../../Middlewares/ST/STM32_WPAN;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci;../../../../../../Middlewares/ST/STM32_WPAN/utilities;../../../../../../Middlewares/ST/STM32_WPAN/ble/core;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template;../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc;../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src;../../../../../../Utilities/sequencer;../../../../../../Middlewares/ST/STM32_WPAN/ble;../../../../../../Drivers/BSP/STM32WB5MM-DK;../../../../../../Drivers/BSP/Components/ssd1315;../../../../../../Drivers/BSP/Components/Common;../../../../../../Utilities/Fonts;../../../../../../Utilities/LCD</IncludePath>
</VariousControls>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/startup_stm32wb5mxx_cm4.s
index f04432d7b..6a51d2123 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/startup_stm32wb5mxx_cm4.s
@@ -14,12 +14,12 @@
;******************************************************************************
;* @attention
;*
-;* Copyright (c) 2019 STMicroelectronics. All rights reserved.
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
@@ -84,7 +84,7 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -365,4 +365,3 @@ __user_initial_stackheap
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/stm32wb5mxx_flash_cm4.sct b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/stm32wb5mxx_flash_cm4.sct
index 9d4d446ba..938d9f592 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/stm32wb5mxx_flash_cm4.sct
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/MDK-ARM/stm32wb5mxx_flash_cm4.sct
@@ -11,11 +11,16 @@ LR_IROM1 0x08000000 0x00080000 { ; load region size_region
RW_IRAM1 0x20000008 0x2FFF8 { ; RW data
.ANY (+RW +ZI)
}
- RW_RAM_SHARED 0x20030000 0x2800 { ; RW data
- *(MAPPING_TABLE)
- *(MB_MEM1)
- *(MB_MEM2)
- }
+
+ RW_RAM_SHARED1 0x20030000 0x28 { ; RW data
+ *(MAPPING_TABLE)
+ }
+ RW_RAM_SHARED2 0x20030028 0x27D8 { ; RW data
+ *(MB_MEM1)
+ *(MB_MEM2)
+ .ANY (+RW +ZI)
+ }
+
}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/.cproject b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/.cproject
index 6c51c0732..70cd9bf82 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/.cproject
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/.cproject
@@ -47,7 +47,7 @@
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.175320054" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="STM32WB5MM-DK" valueType="string"/>
- <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1164232276" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../Core/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Drivers/CMSIS/Include | ../../STM32_WPAN/App | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/Fonts | ../../../../../../../Utilities/LCD || || || STM32WL55MM_DK | STM32WB5Mxx | USE_HAL_DRIVER || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || || || || None" valueType="string"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1164232276" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../Core/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Drivers/CMSIS/Include | ../../STM32_WPAN/App | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/Fonts | ../../../../../../../Utilities/LCD || || || USE_STM32WB5M_DK | STM32WB5Mxx | USE_HAL_DRIVER || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || || || || None" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex.1802132807" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex" value="true" valueType="boolean"/>
@@ -75,7 +75,7 @@
<listOptionValue builtIn="false" value="DEBUG"/>
- <listOptionValue builtIn="false" value="STM32WL55MM_DK"/>
+ <listOptionValue builtIn="false" value="USE_STM32WB5M_DK"/>
<listOptionValue builtIn="false" value="STM32WB5Mxx"/>
@@ -235,7 +235,7 @@
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1223050729" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="STM32WB5MM-DK" valueType="string"/>
- <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1069769168" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../Core/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Drivers/CMSIS/Include | ../../STM32_WPAN/App | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/Fonts | ../../../../../../../Utilities/LCD || || || STM32WL55MM_DK | STM32WB5Mxx | USE_HAL_DRIVER || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || Size || || || None" valueType="string"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1069769168" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../Core/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Drivers/CMSIS/Include | ../../STM32_WPAN/App | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/Fonts | ../../../../../../../Utilities/LCD || || || USE_STM32WB5M_DK | STM32WB5Mxx | USE_HAL_DRIVER || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || Size || || || None" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex.835596670" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex" value="true" valueType="boolean"/>
@@ -261,7 +261,7 @@
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.770460005" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="STM32WL55MM_DK"/>
+ <listOptionValue builtIn="false" value="USE_STM32WB5M_DK"/>
<listOptionValue builtIn="false" value="STM32WB5Mxx"/>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/.project b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/.project
index 5b39b4c59..fa764e2ee 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/.project
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/.project
@@ -31,6 +31,11 @@
</natures>
<linkedResources>
<link>
+ <name>BLE_HeartRate.ioc</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/BLE_HeartRate.ioc</locationURI>
+ </link>
+ <link>
<name>Doc/readme.txt</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/readme.txt</locationURI>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
index 891ce5b9a..18f06244f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -14,13 +14,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
-* This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,7 +92,7 @@ LoopFillZerobss:
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
-/* Call the clock system intitialization function.*/
+/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
@@ -442,4 +441,3 @@ g_pfnVectors:
.weak DMAMUX1_OVR_IRQHandler
.thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/User/Core/syscalls.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/User/Core/syscalls.c
index bc0dd6c06..c921fd873 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/User/Core/syscalls.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/User/Core/syscalls.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
@@ -7,19 +7,18 @@
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <sys/stat.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/User/Core/sysmem.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/User/Core/sysmem.c
index d7cc52cd4..dda5abe79 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/User/Core/sysmem.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/Application/User/Core/sysmem.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
@@ -7,19 +7,18 @@
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <errno.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
index f0c35b387..04d57d8aa 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -15,30 +15,14 @@
** of any kind.
**
*****************************************************************************
+** @attention
**
-** <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
+** Copyright (c) 2019 STMicroelectronics.
+** All rights reserved.
**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-** 1. Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** 3. Neither the name of STMicroelectronics nor the names of its contributors
-** may be used to endorse or promote products derived from this software
-** without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
**
*****************************************************************************
*/
@@ -145,7 +129,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/app_ble.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/app_ble.c
index eda16b71a..6f4eca2f1 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/app_ble.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/app_ble.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/app_ble.c
- * Description : Application file for BLE Middleware.
- *
- *****************************************************************************
+ ******************************************************************************
+ * @file app_ble.c
+ * @author MCD Application Team
+ * @brief BLE Application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -252,6 +251,12 @@ static void Adv_Update( void );
/* USER CODE END PFP */
+/* External variables --------------------------------------------------------*/
+
+/* USER CODE BEGIN EV */
+
+/* USER CODE END EV */
+
/* Functions Definition ------------------------------------------------------*/
void APP_BLE_Init( void )
{
@@ -268,26 +273,27 @@ void APP_BLE_Init( void )
{
{{0,0,0}}, /**< Header unused */
{0, /** pBleBufferAddress not used */
- 0, /** BleBufferSize not used */
- CFG_BLE_NUM_GATT_ATTRIBUTES,
- CFG_BLE_NUM_GATT_SERVICES,
- CFG_BLE_ATT_VALUE_ARRAY_SIZE,
- CFG_BLE_NUM_LINK,
- CFG_BLE_DATA_LENGTH_EXTENSION,
- CFG_BLE_PREPARE_WRITE_LIST_SIZE,
- CFG_BLE_MBLOCK_COUNT,
- CFG_BLE_MAX_ATT_MTU,
- CFG_BLE_SLAVE_SCA,
- CFG_BLE_MASTER_SCA,
- CFG_BLE_LSE_SOURCE,
- CFG_BLE_MAX_CONN_EVENT_LENGTH,
- CFG_BLE_HSE_STARTUP_TIME,
- CFG_BLE_VITERBI_MODE,
- CFG_BLE_OPTIONS,
- 0,
- CFG_BLE_MAX_COC_INITIATOR_NBR,
- CFG_BLE_MIN_TX_POWER,
- CFG_BLE_MAX_TX_POWER}
+ 0, /** BleBufferSize not used */
+ CFG_BLE_NUM_GATT_ATTRIBUTES,
+ CFG_BLE_NUM_GATT_SERVICES,
+ CFG_BLE_ATT_VALUE_ARRAY_SIZE,
+ CFG_BLE_NUM_LINK,
+ CFG_BLE_DATA_LENGTH_EXTENSION,
+ CFG_BLE_PREPARE_WRITE_LIST_SIZE,
+ CFG_BLE_MBLOCK_COUNT,
+ CFG_BLE_MAX_ATT_MTU,
+ CFG_BLE_SLAVE_SCA,
+ CFG_BLE_MASTER_SCA,
+ CFG_BLE_LSE_SOURCE,
+ CFG_BLE_MAX_CONN_EVENT_LENGTH,
+ CFG_BLE_HSE_STARTUP_TIME,
+ CFG_BLE_VITERBI_MODE,
+ CFG_BLE_OPTIONS,
+ 0,
+ CFG_BLE_MAX_COC_INITIATOR_NBR,
+ CFG_BLE_MIN_TX_POWER,
+ CFG_BLE_MAX_TX_POWER,
+ CFG_BLE_RX_MODEL_CONFIG}
};
/**
@@ -377,7 +383,7 @@ void APP_BLE_Init( void )
/* USER CODE BEGIN APP_BLE_Init_2 */
LED_Off();
- /* Displays the board informations: MAC Address, Stack version, FUS version*/
+ /* Displays the board information: MAC Address, Stack version, FUS version*/
if (SHCI_GetWirelessFwInfo(p_wireless_info) != SHCI_Success)
{
// Error
@@ -708,7 +714,6 @@ static void Ble_Hci_Gap_Gatt_Init(void){
uint8_t role;
uint16_t gap_service_handle, gap_dev_name_char_handle, gap_appearance_char_handle;
const uint8_t *bd_addr;
- uint32_t srd_bd_addr[2];
uint16_t appearance[1] = { BLE_CFG_GAP_APPEARANCE };
/**
@@ -726,6 +731,7 @@ static void Ble_Hci_Gap_Gatt_Init(void){
CONFIG_DATA_PUBADDR_LEN,
(uint8_t*) bd_addr);
+#if (CFG_BLE_ADDRESS_TYPE == PUBLIC_ADDR)
/* BLE MAC in ADV Packet */
manuf_data[ sizeof(manuf_data)-6] = bd_addr[5];
manuf_data[ sizeof(manuf_data)-5] = bd_addr[4];
@@ -733,6 +739,7 @@ static void Ble_Hci_Gap_Gatt_Init(void){
manuf_data[ sizeof(manuf_data)-3] = bd_addr[2];
manuf_data[ sizeof(manuf_data)-2] = bd_addr[1];
manuf_data[ sizeof(manuf_data)-1] = bd_addr[0];
+#endif
/**
* Write Identity root key used to derive LTK and CSRK
@@ -741,21 +748,12 @@ static void Ble_Hci_Gap_Gatt_Init(void){
CONFIG_DATA_IR_LEN,
(uint8_t*) BLE_CFG_IR_VALUE);
- /**
+ /**
* Write Encryption root key used to derive LTK and CSRK
*/
aci_hal_write_config_data(CONFIG_DATA_ER_OFFSET,
- CONFIG_DATA_ER_LEN,
- (uint8_t*) BLE_CFG_ER_VALUE);
-
- /**
- * Write random bd_address
- */
- /* random_bd_address = R_bd_address;
- aci_hal_write_config_data(CONFIG_DATA_RANDOM_ADDRESS_WR,
- CONFIG_DATA_RANDOM_ADDRESS_LEN,
- (uint8_t*) random_bd_address);
- */
+ CONFIG_DATA_ER_LEN,
+ (uint8_t*) BLE_CFG_ER_VALUE);
/**
* Static random Address
@@ -763,19 +761,65 @@ static void Ble_Hci_Gap_Gatt_Init(void){
* The lowest 32bits is read from the UDN to differentiate between devices
* The RNG may be used to provide a random number on each power on
*/
- srd_bd_addr[1] = 0x0000ED6E;
- srd_bd_addr[0] = LL_FLASH_GetUDN( );
+#if defined(CFG_STATIC_RANDOM_ADDRESS)
+ srd_bd_addr[0] = CFG_STATIC_RANDOM_ADDRESS & 0xFFFFFFFF;
+ srd_bd_addr[1] = (uint32_t)((uint64_t)CFG_STATIC_RANDOM_ADDRESS >> 32);
+ srd_bd_addr[1] |= 0xC000; /* The two upper bits shall be set to 1 */
+#elif (CFG_BLE_ADDRESS_TYPE == RANDOM_ADDR)
+ /* Get RNG semaphore */
+ while( LL_HSEM_1StepLock( HSEM, CFG_HW_RNG_SEMID ) );
+
+ /* Enable RNG */
+ __HAL_RNG_ENABLE(&hrng);
+
+ /* Enable HSI48 oscillator */
+ LL_RCC_HSI48_Enable();
+ /* Wait until HSI48 is ready */
+ while( ! LL_RCC_HSI48_IsReady( ) );
+
+ if (HAL_RNG_GenerateRandomNumber(&hrng, &srd_bd_addr[1]) != HAL_OK)
+ {
+ /* Random number generation error */
+ Error_Handler();
+ }
+ if (HAL_RNG_GenerateRandomNumber(&hrng, &srd_bd_addr[0]) != HAL_OK)
+ {
+ /* Random number generation error */
+ Error_Handler();
+ }
+ srd_bd_addr[1] |= 0xC000; /* The two upper bits shall be set to 1 */
+
+ /* Disable HSI48 oscillator */
+ LL_RCC_HSI48_Disable();
+
+ /* Disable RNG */
+ __HAL_RNG_DISABLE(&hrng);
+
+ /* Release RNG semaphore */
+ LL_HSEM_ReleaseLock( HSEM, CFG_HW_RNG_SEMID, 0 );
+#endif
+
+#if (CFG_BLE_ADDRESS_TYPE == STATIC_RANDOM_ADDR)
+ /* BLE MAC in ADV Packet */
+ manuf_data[ sizeof(manuf_data)-6] = srd_bd_addr[1] >> 8 ;
+ manuf_data[ sizeof(manuf_data)-5] = srd_bd_addr[1];
+ manuf_data[ sizeof(manuf_data)-4] = srd_bd_addr[0] >> 24;
+ manuf_data[ sizeof(manuf_data)-3] = srd_bd_addr[0] >> 16;
+ manuf_data[ sizeof(manuf_data)-2] = srd_bd_addr[0] >> 8;
+ manuf_data[ sizeof(manuf_data)-1] = srd_bd_addr[0];
+
aci_hal_write_config_data( CONFIG_DATA_RANDOM_ADDRESS_OFFSET, CONFIG_DATA_RANDOM_ADDRESS_LEN, (uint8_t*)srd_bd_addr );
+#endif
/**
* Write Identity root key used to derive LTK and CSRK
*/
- aci_hal_write_config_data( CONFIG_DATA_IR_OFFSET, CONFIG_DATA_IR_LEN, (uint8_t*)BLE_CFG_IR_VALUE );
+ aci_hal_write_config_data( CONFIG_DATA_IR_OFFSET, CONFIG_DATA_IR_LEN, (uint8_t*)BLE_CFG_IR_VALUE );
- /**
+ /**
* Write Encryption root key used to derive LTK and CSRK
*/
- aci_hal_write_config_data( CONFIG_DATA_ER_OFFSET, CONFIG_DATA_ER_LEN, (uint8_t*)BLE_CFG_ER_VALUE );
+ aci_hal_write_config_data( CONFIG_DATA_ER_OFFSET, CONFIG_DATA_ER_LEN, (uint8_t*)BLE_CFG_ER_VALUE );
/**
* Set TX Power to 0dBm.
@@ -803,9 +847,16 @@ static void Ble_Hci_Gap_Gatt_Init(void){
if (role > 0)
{
const char *name = "HRSTM";
- aci_gap_init(role, 0,
+ aci_gap_init(role,
+#if ((CFG_BLE_ADDRESS_TYPE == RESOLVABLE_PRIVATE_ADDR) || (CFG_BLE_ADDRESS_TYPE == NON_RESOLVABLE_PRIVATE_ADDR))
+ 2,
+#else
+ 0,
+#endif
APPBLE_GAP_DEVICE_NAME_LENGTH,
- &gap_service_handle, &gap_dev_name_char_handle, &gap_appearance_char_handle);
+ &gap_service_handle,
+ &gap_dev_name_char_handle,
+ &gap_appearance_char_handle);
if (aci_gatt_update_char_value(gap_service_handle, gap_dev_name_char_handle, 0, strlen(name), (uint8_t *) name))
{
@@ -850,7 +901,7 @@ static void Ble_Hci_Gap_Gatt_Init(void){
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMax,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Use_Fixed_Pin,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Fixed_Pin,
- PUBLIC_ADDR
+ CFG_BLE_ADDRESS_TYPE
);
/**
@@ -908,7 +959,7 @@ static void Adv_Request(APP_BLE_ConnStatus_t New_Status)
ADV_IND,
Min_Inter,
Max_Inter,
- PUBLIC_ADDR,
+ CFG_BLE_ADDRESS_TYPE,
NO_WHITE_LIST_USE, /* use white list */
sizeof(local_name),
(uint8_t*) &local_name,
@@ -1077,6 +1128,8 @@ static void BLE_UserEvtRx( void * pPayload )
{
pParam->status = HCI_TL_UserEventFlow_Disable;
}
+
+ return;
}
static void BLE_StatusNot( HCI_TL_CmdStatus_t status )
@@ -1119,4 +1172,3 @@ void SVCCTL_ResumeUserEventFlow( void )
/* USER CODE BEGIN FD_WRAP_FUNCTIONS */
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/app_ble.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/app_ble.h
index 6c2de2871..059889e6e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/app_ble.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/app_ble.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/app_ble.h
- * Description : Application configuration file for BLE Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file app_ble.h
+ * @author MCD Application Team
+ * @brief Header for ble application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -83,5 +82,3 @@ void APP_BLE_Key_Button2_Action(void);
#endif
#endif /*APP_BLE_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/ble_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/ble_conf.h
index 4a5dbf4d5..20ae2567d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/ble_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/ble_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/ble_conf.h
- * Description : Configuration file for BLE Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file ble_conf.h
+ * @author MCD Application Team
+ * @brief Configuration file for BLE Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -103,4 +102,3 @@
#define BLE_CFG_OTA_REBOOT_CHAR 0/**< REBOOT OTA MODE CHARACTERISTIC */
#endif /*BLE_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/ble_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/ble_dbg_conf.h
index 5f3ac9dd2..20ff53b14 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/ble_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/ble_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/ble_dbg_conf.h
- * Description : Debug configuration file for BLE Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file ble_dbg_conf.h
+ * @author MCD Application Team
+ * @brief Debug configuration file for BLE Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -197,5 +196,3 @@
#endif
#endif /*__BLE_DBG_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/dis_app.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/dis_app.c
index 396fcad74..c7c8e1f2f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/dis_app.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/dis_app.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -217,4 +216,3 @@ void DISAPP_Init(void)
/* USER CODE END FD */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/dis_app.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/dis_app.h
index 5dba6ce9f..138e1c0bc 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/dis_app.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/dis_app.h
@@ -1,22 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : App/dis_app.h
* Description : Entry application source file for BLE Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -74,4 +73,3 @@ void DISAPP_Init(void);
#endif /*__DIS_APP_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/hrs_app.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/hrs_app.c
index a75b5f69a..1cb27b0df 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/hrs_app.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/hrs_app.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -59,7 +58,9 @@ typedef struct
/**
* START of Section BLE_APP_CONTEXT
*/
+
PLACE_IN_SECTION("BLE_APP_CONTEXT") static HRSAPP_Context_t HRSAPP_Context;
+
/**
* END of Section BLE_APP_CONTEXT
*/
@@ -408,4 +409,3 @@ void LCD_DrawIcon(uint16_t Xpos, uint16_t Ypos, uint16_t width, uint16_t height,
}
/* USER CODE END FD */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/hrs_app.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/hrs_app.h
index ccf3d4b32..d068166e8 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/hrs_app.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/hrs_app.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -65,4 +64,3 @@ void HRSAPP_Init( void );
#endif /*__HRS_APP_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/tl_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/tl_dbg_conf.h
index bd808a41b..04ed3d88d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/tl_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/App/tl_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/tl_dbg_conf.h
- * Description : Debug configuration file for stm32wpan transport layer interface.
- *
+ ******************************************************************************
+ * @file tl_dbg_conf.h
+ * @author MCD Application Team
+ * @brief Debug configuration file for stm32wpan transport layer interface.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -132,5 +131,3 @@ extern "C" {
#endif
#endif /*__TL_DBG_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/Target/hw_ipcc.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/Target/hw_ipcc.c
index afa62b179..9a37e5370 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/Target/hw_ipcc.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/STM32_WPAN/Target/hw_ipcc.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : Target/hw_ipcc.c
- * Description : Hardware IPCC source file for STM32WPAN Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file hw_ipcc.c
+ * @author MCD Application Team
+ * @brief Hardware IPCC source file for STM32WPAN Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -164,10 +163,6 @@ void HW_IPCC_Tx_Handler( void )
HW_IPCC_ZIGBEE_CmdEvtHandler();
}
#endif /* ZIGBEE_WB */
- else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
- {
- HW_IPCC_SYS_CmdEvtHandler();
- }
else if (HW_IPCC_TX_PENDING( HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ))
{
HW_IPCC_MM_FreeBufHandler();
@@ -672,4 +667,3 @@ static void HW_IPCC_TRACES_EvtHandler( void )
__weak void HW_IPCC_TRACES_EvtNot( void ){};
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/readme.txt b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/readme.txt
index 74c2e3c38..d72a5b029 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_HeartRate/readme.txt
@@ -8,12 +8,12 @@
* @brief Description of the BLE_HeartRate example.
******************************************************************************
*
- * Copyright (c) 2021 STMicroelectronics. All rights reserved.
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@endverbatim
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_common.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_common.h
new file mode 100644
index 000000000..8d15b5c11
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_common.h
@@ -0,0 +1,119 @@
+/**
+ ******************************************************************************
+ * @file app_common.h
+ * @author MCD Application Team
+ * @brief Common
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APP_COMMON_H
+#define __APP_COMMON_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#include <stdint.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdarg.h>
+
+#include "app_conf.h"
+
+ /* -------------------------------- *
+ * Basic definitions *
+ * -------------------------------- */
+
+#undef NULL
+#define NULL 0
+
+#undef FALSE
+#define FALSE 0
+
+#undef TRUE
+#define TRUE (!0)
+
+ /* -------------------------------- *
+ * Critical Section definition *
+ * -------------------------------- */
+#define BACKUP_PRIMASK() uint32_t primask_bit= __get_PRIMASK()
+#define DISABLE_IRQ() __disable_irq()
+#define RESTORE_PRIMASK() __set_PRIMASK(primask_bit)
+
+ /* -------------------------------- *
+ * Macro delimiters *
+ * -------------------------------- */
+
+#define M_BEGIN do {
+
+#define M_END } while(0)
+
+ /* -------------------------------- *
+ * Some useful macro definitions *
+ * -------------------------------- */
+
+#ifndef MAX
+#define MAX( x, y ) (((x)>(y))?(x):(y))
+#endif
+
+#ifndef MIN
+#define MIN( x, y ) (((x)<(y))?(x):(y))
+#endif
+
+#define MODINC( a, m ) M_BEGIN (a)++; if ((a)>=(m)) (a)=0; M_END
+
+#define MODDEC( a, m ) M_BEGIN if ((a)==0) (a)=(m); (a)--; M_END
+
+#define MODADD( a, b, m ) M_BEGIN (a)+=(b); if ((a)>=(m)) (a)-=(m); M_END
+
+#define MODSUB( a, b, m ) MODADD( a, (m)-(b), m )
+
+
+#define PAUSE( t ) M_BEGIN \
+ volatile int _i; \
+ for ( _i = t; _i > 0; _i -- ); \
+ M_END
+
+#define DIVF( x, y ) ((x)/(y))
+
+#define DIVC( x, y ) (((x)+(y)-1)/(y))
+
+#define DIVR( x, y ) (((x)+((y)/2))/(y))
+
+#define SHRR( x, n ) ((((x)>>((n)-1))+1)>>1)
+
+#define BITN( w, n ) (((w)[(n)/32] >> ((n)%32)) & 1)
+
+#define BITNSET( w, n, b ) M_BEGIN (w)[(n)/32] |= ((U32)(b))<<((n)%32); M_END
+
+ /* -------------------------------- *
+ * Compiler *
+ * -------------------------------- */
+#define PLACE_IN_SECTION( __x__ ) __attribute__((section (__x__)))
+
+#ifdef WIN32
+#define ALIGN(n)
+#else
+#define ALIGN(n) __attribute__((aligned(n)))
+#endif
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*__APP_COMMON_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_conf.h
new file mode 100644
index 000000000..4d37ea1c3
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_conf.h
@@ -0,0 +1,613 @@
+/**
+ ******************************************************************************
+ * @file app_conf.h
+ * @author MCD Application Team
+ * @brief Application configuration file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APP_CONFIG_H
+#define __APP_CONFIG_H
+
+#include "hw.h"
+#include "hw_conf.h"
+#include "hw_if.h"
+#include "ble_bufsize.h"
+
+/******************************************************************************
+ * MESH Application Config
+ ******************************************************************************/
+
+/**< generic parameters ******************************************************/
+
+/**
+ * Define Tx Power
+ */
+#define CFG_TX_POWER (0x18) /**< +0 dBm */
+
+/**
+ * Define Advertising parameters
+ */
+#define CFG_ADV_BD_ADDRESS (0x7257acd87a6c)
+#define CFG_FAST_CONN_ADV_INTERVAL_MIN (0x80) /**< 80ms */
+#define CFG_FAST_CONN_ADV_INTERVAL_MAX (0xA0) /**< 100ms */
+#define CFG_LP_CONN_ADV_INTERVAL_MIN (0x640) /**< 1s */
+#define CFG_LP_CONN_ADV_INTERVAL_MAX (0x640) /**< 1s */
+
+/**
+ * Define IO Authentication
+ */
+#define CFG_BONDING_MODE (1)
+#define CFG_FIXED_PIN (111111)
+#define CFG_USED_FIXED_PIN (1)
+#define CFG_ENCRYPTION_KEY_SIZE_MAX (16)
+#define CFG_ENCRYPTION_KEY_SIZE_MIN (8)
+
+/**
+ * Define IO capabilities
+ */
+#define CFG_IO_CAPABILITY_DISPLAY_ONLY (0x00)
+#define CFG_IO_CAPABILITY_DISPLAY_YES_NO (0x01)
+#define CFG_IO_CAPABILITY_KEYBOARD_ONLY (0x02)
+#define CFG_IO_CAPABILITY_NO_INPUT_NO_OUTPUT (0x03)
+#define CFG_IO_CAPABILITY_KEYBOARD_DISPLAY (0x04)
+
+#define CFG_IO_CAPABILITY CFG_IO_CAPABILITY_DISPLAY_ONLY
+
+/**
+ * Define MITM modes
+ */
+#define CFG_MITM_PROTECTION_NOT_REQUIRED (0x00)
+#define CFG_MITM_PROTECTION_REQUIRED (0x01)
+
+#define CFG_MITM_PROTECTION CFG_MITM_PROTECTION_REQUIRED
+
+/**
+ * Define Secure Connections Support
+ */
+#define CFG_SECURE_NOT_SUPPORTED (0x00)
+#define CFG_SECURE_OPTIONAL (0x01)
+#define CFG_SECURE_MANDATORY (0x02)
+
+#define CFG_SC_SUPPORT CFG_SECURE_NOT_SUPPORTED
+
+/**
+ * Define Keypress Notification Support
+ */
+#define CFG_KEYPRESS_NOT_SUPPORTED (0x00)
+#define CFG_KEYPRESS_SUPPORTED (0x01)
+
+#define CFG_KEYPRESS_NOTIFICATION_SUPPORT CFG_KEYPRESS_NOT_SUPPORTED
+
+/**
+ * Numeric Comparison Answers
+ */
+#define YES (0x01)
+#define NO (0x00)
+
+/**
+ * Define PHY
+ */
+#define ALL_PHYS_PREFERENCE 0x00
+#define RX_2M_PREFERRED 0x02
+#define TX_2M_PREFERRED 0x02
+#define TX_1M 0x01
+#define TX_2M 0x02
+#define RX_1M 0x01
+#define RX_2M 0x02
+
+/**
+ * Generic Access Appearance
+ */
+#define CFG_UNKNOWN_APPEARANCE (0)
+#define CFG_GAP_APPEARANCE (832)
+
+/**
+* Identity root key used to derive LTK and CSRK
+*/
+#define CFG_BLE_IRK {0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0,0x12,0x34,0x56,0x78,0x9a,0xbc,0xde,0xf0}
+
+/**
+* Encryption root key used to derive LTK and CSRK
+*/
+#define CFG_BLE_ERK {0xfe,0xdc,0xba,0x09,0x87,0x65,0x43,0x21,0xfe,0xdc,0xba,0x09,0x87,0x65,0x43,0x21}
+
+/* USER CODE BEGIN Generic_Parameters */
+/**
+ * SMPS supply
+ * SMPS not used when Set to 0
+ * SMPS used when Set to 1
+ */
+#define CFG_USE_SMPS 0
+/* USER CODE END Generic_Parameters */
+
+/**< specific parameters ********************************************************/
+#define PUSH_BUTTON_SW_EXTI_IRQHandler EXTI15_10_IRQHandler
+
+#define POWEROFF_EXTI_IRQHandler EXTI15_10_IRQHandler
+
+#define CFG_MAX_CONNECTION 1
+
+#define RADIO_ACTIVITY_EVENT 1
+
+
+#define CONN_L(x) ((int)((x)/0.625f))
+#define CONN_P(x) ((int)((x)/1.25f))
+
+ /* L2CAP Connection Update request parameters used for test only with smart Phone */
+#define L2CAP_REQUEST_NEW_CONN_PARAM 1
+
+#define L2CAP_INTERVAL_MIN CONN_P(12) /* 1s */
+#define L2CAP_INTERVAL_MAX CONN_P(12) /* 1s */
+#define L2CAP_SLAVE_LATENCY 0x0000
+#define L2CAP_TIMEOUT_MULTIPLIER 800 /* 0x320 */
+
+
+/******************************************************************************
+ * BLE Stack
+ ******************************************************************************/
+/**
+ * Maximum number of simultaneous connections that the device will support.
+ * Valid values are from 1 to 8
+ */
+#define CFG_BLE_NUM_LINK 2
+
+/**
+ * Maximum number of Services that can be stored in the GATT database.
+ * Note that the GAP and GATT services are automatically added so this parameter should be 2 plus the number of user services
+ */
+#define CFG_BLE_NUM_GATT_SERVICES 8
+
+/**
+ * Maximum number of Attributes
+ * (i.e. the number of characteristic + the number of characteristic values + the number of descriptors, excluding the services)
+ * that can be stored in the GATT database.
+ * Note that certain characteristics and relative descriptors are added automatically during device initialization
+ * so this parameters should be 9 plus the number of user Attributes
+ */
+#define CFG_BLE_NUM_GATT_ATTRIBUTES 68
+
+/**
+ * Maximum supported ATT_MTU size
+ */
+#define CFG_BLE_MAX_ATT_MTU (23/*156*/)
+
+/**
+ * Size of the storage area for Attribute values
+ * This value depends on the number of attributes used by application. In particular the sum of the following quantities (in octets) should be made for each attribute:
+ * - attribute value length
+ * - 5, if UUID is 16 bit; 19, if UUID is 128 bit
+ * - 2, if server configuration descriptor is used
+ * - 2*DTM_NUM_LINK, if client configuration descriptor is used
+ * - 2, if extended properties is used
+ * The total amount of memory needed is the sum of the above quantities for each attribute.
+ * This parameter is ignored by the CPU2 when CFG_BLE_OPTIONS is set to 1"
+ */
+#define CFG_BLE_ATT_VALUE_ARRAY_SIZE (1344)
+
+/**
+ * Prepare Write List size in terms of number of packet with ATT_MTU=23 bytes
+ */
+#define CFG_BLE_PREPARE_WRITE_LIST_SIZE BLE_PREP_WRITE_X_ATT(CFG_BLE_MAX_ATT_MTU)
+
+/**
+ * Number of allocated memory blocks
+ * This parameter is overwritten by the CPU2 with an hardcoded optimal value when the parameter when CFG_BLE_OPTIONS is set to 1
+ */
+#define CFG_BLE_MBLOCK_COUNT (BLE_MBLOCKS_CALC(CFG_BLE_PREPARE_WRITE_LIST_SIZE, CFG_BLE_MAX_ATT_MTU, CFG_BLE_NUM_LINK))
+
+/**
+ * Enable or disable the Extended Packet length feature. Valid values are 0 or 1.
+ */
+#define CFG_BLE_DATA_LENGTH_EXTENSION 1
+
+/**
+ * Sleep clock accuracy in Slave mode (ppm value)
+ */
+#define CFG_BLE_SLAVE_SCA 500
+
+/**
+ * Sleep clock accuracy in Master mode
+ * 0 : 251 ppm to 500 ppm
+ * 1 : 151 ppm to 250 ppm
+ * 2 : 101 ppm to 150 ppm
+ * 3 : 76 ppm to 100 ppm
+ * 4 : 51 ppm to 75 ppm
+ * 5 : 31 ppm to 50 ppm
+ * 6 : 21 ppm to 30 ppm
+ * 7 : 0 ppm to 20 ppm
+ */
+#define CFG_BLE_MASTER_SCA 0
+
+/**
+ * Source for the low speed clock for RF wake-up
+ * 1 : external high speed crystal HSE/32/32
+ * 0 : external low speed crystal ( no calibration )
+ */
+#define CFG_BLE_LSE_SOURCE 0
+
+/**
+ * Start up time of the high speed (16 or 32 MHz) crystal oscillator in units of 625/256 us (~2.44 us)
+ */
+#define CFG_BLE_HSE_STARTUP_TIME 0x148
+
+/**
+ * Maximum duration of the connection event when the device is in Slave mode in units of 625/256 us (~2.44 us)
+ */
+#define CFG_BLE_MAX_CONN_EVENT_LENGTH ( 0xFFFFFFFF )
+
+/**
+ * Viterbi Mode
+ * 1 : enabled
+ * 0 : disabled
+ */
+#define CFG_BLE_VITERBI_MODE 1
+
+/**
+ * BLE stack Options flags to be configured with:
+ * - SHCI_C2_BLE_INIT_OPTIONS_LL_ONLY
+ * - SHCI_C2_BLE_INIT_OPTIONS_LL_HOST
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_SVC_CHANGE_DESC
+ * - SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC
+ * - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RO
+ * - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW
+ * - SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV
+ * - SHCI_C2_BLE_INIT_OPTIONS_CS_ALGO2
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2
+ * - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_1
+ * - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3 * which are used to set following configuration bits:
+ * (bit 0): 1: LL only
+ * 0: LL + host
+ * (bit 1): 1: no service change desc.
+ * 0: with service change desc.
+ * (bit 2): 1: device name Read-Only
+ * 0: device name R/W
+ * (bit 3): 1: extended advertizing supported [NOT SUPPORTED]
+ * 0: extended advertizing not supported [NOT SUPPORTED]
+ * (bit 4): 1: CS Algo #2 supported
+ * 0: CS Algo #2 not supported
+ * (bit 7): 1: LE Power Class 1
+ * 0: LE Power Class 2-3
+ * other bits: reserved (shall be set to 0)
+ */
+#define CFG_BLE_OPTIONS (SHCI_C2_BLE_INIT_OPTIONS_LL_HOST | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV | SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2 | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
+
+#define CFG_BLE_MAX_COC_INITIATOR_NBR (32)
+
+#define CFG_BLE_MIN_TX_POWER (0)
+
+#define CFG_BLE_MAX_TX_POWER (0)
+
+
+/**
+ * BLE Rx model configuration flags to be configured with:
+ * - SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_LEGACY
+ * - SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_BLOCKER
+* which are used to set following configuration bits:
+ * (bit 0): 1: agc_rssi model improved vs RF blockers
+ * 0: Legacy agc_rssi model
+ * other bits: reserved (shall be set to 0)
+ */
+
+#define CFG_BLE_RX_MODEL_CONFIG SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_LEGACY
+
+
+/******************************************************************************
+ * Transport Layer
+ ******************************************************************************/
+/**
+ * Queue length of BLE Event
+ * This parameter defines the number of asynchronous events that can be stored in the HCI layer before
+ * being reported to the application. When a command is sent to the BLE core coprocessor, the HCI layer
+ * is waiting for the event with the Num_HCI_Command_Packets set to 1. The receive queue shall be large
+ * enough to store all asynchronous events received in between.
+ * When CFG_TLBLE_MOST_EVENT_PAYLOAD_SIZE is set to 27, this allow to store three 255 bytes long asynchronous events
+ * between the HCI command and its event.
+ * This parameter depends on the value given to CFG_TLBLE_MOST_EVENT_PAYLOAD_SIZE. When the queue size is to small,
+ * the system may hang if the queue is full with asynchronous events and the HCI layer is still waiting
+ * for a CC/CS event, In that case, the notification TL_BLE_HCI_ToNot() is called to indicate
+ * to the application a HCI command did not receive its command event within 30s (Default HCI Timeout).
+ */
+#define CFG_TLBLE_EVT_QUEUE_LENGTH 5
+
+/**
+ * This parameter should be set to fit most events received by the HCI layer. It defines the buffer size of each element
+ * allocated in the queue of received events and can be used to optimize the amount of RAM allocated by the Memory Manager.
+ * It should not exceed 255 which is the maximum HCI packet payload size (a greater value is a lost of memory as it will
+ * never be used)
+ * It shall be at least 4 to receive the command status event in one frame.
+ * The default value is set to 27 to allow receiving an event of MTU size in a single buffer. This value maybe reduced
+ * further depending on the application.
+ *
+ */
+#define CFG_TLBLE_MOST_EVENT_PAYLOAD_SIZE 255 /**< Set to 255 with the memory manager and the mailbox */
+
+#define TL_BLE_EVENT_FRAME_SIZE ( TL_EVT_HDR_SIZE + CFG_TLBLE_MOST_EVENT_PAYLOAD_SIZE )
+
+/******************************************************************************
+ * UART interfaces
+ ******************************************************************************/
+
+/**
+ * Select UART interfaces
+ */
+#define CFG_DEBUG_TRACE_UART hw_uart1
+#define CFG_CONSOLE_MENU hw_lpuart1
+
+/******************************************************************************
+ * USB interface
+ ******************************************************************************/
+
+/**
+ * Enable/Disable USB interface
+ */
+#define CFG_USB_INTERFACE_ENABLE 0
+
+/******************************************************************************
+ * Low Power
+ ******************************************************************************/
+/**
+ * When set to 1, the low power mode is enable
+ * When set to 0, the device stays in RUN mode
+ */
+#define CFG_LPM_SUPPORTED 0
+
+/******************************************************************************
+ * Timer Server
+ ******************************************************************************/
+/**
+ * CFG_RTC_WUCKSEL_DIVIDER: This sets the RTCCLK divider to the wakeup timer.
+ * The lower is the value, the better is the power consumption and the accuracy of the timerserver
+ * The higher is the value, the finest is the granularity
+ *
+ * CFG_RTC_ASYNCH_PRESCALER: This sets the asynchronous prescaler of the RTC. It should as high as possible ( to output
+ * clock as low as possible) but the output clock should be equal or higher frequency compare to the clock feeding
+ * the wakeup timer. A lower clock speed would impact the accuracy of the timer server.
+ *
+ * CFG_RTC_SYNCH_PRESCALER: This sets the synchronous prescaler of the RTC.
+ * When the 1Hz calendar clock is required, it shall be sets according to other settings
+ * When the 1Hz calendar clock is not needed, CFG_RTC_SYNCH_PRESCALER should be set to 0x7FFF (MAX VALUE)
+ *
+ * CFG_RTCCLK_DIVIDER_CONF:
+ * Shall be set to either 0,2,4,8,16
+ * When set to either 2,4,8,16, the 1Hhz calendar is supported
+ * When set to 0, the user sets its own configuration
+ *
+ * The following settings are computed with LSI as input to the RTC
+ */
+#define CFG_RTCCLK_DIVIDER_CONF 0
+
+#if (CFG_RTCCLK_DIVIDER_CONF == 0)
+/**
+ * Custom configuration
+ * It does not support 1Hz calendar
+ * It divides the RTC CLK by 16
+ */
+#define CFG_RTCCLK_DIV (16)
+#define CFG_RTC_WUCKSEL_DIVIDER (0)
+#define CFG_RTC_ASYNCH_PRESCALER (CFG_RTCCLK_DIV - 1)
+#define CFG_RTC_SYNCH_PRESCALER (0x7FFF)
+
+#else
+
+#if (CFG_RTCCLK_DIVIDER_CONF == 2)
+/**
+ * It divides the RTC CLK by 2
+ */
+#define CFG_RTC_WUCKSEL_DIVIDER (3)
+#endif
+
+#if (CFG_RTCCLK_DIVIDER_CONF == 4)
+/**
+ * It divides the RTC CLK by 4
+ */
+#define CFG_RTC_WUCKSEL_DIVIDER (2)
+#endif
+
+#if (CFG_RTCCLK_DIVIDER_CONF == 8)
+/**
+ * It divides the RTC CLK by 8
+ */
+#define CFG_RTC_WUCKSEL_DIVIDER (1)
+#endif
+
+#if (CFG_RTCCLK_DIVIDER_CONF == 16)
+/**
+ * It divides the RTC CLK by 16
+ */
+#define CFG_RTC_WUCKSEL_DIVIDER (0)
+#endif
+
+#define CFG_RTCCLK_DIV CFG_RTCCLK_DIVIDER_CONF
+#define CFG_RTC_ASYNCH_PRESCALER (CFG_RTCCLK_DIV - 1)
+#define CFG_RTC_SYNCH_PRESCALER (DIVR( LSE_VALUE, (CFG_RTC_ASYNCH_PRESCALER+1) ) - 1 )
+
+#endif
+
+/** tick timer value in us */
+#define CFG_TS_TICK_VAL DIVR( (CFG_RTCCLK_DIV * 1000000), LSE_VALUE )
+
+typedef enum
+{
+ CFG_TIM_PROC_ID_ISR,
+} CFG_TimProcID_t;
+
+/******************************************************************************
+ * Debug
+ ******************************************************************************/
+/**
+ * When set, this resets some hw resources to set the device in the same state than the power up
+ * The FW resets only register that may prevent the FW to run properly
+ *
+ * This shall be set to 0 in a final product
+ *
+ */
+#define CFG_HW_RESET_BY_FW 1
+
+#define CFG_LED_SUPPORTED 1
+#define CFG_BUTTON_SUPPORTED 1
+
+/**
+ * keep debugger enabled while in any low power mode when set to 1
+ * should be set to 0 in production
+ */
+#define CFG_DEBUGGER_SUPPORTED 1
+
+/**
+ * When set to 1, the traces are enabled in the BLE services
+ */
+#define CFG_DEBUG_BLE_TRACE 1
+
+/**
+ * Enable or Disable traces in application
+ */
+#define CFG_DEBUG_APP_TRACE 1
+
+#if (CFG_DEBUG_APP_TRACE != 0)
+#define APP_DBG_MSG PRINT_MESG_DBG
+#else
+#define APP_DBG_MSG PRINT_NO_MESG
+#endif
+
+
+#if ( (CFG_DEBUG_BLE_TRACE != 0) || (CFG_DEBUG_APP_TRACE != 0) )
+#define CFG_DEBUG_TRACE 1
+#endif
+
+#if (CFG_DEBUG_TRACE != 0)
+#undef CFG_LPM_SUPPORTED
+#undef CFG_DEBUGGER_SUPPORTED
+#define CFG_LPM_SUPPORTED 0
+#define CFG_DEBUGGER_SUPPORTED 1
+#endif
+
+/**
+ * When CFG_DEBUG_TRACE_FULL is set to 1, the trace are output with the API name, the file name and the line number
+ * When CFG_DEBUG_TRACE_LIGHT is set to 1, only the debug message is output
+ *
+ * When both are set to 0, no trace are output
+ * When both are set to 1, CFG_DEBUG_TRACE_FULL is selected
+ */
+#define CFG_DEBUG_TRACE_LIGHT 1
+#define CFG_DEBUG_TRACE_FULL 0
+
+#if (( CFG_DEBUG_TRACE != 0 ) && ( CFG_DEBUG_TRACE_LIGHT == 0 ) && (CFG_DEBUG_TRACE_FULL == 0))
+#undef CFG_DEBUG_TRACE_FULL
+#undef CFG_DEBUG_TRACE_LIGHT
+#define CFG_DEBUG_TRACE_FULL 0
+#define CFG_DEBUG_TRACE_LIGHT 1
+#endif
+
+#if ( CFG_DEBUG_TRACE == 0 )
+#undef CFG_DEBUG_TRACE_FULL
+#undef CFG_DEBUG_TRACE_LIGHT
+#define CFG_DEBUG_TRACE_FULL 0
+#define CFG_DEBUG_TRACE_LIGHT 0
+#endif
+
+/**
+ * When not set, the traces is looping on sending the trace over UART
+ */
+#define DBG_TRACE_USE_CIRCULAR_QUEUE 1
+
+/**
+ * max buffer Size to queue data traces and max data trace allowed.
+ * Only Used if DBG_TRACE_USE_CIRCULAR_QUEUE is defined
+ */
+#define DBG_TRACE_MSG_QUEUE_SIZE 4096
+#define MAX_DBG_TRACE_MSG_SIZE 1024
+
+/******************************************************************************
+ * Scheduler
+ ******************************************************************************/
+
+/**
+ * These are the lists of task id registered to the scheduler
+ * Each task id shall be in the range [0:31]
+ * This mechanism allows to implement a generic code in the API TL_BLE_HCI_StatusNot() to comply with
+ * the requirement that a HCI/ACI command shall never be sent if there is already one pending
+ */
+
+/**< Add in that list all tasks that may send a ACI/HCI command */
+typedef enum
+{
+ CFG_TASK_ADV_UPDATE_ID,
+ CFG_TASK_HCI_ASYNCH_EVT_ID,
+ CFG_TASK_MESH_REQ_ID,
+ CFG_TASK_MESH_BEACON_REQ_ID,
+ CFG_TASK_MESH_UART_RX_REQ_ID,
+ CFG_TASK_APPLI_REQ_ID,
+ CFG_TASK_TEMP_PUB_REQ_ID,
+ CFG_TASK_MESH_SW1_REQ_ID,
+ CFG_TASK_MESH_SW3_REQ_ID,
+ CFG_TASK_MESH_LPN_REQ_ID,
+
+ CFG_LAST_TASK_ID_WITH_HCICMD, /**< Shall be LAST in the list */
+} CFG_Task_Id_With_HCI_Cmd_t;
+
+/**< Add in that list all tasks that never send a ACI/HCI command */
+typedef enum
+{
+ CFG_FIRST_TASK_ID_WITH_NO_HCICMD = CFG_LAST_TASK_ID_WITH_HCICMD - 1, /**< Shall be FIRST in the list */
+ CFG_TASK_SW1_BUTTON_PUSHED_ID,
+ CFG_TASK_GET_MEASURE_TOF_ID,
+ CFG_TASK_GET_MEASURE_ENV_ID,
+ CFG_TASK_SYSTEM_HCI_ASYNCH_EVT_ID,
+
+ CFG_LAST_TASK_ID_WITHO_NO_HCICMD /**< Shall be LAST in the list */
+} CFG_Task_Id_With_NO_HCI_Cmd_t;
+#define CFG_TASK_NBR CFG_LAST_TASK_ID_WITHO_NO_HCICMD
+
+/**
+ * This is the list of priority required by the application
+ * Each Id shall be in the range 0..31
+ */
+typedef enum
+{
+ CFG_SCH_PRIO_0,
+ CFG_PRIO_NBR,
+} CFG_SCH_Prio_Id_t;
+
+/**
+ * This is a bit mapping over 32bits listing all events id supported in the application
+ */
+typedef enum
+{
+ CFG_IDLEEVT_HCI_CMD_EVT_RSP_ID,
+ CFG_IDLEEVT_SYSTEM_HCI_CMD_EVT_RSP_ID,
+} CFG_IdleEvt_Id_t;
+
+/******************************************************************************
+ * LOW POWER
+ ******************************************************************************/
+/**
+ * Supported requester to the MCU Low Power Manager - can be increased up to 32
+ * It lists a bit mapping of all user of the Low Power Manager
+ */
+typedef enum
+{
+ CFG_LPM_APP,
+ CFG_LPM_APP_BLE
+} CFG_LPM_Id_t;
+
+/******************************************************************************
+ * OTP manager
+ ******************************************************************************/
+#define CFG_OTP_BASE_ADDRESS OTP_AREA_BASE
+
+#define CFG_OTP_END_ADRESS OTP_AREA_END_ADDR
+
+#endif /*__APP_CONFIG_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_debug.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_debug.h
new file mode 100644
index 000000000..d6146c542
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_debug.h
@@ -0,0 +1,42 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file app_debug.h
+ * @author MCD Application Team
+ * @brief Header for app_debug.c module
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APP_DEBUG_H
+#define __APP_DEBUG_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ /* Includes ------------------------------------------------------------------*/
+ /* Exported types ------------------------------------------------------------*/
+ /* Exported constants --------------------------------------------------------*/
+ /* External variables --------------------------------------------------------*/
+ /* Exported macros -----------------------------------------------------------*/
+ /* Exported functions ------------------------------------------------------- */
+ void APPD_Init( void );
+ void APPD_EnableCPU2( void );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*__APP_DEBUG_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_entry.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_entry.h
new file mode 100644
index 000000000..b82056fc3
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_entry.h
@@ -0,0 +1,42 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file app_entry.h
+ * @author MCD Application Team
+ * @brief Interface to the application
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APP_ENTRY_H
+#define __APP_ENTRY_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ /* Includes ------------------------------------------------------------------*/
+ /* Exported types ------------------------------------------------------------*/
+ /* Exported constants --------------------------------------------------------*/
+ /* External variables --------------------------------------------------------*/
+ /* Exported macros -----------------------------------------------------------*/
+ /* Exported functions ------------------------------------------------------- */
+ void APPE_Init( void );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*__APP_ENTRY_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_stts22h.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_stts22h.h
new file mode 100644
index 000000000..c76aa8294
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_stts22h.h
@@ -0,0 +1,43 @@
+/**
+ ******************************************************************************
+ * @file app_stts221.h
+ * @author MCD Application Team
+ * @brief Header for app_stts221.c module
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APP_STTS22H_H
+#define __APP_STTS22H_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "stts22h_reg.h"
+#include "stts22h.h"
+//#include "stm32wb5M_DK_bus.h"
+#include "stm32wb5mm_dk_bus.h"
+//#include "stm32wbxx_discovery_lcd.h"
+#include "stm32_seq.h"
+#include "app_common.h"
+#include "common.h"
+#include "sensors.h"
+
+/* Defines -------------------------------------------------------------------*/
+
+/* Exported functions ------------------------------------------------------- */
+int32_t STTS22H_Init_Sensor(void);
+void STTS22H_getTemperatureValue(float *value);
+void STTS22H_Start_Measure(void);
+void STTS22H_Stop_Measure(void);
+void STTS22H_PrintValues(void);
+
+#endif /* __APP_STTS22H_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_vl53l0x.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_vl53l0x.h
new file mode 100644
index 000000000..88674407c
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_vl53l0x.h
@@ -0,0 +1,43 @@
+/**
+ ******************************************************************************
+ * @file app_vl53l0x.h
+ * @author MCD Application Team
+ * @brief Header for app_vl53l0x.c module
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APP_VL53L0X_H
+#define __APP_VL53L0X_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "vl53l0x_def.h"
+#include "vl53l0x_api.h"
+#include "vl53l0x_tof.h"
+//#include "stm32wb5M_DK_bus.h"
+#include "stm32wb5mm_dk_bus.h"
+#include "stm32wb5mm_dk.h"
+//#include "stm32wbxx_discovery_lcd.h"
+#include "stm32_seq.h"
+#include "app_common.h"
+/* Defines -------------------------------------------------------------------*/
+#define PROXIMITY_I2C_ADDRESS ((uint16_t)0x0052)
+#define VL53L0X_ID ((uint16_t)0xEEAA)
+
+/* Exported functions ------------------------------------------------------- */
+void VL53L0X_PROXIMITY_Init(void);
+uint16_t VL53L0X_PROXIMITY_GetDistance(void);
+void VL53L0X_PROXIMITY_PrintValue(void);
+void VL53L0X_Start_Measure(void);
+void VL53L0X_Stop_Measure(void);
+#endif /* __APP_VL53L0X_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_conf.h
new file mode 100644
index 000000000..bb561c740
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_conf.h
@@ -0,0 +1,246 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file hw_conf.h
+ * @author MCD Application Team
+ * @brief Configuration of hardware interface
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef HW_CONF_H
+#define HW_CONF_H
+
+/******************************************************************************
+ * Semaphores
+ * THIS SHALL NO BE CHANGED AS THESE SEMAPHORES ARE USED AS WELL ON THE CM0+
+ *****************************************************************************/
+/**
+* Index of the semaphore used by CPU2 to prevent the CPU1 to either write or erase data in flash
+* The CPU1 shall not either write or erase in flash when this semaphore is taken by the CPU2
+* When the CPU1 needs to either write or erase in flash, it shall first get the semaphore and release it just
+* after writing a raw (64bits data) or erasing one sector.
+* Once the Semaphore has been released, there shall be at least 1us before it can be taken again. This is required
+* to give the opportunity to CPU2 to take it.
+* On v1.4.0 and older CPU2 wireless firmware, this semaphore is unused and CPU2 is using PES bit.
+* By default, CPU2 is using the PES bit to protect its timing. The CPU1 may request the CPU2 to use the semaphore
+* instead of the PES bit by sending the system command SHCI_C2_SetFlashActivityControl()
+*/
+#define CFG_HW_BLOCK_FLASH_REQ_BY_CPU2_SEMID 7
+
+/**
+* Index of the semaphore used by CPU1 to prevent the CPU2 to either write or erase data in flash
+* In order to protect its timing, the CPU1 may get this semaphore to prevent the CPU2 to either
+* write or erase in flash (as this will stall both CPUs)
+* The PES bit shall not be used as this may stall the CPU2 in some cases.
+*/
+#define CFG_HW_BLOCK_FLASH_REQ_BY_CPU1_SEMID 6
+
+/**
+* Index of the semaphore used to manage the CLK48 clock configuration
+* When the USB is required, this semaphore shall be taken before configuring te CLK48 for USB
+* and should be released after the application switch OFF the clock when the USB is not used anymore
+* When using the RNG, it is good enough to use CFG_HW_RNG_SEMID to control CLK48.
+* More details in AN5289
+*/
+#define CFG_HW_CLK48_CONFIG_SEMID 5
+
+/* Index of the semaphore used to manage the entry Stop Mode procedure */
+#define CFG_HW_ENTRY_STOP_MODE_SEMID 4
+
+/* Index of the semaphore used to access the RCC */
+#define CFG_HW_RCC_SEMID 3
+
+/* Index of the semaphore used to access the FLASH */
+#define CFG_HW_FLASH_SEMID 2
+
+/* Index of the semaphore used to access the PKA */
+#define CFG_HW_PKA_SEMID 1
+
+/* Index of the semaphore used to access the RNG */
+#define CFG_HW_RNG_SEMID 0
+
+/******************************************************************************
+ * HW TIMER SERVER
+ *****************************************************************************/
+/**
+ * The user may define the maximum number of virtual timers supported.
+ * It shall not exceed 255
+ */
+#define CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER 6
+
+/**
+ * The user may define the priority in the NVIC of the RTC_WKUP interrupt handler that is used to manage the
+ * wakeup timer.
+ * This setting is the preemptpriority part of the NVIC.
+ */
+#define CFG_HW_TS_NVIC_RTC_WAKEUP_IT_PREEMPTPRIO 3
+
+/**
+ * The user may define the priority in the NVIC of the RTC_WKUP interrupt handler that is used to manage the
+ * wakeup timer.
+ * This setting is the subpriority part of the NVIC. It does not exist on all processors. When it is not supported
+ * on the CPU, the setting is ignored
+ */
+#define CFG_HW_TS_NVIC_RTC_WAKEUP_IT_SUBPRIO 0
+
+/**
+ * Define a critical section in the Timer server
+ * The Timer server does not support the API to be nested
+ * The Application shall either:
+ * a) Ensure this will never happen
+ * b) Define the critical section
+ * The default implementations is masking all interrupts using the PRIMASK bit
+ * The TimerServer driver uses critical sections to avoid context corruption. This is achieved with the macro
+ * TIMER_ENTER_CRITICAL_SECTION and TIMER_EXIT_CRITICAL_SECTION. When CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION is set
+ * to 1, all STM32 interrupts are masked with the PRIMASK bit of the CortexM CPU. It is possible to use the BASEPRI
+ * register of the CortexM CPU to keep allowed some interrupts with high priority. In that case, the user shall
+ * re-implement TIMER_ENTER_CRITICAL_SECTION and TIMER_EXIT_CRITICAL_SECTION and shall make sure that no TimerServer
+ * API are called when the TIMER critical section is entered
+ */
+#define CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION 1
+
+/**
+ * This value shall reflect the maximum delay there could be in the application between the time the RTC interrupt
+ * is generated by the Hardware and the time when the RTC interrupt handler is called. This time is measured in
+ * number of RTCCLK ticks.
+ * A relaxed timing would be 10ms
+ * When the value is too short, the timerserver will not be able to count properly and all timeout may be random.
+ * When the value is too long, the device may wake up more often than the most optimal configuration. However, the
+ * impact on power consumption would be marginal (unless the value selected is extremely too long). It is strongly
+ * recommended to select a value large enough to make sure it is not too short to ensure reliability of the system
+ * as this will have marginal impact on low power mode
+ */
+#define CFG_HW_TS_RTC_HANDLER_MAX_DELAY ( 10 * (LSI_VALUE/1000) )
+
+ /**
+ * Interrupt ID in the NVIC of the RTC Wakeup interrupt handler
+ * It shall be type of IRQn_Type
+ */
+#define CFG_HW_TS_RTC_WAKEUP_HANDLER_ID RTC_WKUP_IRQn
+
+/******************************************************************************
+ * HW UART
+ *****************************************************************************/
+#define CFG_HW_LPUART1_ENABLED 0
+#define CFG_HW_LPUART1_DMA_TX_SUPPORTED 0
+
+#define CFG_HW_USART1_ENABLED 1
+#define CFG_HW_USART1_DMA_TX_SUPPORTED 1
+
+/**
+ * LPUART1
+ */
+#define CFG_HW_LPUART1_PREEMPTPRIORITY 0x0F
+#define CFG_HW_LPUART1_SUBPRIORITY 0
+
+/** < The application shall check the selected source clock is enable */
+#define CFG_HW_LPUART1_SOURCE_CLOCK RCC_LPUART1CLKSOURCE_SYSCLK
+
+#define CFG_HW_LPUART1_BAUDRATE 115200
+#define CFG_HW_LPUART1_WORDLENGTH UART_WORDLENGTH_8B
+#define CFG_HW_LPUART1_STOPBITS UART_STOPBITS_1
+#define CFG_HW_LPUART1_PARITY UART_PARITY_NONE
+#define CFG_HW_LPUART1_HWFLOWCTL UART_HWCONTROL_NONE
+#define CFG_HW_LPUART1_MODE UART_MODE_TX_RX
+#define CFG_HW_LPUART1_ADVFEATUREINIT UART_ADVFEATURE_NO_INIT
+#define CFG_HW_LPUART1_OVERSAMPLING UART_OVERSAMPLING_8
+
+#define CFG_HW_LPUART1_TX_PORT_CLK_ENABLE __HAL_RCC_GPIOA_CLK_ENABLE
+#define CFG_HW_LPUART1_TX_PORT GPIOA
+#define CFG_HW_LPUART1_TX_PIN GPIO_PIN_2
+#define CFG_HW_LPUART1_TX_MODE GPIO_MODE_AF_PP
+#define CFG_HW_LPUART1_TX_PULL GPIO_NOPULL
+#define CFG_HW_LPUART1_TX_SPEED GPIO_SPEED_FREQ_VERY_HIGH
+#define CFG_HW_LPUART1_TX_ALTERNATE GPIO_AF8_LPUART1
+
+#define CFG_HW_LPUART1_RX_PORT_CLK_ENABLE __HAL_RCC_GPIOA_CLK_ENABLE
+#define CFG_HW_LPUART1_RX_PORT GPIOA
+#define CFG_HW_LPUART1_RX_PIN GPIO_PIN_3
+#define CFG_HW_LPUART1_RX_MODE GPIO_MODE_AF_PP
+#define CFG_HW_LPUART1_RX_PULL GPIO_NOPULL
+#define CFG_HW_LPUART1_RX_SPEED GPIO_SPEED_FREQ_VERY_HIGH
+#define CFG_HW_LPUART1_RX_ALTERNATE GPIO_AF8_LPUART1
+
+#define CFG_HW_LPUART1_CTS_PORT_CLK_ENABLE __HAL_RCC_GPIOA_CLK_ENABLE
+#define CFG_HW_LPUART1_CTS_PORT GPIOA
+#define CFG_HW_LPUART1_CTS_PIN GPIO_PIN_6
+#define CFG_HW_LPUART1_CTS_MODE GPIO_MODE_AF_PP
+#define CFG_HW_LPUART1_CTS_PULL GPIO_PULLDOWN
+#define CFG_HW_LPUART1_CTS_SPEED GPIO_SPEED_FREQ_VERY_HIGH
+#define CFG_HW_LPUART1_CTS_ALTERNATE GPIO_AF8_LPUART1
+
+#define CFG_HW_LPUART1_DMA_TX_PREEMPTPRIORITY 0x0F
+#define CFG_HW_LPUART1_DMA_TX_SUBPRIORITY 0
+
+#define CFG_HW_LPUART1_DMAMUX_CLK_ENABLE __HAL_RCC_DMAMUX1_CLK_ENABLE
+#define CFG_HW_LPUART1_DMA_CLK_ENABLE __HAL_RCC_DMA1_CLK_ENABLE
+#define CFG_HW_LPUART1_TX_DMA_REQ DMA_REQUEST_LPUART1_TX
+#define CFG_HW_LPUART1_TX_DMA_CHANNEL DMA1_Channel4
+#define CFG_HW_LPUART1_TX_DMA_IRQn DMA1_Channel4_IRQn
+#define CFG_HW_LPUART1_DMA_TX_IRQHandler DMA1_Channel4_IRQHandler
+
+/**
+ * UART1
+ */
+#define CFG_HW_USART1_PREEMPTPRIORITY 0x0F
+#define CFG_HW_USART1_SUBPRIORITY 0
+
+/** < The application shall check the selected source clock is enable */
+#define CFG_HW_USART1_SOURCE_CLOCK RCC_USART1CLKSOURCE_SYSCLK
+
+#define CFG_HW_USART1_BAUDRATE 115200
+#define CFG_HW_USART1_WORDLENGTH UART_WORDLENGTH_8B
+#define CFG_HW_USART1_STOPBITS UART_STOPBITS_1
+#define CFG_HW_USART1_PARITY UART_PARITY_NONE
+#define CFG_HW_USART1_HWFLOWCTL UART_HWCONTROL_NONE
+#define CFG_HW_USART1_MODE UART_MODE_TX_RX
+#define CFG_HW_USART1_ADVFEATUREINIT UART_ADVFEATURE_NO_INIT
+#define CFG_HW_USART1_OVERSAMPLING UART_OVERSAMPLING_8
+
+#define CFG_HW_USART1_TX_PORT_CLK_ENABLE __HAL_RCC_GPIOB_CLK_ENABLE
+#define CFG_HW_USART1_TX_PORT GPIOB
+#define CFG_HW_USART1_TX_PIN GPIO_PIN_6
+#define CFG_HW_USART1_TX_MODE GPIO_MODE_AF_PP
+#define CFG_HW_USART1_TX_PULL GPIO_NOPULL
+#define CFG_HW_USART1_TX_SPEED GPIO_SPEED_FREQ_VERY_HIGH
+#define CFG_HW_USART1_TX_ALTERNATE GPIO_AF7_USART1
+
+#define CFG_HW_USART1_RX_PORT_CLK_ENABLE __HAL_RCC_GPIOB_CLK_ENABLE
+#define CFG_HW_USART1_RX_PORT GPIOB
+#define CFG_HW_USART1_RX_PIN GPIO_PIN_7
+#define CFG_HW_USART1_RX_MODE GPIO_MODE_AF_PP
+#define CFG_HW_USART1_RX_PULL GPIO_NOPULL
+#define CFG_HW_USART1_RX_SPEED GPIO_SPEED_FREQ_VERY_HIGH
+#define CFG_HW_USART1_RX_ALTERNATE GPIO_AF7_USART1
+
+#define CFG_HW_USART1_CTS_PORT_CLK_ENABLE __HAL_RCC_GPIOA_CLK_ENABLE
+#define CFG_HW_USART1_CTS_PORT GPIOA
+#define CFG_HW_USART1_CTS_PIN GPIO_PIN_11
+#define CFG_HW_USART1_CTS_MODE GPIO_MODE_AF_PP
+#define CFG_HW_USART1_CTS_PULL GPIO_PULLDOWN
+#define CFG_HW_USART1_CTS_SPEED GPIO_SPEED_FREQ_VERY_HIGH
+#define CFG_HW_USART1_CTS_ALTERNATE GPIO_AF7_USART1
+
+#define CFG_HW_USART1_DMA_TX_PREEMPTPRIORITY 0x0F
+#define CFG_HW_USART1_DMA_TX_SUBPRIORITY 0
+
+#define CFG_HW_USART1_DMAMUX_CLK_ENABLE __HAL_RCC_DMAMUX1_CLK_ENABLE
+#define CFG_HW_USART1_DMA_CLK_ENABLE __HAL_RCC_DMA2_CLK_ENABLE
+#define CFG_HW_USART1_TX_DMA_REQ DMA_REQUEST_USART1_TX
+#define CFG_HW_USART1_TX_DMA_CHANNEL DMA2_Channel4
+#define CFG_HW_USART1_TX_DMA_IRQn DMA2_Channel4_IRQn
+#define CFG_HW_USART1_DMA_TX_IRQHandler DMA2_Channel4_IRQHandler
+
+#endif /*HW_CONF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_flash.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_flash.h
new file mode 100644
index 000000000..51ece819e
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_flash.h
@@ -0,0 +1,84 @@
+/**
+ ******************************************************************************
+* @file hw_flash.h
+* @brief Header for hw_flash.c module
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __HW_FLASH_H
+#define __HW_FLASH_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+/**
+ * @brief Write 64 bits double word in FLASH
+ *
+ * @param FLASH destination address
+ * @param 64 bits double word data
+ * @retval result
+ */
+MOBLE_RESULT HW_FLASH_Write(uint32_t address, uint64_t data);
+
+/**
+ * @brief Erase FLASH page
+ *
+ * @param address of FLASH page
+ * @param number of page
+ * @param interrupt not used
+ * @retval result
+ */
+MOBLE_RESULT HW_FLASH_Erase(uint32_t page, uint16_t n, int interrupt);
+
+#if 0
+/**
+ * @brief Get Option Byte IPCC buffer address
+ *
+ * @param None
+ * @retval Option Byte IPCC buffer address
+ */
+uint32_t HW_FLASH_OB_GetIPCCBufferAddr(void);
+
+/**
+ * @brief Get Option Byte SFSA
+ *
+ * @param None
+ * @retval Option Byte SFSA
+ */
+uint32_t HW_FLASH_OB_GetSFSA(void);
+
+/**
+ * @brief Get Option Byte SBSRA
+ *
+ * @param None
+ * @retval Option Byte SBSRA
+ */
+uint32_t HW_FLASH_OB_GetSBRSA(void);
+
+/**
+ * @brief Get Option Byte SNBRSA
+ *
+ * @param None
+ * @retval Option Byte SNBRSA
+ */
+uint32_t HW_FLASH_OB_GetSNBRSA(void);
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*__HW_FLASH_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_if.h
new file mode 100644
index 000000000..7a9f350d7
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_if.h
@@ -0,0 +1,250 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file hw_if.h
+ * @author MCD Application Team
+ * @brief Hardware Interface
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef HW_IF_H
+#define HW_IF_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+ /* Includes ------------------------------------------------------------------*/
+#include "stm32wbxx.h"
+#include "stm32wbxx_ll_exti.h"
+#include "stm32wbxx_ll_system.h"
+#include "stm32wbxx_ll_rcc.h"
+#include "stm32wbxx_ll_ipcc.h"
+#include "stm32wbxx_ll_bus.h"
+#include "stm32wbxx_ll_pwr.h"
+#include "stm32wbxx_ll_cortex.h"
+#include "stm32wbxx_ll_utils.h"
+#include "stm32wbxx_ll_hsem.h"
+#include "stm32wbxx_ll_gpio.h"
+#include "stm32wbxx_ll_rtc.h"
+
+//#ifdef USE_STM32WBXX_USB_DONGLE
+//#include "stm32wbxx_usb_dongle.h"
+//#endif
+//#ifdef USE_STM32WBXX_NUCLEO
+//#include "stm32wbxx_nucleo.h"
+//#endif
+//#ifdef USE_X_NUCLEO_EPD
+//#include "x_nucleo_epd.h"
+//#endif
+#ifdef USE_STM32WB5M_DK
+#include "stm32wb5mm_dk.h"
+#endif
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+ /******************************************************************************
+ * HW UART
+ ******************************************************************************/
+ typedef enum
+ {
+ hw_uart1,
+ hw_uart2,
+ hw_lpuart1,
+ } hw_uart_id_t;
+
+ typedef enum
+ {
+ hw_uart_ok,
+ hw_uart_error,
+ hw_uart_busy,
+ hw_uart_to,
+ } hw_status_t;
+
+ void HW_UART_Init(hw_uart_id_t hw_uart_id);
+ void HW_UART_Receive_IT(hw_uart_id_t hw_uart_id, uint8_t *pData, uint16_t Size, void (*Callback)(void));
+ void HW_UART_Transmit_IT(hw_uart_id_t hw_uart_id, uint8_t *pData, uint16_t Size, void (*Callback)(void));
+ hw_status_t HW_UART_Transmit(hw_uart_id_t hw_uart_id, uint8_t *p_data, uint16_t size, uint32_t timeout);
+ hw_status_t HW_UART_Transmit_DMA(hw_uart_id_t hw_uart_id, uint8_t *p_data, uint16_t size, void (*Callback)(void));
+ void HW_UART_Interrupt_Handler(hw_uart_id_t hw_uart_id);
+ void HW_UART_DMA_Interrupt_Handler(hw_uart_id_t hw_uart_id);
+
+ /******************************************************************************
+ * HW TimerServer
+ ******************************************************************************/
+ /* Exported types ------------------------------------------------------------*/
+ /**
+ * This setting is used when standby mode is supported.
+ * hw_ts_InitMode_Limited should be used when the device restarts from Standby Mode. In that case, the Timer Server does
+ * not re-initialized its context. Only the Hardware register which content has been lost is reconfigured
+ * Otherwise, hw_ts_InitMode_Full should be requested (Start from Power ON) and everything is re-initialized.
+ */
+ typedef enum
+ {
+ hw_ts_InitMode_Full,
+ hw_ts_InitMode_Limited,
+ } HW_TS_InitMode_t;
+
+ /**
+ * When a Timer is created as a SingleShot timer, it is not automatically restarted when the timeout occurs. However,
+ * the timer is kept reserved in the list and could be restarted at anytime with HW_TS_Start()
+ *
+ * When a Timer is created as a Repeated timer, it is automatically restarted when the timeout occurs.
+ */
+ typedef enum
+ {
+ hw_ts_SingleShot,
+ hw_ts_Repeated
+ } HW_TS_Mode_t;
+
+ /**
+ * hw_ts_Successful is returned when a Timer has been successfully created with HW_TS_Create(). Otherwise, hw_ts_Failed
+ * is returned. When hw_ts_Failed is returned, that means there are not enough free slots in the list to create a
+ * Timer. In that case, CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER should be increased
+ */
+ typedef enum
+ {
+ hw_ts_Successful,
+ hw_ts_Failed,
+ }HW_TS_ReturnStatus_t;
+
+ typedef void (*HW_TS_pTimerCb_t)(void);
+
+ /**
+ * @brief Initialize the timer server
+ * This API shall be called by the application before any timer is requested to the timer server. It
+ * configures the RTC module to be connected to the LSI input clock.
+ *
+ * @param TimerInitMode: When the device restarts from Standby, it should request hw_ts_InitMode_Limited so that the
+ * Timer context is not re-initialized. Otherwise, hw_ts_InitMode_Full should be requested
+ * @param hrtc: RTC Handle
+ * @retval None
+ */
+ void HW_TS_Init(HW_TS_InitMode_t TimerInitMode, RTC_HandleTypeDef *hrtc);
+
+ /**
+ * @brief Interface to create a virtual timer
+ * The user shall call this API to create a timer. Once created, the timer is reserved to the module until it
+ * has been deleted. When creating a timer, the user shall specify the mode (single shot or repeated), the
+ * callback to be notified when the timer expires and a module ID to identify in the timer interrupt handler
+ * which module is concerned. In return, the user gets a timer ID to handle it.
+ *
+ * @param TimerProcessID: This is an identifier provided by the user and returned in the callback to allow
+ * identification of the requester
+ * @param pTimerId: Timer Id returned to the user to request operation (start, stop, delete)
+ * @param TimerMode: Mode of the virtual timer (Single shot or repeated)
+ * @param pTimerCallBack: Callback when the virtual timer expires
+ * @retval HW_TS_ReturnStatus_t: Return whether the creation is successful or not
+ */
+ HW_TS_ReturnStatus_t HW_TS_Create(uint32_t TimerProcessID, uint8_t *pTimerId, HW_TS_Mode_t TimerMode, HW_TS_pTimerCb_t pTimerCallBack);
+
+ /**
+ * @brief Stop a virtual timer
+ * This API may be used to stop a running timer. A timer which is stopped is move to the pending state.
+ * A pending timer may be restarted at any time with a different timeout value but the mode cannot be changed.
+ * Nothing is done when it is called to stop a timer which has been already stopped
+ *
+ * @param TimerID: Id of the timer to stop
+ * @retval None
+ */
+ void HW_TS_Stop(uint8_t TimerID);
+
+ /**
+ * @brief Start a virtual timer
+ * This API shall be used to start a timer. The timeout value is specified and may be different each time.
+ * When the timer is in the single shot mode, it will move to the pending state when it expires. The user may
+ * restart it at any time with a different timeout value. When the timer is in the repeated mode, it always
+ * stay in the running state. When the timer expires, it will be restarted with the same timeout value.
+ * This API shall not be called on a running timer.
+ *
+ * @param TimerID: The ID Id of the timer to start
+ * @param timeout_ticks: Number of ticks of the virtual timer (Maximum value is (0xFFFFFFFF-0xFFFF = 0xFFFF0000)
+ * @retval None
+ */
+ void HW_TS_Start(uint8_t TimerID, uint32_t timeout_ticks);
+
+ /**
+ * @brief Delete a virtual timer from the list
+ * This API should be used when a timer is not needed anymore by the user. A deleted timer is removed from
+ * the timer list managed by the timer server. It cannot be restarted again. The user has to go with the
+ * creation of a new timer if required and may get a different timer id
+ *
+ * @param TimerID: The ID of the timer to remove from the list
+ * @retval None
+ */
+ void HW_TS_Delete(uint8_t TimerID);
+
+ /**
+ * @brief Schedule the timer list on the timer interrupt handler
+ * This interrupt handler shall be called by the application in the RTC interrupt handler. This handler takes
+ * care of clearing all status flag required in the RTC and EXTI peripherals
+ *
+ * @param None
+ * @retval None
+ */
+ void HW_TS_RTC_Wakeup_Handler(void);
+
+ /**
+ * @brief Return the number of ticks to count before the interrupt
+ * This API returns the number of ticks left to be counted before an interrupt is generated by the
+ * Timer Server. This API may be used by the application for power management optimization. When the system
+ * enters low power mode, the mode selection is a tradeoff between the wakeup time where the CPU is running
+ * and the time while the CPU will be kept in low power mode before next wakeup. The deeper is the
+ * low power mode used, the longer is the wakeup time. The low power mode management considering wakeup time
+ * versus time in low power mode is implementation specific
+ * When the timer is disabled (No timer in the list), it returns 0xFFFF
+ *
+ * @param None
+ * @retval The number of ticks left to count
+ */
+ uint16_t HW_TS_RTC_ReadLeftTicksToCount(void);
+
+ /**
+ * @brief Notify the application that a registered timer has expired
+ * This API shall be implemented by the user application.
+ * This API notifies the application that a timer expires. This API is running in the RTC Wakeup interrupt
+ * context. The application may implement an Operating System to change the context priority where the timer
+ * callback may be handled. This API provides the module ID to identify which module is concerned and to allow
+ * sending the information to the correct task
+ *
+ * @param TimerProcessID: The TimerProcessId associated with the timer when it has been created
+ * @param TimerID: The TimerID of the expired timer
+ * @param pTimerCallBack: The Callback associated with the timer when it has been created
+ * @retval None
+ */
+ void HW_TS_RTC_Int_AppNot(uint32_t TimerProcessID, uint8_t TimerID, HW_TS_pTimerCb_t pTimerCallBack);
+
+ /**
+ * @brief Notify the application that the wakeupcounter has been updated
+ * This API should be implemented by the user application
+ * This API notifies the application that the counter has been updated. This is expected to be used along
+ * with the HW_TS_RTC_ReadLeftTicksToCount () API. It could be that the counter has been updated since the
+ * last call of HW_TS_RTC_ReadLeftTicksToCount () and before entering low power mode. This notification
+ * provides a way to the application to solve that race condition to reevaluate the counter value before
+ * entering low power mode
+ *
+ * @param None
+ * @retval None
+ */
+ void HW_TS_RTC_CountUpdated_AppNot(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*HW_IF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/lp_timer.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/lp_timer.h
new file mode 100644
index 000000000..cc30a4de0
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/lp_timer.h
@@ -0,0 +1,57 @@
+/**
+ ******************************************************************************
+* @file lp_timer.h
+* @brief Header for lp_timer.c module
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __LP_TIMER_H
+#define __LP_TIMER_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+
+ /**
+ * @brief Initialize the low power timer
+ *
+ * @param None
+ * @retval None
+ */
+ void LpTimerInit(void);
+
+ /**
+ * @brief Request to start a low power timer ( running is stop mode )
+ *
+ * @param time_to_sleep : in ms
+ * @retval None
+ */
+ void LpTimerStart(uint32_t time_to_sleep);
+
+ /**
+ * @brief Read how long the timer has run
+ *
+ * @param None
+ * @retval The time elapsed in ms
+ */
+ uint32_t LpGetElapsedTime(void);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*__LP_TIMER_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/main.h
new file mode 100644
index 000000000..5ddcf89b4
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/main.h
@@ -0,0 +1,37 @@
+/**
+ ******************************************************************************
+ * @file main.h
+ * @author MCD Application Team
+ * @brief Header for main.c module
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __MAIN_H
+#define __MAIN_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32wbxx_hal.h"
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+/* Exported variables --------------------------------------------------------*/
+extern RTC_HandleTypeDef hrtc; /**< RTC handler declaration */
+
+/* Exported macro ------------------------------------------------------------*/
+/* Exported functions prototypes ---------------------------------------------*/
+void Error_Handler(void);
+/* Exported functions ------------------------------------------------------- */
+
+#endif /* __MAIN_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32_lpm_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32_lpm_if.h
new file mode 100644
index 000000000..45c31caa5
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32_lpm_if.h
@@ -0,0 +1,79 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32_lpm_if.h
+ * @author MCD Application Team
+ * @brief Header for stm32_lpm_if.c module (device specific LP management)
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32_LPM_IF_H
+#define __STM32_LPM_IF_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+
+/**
+ * @brief Enters Low Power Off Mode
+ * @param none
+ * @retval none
+ */
+void PWR_EnterOffMode( void );
+/**
+ * @brief Exits Low Power Off Mode
+ * @param none
+ * @retval none
+ */
+void PWR_ExitOffMode( void );
+
+/**
+ * @brief Enters Low Power Stop Mode
+ * @note ARM exists the function when waking up
+ * @param none
+ * @retval none
+ */
+void PWR_EnterStopMode( void );
+/**
+ * @brief Exits Low Power Stop Mode
+ * @note Enable the pll at 32MHz
+ * @param none
+ * @retval none
+ */
+void PWR_ExitStopMode( void );
+
+/**
+ * @brief Enters Low Power Sleep Mode
+ * @note ARM exits the function when waking up
+ * @param none
+ * @retval none
+ */
+void PWR_EnterSleepMode( void );
+
+/**
+ * @brief Exits Low Power Sleep Mode
+ * @note ARM exits the function when waking up
+ * @param none
+ * @retval none
+ */
+void PWR_ExitSleepMode( void );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*__STM32_LPM_IF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wb5mm_dk_conf.h
new file mode 100644
index 000000000..86325246b
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wb5mm_dk_conf.h
@@ -0,0 +1,93 @@
+/**
+ ******************************************************************************
+ * @file stm32wb5mm_dk_conf.h
+ * @author MCD Application Team
+ * @brief configuration file.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef STM32WB5MM_DK_CONF_H
+#define STM32WB5MM_DK_CONF_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32wbxx_hal.h"
+
+/* Environmental Sensors usage */
+#define USE_ENV_SENSOR_STTS22H_0 1U
+#define USE_ENV_SENSOR_LPS22HH_0 0U
+
+/* Motion Sensors usage */
+#define USE_MOTION_SENSOR_ISM330DLC_0 0U
+#define USE_MOTION_SENSOR_IIS2MDC_0 0U
+
+/* COM port usage */
+#define USE_BSP_COM_FEATURE 1U
+#define USE_COM_LOG 0U
+
+/* IRQ priorities */
+#define BSP_BUTTON_USERx_IT_PRIORITY 0x0FUL
+#define PWM_LED_CLOCK_IT_PRIORITY 0x00UL
+
+/* I2C3 Frequeny in Hz */
+#define BUS_I2C3_FREQUENCY 100000UL /* Frequency of I2C3 = 100 KHz*/
+
+/* Indicates whether or not TCXO is supported by the board
+ * 0: TCXO not supported
+ * 1: TCXO supported
+ */
+#define IS_TCXO_SUPPORTED 0U
+
+/* Indicates whether or not DCDC is supported by the board
+ * 0: DCDC not supported
+ * 1: DCDC supported
+ */
+#define IS_DCDC_SUPPORTED 1U
+
+#define STM32WB5MM_DK_I2C_Init BSP_I2C3_Init
+#define STM32WB5MM_DK_I2C_DeInit BSP_I2C3_DeInit
+#define STM32WB5MM_DK_I2C_ReadReg BSP_I2C3_ReadReg
+#define STM32WB5MM_DK_I2C_WriteReg BSP_I2C3_WriteReg
+
+#define STM32WB5MM_DK_GetTick BSP_GetTick
+
+/*Number of millisecond of audio at each DMA interrupt*/
+#define N_MS_PER_INTERRUPT (20U)
+
+#define AUDIO_IN_CHANNELS 1
+#define AUDIO_IN_SAMPLING_FREQUENCY 16000
+
+#define AUDIO_CHANNELS_OUT 1
+#define AUDIO_OUT_SAMPLING_FREQUENCY 16000
+
+#define AUDIO_IN_BUFFER_SIZE DEFAULT_AUDIO_IN_BUFFER_SIZE
+
+#if (AUDIO_IN_SAMPLING_FREQUENCY == 8000)
+#define MAX_DECIMATION_FACTOR 160
+#else
+#define MAX_DECIMATION_FACTOR 128
+#endif
+
+#define MAX_MIC_FREQ 1280 /*kHz - Maximum PDM clock */
+#define MAX_AUDIO_IN_CHANNEL_NBR_PER_IF 1 /* Maximum number of microhpones channels for peripheral interface */
+#define MAX_AUDIO_IN_CHANNEL_NBR_TOTAL 1
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* STM32WB5MM_DK_CONF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wbxx_hal_conf.h
new file mode 100644
index 000000000..bb10549b5
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wbxx_hal_conf.h
@@ -0,0 +1,351 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32wbxx_hal_conf.h
+ * @author MCD Application Team
+ * @brief HAL configuration file.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32WBxx_HAL_CONF_H
+#define __STM32WBxx_HAL_CONF_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+
+/* ########################## Module Selection ############################## */
+/**
+ * @brief This is the list of modules to be used in the HAL driver
+ */
+#define HAL_MODULE_ENABLED
+/* #define HAL_ADC_MODULE_ENABLED */
+#define HAL_COMP_MODULE_ENABLED
+#define HAL_CORTEX_MODULE_ENABLED
+#define HAL_CRC_MODULE_ENABLED
+#define HAL_CRYP_MODULE_ENABLED
+#define HAL_DMA_MODULE_ENABLED
+#define HAL_FLASH_MODULE_ENABLED
+#define HAL_GPIO_MODULE_ENABLED
+#define HAL_HSEM_MODULE_ENABLED
+#define HAL_I2C_MODULE_ENABLED
+#define HAL_IPCC_MODULE_ENABLED
+#define HAL_IRDA_MODULE_ENABLED
+#define HAL_IWDG_MODULE_ENABLED
+#define HAL_LCD_MODULE_ENABLED
+#define HAL_LPTIM_MODULE_ENABLED
+#define HAL_PCD_MODULE_ENABLED
+#define HAL_PKA_MODULE_ENABLED
+#define HAL_PWR_MODULE_ENABLED
+#define HAL_QSPI_MODULE_ENABLED
+#define HAL_RCC_MODULE_ENABLED
+#define HAL_RNG_MODULE_ENABLED
+#define HAL_RTC_MODULE_ENABLED
+#define HAL_SAI_MODULE_ENABLED
+#define HAL_SMARTCARD_MODULE_ENABLED
+#define HAL_SMBUS_MODULE_ENABLED
+#define HAL_SPI_MODULE_ENABLED
+#define HAL_TIM_MODULE_ENABLED
+#define HAL_TSC_MODULE_ENABLED
+#define HAL_UART_MODULE_ENABLED
+#define HAL_USART_MODULE_ENABLED
+#define HAL_WWDG_MODULE_ENABLED
+#define HAL_EXTI_MODULE_ENABLED
+#define HAL_LCD_MODULE_ENABLED
+
+#define USE_HAL_ADC_REGISTER_CALLBACKS 0u
+#define USE_HAL_COMP_REGISTER_CALLBACKS 0u
+#define USE_HAL_I2C_REGISTER_CALLBACKS 0u
+#define USE_HAL_IRDA_REGISTER_CALLBACKS 0u
+#define USE_HAL_LPTIM_REGISTER_CALLBACKS 0u
+#define USE_HAL_PKA_REGISTER_CALLBACKS 0u
+#define USE_HAL_QSPI_REGISTER_CALLBACKS 0u
+#define USE_HAL_RNG_REGISTER_CALLBACKS 0u
+#define USE_HAL_RTC_REGISTER_CALLBACKS 0u
+#define USE_HAL_SAI_REGISTER_CALLBACKS 0u
+#define USE_HAL_SMBUS_REGISTER_CALLBACKS 0u
+#define USE_HAL_SPI_REGISTER_CALLBACKS 0u
+#define USE_HAL_TIM_REGISTER_CALLBACKS 0u
+#define USE_HAL_TSC_REGISTER_CALLBACKS 0u
+#define USE_HAL_UART_REGISTER_CALLBACKS 0u
+#define USE_HAL_USART_REGISTER_CALLBACKS 0u
+#define USE_HAL_WWDG_REGISTER_CALLBACKS 0u
+
+/* ########################## Oscillator Values adaptation ####################*/
+/**
+ * @brief Adjust the value of External High Speed oscillator (HSE) used in your application.
+ * This value is used by the RCC HAL module to compute the system frequency
+ * (when HSE is used as system clock source, directly or through the PLL).
+ */
+
+#if !defined (HSE_VALUE)
+ #define HSE_VALUE ((uint32_t)32000000) /*!< Value of the External oscillator in Hz */
+#endif /* HSE_VALUE */
+
+#if !defined (HSE_STARTUP_TIMEOUT)
+ #define HSE_STARTUP_TIMEOUT ((uint32_t)100) /*!< Time out for HSE start up, in ms */
+#endif /* HSE_STARTUP_TIMEOUT */
+
+/**
+ * @brief Internal Multiple Speed oscillator (MSI) default value.
+ * This value is the default MSI range value after Reset.
+ */
+#if !defined (MSI_VALUE)
+ #define MSI_VALUE ((uint32_t)4000000) /*!< Value of the Internal oscillator in Hz*/
+#endif /* MSI_VALUE */
+
+/**
+ * @brief Internal High Speed oscillator (HSI) value.
+ * This value is used by the RCC HAL module to compute the system frequency
+ * (when HSI is used as system clock source, directly or through the PLL).
+ */
+#if !defined (HSI_VALUE)
+ #define HSI_VALUE ((uint32_t)16000000) /*!< Value of the Internal oscillator in Hz*/
+#endif /* HSI_VALUE */
+
+/**
+ * @brief Internal Low Speed oscillator (LSI1) value.
+ */
+#if !defined (LSI1_VALUE)
+ #define LSI1_VALUE ((uint32_t)32000) /*!< LSI1 Typical Value in Hz*/
+#endif /* LSI1_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz
+ The real value may vary depending on the variations
+ in voltage and temperature.*/
+/**
+ * @brief Internal Low Speed oscillator (LSI2) value.
+ */
+#if !defined (LSI2_VALUE)
+ #define LSI2_VALUE ((uint32_t)32000) /*!< LSI2 Typical Value in Hz*/
+#endif /* LSI2_VALUE */ /*!< Value of the Internal Low Speed oscillator in Hz
+ The real value may vary depending on the variations
+ in voltage and temperature.*/
+
+/**
+ * @brief External Low Speed oscillator (LSE) value.
+ * This value is used by the UART, RTC HAL module to compute the system frequency
+ */
+#if !defined (LSE_VALUE)
+ #define LSE_VALUE ((uint32_t)32768) /*!< Value of the External oscillator in Hz*/
+#endif /* LSE_VALUE */
+
+/**
+ * @brief Internal Multiple Speed oscillator (HSI48) default value.
+ * This value is the default HSI48 range value after Reset.
+ */
+#if !defined (HSI48_VALUE)
+ #define HSI48_VALUE ((uint32_t)48000000) /*!< Value of the Internal oscillator in Hz*/
+#endif /* HSI48_VALUE */
+
+#if !defined (LSE_STARTUP_TIMEOUT)
+ #define LSE_STARTUP_TIMEOUT ((uint32_t)5000) /*!< Time out for LSE start up, in ms */
+#endif /* LSE_STARTUP_TIMEOUT */
+
+/**
+ * @brief External clock source for SAI1 peripheral
+ * This value is used by the RCC HAL module to compute the SAI1 & SAI2 clock source
+ * frequency.
+ */
+#if !defined (EXTERNAL_SAI1_CLOCK_VALUE)
+ #define EXTERNAL_SAI1_CLOCK_VALUE ((uint32_t)48000) /*!< Value of the SAI1 External clock source in Hz*/
+#endif /* EXTERNAL_SAI1_CLOCK_VALUE */
+
+/* Tip: To avoid modifying this file each time you need to use different HSE,
+ === you can define the HSE value in your toolchain compiler preprocessor. */
+
+/* ########################### System Configuration ######################### */
+/**
+ * @brief This is the HAL system configuration section
+ */
+#define VDD_VALUE ((uint32_t)3300) /*!< Value of VDD in mv */
+#define TICK_INT_PRIORITY ((uint32_t)(1<<__NVIC_PRIO_BITS) - 1) /*!< tick interrupt priority (lowest by default) */
+#define USE_RTOS 0
+#define PREFETCH_ENABLE 0
+#define INSTRUCTION_CACHE_ENABLE 1
+#define DATA_CACHE_ENABLE 1
+
+/* ########################## Assert Selection ############################## */
+/**
+ * @brief Uncomment the line below to expanse the "assert_param" macro in the
+ * HAL drivers code
+ */
+/* #define USE_FULL_ASSERT 1 */
+
+/* ################## SPI peripheral configuration ########################## */
+
+/* CRC FEATURE: Use to activate CRC feature inside HAL SPI Driver
+ * Activated: CRC code is present inside driver
+ * Deactivated: CRC code cleaned from driver
+ */
+
+#define USE_SPI_CRC 1U
+
+/* Includes ------------------------------------------------------------------*/
+/**
+ * @brief Include module's header file
+ */
+#ifdef HAL_DMA_MODULE_ENABLED
+ #include "stm32wbxx_hal_dma.h"
+#endif /* HAL_DMA_MODULE_ENABLED */
+
+#ifdef HAL_ADC_MODULE_ENABLED
+ #include "stm32wbxx_hal_adc.h"
+#endif /* HAL_ADC_MODULE_ENABLED */
+
+#ifdef HAL_COMP_MODULE_ENABLED
+ #include "stm32wbxx_hal_comp.h"
+#endif /* HAL_COMP_MODULE_ENABLED */
+
+#ifdef HAL_CORTEX_MODULE_ENABLED
+ #include "stm32wbxx_hal_cortex.h"
+#endif /* HAL_CORTEX_MODULE_ENABLED */
+
+#ifdef HAL_CRC_MODULE_ENABLED
+ #include "stm32wbxx_hal_crc.h"
+#endif /* HAL_CRC_MODULE_ENABLED */
+
+#ifdef HAL_CRYP_MODULE_ENABLED
+ #include "stm32wbxx_hal_cryp.h"
+#endif /* HAL_CRYP_MODULE_ENABLED */
+
+#ifdef HAL_EXTI_MODULE_ENABLED
+ #include "stm32wbxx_hal_exti.h"
+#endif /* HAL_EXTI_MODULE_ENABLED */
+
+#ifdef HAL_FLASH_MODULE_ENABLED
+ #include "stm32wbxx_hal_flash.h"
+#endif /* HAL_FLASH_MODULE_ENABLED */
+
+#ifdef HAL_GPIO_MODULE_ENABLED
+ #include "stm32wbxx_hal_gpio.h"
+#endif /* HAL_GPIO_MODULE_ENABLED */
+
+#ifdef HAL_HSEM_MODULE_ENABLED
+ #include "stm32wbxx_hal_hsem.h"
+#endif /* HAL_HSEM_MODULE_ENABLED */
+
+#ifdef HAL_I2C_MODULE_ENABLED
+ #include "stm32wbxx_hal_i2c.h"
+#endif /* HAL_I2C_MODULE_ENABLED */
+
+#ifdef HAL_IPCC_MODULE_ENABLED
+ #include "stm32wbxx_hal_ipcc.h"
+#endif /* HAL_IPCC_MODULE_ENABLED */
+
+#ifdef HAL_IRDA_MODULE_ENABLED
+ #include "stm32wbxx_hal_irda.h"
+#endif /* HAL_IRDA_MODULE_ENABLED */
+
+#ifdef HAL_IWDG_MODULE_ENABLED
+ #include "stm32wbxx_hal_iwdg.h"
+#endif /* HAL_IWDG_MODULE_ENABLED */
+
+#ifdef HAL_LCD_MODULE_ENABLED
+ #include "stm32wbxx_hal_lcd.h"
+#endif /* HAL_LCD_MODULE_ENABLED */
+
+#ifdef HAL_LPTIM_MODULE_ENABLED
+ #include "stm32wbxx_hal_lptim.h"
+#endif /* HAL_LPTIM_MODULE_ENABLED */
+
+#ifdef HAL_PCD_MODULE_ENABLED
+ #include "stm32wbxx_hal_pcd.h"
+#endif /* HAL_PCD_MODULE_ENABLED */
+
+#ifdef HAL_PKA_MODULE_ENABLED
+ #include "stm32wbxx_hal_pka.h"
+#endif /* HAL_PKA_MODULE_ENABLED */
+
+#ifdef HAL_PWR_MODULE_ENABLED
+ #include "stm32wbxx_hal_pwr.h"
+#endif /* HAL_PWR_MODULE_ENABLED */
+
+#ifdef HAL_QSPI_MODULE_ENABLED
+ #include "stm32wbxx_hal_qspi.h"
+#endif /* HAL_QSPI_MODULE_ENABLED */
+
+#ifdef HAL_RCC_MODULE_ENABLED
+ #include "stm32wbxx_hal_rcc.h"
+#endif /* HAL_RCC_MODULE_ENABLED */
+
+#ifdef HAL_RNG_MODULE_ENABLED
+ #include "stm32wbxx_hal_rng.h"
+#endif /* HAL_RNG_MODULE_ENABLED */
+
+#ifdef HAL_RTC_MODULE_ENABLED
+ #include "stm32wbxx_hal_rtc.h"
+#endif /* HAL_RTC_MODULE_ENABLED */
+
+#ifdef HAL_SAI_MODULE_ENABLED
+ #include "stm32wbxx_hal_sai.h"
+#endif /* HAL_SAI_MODULE_ENABLED */
+
+#ifdef HAL_SMARTCARD_MODULE_ENABLED
+ #include "stm32wbxx_hal_smartcard.h"
+#endif /* HAL_SMARTCARD_MODULE_ENABLED */
+
+#ifdef HAL_SMBUS_MODULE_ENABLED
+ #include "stm32wbxx_hal_smbus.h"
+#endif /* HAL_SMBUS_MODULE_ENABLED */
+
+#ifdef HAL_SPI_MODULE_ENABLED
+ #include "stm32wbxx_hal_spi.h"
+#endif /* HAL_SPI_MODULE_ENABLED */
+
+#ifdef HAL_TIM_MODULE_ENABLED
+ #include "stm32wbxx_hal_tim.h"
+#endif /* HAL_TIM_MODULE_ENABLED */
+
+#ifdef HAL_TSC_MODULE_ENABLED
+ #include "stm32wbxx_hal_tsc.h"
+#endif /* HAL_TSC_MODULE_ENABLED */
+
+#ifdef HAL_UART_MODULE_ENABLED
+ #include "stm32wbxx_hal_uart.h"
+#endif /* HAL_UART_MODULE_ENABLED */
+
+#ifdef HAL_USART_MODULE_ENABLED
+ #include "stm32wbxx_hal_usart.h"
+#endif /* HAL_USART_MODULE_ENABLED */
+
+#ifdef HAL_WWDG_MODULE_ENABLED
+ #include "stm32wbxx_hal_wwdg.h"
+#endif /* HAL_WWDG_MODULE_ENABLED */
+
+/* Exported macro ------------------------------------------------------------*/
+#ifdef USE_FULL_ASSERT
+/**
+ * @brief The assert_param macro is used for function's parameters check.
+ * @param expr If expr is false, it calls assert_failed function
+ * which reports the name of the source file and the source
+ * line number of the call that failed.
+ * If expr is true, it returns no value.
+ * @retval None
+ */
+ #define assert_param(expr) ((expr) ? (void)0U : assert_failed((char *)__FILE__, __LINE__))
+/* Exported functions ------------------------------------------------------- */
+ void assert_failed(char* file, uint32_t line);
+#else
+ #define assert_param(expr) ((void)0U)
+#endif /* USE_FULL_ASSERT */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32WBxx_HAL_CONF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wbxx_it.h
new file mode 100644
index 000000000..757d93735
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wbxx_it.h
@@ -0,0 +1,62 @@
+/**
+ ******************************************************************************
+ * @file stm32wbxx_it.h
+ * @author MCD Application Team
+ * @brief This file contains the headers of the interrupt handlers.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __STM32WBxx_IT_H
+#define __STM32WBxx_IT_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+/* Exported macro ------------------------------------------------------------*/
+/* Exported functions ------------------------------------------------------- */
+
+void NMI_Handler(void);
+void HardFault_Handler(void);
+void MemManage_Handler(void);
+void BusFault_Handler(void);
+void UsageFault_Handler(void);
+void SVC_Handler(void);
+void DebugMon_Handler(void);
+void PendSV_Handler(void);
+void SysTick_Handler(void);
+
+void PUSH_BUTTON_SW_EXTI_IRQHandler(void);
+void TIM1_TRG_COM_TIM17_IRQHandler(void);
+void USART1_IRQHandler(void);
+void CFG_HW_USART1_DMA_TX_IRQHandler( void );
+void LPUART1_IRQHandler(void);
+void CFG_HW_LPUART1_DMA_TX_IRQHandler( void );
+void RTC_WKUP_IRQHandler(void);
+void IPCC_C1_TX_IRQHandler(void);
+void IPCC_C1_RX_IRQHandler(void);
+
+void POWEROFF_EXTI_IRQHandler(void);
+void TIM2_IRQHandler(void);
+void TIM1_CC_IRQHandler(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __STM32WBxx_IT_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/utilities_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/utilities_conf.h
new file mode 100644
index 000000000..66b51180a
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/utilities_conf.h
@@ -0,0 +1,65 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file utilities_conf.h
+ * @author MCD Application Team
+ * @brief Configuration file for STM32 Utilities.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef UTILITIES_CONF_H
+#define UTILITIES_CONF_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "cmsis_compiler.h"
+#include "string.h"
+
+/******************************************************************************
+ * common
+ ******************************************************************************/
+#define UTILS_ENTER_CRITICAL_SECTION( ) uint32_t primask_bit = __get_PRIMASK( );\
+ __disable_irq( )
+
+#define UTILS_EXIT_CRITICAL_SECTION( ) __set_PRIMASK( primask_bit )
+
+#define UTILS_MEMSET8( dest, value, size ) memset( dest, value, size);
+
+/******************************************************************************
+ * tiny low power manager
+ * (any macro that does not need to be modified can be removed)
+ ******************************************************************************/
+#define UTIL_LPM_INIT_CRITICAL_SECTION( )
+#define UTIL_LPM_ENTER_CRITICAL_SECTION( ) UTILS_ENTER_CRITICAL_SECTION( )
+#define UTIL_LPM_EXIT_CRITICAL_SECTION( ) UTILS_EXIT_CRITICAL_SECTION( )
+
+/******************************************************************************
+ * sequencer
+ * (any macro that does not need to be modified can be removed)
+ ******************************************************************************/
+#define UTIL_SEQ_INIT_CRITICAL_SECTION( )
+#define UTIL_SEQ_ENTER_CRITICAL_SECTION( ) UTILS_ENTER_CRITICAL_SECTION( )
+#define UTIL_SEQ_EXIT_CRITICAL_SECTION( ) UTILS_EXIT_CRITICAL_SECTION( )
+#define UTIL_SEQ_CONF_TASK_NBR (32)
+#define UTIL_SEQ_CONF_PRIO_NBR (2)
+#define UTIL_SEQ_MEMSET8( dest, value, size ) UTILS_MEMSET8( dest, value, size )
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*UTILITIES_CONF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/vcp_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/vcp_conf.h
new file mode 100644
index 000000000..2e913957b
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Inc/vcp_conf.h
@@ -0,0 +1,50 @@
+/**
+ ******************************************************************************
+ * @file vcp_conf.h
+ * @author MCD Application Team
+ * @brief Configuration of the vcp interface
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __VCP_CONF_H
+#define __VCP_CONF_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+#define VCP_BAUD_RATE (115200)
+#define VCP_TX_PATH_INTERFACE_READY_SETUP_TIME (20*1000*1000/CFG_TS_TICK_VAL) /** 20s */
+#define VCP_TASK_ID (CFG_TASK_VCP_SEND_DATA_ID)
+#define VCP_TASK_PRIO (CFG_SEQ_PRIO_1)
+
+#ifdef VCP_TX_PATH_INTERFACE_READY_SETUP_TIME
+#define VCP_TIMER_PROC_ID (CFG_TIM_PROC_ID_ISR)
+#endif
+
+/* External variables --------------------------------------------------------*/
+/* Exported macros -----------------------------------------------------------*/
+/* Exported functions ------------------------------------------------------- */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*__VCP_CONF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_debug.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_debug.c
new file mode 100644
index 000000000..7ccfffc6c
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_debug.c
@@ -0,0 +1,367 @@
+/**
+ ******************************************************************************
+ * @file app_debug.c
+ * @author MCD Application Team
+ * @brief Debug capabilities
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2018(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_common.h"
+
+#include "app_debug.h"
+#include "utilities_common.h"
+#include "shci.h"
+#include "tl.h"
+#include "dbg_trace.h"
+
+/* Private typedef -----------------------------------------------------------*/
+typedef PACKED_STRUCT
+{
+ GPIO_TypeDef* port;
+ uint16_t pin;
+ uint8_t enable;
+ uint8_t reserved;
+} APPD_GpioConfig_t;
+
+/* Private defines -----------------------------------------------------------*/
+#define GPIO_NBR_OF_RF_SIGNALS 9
+#define GPIO_CFG_NBR_OF_FEATURES 38
+#define NBR_OF_TRACES_CONFIG_PARAMETERS 4
+#define NBR_OF_GENERAL_CONFIG_PARAMETERS 4
+
+/**
+ * THIS SHALL BE SET TO A VALUE DIFFERENT FROM 0 ONLY ON REQUEST FROM ST SUPPORT
+ */
+#define BLE_DTB_CFG 0
+
+/**
+ * System Debug Options flags to be configured with:
+ * - SHCI_C2_DEBUG_OPTIONS_IPCORE_LP
+ * - SHCI_C2_DEBUG_OPTIONS_IPCORE_NO_LP
+ * - SHCI_C2_DEBUG_OPTIONS_CPU2_STOP_EN
+ * - SHCI_C2_DEBUG_OPTIONS_CPU2_STOP_DIS
+ * which are used to set following configuration bits:
+ * - bit 0: 0: IP BLE core in LP mode 1: IP BLE core in run mode (no LP supported)
+ * - bit 1: 0: CPU2 STOP mode Enable 1: CPU2 STOP mode Disable
+ * - bit [2-7]: bits reserved ( shall be set to 0)
+ */
+#define SYS_DBG_CFG1 (SHCI_C2_DEBUG_OPTIONS_IPCORE_LP | SHCI_C2_DEBUG_OPTIONS_CPU2_STOP_EN)
+
+/* Private macros ------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+PLACE_IN_SECTION("MB_MEM2") ALIGN(4) static SHCI_C2_DEBUG_TracesConfig_t APPD_TracesConfig={0, 0, 0, 0};
+PLACE_IN_SECTION("MB_MEM2") ALIGN(4) static SHCI_C2_DEBUG_GeneralConfig_t APPD_GeneralConfig={BLE_DTB_CFG, SYS_DBG_CFG1, {0, 0}};
+
+/**
+ * THE DEBUG ON GPIO FOR CPU2 IS INTENDED TO BE USED ONLY ON REQUEST FROM ST SUPPORT
+ * It provides timing information on the CPU2 activity.
+ * All configuration of (port, pin) is supported for each features and can be selected by the user
+ * depending on the availability
+ */
+static const APPD_GpioConfig_t aGpioConfigList[GPIO_CFG_NBR_OF_FEATURES] =
+{
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_ISR - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_STACK_TICK - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_CMD_PROCESS - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_ACL_DATA_PROCESS - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* SYS_CMD_PROCESS - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* RNG_PROCESS - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* NVM_PROCESS - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_GENERAL - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_CMD_RX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_EVT_TX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_ACL_DATA_RX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_SYS_CMD_RX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_SYS_EVT_TX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_CLI_CMD_RX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_OT_CMD_RX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_OT_ACK_TX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_CLI_ACK_TX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_MEM_MANAGER_RX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_TRACES_TX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* HARD_FAULT - Set on Entry / Reset on Exit */
+/* From v1.1.1 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IP_CORE_LP_STATUS - Set on Entry / Reset on Exit */
+/* From v1.2.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* END_OF_CONNECTION_EVENT - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* TIMER_SERVER_CALLBACK - Toggle on Entry */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* PES_ACTIVITY - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* MB_BLE_SEND_EVT - Set on Entry / Reset on Exit */
+/* From v1.3.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_NO_DELAY - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_STACK_STORE_NVM_CB - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* NVMA_WRITE_ONGOING - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* NVMA_WRITE_COMPLETE - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* NVMA_CLEANUP - Set on Entry / Reset on Exit */
+/* From v1.4.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* NVMA_START - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_EOP - Set on Entry / Reset on Exit */
+/* From v1.5.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_WRITE - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_ERASE - Set on Entry / Reset on Exit */
+/* From v1.6.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_RESCHEDULE_EVENT - Set on Entry / Reset on Exit */
+/* From v1.8.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_LLD_CMD_RX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_LLD_ACK_TX - Set on Entry / Reset on Exit */
+/* From v1.9.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_ASYNCH_EVENT_NACKED - Set on Entry / Reset on Exit */
+};
+
+/**
+ * THE DEBUG ON GPIO FOR CPU2 IS INTENDED TO BE USED ONLY ON REQUEST FROM ST SUPPORT
+ * This table is relevant only for BLE
+ * It provides timing information on BLE RF activity.
+ * New signals may be allocated at any location when requested by ST
+ * The GPIO allocated to each signal depend on the BLE_DTB_CFG value and cannot be changed
+ */
+#if( BLE_DTB_CFG == 7)
+static const APPD_GpioConfig_t aRfConfigList[GPIO_NBR_OF_RF_SIGNALS] =
+{
+ { GPIOB, LL_GPIO_PIN_2, 0, 0}, /* DTB10 - Tx/Rx SPI */
+ { GPIOB, LL_GPIO_PIN_7, 0, 0}, /* DTB11 - Tx/Tx SPI Clk */
+ { GPIOA, LL_GPIO_PIN_8, 0, 0}, /* DTB12 - Tx/Rx Ready & SPI Select */
+ { GPIOA, LL_GPIO_PIN_9, 0, 0}, /* DTB13 - Tx/Rx Start */
+ { GPIOA, LL_GPIO_PIN_10, 0, 0}, /* DTB14 - FSM0 */
+ { GPIOA, LL_GPIO_PIN_11, 0, 0}, /* DTB15 - FSM1 */
+ { GPIOB, LL_GPIO_PIN_8, 0, 0}, /* DTB16 - FSM2 */
+ { GPIOB, LL_GPIO_PIN_11, 0, 0}, /* DTB17 - FSM3 */
+ { GPIOB, LL_GPIO_PIN_10, 0, 0}, /* DTB18 - FSM4 */
+};
+#endif
+
+/* Global variables ----------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+static void APPD_SetCPU2GpioConfig( void );
+static void APPD_BleDtbCfg( void );
+
+/* Functions Definition ------------------------------------------------------*/
+void APPD_Init( void )
+{
+#if (CFG_DEBUGGER_SUPPORTED == 1)
+ /**
+ * Keep debugger enabled while in any low power mode
+ */
+ HAL_DBGMCU_EnableDBGSleepMode();
+ HAL_DBGMCU_EnableDBGStopMode();
+
+ /***************** ENABLE DEBUGGER *************************************/
+ LL_EXTI_EnableIT_32_63(LL_EXTI_LINE_48);
+
+#else
+ GPIO_InitTypeDef gpio_config = {0};
+
+ gpio_config.Pull = GPIO_NOPULL;
+ gpio_config.Mode = GPIO_MODE_ANALOG;
+
+ gpio_config.Pin = GPIO_PIN_15 | GPIO_PIN_14 | GPIO_PIN_13;
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ HAL_GPIO_Init(GPIOA, &gpio_config);
+ __HAL_RCC_GPIOA_CLK_DISABLE();
+
+ gpio_config.Pin = GPIO_PIN_4 | GPIO_PIN_3;
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ HAL_GPIO_Init(GPIOB, &gpio_config);
+ __HAL_RCC_GPIOB_CLK_DISABLE();
+
+ HAL_DBGMCU_DisableDBGSleepMode();
+ HAL_DBGMCU_DisableDBGStopMode();
+ HAL_DBGMCU_DisableDBGStandbyMode();
+
+#endif /* (CFG_DEBUGGER_SUPPORTED == 1) */
+
+#if(CFG_DEBUG_TRACE != 0)
+ DbgTraceInit();
+#endif
+
+ APPD_SetCPU2GpioConfig( );
+ APPD_BleDtbCfg( );
+
+ return;
+}
+
+void APPD_EnableCPU2( void )
+{
+ SHCI_C2_DEBUG_Init_Cmd_Packet_t DebugCmdPacket =
+ {
+ {{0,0,0}}, /**< Does not need to be initialized */
+ {(uint8_t *)aGpioConfigList,
+ (uint8_t *)&APPD_TracesConfig,
+ (uint8_t *)&APPD_GeneralConfig,
+ GPIO_CFG_NBR_OF_FEATURES,
+ NBR_OF_TRACES_CONFIG_PARAMETERS,
+ NBR_OF_GENERAL_CONFIG_PARAMETERS}
+ };
+
+ /**< Traces channel initialization */
+ TL_TRACES_Init( );
+
+ /** GPIO DEBUG Initialization */
+ SHCI_C2_DEBUG_Init( &DebugCmdPacket );
+
+ return;
+}
+
+/*************************************************************
+ *
+ * LOCAL FUNCTIONS
+ *
+ *************************************************************/
+static void APPD_SetCPU2GpioConfig( void )
+{
+ GPIO_InitTypeDef gpio_config = {0};
+ uint8_t local_loop;
+ uint16_t gpioa_pin_list;
+ uint16_t gpiob_pin_list;
+ uint16_t gpioc_pin_list;
+
+ gpioa_pin_list = 0;
+ gpiob_pin_list = 0;
+ gpioc_pin_list = 0;
+
+ for(local_loop = 0 ; local_loop < GPIO_CFG_NBR_OF_FEATURES; local_loop++)
+ {
+ if( aGpioConfigList[local_loop].enable != 0)
+ {
+ switch((uint32_t)aGpioConfigList[local_loop].port)
+ {
+ case (uint32_t)GPIOA:
+ gpioa_pin_list |= aGpioConfigList[local_loop].pin;
+ break;
+
+ case (uint32_t)GPIOB:
+ gpiob_pin_list |= aGpioConfigList[local_loop].pin;
+ break;
+
+ case (uint32_t)GPIOC:
+ gpioc_pin_list |= aGpioConfigList[local_loop].pin;
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
+
+ gpio_config.Pull = GPIO_NOPULL;
+ gpio_config.Mode = GPIO_MODE_OUTPUT_PP;
+ gpio_config.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+
+ if(gpioa_pin_list != 0)
+ {
+ gpio_config.Pin = gpioa_pin_list;
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_C2GPIOA_CLK_ENABLE();
+ HAL_GPIO_Init(GPIOA, &gpio_config);
+ HAL_GPIO_WritePin(GPIOA, gpioa_pin_list, GPIO_PIN_RESET);
+ }
+
+ if(gpiob_pin_list != 0)
+ {
+ gpio_config.Pin = gpiob_pin_list;
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_C2GPIOB_CLK_ENABLE();
+ HAL_GPIO_Init(GPIOB, &gpio_config);
+ HAL_GPIO_WritePin(GPIOB, gpiob_pin_list, GPIO_PIN_RESET);
+ }
+
+ if(gpioc_pin_list != 0)
+ {
+ gpio_config.Pin = gpioc_pin_list;
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ __HAL_RCC_C2GPIOC_CLK_ENABLE();
+ HAL_GPIO_Init(GPIOC, &gpio_config);
+ HAL_GPIO_WritePin(GPIOC, gpioc_pin_list, GPIO_PIN_RESET);
+ }
+
+ return;
+}
+
+static void APPD_BleDtbCfg( void )
+{
+#if (BLE_DTB_CFG != 0)
+ GPIO_InitTypeDef gpio_config = {0};
+ uint8_t local_loop;
+ uint16_t gpioa_pin_list;
+ uint16_t gpiob_pin_list;
+
+ gpioa_pin_list = 0;
+ gpiob_pin_list = 0;
+
+ for(local_loop = 0 ; local_loop < GPIO_NBR_OF_RF_SIGNALS; local_loop++)
+ {
+ if( aRfConfigList[local_loop].enable != 0)
+ {
+ switch((uint32_t)aRfConfigList[local_loop].port)
+ {
+ case (uint32_t)GPIOA:
+ gpioa_pin_list |= aRfConfigList[local_loop].pin;
+ break;
+
+ case (uint32_t)GPIOB:
+ gpiob_pin_list |= aRfConfigList[local_loop].pin;
+ break;
+
+ default:
+ break;
+ }
+ }
+ }
+
+ gpio_config.Pull = GPIO_NOPULL;
+ gpio_config.Mode = GPIO_MODE_AF_PP;
+ gpio_config.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ gpio_config.Alternate = GPIO_AF6_RF_DTB7;
+
+ if(gpioa_pin_list != 0)
+ {
+ gpio_config.Pin = gpioa_pin_list;
+ __HAL_RCC_GPIOA_CLK_ENABLE();
+ __HAL_RCC_C2GPIOA_CLK_ENABLE();
+ HAL_GPIO_Init(GPIOA, &gpio_config);
+ }
+
+ if(gpiob_pin_list != 0)
+ {
+ gpio_config.Pin = gpiob_pin_list;
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ __HAL_RCC_C2GPIOB_CLK_ENABLE();
+ HAL_GPIO_Init(GPIOB, &gpio_config);
+ }
+#endif
+
+ return;
+}
+
+/*************************************************************
+ *
+ * WRAP FUNCTIONS
+ *
+*************************************************************/
+#if(CFG_DEBUG_TRACE != 0)
+void DbgOutputInit( void )
+{
+ HW_UART_Init(CFG_DEBUG_TRACE_UART);
+ return;
+}
+
+
+void DbgOutputTraces( uint8_t *p_data, uint16_t size, void (*cb)(void) )
+{
+ HW_UART_Transmit_DMA(CFG_DEBUG_TRACE_UART, p_data, size, cb);
+
+ return;
+}
+#endif
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_entry.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_entry.c
new file mode 100644
index 000000000..7677ef0f9
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_entry.c
@@ -0,0 +1,521 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file app_entry.c
+ * @author MCD Application Team
+ * @brief Entry point of the Application
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_common.h"
+#include "main.h"
+#include "app_entry.h"
+#include "app_ble.h"
+#include "ble.h"
+#include "tl.h"
+#include "stm32_seq.h"
+#include "shci_tl.h"
+#include "stm32_lpm.h"
+#include "app_debug.h"
+
+
+
+#include "appli_mesh.h"
+#include "appli_nvm.h"
+#include "pal_nvm.h"
+#include "lp_timer.h"
+#include "mesh_cfg.h"
+
+#include "app_vl53l0x.h"
+#include "app_stts22h.h"
+
+#include "shci.h"
+#include "dbg_trace.h"
+
+/* Private includes -----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+/* Private typedef -----------------------------------------------------------*/
+extern RTC_HandleTypeDef hrtc;
+#ifdef SAVE_MODEL_STATE_POWER_FAILURE_DETECTION
+extern MOBLEUINT8 PowerOnOff_flag;
+#endif
+#ifdef ENABLE_OCCUPANCY_SENSOR
+extern MOBLEUINT8 Occupancy_Flag;
+#endif
+extern const void *mobleNvmBase;
+extern const void *appNvmBase;
+extern const void *prvsnr_data;
+#if (LOW_POWER_FEATURE == 1)
+extern __IO uint32_t uwTick;
+extern HAL_TickFreqTypeDef uwTickFreq;
+#if ( CFG_LPM_SUPPORTED == 1)
+static uint32_t BleMesh_sleepTime;
+#endif
+extern volatile uint8_t BleProcessInit;
+#endif
+
+/* USER CODE BEGIN PTD */
+
+/* USER CODE END PTD */
+
+/* Private defines -----------------------------------------------------------*/
+#define POOL_SIZE (CFG_TLBLE_EVT_QUEUE_LENGTH*4U*DIVC(( sizeof(TL_PacketHeader_t) + TL_BLE_EVENT_FRAME_SIZE ), 4U))
+
+/* USER CODE BEGIN PD */
+
+/* USER CODE END PD */
+
+/* Private macros ------------------------------------------------------------*/
+/* USER CODE BEGIN PM */
+
+/* USER CODE END PM */
+
+/* Private variables ---------------------------------------------------------*/
+PLACE_IN_SECTION("MB_MEM2") ALIGN(4) static uint8_t EvtPool[POOL_SIZE];
+PLACE_IN_SECTION("MB_MEM2") ALIGN(4) static TL_CmdPacket_t SystemCmdBuffer;
+PLACE_IN_SECTION("MB_MEM2") ALIGN(4) static uint8_t SystemSpareEvtBuffer[sizeof(TL_PacketHeader_t) + TL_EVT_HDR_SIZE + 255U];
+PLACE_IN_SECTION("MB_MEM2") ALIGN(4) static uint8_t BleSpareEvtBuffer[sizeof(TL_PacketHeader_t) + TL_EVT_HDR_SIZE + 255];
+
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Private functions prototypes-----------------------------------------------*/
+static void SystemPower_Config( void );
+static void appe_Tl_Init( void );
+static void APPE_SysStatusNot( SHCI_TL_CmdStatus_t status );
+
+static void APPE_SysUserEvtRx( void * pPayload );
+static void APPE_SysEvtReadyProcessing( void * pPayload );
+static void APPE_SysEvtError( void * pPayload);
+#if (CFG_HW_LPUART1_ENABLED == 1)
+extern void MX_LPUART1_UART_Init(void);
+#endif
+#if (CFG_HW_USART1_ENABLED == 1)
+extern void MX_USART1_UART_Init(void);
+#endif
+
+/* USER CODE BEGIN PFP */
+static void Button_Init( void );
+/* USER CODE END PFP */
+
+uint8_t Mesh_Stop_Mode;
+
+/* Functions Definition ------------------------------------------------------*/
+void APPE_Init( void )
+{
+ MOBLEUINT32 last_user_flash_address = ((READ_BIT(FLASH->SFR, FLASH_SFR_SFSA) >> FLASH_SFR_SFSA_Pos) << 12) + FLASH_BASE;
+
+ SystemPower_Config(); /**< Configure the system Power Mode */
+
+ HW_TS_Init(hw_ts_InitMode_Full, &hrtc); /**< Initialize the TimerServer */
+
+/* USER CODE BEGIN APPE_Init_1 */
+ APPD_Init( );
+
+ /**
+ * The Standby mode should not be entered before the initialization is over
+ * The default state of the Low Power Manager is to allow the Standby Mode so an request is needed here
+ */
+ UTIL_LPM_SetOffMode(1 << CFG_LPM_APP, UTIL_LPM_DISABLE);
+
+ //Switch RGB LED off
+ LED_Off();
+ Button_Init();
+ BSP_I2C3_Init();
+
+ mobleNvmBase = (const void *)(last_user_flash_address - NVM_SIZE);
+ appNvmBase = (const void *)(last_user_flash_address - NVM_SIZE - APP_NVM_SIZE);
+ prvsnr_data = (const void *)(last_user_flash_address - NVM_SIZE - APP_NVM_SIZE - PRVN_NVM_PAGE_SIZE);
+
+#if (LOW_POWER_FEATURE == 1)
+ /**
+ * Initialize the lp timer to be used when the systick is stopped in low power mode
+ */
+ LpTimerInit();
+#endif
+
+/* USER CODE END APPE_Init_1 */
+ appe_Tl_Init(); /* Initialize all transport layers */
+
+ /**
+ * From now, the application is waiting for the ready event ( VS_HCI_C2_Ready )
+ * received on the system channel before starting the Stack
+ * This system event is received with APPE_SysUserEvtRx()
+ */
+/* USER CODE BEGIN APPE_Init_2 */
+
+/* USER CODE END APPE_Init_2 */
+ return;
+}
+/* USER CODE BEGIN FD */
+
+/* USER CODE END FD */
+
+/*************************************************************
+ *
+ * LOCAL FUNCTIONS
+ *
+ *************************************************************/
+/**
+ * @brief Configure the system for power optimization
+ *
+ * @note This API configures the system to be ready for low power mode
+ *
+ * @param None
+ * @retval None
+ */
+static void SystemPower_Config( void )
+{
+
+ /**
+ * Select HSI as system clock source after Wake Up from Stop mode
+ */
+ LL_RCC_SetClkAfterWakeFromStop(LL_RCC_STOP_WAKEUPCLOCK_HSI);
+
+ /* Initialize low power manager */
+ UTIL_LPM_Init( );
+ /* Initialize the CPU2 reset value before starting CPU2 with C2BOOT */
+ LL_C2_PWR_SetPowerMode(LL_PWR_MODE_SHUTDOWN);
+
+#if (CFG_USB_INTERFACE_ENABLE != 0)
+ /**
+ * Enable USB power
+ */
+ HAL_PWREx_EnableVddUSB();
+#endif
+
+ return;
+}
+
+static void appe_Tl_Init( void )
+{
+ TL_MM_Config_t tl_mm_config;
+ SHCI_TL_HciInitConf_t SHci_Tl_Init_Conf;
+ /**< Reference table initialization */
+ TL_Init();
+
+ /**< System channel initialization */
+ UTIL_SEQ_RegTask( 1<< CFG_TASK_SYSTEM_HCI_ASYNCH_EVT_ID, UTIL_SEQ_RFU, shci_user_evt_proc );
+ SHci_Tl_Init_Conf.p_cmdbuffer = (uint8_t*)&SystemCmdBuffer;
+ SHci_Tl_Init_Conf.StatusNotCallBack = APPE_SysStatusNot;
+ shci_init(APPE_SysUserEvtRx, (void*) &SHci_Tl_Init_Conf);
+
+ /**< Memory Manager channel initialization */
+ tl_mm_config.p_BleSpareEvtBuffer = BleSpareEvtBuffer;
+ tl_mm_config.p_SystemSpareEvtBuffer = SystemSpareEvtBuffer;
+ tl_mm_config.p_AsynchEvtPool = EvtPool;
+ tl_mm_config.AsynchEvtPoolSize = POOL_SIZE;
+ TL_MM_Init( &tl_mm_config );
+
+ TL_Enable();
+
+ return;
+}
+
+
+
+static void APPE_SysStatusNot( SHCI_TL_CmdStatus_t status )
+{
+ UNUSED(status);
+ return;
+}
+
+/**
+ * The type of the payload for a system user event is tSHCI_UserEvtRxParam
+ * When the system event is both :
+ * - a ready event (subevtcode = SHCI_SUB_EVT_CODE_READY)
+ * - reported by the FUS (sysevt_ready_rsp == FUS_FW_RUNNING)
+ * The buffer shall not be released
+ * ( eg ((tSHCI_UserEvtRxParam*)pPayload)->status shall be set to SHCI_TL_UserEventFlow_Disable )
+ * When the status is not filled, the buffer is released by default
+ */
+static void APPE_SysUserEvtRx( void * pPayload )
+{
+ TL_AsynchEvt_t *p_sys_event;
+ WirelessFwInfo_t WirelessInfo;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+
+ /* Read the firmware version of both the wireless firmware and the FUS */
+ SHCI_GetWirelessFwInfo( &WirelessInfo );
+ APP_DBG_MSG("Wireless Firmware version %d.%d.%d\n", WirelessInfo.VersionMajor, WirelessInfo.VersionMinor, WirelessInfo.VersionSub);
+ APP_DBG_MSG("Wireless Firmware build %d\n", WirelessInfo.VersionReleaseType);
+ APP_DBG_MSG("FUS version %d.%d.%d\n\n", WirelessInfo.FusVersionMajor, WirelessInfo.FusVersionMinor, WirelessInfo.FusVersionSub);
+
+ switch(p_sys_event->subevtcode)
+ {
+ case SHCI_SUB_EVT_CODE_READY:
+ APPE_SysEvtReadyProcessing(pPayload);
+ break;
+
+ case SHCI_SUB_EVT_ERROR_NOTIF:
+ APPE_SysEvtError(pPayload);
+ break;
+
+ case SHCI_SUB_EVT_BLE_NVM_RAM_UPDATE:
+ APP_DBG_MSG("-- BLE NVM RAM HAS BEEN UPDATED BY CMO+ \n");
+ APP_DBG_MSG("SHCI_SUB_EVT_BLE_NVM_RAM_UPDATE : StartAddress = %lx , Size = %ld\n",
+ ((SHCI_C2_BleNvmRamUpdate_Evt_t*)p_sys_event->payload)->StartAddress,
+ ((SHCI_C2_BleNvmRamUpdate_Evt_t*)p_sys_event->payload)->Size);
+ break;
+
+ case SHCI_SUB_EVT_NVM_START_WRITE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_START_WRITE : NumberOfWords = %ld\n",
+ ((SHCI_C2_NvmStartWrite_Evt_t*)p_sys_event->payload)->NumberOfWords);
+ break;
+
+ case SHCI_SUB_EVT_NVM_END_WRITE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_END_WRITE\n");
+ break;
+
+ case SHCI_SUB_EVT_NVM_START_ERASE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_START_ERASE : NumberOfSectors = %ld\n",
+ ((SHCI_C2_NvmStartErase_Evt_t*)p_sys_event->payload)->NumberOfSectors);
+ break;
+
+ case SHCI_SUB_EVT_NVM_END_ERASE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_END_ERASE\n");
+ break;
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+/**
+* @brief Notify when ready system event from the M0 firmware
+*/
+static void APPE_SysEvtReadyProcessing( void * pPayload )
+{
+ TL_AsynchEvt_t *p_sys_event;
+ SHCI_C2_Ready_Evt_t *p_sys_ready_event;
+
+ SHCI_C2_CONFIG_Cmd_Param_t config_param = {0};
+ uint32_t RevisionID=0;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+ p_sys_ready_event = (SHCI_C2_Ready_Evt_t*) p_sys_event->payload;
+
+ if(p_sys_ready_event->sysevt_ready_rsp == WIRELESS_FW_RUNNING)
+ {
+ /**
+ * The wireless firmware is running on the CPU2
+ */
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - WIRELESS_FW_RUNNING \n");
+
+ /* Traces channel initialization */
+ APPD_EnableCPU2( );
+
+ /* Enable all events Notification */
+ config_param.PayloadCmdSize = SHCI_C2_CONFIG_PAYLOAD_CMD_SIZE;
+ config_param.EvtMask1 = SHCI_C2_CONFIG_EVTMASK1_BIT0_ERROR_NOTIF_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT1_BLE_NVM_RAM_UPDATE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT2_THREAD_NVM_RAM_UPDATE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT3_NVM_START_WRITE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT4_NVM_END_WRITE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT5_NVM_START_ERASE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT6_NVM_END_ERASE_ENABLE;
+
+
+ /* Read revision identifier */
+ /**
+ * @brief Return the device revision identifier
+ * @note This field indicates the revision of the device.
+ * @rmtoll DBGMCU_IDCODE REV_ID LL_DBGMCU_GetRevisionID
+ * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF
+ */
+ RevisionID = LL_DBGMCU_GetRevisionID();
+
+ APP_DBG_MSG("DBGMCU_GetRevisionID= %lx \n\n", RevisionID);
+
+ config_param.RevisionID = RevisionID;
+ (void)SHCI_C2_Config(&config_param);
+
+ APP_BLE_Init( );
+ UTIL_LPM_SetOffMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE);
+
+ }
+ else if (p_sys_ready_event->sysevt_ready_rsp == FUS_FW_RUNNING)
+ {
+ /**
+ * The FUS firmware is running on the CPU2
+ * In the scope of this application, there should be no case when we get here
+ */
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - FUS_FW_RUNNING \n");
+
+ /* The packet shall not be released as this is not supported by the FUS */
+ ((tSHCI_UserEvtRxParam*)pPayload)->status = SHCI_TL_UserEventFlow_Disable;
+
+ } else {
+
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY – UNEXPECTED CASE \n");
+ }
+ return;
+}
+
+/**
+* @brief Notify a system error coming from the M0 firmware
+*/
+static void APPE_SysEvtError( void * pPayload)
+{
+ TL_AsynchEvt_t *p_sys_event;
+ SCHI_SystemErrCode_t *p_sys_error_code;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+ p_sys_error_code = (SCHI_SystemErrCode_t*) p_sys_event->payload;
+
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON %x \n",(*p_sys_error_code));
+
+ if ((*p_sys_error_code) == ERR_BLE_INIT) {
+ /* Error during BLE stack initialization */
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON – ERR_BLE_INIT \n");
+ } else {
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON – BLE ERROR \n");
+ }
+ return;
+}
+static void Button_Init( void )
+{
+#if (CFG_BUTTON_SUPPORTED == 1)
+ /**
+ * Button Initialization
+ */
+#if 0
+ BSP_PB_Init(BUTTON_SW1, BUTTON_MODE_EXTI);
+ BSP_PB_Init(BUTTON_SW2, BUTTON_MODE_EXTI);
+#else
+ BSP_PB_Init(BUTTON_USER1, BUTTON_MODE_EXTI);
+ BSP_PB_Init(BUTTON_USER2, BUTTON_MODE_EXTI);
+#endif
+#endif
+
+ return;
+}
+/* USER CODE END FD_LOCAL_FUNCTIONS */
+
+/*************************************************************
+ *
+ * WRAP FUNCTIONS
+ *
+ *************************************************************/
+
+void UTIL_SEQ_Idle( void )
+{
+#if ( CFG_LPM_SUPPORTED == 1)
+#if (LOW_POWER_FEATURE == 1)
+ if(BleProcessInit != 0)
+ {
+ BleMesh_sleepTime = (uint32_t)BLEMesh_GetSleepDuration();
+
+ if (BleMesh_sleepTime > 0)
+ {
+ LpTimerStart(BleMesh_sleepTime);
+
+ UTIL_LPM_EnterLowPower( );
+
+ uwTick += (uwTickFreq*LpGetElapsedTime());
+ }
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_MESH_REQ_ID, CFG_SCH_PRIO_0);
+ }
+#else
+ UTIL_LPM_EnterLowPower( );
+#endif
+#else
+#if (LOW_POWER_FEATURE == 1)
+ if(BleProcessInit != 0)
+ {
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_MESH_REQ_ID, CFG_SCH_PRIO_0);
+ }
+#endif
+#endif
+ return;
+}
+
+/**
+ * @brief This function is called by the scheduler each time an event
+ * is pending.
+ *
+ * @param evt_waited_bm : Event pending.
+ * @retval None
+ */
+void UTIL_SEQ_EvtIdle( UTIL_SEQ_bm_t task_id_bm, UTIL_SEQ_bm_t evt_waited_bm )
+{
+#if (LOW_POWER_FEATURE == 1)
+ UTIL_SEQ_Run( 0 );
+#else
+ UTIL_SEQ_Run( UTIL_SEQ_DEFAULT );
+#endif
+}
+
+void shci_notify_asynch_evt(void* pdata)
+{
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_SYSTEM_HCI_ASYNCH_EVT_ID, CFG_SCH_PRIO_0);
+ return;
+}
+
+void shci_cmd_resp_release(uint32_t flag)
+{
+ UTIL_SEQ_SetEvt( 1<< CFG_IDLEEVT_SYSTEM_HCI_CMD_EVT_RSP_ID );
+ return;
+}
+
+void shci_cmd_resp_wait(uint32_t timeout)
+{
+ UTIL_SEQ_WaitEvt( 1<< CFG_IDLEEVT_SYSTEM_HCI_CMD_EVT_RSP_ID );
+ return;
+}
+
+/* USER CODE BEGIN FD_WRAP_FUNCTIONS */
+void HAL_GPIO_EXTI_Callback( uint16_t GPIO_Pin )
+{
+ switch (GPIO_Pin)
+ {
+#ifdef SAVE_MODEL_STATE_POWER_FAILURE_DETECTION
+ case POWEROFF_PIN:
+ {
+ PowerOnOff_flag = 1;
+ }
+ break;
+#endif
+
+ case GPIO_PIN_12: //BUTTON_SW1_PIN
+ {
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_MESH_SW1_REQ_ID, CFG_SCH_PRIO_0);
+ }
+ break;
+
+#ifdef ENABLE_OCCUPANCY_SENSOR
+ case GPIO_PIN_1: //BUTTON_SW3_PIN
+ {
+ Occupancy_Flag = 1;
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_MESH_SW3_REQ_ID, CFG_SCH_PRIO_0);
+ }
+ break;
+#endif
+
+
+ default:
+ break;
+
+ }
+ return;
+}
+/* USER CODE END FD_WRAP_FUNCTIONS */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_stts22h.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_stts22h.c
new file mode 100644
index 000000000..4bc7f2198
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_stts22h.c
@@ -0,0 +1,131 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file app_stts22h.c
+ * @author MCD Application Team
+ * @brief Temperature Application
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+/* Includes ------------------------------------------------------------------*/
+#include "app_stts22h.h"
+#include "stm32_lcd.h"
+#include "stm32wb5mm_dk_lcd.h"
+
+/* Private defines -----------------------------------------------------------*/
+#define STTS22H_UPDATE_PERIOD (uint32_t)(0.5*1000*1000/CFG_TS_TICK_VAL) /*500ms*/
+
+/* Private variables ---------------------------------------------------------*/
+extern I2C_HandleTypeDef hbus_i2c3;
+static STTS22H_Object_t stts22h_obj_0;
+uint8_t STTS22H_Update_Timer_Id;
+
+/* Private function prototypes -----------------------------------------------*/
+
+/* Private functions ---------------------------------------------------------*/
+static int32_t STTS22H_write(void *handle, uint8_t reg, uint8_t *bufp,uint16_t len)
+{
+ BSP_I2C3_WriteReg(STTS22H_I2C_ADD_H, (uint16_t) reg, bufp, len);
+ return 0;
+}
+static int32_t STTS22H_read(void *handle, uint8_t reg, uint8_t *bufp,uint16_t len)
+{
+ BSP_I2C3_ReadReg(STTS22H_I2C_ADD_H, (uint16_t) reg, bufp, len);
+ return 0;
+}
+
+/**
+ * @brief STTS22H sensor Initialization.
+ * @param None
+ * @retval BSP status
+ */
+int32_t STTS22H_Init_Sensor(void){
+ STTS22H_IO_t io_ctx;
+ uint8_t id;
+ int32_t ret = BSP_ERROR_NONE;
+
+ /* Configure the environmental sensor driver */
+ io_ctx.BusType = STTS22H_I2C_BUS; /* I2C */
+ io_ctx.Address = STTS22H_I2C_ADD_H;
+ io_ctx.Init = BSP_I2C3_Init;
+ io_ctx.DeInit = BSP_I2C3_DeInit;
+ io_ctx.ReadReg = BSP_I2C3_ReadReg;
+ io_ctx.WriteReg = BSP_I2C3_WriteReg;
+ io_ctx.GetTick = BSP_GetTick;
+
+ stts22h_obj_0.Ctx.write_reg = STTS22H_write;
+ stts22h_obj_0.Ctx.read_reg = STTS22H_read;
+ stts22h_obj_0.Ctx.handle = &hbus_i2c3;
+
+ if (STTS22H_RegisterBusIO(&stts22h_obj_0, &io_ctx) != STTS22H_OK)
+ {
+ ret = BSP_ERROR_UNKNOWN_COMPONENT;
+ }
+ else if (STTS22H_ReadID(&stts22h_obj_0, &id) != STTS22H_OK)
+ {
+ ret = BSP_ERROR_UNKNOWN_COMPONENT;
+ }
+ else if (id != STTS22H_ID)
+ {
+ ret = BSP_ERROR_UNKNOWN_COMPONENT;
+ }
+ else if (STTS22H_Init(&stts22h_obj_0) != STTS22H_OK)
+ {
+ ret = BSP_ERROR_COMPONENT_FAILURE;
+ }
+ else if (STTS22H_TEMP_Enable(&stts22h_obj_0) != STTS22H_OK)
+ {
+ ret = BSP_ERROR_COMPONENT_FAILURE;
+ }
+ else
+ {
+ ret = BSP_ERROR_NONE;
+ }
+ return ret;
+}
+
+void STTS22H_Start_Measure(void)
+{
+ HW_TS_Start(STTS22H_Update_Timer_Id, STTS22H_UPDATE_PERIOD);
+}
+
+void STTS22H_Stop_Measure(void)
+{
+ HW_TS_Stop(STTS22H_Update_Timer_Id);
+}
+
+/**
+ * @brief Get the STTS22H temperature value
+ * @param Value pointer where the temperature value is written
+ * @retval None
+ */
+void STTS22H_getTemperatureValue(float *value){
+ float val;
+ STTS22H_TEMP_GetTemperature(&stts22h_obj_0,&val);
+ *value = val;
+}
+
+void STTS22H_PrintValues(void){
+ float temp_val;
+ char text[32];
+
+ STTS22H_TEMP_GetTemperature(&stts22h_obj_0,&temp_val);
+
+ sprintf(text,"T:%2.1f C",temp_val);
+
+ UTIL_LCD_DisplayStringAtLine(3,(uint8_t*)text);
+#ifdef ENABLE_SENSOR_MODEL_SERVER
+ Sensor_Send(0, 0, PRESENT_AMBIENT_TEMPERATURE_PID);
+#endif
+ return;
+}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_vl53l0x.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_vl53l0x.c
new file mode 100644
index 000000000..fac4f3080
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/app_vl53l0x.c
@@ -0,0 +1,139 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file app_vl53l0x.c
+ * @author MCD Application Team
+ * @brief Proximity Application
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_vl53l0x.h"
+#include "stm32_lcd.h"
+#include "stm32wb5mm_dk_lcd.h"
+
+/* Private defines -----------------------------------------------------------*/
+#define PROXIMITY_UPDATE_PERIOD (uint32_t)(0.5*1000*1000/CFG_TS_TICK_VAL) /*500ms*/
+#define DISTANCE_MAX_PROXIMITY 2000 /* 2m */
+
+/* Private variables ---------------------------------------------------------*/
+extern I2C_HandleTypeDef hbus_i2c3;
+
+/* Proximity */
+VL53L0X_Dev_t Dev =
+{
+ .I2cHandle = &hbus_i2c3,
+ .I2cDevAddr = PROXIMITY_I2C_ADDRESS
+};
+
+uint8_t VL53L0X_PROXIMITY_Update_Timer_Id;
+
+/* Private function prototypes -----------------------------------------------*/
+
+/**
+ * @brief VL53L0X proximity sensor Initialization.
+ */
+void VL53L0X_PROXIMITY_Init(void)
+{
+ uint16_t vl53l0x_id = 0;
+ VL53L0X_DeviceInfo_t VL53L0X_DeviceInfo;
+
+ memset(&VL53L0X_DeviceInfo, 0, sizeof(VL53L0X_DeviceInfo_t));
+
+ if (VL53L0X_ERROR_NONE == VL53L0X_GetDeviceInfo(&Dev, &VL53L0X_DeviceInfo))
+ {
+ if (VL53L0X_ERROR_NONE == VL53L0X_RdWord(&Dev, VL53L0X_REG_IDENTIFICATION_MODEL_ID, (uint16_t *) &vl53l0x_id))
+ {
+ if (vl53l0x_id == VL53L0X_ID)
+ {
+ if (VL53L0X_ERROR_NONE == VL53L0X_DataInit(&Dev))
+ {
+ Dev.Present = 1;
+ SetupSingleShot(Dev);
+ }
+ else
+ {
+ while(1){} // VL53L0X Time of Flight Failed to send its ID!
+ }
+ }
+ }
+ else
+ {
+ while(1){} // VL53L0X Time of Flight Failed to Initialize!
+ }
+ }
+ else
+ {
+ while(1){} // VL53L0X Time of Flight Failed to get infos!
+ }
+//// UTIL_SEQ_RegTask( 1<<CFG_TASK_GET_MEASURE_TOF_ID, UTIL_SEQ_RFU, VL53L0X_PROXIMITY_PrintValue);
+// /* Create timer to get the measure of TOF */
+// HW_TS_Create(CFG_TIM_PROC_ID_ISR,
+// &VL53L0X_PROXIMITY_Update_Timer_Id,
+// hw_ts_Repeated,
+// VL53L0X_PROXIMITY_Update_Timer_Callback);
+}
+
+
+void VL53L0X_Start_Measure(void)
+{
+ /* Start the timer used to update the proximity value */
+ HW_TS_Start(VL53L0X_PROXIMITY_Update_Timer_Id, PROXIMITY_UPDATE_PERIOD);
+}
+
+void VL53L0X_Stop_Measure(void)
+{
+ /* Stop the timer used to update the proximity value */
+ HW_TS_Stop(VL53L0X_PROXIMITY_Update_Timer_Id);
+}
+
+/**
+ * @brief Get distance from VL53L0X proximity sensor.
+ * @param None
+ * @retval Distance in mm
+ */
+uint16_t VL53L0X_PROXIMITY_GetDistance(void)
+{
+ VL53L0X_RangingMeasurementData_t RangingMeasurementData;
+
+ VL53L0X_PerformSingleRangingMeasurement(&Dev, &RangingMeasurementData);
+
+ return RangingMeasurementData.RangeMilliMeter;
+}
+
+/**
+ * @brief Print distance measure from VL53L0X proximity sensor on the OLED screen.
+ * @param None
+ * @retval None
+ */
+void VL53L0X_PROXIMITY_PrintValue(void){
+ UTIL_LCD_ClearStringLine(4);
+ char distanceText[18];
+ uint16_t prox_value = 0;
+ uint16_t distance = 0;
+ prox_value = VL53L0X_PROXIMITY_GetDistance();
+ if(prox_value < DISTANCE_MAX_PROXIMITY)
+ {
+ distance = prox_value / 10;
+ sprintf(distanceText,"Distance : %3d cm",distance);
+ UTIL_LCD_DisplayStringAtLine(2,(uint8_t*)distanceText);
+ }
+ else
+ {
+ sprintf(distanceText, "Distance > 200 cm");
+ UTIL_LCD_DisplayStringAtLine(2,(uint8_t*)distanceText);
+ }
+ BSP_LCD_Refresh(0);
+}
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_flash.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_flash.c
new file mode 100644
index 000000000..7355cea62
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_flash.c
@@ -0,0 +1,149 @@
+/**
+ ******************************************************************************
+ * @file hw_flash.c
+ * @author MCD Application Team
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#include "common.h"
+#include "stm32_seq.h"
+//#include "dbg_gpio.h"
+#include "hw_flash.h"
+#include "stm32wbxx_hal.h"
+
+static void HW_FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data);
+static void HW_FLASH_PageErase(uint32_t Page);
+//static void HW_FLASH_WaitEndOfOperation(void);
+
+/*****************************************************************************/
+
+MOBLE_RESULT HW_FLASH_Write(uint32_t address, uint64_t data)
+{
+ /* Enable EOP interrupt */
+ // __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP);
+
+ // __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
+
+ HW_FLASH_Program_DoubleWord(address, data);
+
+ // HW_FLASH_WaitEndOfOperation();
+
+ /* Disable EOP interrupt */
+// __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP);
+
+ /* Clear the PG bit once data has been written */
+ CLEAR_BIT(FLASH->CR, FLASH_CR_PG);
+
+ return (MOBLE_RESULT_SUCCESS);
+}
+
+/*****************************************************************************/
+
+MOBLE_RESULT HW_FLASH_Erase(uint32_t page, uint16_t n, int interrupt)
+{
+ UNUSED(interrupt);
+
+ uint32_t loop;
+
+ /* Enable EOP interrupt */
+ __HAL_FLASH_ENABLE_IT(FLASH_IT_EOP);
+
+ for( loop = 0; loop < n ; loop++)
+ {
+ __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP);
+
+ HW_FLASH_PageErase(page+loop);
+
+// HW_FLASH_WaitEndOfOperation();
+ }
+
+ /* Disable EOP interrupt */
+ __HAL_FLASH_DISABLE_IT(FLASH_IT_EOP);
+
+ /* Clear the page erase bit */
+ CLEAR_BIT(FLASH->CR, (FLASH_CR_PER | FLASH_CR_PNB));
+
+ return (MOBLE_RESULT_SUCCESS);
+}
+
+#if 0
+/*****************************************************************************/
+
+uint32_t HW_FLASH_OB_GetIPCCBufferAddr(void)
+{
+ return READ_BIT(FLASH->IPCCBR, FLASH_IPCCBR_IPCCDBA);
+}
+
+/*****************************************************************************/
+
+uint32_t HW_FLASH_OB_GetSFSA(void)
+{
+ return (READ_BIT(FLASH->SFR, FLASH_SFR_SFSA) >> FLASH_SFR_SFSA_Pos);
+}
+
+/*****************************************************************************/
+
+uint32_t HW_FLASH_OB_GetSBRSA(void)
+{
+ return (READ_BIT(FLASH->SRRVR, FLASH_SRRVR_SBRSA) >> FLASH_SRRVR_SBRSA_Pos);
+}
+
+/*****************************************************************************/
+
+uint32_t HW_FLASH_OB_GetSNBRSA(void)
+{
+ return (READ_BIT(FLASH->SRRVR, FLASH_SRRVR_SNBRSA) >> FLASH_SRRVR_SNBRSA_Pos);
+}
+#endif
+
+/*************************************************************
+ *
+ * LOCAL FUNCTIONS
+ *
+ *************************************************************/
+
+/**
+ * This is a copy of FLASH_Program_DoubleWord() from the HAL
+ */
+static void HW_FLASH_Program_DoubleWord(uint32_t Address, uint64_t Data)
+{
+// DBG_GPIO_Gr2Set(DBG_GPIO_GR2_FLASH_WRITE);
+
+ /* Set PG bit */
+ SET_BIT(FLASH->CR, FLASH_CR_PG);
+
+ /* Program first word */
+ *(uint32_t *)Address = (uint32_t)Data;
+
+ /* Barrier to ensure programming is performed in 2 steps, in right order
+ (independently of compiler optimization behavior) */
+ __ISB();
+
+ /* Program second word */
+ *(uint32_t *)(Address + 4U) = (uint32_t)(Data >> 32U);
+
+// DBG_GPIO_Gr2Reset(DBG_GPIO_GR2_FLASH_WRITE);
+}
+
+/**
+ * This is a copy of LASH_PageErase() from the HAL
+ */
+static void HW_FLASH_PageErase(uint32_t Page)
+{
+// DBG_GPIO_Gr2Set(DBG_GPIO_GR2_FLASH_ERASE);
+
+ /* Proceed to erase the page */
+ MODIFY_REG(FLASH->CR, FLASH_CR_PNB, ((Page << FLASH_CR_PNB_Pos) | FLASH_CR_PER | FLASH_CR_STRT));
+
+// DBG_GPIO_Gr2Set(DBG_GPIO_GR2_FLASH_ERASE);
+}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_timerserver.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_timerserver.c
new file mode 100644
index 000000000..f1444495a
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_timerserver.c
@@ -0,0 +1,891 @@
+/**
+ ******************************************************************************
+ * File Name : hw_timerserver.c
+ * Description : Hardware timerserver source file for STM32WPAN Middleware.
+ *
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_common.h"
+#include "hw_conf.h"
+
+/* Private typedef -----------------------------------------------------------*/
+typedef enum
+{
+ TimerID_Free,
+ TimerID_Created,
+ TimerID_Running
+}TimerIDStatus_t;
+
+typedef enum
+{
+ SSR_Read_Requested,
+ SSR_Read_Not_Requested
+}RequestReadSSR_t;
+
+typedef enum
+{
+ WakeupTimerValue_Overpassed,
+ WakeupTimerValue_LargeEnough
+}WakeupTimerLimitation_Status_t;
+
+typedef struct
+{
+ HW_TS_pTimerCb_t pTimerCallBack;
+ uint32_t CounterInit;
+ uint32_t CountLeft;
+ TimerIDStatus_t TimerIDStatus;
+ HW_TS_Mode_t TimerMode;
+ uint32_t TimerProcessID;
+ uint8_t PreviousID;
+ uint8_t NextID;
+}TimerContext_t;
+
+/* Private defines -----------------------------------------------------------*/
+#define SSR_FORBIDDEN_VALUE 0xFFFFFFFF
+#define TIMER_LIST_EMPTY 0xFFFF
+
+/* Private macros ------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+
+/**
+ * START of Section TIMERSERVER_CONTEXT
+ */
+
+PLACE_IN_SECTION("TIMERSERVER_CONTEXT") static volatile TimerContext_t aTimerContext[CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER];
+PLACE_IN_SECTION("TIMERSERVER_CONTEXT") static volatile uint8_t CurrentRunningTimerID;
+PLACE_IN_SECTION("TIMERSERVER_CONTEXT") static volatile uint8_t PreviousRunningTimerID;
+PLACE_IN_SECTION("TIMERSERVER_CONTEXT") static volatile uint32_t SSRValueOnLastSetup;
+PLACE_IN_SECTION("TIMERSERVER_CONTEXT") static volatile WakeupTimerLimitation_Status_t WakeupTimerLimitation;
+
+/**
+ * END of Section TIMERSERVER_CONTEXT
+ */
+
+static RTC_HandleTypeDef *phrtc; /**< RTC handle */
+static uint8_t WakeupTimerDivider;
+static uint8_t AsynchPrescalerUserConfig;
+static uint16_t SynchPrescalerUserConfig;
+static volatile uint16_t MaxWakeupTimerSetup;
+
+/* Global variables ----------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+static void RestartWakeupCounter(uint16_t Value);
+static uint16_t ReturnTimeElapsed(void);
+static void RescheduleTimerList(void);
+static void UnlinkTimer(uint8_t TimerID, RequestReadSSR_t RequestReadSSR);
+static void LinkTimerBefore(uint8_t TimerID, uint8_t RefTimerID);
+static void LinkTimerAfter(uint8_t TimerID, uint8_t RefTimerID);
+static uint16_t linkTimer(uint8_t TimerID);
+static uint32_t ReadRtcSsrValue(void);
+
+__weak void HW_TS_RTC_CountUpdated_AppNot(void);
+
+/* Functions Definition ------------------------------------------------------*/
+
+/**
+ * @brief Read the RTC_SSR value
+ * As described in the reference manual, the RTC_SSR shall be read twice to ensure
+ * reliability of the value
+ * @param None
+ * @retval SSR value read
+ */
+static uint32_t ReadRtcSsrValue(void)
+{
+ uint32_t first_read;
+ uint32_t second_read;
+
+ first_read = (uint32_t)(READ_BIT(RTC->SSR, RTC_SSR_SS));
+
+ second_read = (uint32_t)(READ_BIT(RTC->SSR, RTC_SSR_SS));
+
+ while(first_read != second_read)
+ {
+ first_read = second_read;
+
+ second_read = (uint32_t)(READ_BIT(RTC->SSR, RTC_SSR_SS));
+ }
+
+ return second_read;
+}
+
+/**
+ * @brief Insert a Timer in the list after the Timer ID specified
+ * @param TimerID: The ID of the Timer
+ * @param RefTimerID: The ID of the Timer to be linked after
+ * @retval None
+ */
+static void LinkTimerAfter(uint8_t TimerID, uint8_t RefTimerID)
+{
+ uint8_t next_id;
+
+ next_id = aTimerContext[RefTimerID].NextID;
+
+ if(next_id != CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER)
+ {
+ aTimerContext[next_id].PreviousID = TimerID;
+ }
+ aTimerContext[TimerID].NextID = next_id;
+ aTimerContext[TimerID].PreviousID = RefTimerID ;
+ aTimerContext[RefTimerID].NextID = TimerID;
+
+ return;
+}
+
+/**
+ * @brief Insert a Timer in the list before the ID specified
+ * @param TimerID: The ID of the Timer
+ * @param RefTimerID: The ID of the Timer to be linked before
+ * @retval None
+ */
+static void LinkTimerBefore(uint8_t TimerID, uint8_t RefTimerID)
+{
+ uint8_t previous_id;
+
+ if(RefTimerID != CurrentRunningTimerID)
+ {
+ previous_id = aTimerContext[RefTimerID].PreviousID;
+
+ aTimerContext[previous_id].NextID = TimerID;
+ aTimerContext[TimerID].NextID = RefTimerID;
+ aTimerContext[TimerID].PreviousID = previous_id ;
+ aTimerContext[RefTimerID].PreviousID = TimerID;
+ }
+ else
+ {
+ aTimerContext[TimerID].NextID = RefTimerID;
+ aTimerContext[RefTimerID].PreviousID = TimerID;
+ }
+
+ return;
+}
+
+/**
+ * @brief Insert a Timer in the list
+ * @param TimerID: The ID of the Timer
+ * @retval None
+ */
+static uint16_t linkTimer(uint8_t TimerID)
+{
+ uint32_t time_left;
+ uint16_t time_elapsed;
+ uint8_t timer_id_lookup;
+ uint8_t next_id;
+
+ if(CurrentRunningTimerID == CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER)
+ {
+ /**
+ * No timer in the list
+ */
+ PreviousRunningTimerID = CurrentRunningTimerID;
+ CurrentRunningTimerID = TimerID;
+ aTimerContext[TimerID].NextID = CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER;
+
+ SSRValueOnLastSetup = SSR_FORBIDDEN_VALUE;
+ time_elapsed = 0;
+ }
+ else
+ {
+ time_elapsed = ReturnTimeElapsed();
+
+ /**
+ * update count of the timer to be linked
+ */
+ aTimerContext[TimerID].CountLeft += time_elapsed;
+ time_left = aTimerContext[TimerID].CountLeft;
+
+ /**
+ * Search for index where the new timer shall be linked
+ */
+ if(aTimerContext[CurrentRunningTimerID].CountLeft <= time_left)
+ {
+ /**
+ * Search for the ID after the first one
+ */
+ timer_id_lookup = CurrentRunningTimerID;
+ next_id = aTimerContext[timer_id_lookup].NextID;
+ while((next_id != CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER) && (aTimerContext[next_id].CountLeft <= time_left))
+ {
+ timer_id_lookup = aTimerContext[timer_id_lookup].NextID;
+ next_id = aTimerContext[timer_id_lookup].NextID;
+ }
+
+ /**
+ * Link after the ID
+ */
+ LinkTimerAfter(TimerID, timer_id_lookup);
+ }
+ else
+ {
+ /**
+ * Link before the first ID
+ */
+ LinkTimerBefore(TimerID, CurrentRunningTimerID);
+ PreviousRunningTimerID = CurrentRunningTimerID;
+ CurrentRunningTimerID = TimerID;
+ }
+ }
+
+ return time_elapsed;
+}
+
+/**
+ * @brief Remove a Timer from the list
+ * @param TimerID: The ID of the Timer
+ * @param RequestReadSSR: Request to read the SSR register or not
+ * @retval None
+ */
+static void UnlinkTimer(uint8_t TimerID, RequestReadSSR_t RequestReadSSR)
+{
+ uint8_t previous_id;
+ uint8_t next_id;
+
+ if(TimerID == CurrentRunningTimerID)
+ {
+ PreviousRunningTimerID = CurrentRunningTimerID;
+ CurrentRunningTimerID = aTimerContext[TimerID].NextID;
+ }
+ else
+ {
+ previous_id = aTimerContext[TimerID].PreviousID;
+ next_id = aTimerContext[TimerID].NextID;
+
+ aTimerContext[previous_id].NextID = aTimerContext[TimerID].NextID;
+ if(next_id != CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER)
+ {
+ aTimerContext[next_id].PreviousID = aTimerContext[TimerID].PreviousID;
+ }
+ }
+
+ /**
+ * Timer is out of the list
+ */
+ aTimerContext[TimerID].TimerIDStatus = TimerID_Created;
+
+ if((CurrentRunningTimerID == CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER) && (RequestReadSSR == SSR_Read_Requested))
+ {
+ SSRValueOnLastSetup = SSR_FORBIDDEN_VALUE;
+ }
+
+ return;
+}
+
+/**
+ * @brief Return the number of ticks counted by the wakeuptimer since it has been started
+ * @note The API is reading the SSR register to get how many ticks have been counted
+ * since the time the timer has been started
+ * @param None
+ * @retval Time expired in Ticks
+ */
+static uint16_t ReturnTimeElapsed(void)
+{
+ uint32_t return_value;
+ uint32_t wrap_counter;
+
+ if(SSRValueOnLastSetup != SSR_FORBIDDEN_VALUE)
+ {
+ return_value = ReadRtcSsrValue(); /**< Read SSR register first */
+
+ if (SSRValueOnLastSetup >= return_value)
+ {
+ return_value = SSRValueOnLastSetup - return_value;
+ }
+ else
+ {
+ wrap_counter = SynchPrescalerUserConfig - return_value;
+ return_value = SSRValueOnLastSetup + wrap_counter;
+ }
+
+ /**
+ * At this stage, ReturnValue holds the number of ticks counted by SSR
+ * Need to translate in number of ticks counted by the Wakeuptimer
+ */
+ return_value = return_value*AsynchPrescalerUserConfig;
+ return_value = return_value >> WakeupTimerDivider;
+ }
+ else
+ {
+ return_value = 0;
+ }
+
+ return (uint16_t)return_value;
+}
+
+/**
+ * @brief Set the wakeup counter
+ * @note The API is writing the counter value so that the value is decreased by one to cope with the fact
+ * the interrupt is generated with 1 extra clock cycle (See RefManuel)
+ * It assumes all condition are met to be allowed to write the wakeup counter
+ * @param Value: Value to be written in the counter
+ * @retval None
+ */
+static void RestartWakeupCounter(uint16_t Value)
+{
+ /**
+ * The wakeuptimer has been disabled in the calling function to reduce the time to poll the WUTWF
+ * FLAG when the new value will have to be written
+ * __HAL_RTC_WAKEUPTIMER_DISABLE(phrtc);
+ */
+
+ if(Value == 0)
+ {
+ SSRValueOnLastSetup = ReadRtcSsrValue();
+
+ /**
+ * Simulate that the Timer expired
+ */
+ HAL_NVIC_SetPendingIRQ(CFG_HW_TS_RTC_WAKEUP_HANDLER_ID);
+ }
+ else
+ {
+ if((Value > 1) ||(WakeupTimerDivider != 1))
+ {
+ Value -= 1;
+ }
+
+ while(__HAL_RTC_WAKEUPTIMER_GET_FLAG(phrtc, RTC_FLAG_WUTWF) == RESET);
+
+ /**
+ * make sure to clear the flags after checking the WUTWF.
+ * It takes 2 RTCCLK between the time the WUTE bit is disabled and the
+ * time the timer is disabled. The WUTWF bit somehow guarantee the system is stable
+ * Otherwise, when the timer is periodic with 1 Tick, it may generate an extra interrupt in between
+ * due to the autoreload feature
+ */
+ __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(phrtc, RTC_FLAG_WUTF); /**< Clear flag in RTC module */
+ __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG(); /**< Clear flag in EXTI module */
+ HAL_NVIC_ClearPendingIRQ(CFG_HW_TS_RTC_WAKEUP_HANDLER_ID); /**< Clear pending bit in NVIC */
+
+ MODIFY_REG(RTC->WUTR, RTC_WUTR_WUT, Value);
+
+ /**
+ * Update the value here after the WUTWF polling that may take some time
+ */
+ SSRValueOnLastSetup = ReadRtcSsrValue();
+
+ __HAL_RTC_WAKEUPTIMER_ENABLE(phrtc); /**< Enable the Wakeup Timer */
+
+ HW_TS_RTC_CountUpdated_AppNot();
+ }
+
+ return ;
+}
+
+/**
+ * @brief Reschedule the list of timer
+ * @note 1) Update the count left for each timer in the list
+ * 2) Setup the wakeuptimer
+ * @param None
+ * @retval None
+ */
+static void RescheduleTimerList(void)
+{
+ uint8_t localTimerID;
+ uint32_t timecountleft;
+ uint16_t wakeup_timer_value;
+ uint16_t time_elapsed;
+
+ /**
+ * The wakeuptimer is disabled now to reduce the time to poll the WUTWF
+ * FLAG when the new value will have to be written
+ */
+ if((READ_BIT(RTC->CR, RTC_CR_WUTE) == (RTC_CR_WUTE)) == SET)
+ {
+ /**
+ * Wait for the flag to be back to 0 when the wakeup timer is enabled
+ */
+ while(__HAL_RTC_WAKEUPTIMER_GET_FLAG(phrtc, RTC_FLAG_WUTWF) == SET);
+ }
+ __HAL_RTC_WAKEUPTIMER_DISABLE(phrtc); /**< Disable the Wakeup Timer */
+
+ localTimerID = CurrentRunningTimerID;
+
+ /**
+ * Calculate what will be the value to write in the wakeuptimer
+ */
+ timecountleft = aTimerContext[localTimerID].CountLeft;
+
+ /**
+ * Read how much has been counted
+ */
+ time_elapsed = ReturnTimeElapsed();
+
+ if(timecountleft < time_elapsed )
+ {
+ /**
+ * There is no tick left to count
+ */
+ wakeup_timer_value = 0;
+ WakeupTimerLimitation = WakeupTimerValue_LargeEnough;
+ }
+ else
+ {
+ if(timecountleft > (time_elapsed + MaxWakeupTimerSetup))
+ {
+ /**
+ * The number of tick left is greater than the Wakeuptimer maximum value
+ */
+ wakeup_timer_value = MaxWakeupTimerSetup;
+
+ WakeupTimerLimitation = WakeupTimerValue_Overpassed;
+ }
+ else
+ {
+ wakeup_timer_value = timecountleft - time_elapsed;
+ WakeupTimerLimitation = WakeupTimerValue_LargeEnough;
+ }
+
+ }
+
+ /**
+ * update ticks left to be counted for each timer
+ */
+ while(localTimerID != CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER)
+ {
+ if (aTimerContext[localTimerID].CountLeft < time_elapsed)
+ {
+ aTimerContext[localTimerID].CountLeft = 0;
+ }
+ else
+ {
+ aTimerContext[localTimerID].CountLeft -= time_elapsed;
+ }
+ localTimerID = aTimerContext[localTimerID].NextID;
+ }
+
+ /**
+ * Write next count
+ */
+ RestartWakeupCounter(wakeup_timer_value);
+
+ return ;
+}
+
+/* Public functions ----------------------------------------------------------*/
+
+/**
+ * For all public interface except that may need write access to the RTC, the RTC
+ * shall be unlock at the beginning and locked at the output
+ * In order to ease maintainability, the unlock is done at the top and the lock at then end
+ * in case some new implementation is coming in the future
+ */
+
+void HW_TS_RTC_Wakeup_Handler(void)
+{
+ HW_TS_pTimerCb_t ptimer_callback;
+ uint32_t timer_process_id;
+ uint8_t local_current_running_timer_id;
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ uint32_t primask_bit;
+#endif
+
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ primask_bit = __get_PRIMASK(); /**< backup PRIMASK bit */
+ __disable_irq(); /**< Disable all interrupts by setting PRIMASK bit on Cortex*/
+#endif
+
+/* Disable the write protection for RTC registers */
+ __HAL_RTC_WRITEPROTECTION_DISABLE( phrtc );
+
+ /**
+ * Disable the Wakeup Timer
+ * This may speed up a bit the processing to wait the timer to be disabled
+ * The timer is still counting 2 RTCCLK
+ */
+ __HAL_RTC_WAKEUPTIMER_DISABLE(phrtc);
+
+ local_current_running_timer_id = CurrentRunningTimerID;
+
+ if(aTimerContext[local_current_running_timer_id].TimerIDStatus == TimerID_Running)
+ {
+ ptimer_callback = aTimerContext[local_current_running_timer_id].pTimerCallBack;
+ timer_process_id = aTimerContext[local_current_running_timer_id].TimerProcessID;
+
+ /**
+ * It should be good to check whether the TimeElapsed is greater or not than the tick left to be counted
+ * However, due to the inaccuracy of the reading of the time elapsed, it may return there is 1 tick
+ * to be left whereas the count is over
+ * A more secure implementation has been done with a flag to state whereas the full count has been written
+ * in the wakeuptimer or not
+ */
+ if(WakeupTimerLimitation != WakeupTimerValue_Overpassed)
+ {
+ if(aTimerContext[local_current_running_timer_id].TimerMode == hw_ts_Repeated)
+ {
+ UnlinkTimer(local_current_running_timer_id, SSR_Read_Not_Requested);
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
+#endif
+ HW_TS_Start(local_current_running_timer_id, aTimerContext[local_current_running_timer_id].CounterInit);
+
+ /* Disable the write protection for RTC registers */
+ __HAL_RTC_WRITEPROTECTION_DISABLE( phrtc );
+ }
+ else
+ {
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
+#endif
+ HW_TS_Stop(local_current_running_timer_id);
+
+ /* Disable the write protection for RTC registers */
+ __HAL_RTC_WRITEPROTECTION_DISABLE( phrtc );
+ }
+
+ HW_TS_RTC_Int_AppNot(timer_process_id, local_current_running_timer_id, ptimer_callback);
+ }
+ else
+ {
+ RescheduleTimerList();
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
+#endif
+ }
+ }
+ else
+ {
+ /**
+ * We should never end up in this case
+ * However, if due to any bug in the timer server this is the case, the mistake may not impact the user.
+ * We could just clean the interrupt flag and get out from this unexpected interrupt
+ */
+ while(__HAL_RTC_WAKEUPTIMER_GET_FLAG(phrtc, RTC_FLAG_WUTWF) == RESET);
+
+ /**
+ * make sure to clear the flags after checking the WUTWF.
+ * It takes 2 RTCCLK between the time the WUTE bit is disabled and the
+ * time the timer is disabled. The WUTWF bit somehow guarantee the system is stable
+ * Otherwise, when the timer is periodic with 1 Tick, it may generate an extra interrupt in between
+ * due to the autoreload feature
+ */
+ __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(phrtc, RTC_FLAG_WUTF); /**< Clear flag in RTC module */
+ __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG(); /**< Clear flag in EXTI module */
+
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
+#endif
+ }
+
+ /* Enable the write protection for RTC registers */
+ __HAL_RTC_WRITEPROTECTION_ENABLE( phrtc );
+
+ return;
+}
+
+void HW_TS_Init(HW_TS_InitMode_t TimerInitMode, RTC_HandleTypeDef *hrtc)
+{
+ uint8_t loop;
+ uint32_t localmaxwakeuptimersetup;
+
+ /**
+ * Get RTC handler
+ */
+ phrtc = hrtc;
+
+ /* Disable the write protection for RTC registers */
+ __HAL_RTC_WRITEPROTECTION_DISABLE( phrtc );
+
+ SET_BIT(RTC->CR, RTC_CR_BYPSHAD);
+
+ /**
+ * Readout the user config
+ */
+ WakeupTimerDivider = (4 - ((uint32_t)(READ_BIT(RTC->CR, RTC_CR_WUCKSEL))));
+
+ AsynchPrescalerUserConfig = (uint8_t)(READ_BIT(RTC->PRER, RTC_PRER_PREDIV_A) >> (uint32_t)POSITION_VAL(RTC_PRER_PREDIV_A)) + 1;
+
+ SynchPrescalerUserConfig = (uint16_t)(READ_BIT(RTC->PRER, RTC_PRER_PREDIV_S)) + 1;
+
+ /**
+ * Margin is taken to avoid wrong calculation when the wrap around is there and some
+ * application interrupts may have delayed the reading
+ */
+ localmaxwakeuptimersetup = ((((SynchPrescalerUserConfig - 1)*AsynchPrescalerUserConfig) - CFG_HW_TS_RTC_HANDLER_MAX_DELAY) >> WakeupTimerDivider);
+
+ if(localmaxwakeuptimersetup >= 0xFFFF)
+ {
+ MaxWakeupTimerSetup = 0xFFFF;
+ }
+ else
+ {
+ MaxWakeupTimerSetup = (uint16_t)localmaxwakeuptimersetup;
+ }
+
+ /**
+ * Configure EXTI module
+ */
+ LL_EXTI_EnableRisingTrig_0_31(RTC_EXTI_LINE_WAKEUPTIMER_EVENT);
+ LL_EXTI_EnableIT_0_31(RTC_EXTI_LINE_WAKEUPTIMER_EVENT);
+
+ if(TimerInitMode == hw_ts_InitMode_Full)
+ {
+ WakeupTimerLimitation = WakeupTimerValue_LargeEnough;
+ SSRValueOnLastSetup = SSR_FORBIDDEN_VALUE;
+
+ /**
+ * Initialize the timer server
+ */
+ for(loop = 0; loop < CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER; loop++)
+ {
+ aTimerContext[loop].TimerIDStatus = TimerID_Free;
+ }
+
+ CurrentRunningTimerID = CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER; /**< Set ID to non valid value */
+
+ __HAL_RTC_WAKEUPTIMER_DISABLE(phrtc); /**< Disable the Wakeup Timer */
+ __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(phrtc, RTC_FLAG_WUTF); /**< Clear flag in RTC module */
+ __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG(); /**< Clear flag in EXTI module */
+ HAL_NVIC_ClearPendingIRQ(CFG_HW_TS_RTC_WAKEUP_HANDLER_ID); /**< Clear pending bit in NVIC */
+ __HAL_RTC_WAKEUPTIMER_ENABLE_IT(phrtc, RTC_IT_WUT); /**< Enable interrupt in RTC module */
+ }
+ else
+ {
+ if(__HAL_RTC_WAKEUPTIMER_GET_FLAG(phrtc, RTC_FLAG_WUTF) != RESET)
+ {
+ /**
+ * Simulate that the Timer expired
+ */
+ HAL_NVIC_SetPendingIRQ(CFG_HW_TS_RTC_WAKEUP_HANDLER_ID);
+ }
+ }
+
+ /* Enable the write protection for RTC registers */
+ __HAL_RTC_WRITEPROTECTION_ENABLE( phrtc );
+
+ HAL_NVIC_SetPriority(CFG_HW_TS_RTC_WAKEUP_HANDLER_ID, CFG_HW_TS_NVIC_RTC_WAKEUP_IT_PREEMPTPRIO, CFG_HW_TS_NVIC_RTC_WAKEUP_IT_SUBPRIO); /**< Set NVIC priority */
+ HAL_NVIC_EnableIRQ(CFG_HW_TS_RTC_WAKEUP_HANDLER_ID); /**< Enable NVIC */
+
+ return;
+}
+
+HW_TS_ReturnStatus_t HW_TS_Create(uint32_t TimerProcessID, uint8_t *pTimerId, HW_TS_Mode_t TimerMode, HW_TS_pTimerCb_t pftimeout_handler)
+{
+ HW_TS_ReturnStatus_t localreturnstatus;
+ uint8_t loop = 0;
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ uint32_t primask_bit;
+#endif
+
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ primask_bit = __get_PRIMASK(); /**< backup PRIMASK bit */
+ __disable_irq(); /**< Disable all interrupts by setting PRIMASK bit on Cortex*/
+#endif
+
+ while((loop < CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER) && (aTimerContext[loop].TimerIDStatus != TimerID_Free))
+ {
+ loop++;
+ }
+
+ if(loop != CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER)
+ {
+ aTimerContext[loop].TimerIDStatus = TimerID_Created;
+
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
+#endif
+
+ aTimerContext[loop].TimerProcessID = TimerProcessID;
+ aTimerContext[loop].TimerMode = TimerMode;
+ aTimerContext[loop].pTimerCallBack = pftimeout_handler;
+ *pTimerId = loop;
+
+ localreturnstatus = hw_ts_Successful;
+ }
+ else
+ {
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
+#endif
+
+ localreturnstatus = hw_ts_Failed;
+ }
+
+ return(localreturnstatus);
+}
+
+void HW_TS_Delete(uint8_t timer_id)
+{
+ HW_TS_Stop(timer_id);
+
+ aTimerContext[timer_id].TimerIDStatus = TimerID_Free; /**< release ID */
+
+ return;
+}
+
+void HW_TS_Stop(uint8_t timer_id)
+{
+ uint8_t localcurrentrunningtimerid;
+
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ uint32_t primask_bit;
+#endif
+
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ primask_bit = __get_PRIMASK(); /**< backup PRIMASK bit */
+ __disable_irq(); /**< Disable all interrupts by setting PRIMASK bit on Cortex*/
+#endif
+
+ HAL_NVIC_DisableIRQ(CFG_HW_TS_RTC_WAKEUP_HANDLER_ID); /**< Disable NVIC */
+
+ /* Disable the write protection for RTC registers */
+ __HAL_RTC_WRITEPROTECTION_DISABLE( phrtc );
+
+ if(aTimerContext[timer_id].TimerIDStatus == TimerID_Running)
+ {
+ UnlinkTimer(timer_id, SSR_Read_Requested);
+ localcurrentrunningtimerid = CurrentRunningTimerID;
+
+ if(localcurrentrunningtimerid == CFG_HW_TS_MAX_NBR_CONCURRENT_TIMER)
+ {
+ /**
+ * List is empty
+ */
+
+ /**
+ * Disable the timer
+ */
+ if((READ_BIT(RTC->CR, RTC_CR_WUTE) == (RTC_CR_WUTE)) == SET)
+ {
+ /**
+ * Wait for the flag to be back to 0 when the wakeup timer is enabled
+ */
+ while(__HAL_RTC_WAKEUPTIMER_GET_FLAG(phrtc, RTC_FLAG_WUTWF) == SET);
+ }
+ __HAL_RTC_WAKEUPTIMER_DISABLE(phrtc); /**< Disable the Wakeup Timer */
+
+ while(__HAL_RTC_WAKEUPTIMER_GET_FLAG(phrtc, RTC_FLAG_WUTWF) == RESET);
+
+ /**
+ * make sure to clear the flags after checking the WUTWF.
+ * It takes 2 RTCCLK between the time the WUTE bit is disabled and the
+ * time the timer is disabled. The WUTWF bit somehow guarantee the system is stable
+ * Otherwise, when the timer is periodic with 1 Tick, it may generate an extra interrupt in between
+ * due to the autoreload feature
+ */
+ __HAL_RTC_WAKEUPTIMER_CLEAR_FLAG(phrtc, RTC_FLAG_WUTF); /**< Clear flag in RTC module */
+ __HAL_RTC_WAKEUPTIMER_EXTI_CLEAR_FLAG(); /**< Clear flag in EXTI module */
+ HAL_NVIC_ClearPendingIRQ(CFG_HW_TS_RTC_WAKEUP_HANDLER_ID); /**< Clear pending bit in NVIC */
+ }
+ else if(PreviousRunningTimerID != localcurrentrunningtimerid)
+ {
+ RescheduleTimerList();
+ }
+ }
+
+ /* Enable the write protection for RTC registers */
+ __HAL_RTC_WRITEPROTECTION_ENABLE( phrtc );
+
+ HAL_NVIC_EnableIRQ(CFG_HW_TS_RTC_WAKEUP_HANDLER_ID); /**< Enable NVIC */
+
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
+#endif
+
+ return;
+}
+
+void HW_TS_Start(uint8_t timer_id, uint32_t timeout_ticks)
+{
+ uint16_t time_elapsed;
+ uint8_t localcurrentrunningtimerid;
+
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ uint32_t primask_bit;
+#endif
+
+ if(aTimerContext[timer_id].TimerIDStatus == TimerID_Running)
+ {
+ HW_TS_Stop( timer_id );
+ }
+
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ primask_bit = __get_PRIMASK(); /**< backup PRIMASK bit */
+ __disable_irq(); /**< Disable all interrupts by setting PRIMASK bit on Cortex*/
+#endif
+
+ HAL_NVIC_DisableIRQ(CFG_HW_TS_RTC_WAKEUP_HANDLER_ID); /**< Disable NVIC */
+
+ /* Disable the write protection for RTC registers */
+ __HAL_RTC_WRITEPROTECTION_DISABLE( phrtc );
+
+ aTimerContext[timer_id].TimerIDStatus = TimerID_Running;
+
+ aTimerContext[timer_id].CountLeft = timeout_ticks;
+ aTimerContext[timer_id].CounterInit = timeout_ticks;
+
+ time_elapsed = linkTimer(timer_id);
+
+ localcurrentrunningtimerid = CurrentRunningTimerID;
+
+ if(PreviousRunningTimerID != localcurrentrunningtimerid)
+ {
+ RescheduleTimerList();
+ }
+ else
+ {
+ aTimerContext[timer_id].CountLeft -= time_elapsed;
+ }
+
+ /* Enable the write protection for RTC registers */
+ __HAL_RTC_WRITEPROTECTION_ENABLE( phrtc );
+
+ HAL_NVIC_EnableIRQ(CFG_HW_TS_RTC_WAKEUP_HANDLER_ID); /**< Enable NVIC */
+
+#if (CFG_HW_TS_USE_PRIMASK_AS_CRITICAL_SECTION == 1)
+ __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
+#endif
+
+ return;
+}
+
+uint16_t HW_TS_RTC_ReadLeftTicksToCount(void)
+{
+ uint32_t primask_bit;
+ uint16_t return_value, auro_reload_value, elapsed_time_value;
+
+ primask_bit = __get_PRIMASK(); /**< backup PRIMASK bit */
+ __disable_irq(); /**< Disable all interrupts by setting PRIMASK bit on Cortex*/
+
+ if((READ_BIT(RTC->CR, RTC_CR_WUTE) == (RTC_CR_WUTE)) == SET)
+ {
+ auro_reload_value = (uint32_t)(READ_BIT(RTC->WUTR, RTC_WUTR_WUT));
+
+ elapsed_time_value = ReturnTimeElapsed();
+
+ if(auro_reload_value > elapsed_time_value)
+ {
+ return_value = auro_reload_value - elapsed_time_value;
+ }
+ else
+ {
+ return_value = 0;
+ }
+ }
+ else
+ {
+ return_value = TIMER_LIST_EMPTY;
+ }
+
+ __set_PRIMASK(primask_bit); /**< Restore PRIMASK bit*/
+
+ return (return_value);
+}
+
+__weak void HW_TS_RTC_Int_AppNot(uint32_t TimerProcessID, uint8_t TimerID, HW_TS_pTimerCb_t pTimerCallBack)
+{
+ pTimerCallBack();
+
+ return;
+}
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_uart.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_uart.c
new file mode 100644
index 000000000..7a42785ae
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_uart.c
@@ -0,0 +1,468 @@
+/**
+ ******************************************************************************
+ * @file hw_uart.c
+ * @author MCD Application Team
+ * @brief hardware access
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_common.h"
+#include "hw_conf.h"
+
+/* Macros --------------------------------------------------------------------*/
+#define HW_UART_INIT(__HANDLE__, __USART_BASE__) \
+ do{ \
+ (__HANDLE__).Instance = (__USART_BASE__); \
+ (__HANDLE__).Init.BaudRate = CFG_HW_##__USART_BASE__##_BAUDRATE; \
+ (__HANDLE__).Init.WordLength = CFG_HW_##__USART_BASE__##_WORDLENGTH; \
+ (__HANDLE__).Init.StopBits = CFG_HW_##__USART_BASE__##_STOPBITS; \
+ (__HANDLE__).Init.Parity = CFG_HW_##__USART_BASE__##_PARITY; \
+ (__HANDLE__).Init.HwFlowCtl = CFG_HW_##__USART_BASE__##_HWFLOWCTL; \
+ (__HANDLE__).Init.Mode = CFG_HW_##__USART_BASE__##_MODE; \
+ (__HANDLE__).Init.OverSampling = CFG_HW_##__USART_BASE__##_OVERSAMPLING; \
+ (__HANDLE__).AdvancedInit.AdvFeatureInit = CFG_HW_##__USART_BASE__##_ADVFEATUREINIT; \
+ HAL_UART_Init(&(__HANDLE__)); \
+ } while(0)
+
+#define HW_UART_RX_IT(__HANDLE__, __USART_BASE__) \
+ do{ \
+ HW_##__HANDLE__##RxCb = cb; \
+ (__HANDLE__).Instance = (__USART_BASE__); \
+ HAL_UART_Receive_IT(&(__HANDLE__), p_data, size); \
+ } while(0)
+
+#define HW_UART_TX_IT(__HANDLE__, __USART_BASE__) \
+ do{ \
+ HW_##__HANDLE__##TxCb = cb; \
+ (__HANDLE__).Instance = (__USART_BASE__); \
+ HAL_UART_Transmit_IT(&(__HANDLE__), p_data, size); \
+ } while(0)
+
+#define HW_UART_TX(__HANDLE__, __USART_BASE__) \
+ do{ \
+ (__HANDLE__).Instance = (__USART_BASE__); \
+ hal_status = HAL_UART_Transmit(&(__HANDLE__), p_data, size, timeout); \
+ } while(0)
+
+#define HW_UART_MSP_UART_INIT(__HANDLE__, __USART_BASE__) \
+ do{ \
+ \
+ /* Configure Tx Pin */ \
+ CFG_HW_##__USART_BASE__##_TX_PORT_CLK_ENABLE(); \
+ \
+ GPIO_InitStruct.Pin = CFG_HW_##__USART_BASE__##_TX_PIN ; \
+ GPIO_InitStruct.Mode = CFG_HW_##__USART_BASE__##_TX_MODE; \
+ GPIO_InitStruct.Pull = CFG_HW_##__USART_BASE__##_TX_PULL; \
+ GPIO_InitStruct.Speed = CFG_HW_##__USART_BASE__##_TX_SPEED; \
+ GPIO_InitStruct.Alternate = CFG_HW_##__USART_BASE__##_TX_ALTERNATE; \
+ HAL_GPIO_Init(CFG_HW_##__USART_BASE__##_TX_PORT, &GPIO_InitStruct); \
+ \
+ \
+ /* Configure Rx Pin */ \
+ CFG_HW_##__USART_BASE__##_RX_PORT_CLK_ENABLE(); \
+ \
+ GPIO_InitStruct.Pin = CFG_HW_##__USART_BASE__##_RX_PIN; \
+ GPIO_InitStruct.Mode = CFG_HW_##__USART_BASE__##_RX_MODE; \
+ GPIO_InitStruct.Pull = CFG_HW_##__USART_BASE__##_RX_PULL; \
+ GPIO_InitStruct.Speed = CFG_HW_##__USART_BASE__##_RX_SPEED; \
+ GPIO_InitStruct.Alternate = CFG_HW_##__USART_BASE__##_RX_ALTERNATE; \
+ HAL_GPIO_Init(CFG_HW_##__USART_BASE__##_RX_PORT, &GPIO_InitStruct); \
+ \
+ \
+ /* Configure CTS Pin */ \
+ CFG_HW_##__USART_BASE__##_CTS_PORT_CLK_ENABLE(); \
+ \
+ GPIO_InitStruct.Pin = CFG_HW_##__USART_BASE__##_CTS_PIN; \
+ GPIO_InitStruct.Mode = CFG_HW_##__USART_BASE__##_CTS_MODE; \
+ GPIO_InitStruct.Pull = CFG_HW_##__USART_BASE__##_CTS_PULL; \
+ GPIO_InitStruct.Speed = CFG_HW_##__USART_BASE__##_CTS_SPEED; \
+ GPIO_InitStruct.Alternate = CFG_HW_##__USART_BASE__##_CTS_ALTERNATE; \
+ HAL_GPIO_Init(CFG_HW_##__USART_BASE__##_CTS_PORT, &GPIO_InitStruct); \
+ \
+ /* Set USART source clock */ \
+ __HAL_RCC_##__USART_BASE__##_CONFIG(CFG_HW_##__USART_BASE__##_SOURCE_CLOCK); \
+ \
+ /* Enable USART clock */ \
+ __HAL_RCC_##__USART_BASE__##_CLK_ENABLE(); \
+ \
+ HAL_NVIC_SetPriority(__USART_BASE__##_IRQn, CFG_HW_##__USART_BASE__##_PREEMPTPRIORITY, CFG_HW_##__USART_BASE__##_SUBPRIORITY); \
+ HAL_NVIC_EnableIRQ(__USART_BASE__##_IRQn); \
+ } while(0)
+
+#define HW_UART_MSP_TX_DMA_INIT(__HANDLE__, __USART_BASE__) \
+ do{ \
+ /* Configure the DMA handler for Transmission process */ \
+ /* Enable DMA clock */ \
+ CFG_HW_##__USART_BASE__##_DMA_CLK_ENABLE(); \
+ /* Enable DMA MUX clock */ \
+ CFG_HW_##__USART_BASE__##_DMAMUX_CLK_ENABLE(); \
+ \
+ HW_hdma_##__HANDLE__##_tx.Instance = CFG_HW_##__USART_BASE__##_TX_DMA_CHANNEL; \
+ HW_hdma_##__HANDLE__##_tx.Init.Request = CFG_HW_##__USART_BASE__##_TX_DMA_REQ; \
+ HW_hdma_##__HANDLE__##_tx.Init.Direction = DMA_MEMORY_TO_PERIPH; \
+ HW_hdma_##__HANDLE__##_tx.Init.PeriphInc = DMA_PINC_DISABLE; \
+ HW_hdma_##__HANDLE__##_tx.Init.MemInc = DMA_MINC_ENABLE; \
+ HW_hdma_##__HANDLE__##_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE; \
+ HW_hdma_##__HANDLE__##_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE; \
+ HW_hdma_##__HANDLE__##_tx.Init.Mode = DMA_NORMAL; \
+ HW_hdma_##__HANDLE__##_tx.Init.Priority = DMA_PRIORITY_LOW; \
+ \
+ HAL_DMA_Init(&HW_hdma_##__HANDLE__##_tx); \
+ \
+ /* Associate the initialized DMA handle to the UART handle */ \
+ __HAL_LINKDMA(huart, hdmatx, HW_hdma_##__HANDLE__##_tx); \
+ \
+ /* NVIC configuration for DMA transfer complete interrupt */ \
+ HAL_NVIC_SetPriority(CFG_HW_##__USART_BASE__##_TX_DMA_IRQn, CFG_HW_##__USART_BASE__##_DMA_TX_PREEMPTPRIORITY, CFG_HW_##__USART_BASE__##_DMA_TX_SUBPRIORITY); \
+ HAL_NVIC_EnableIRQ(CFG_HW_##__USART_BASE__##_TX_DMA_IRQn); \
+ } while(0)
+
+/* Variables ------------------------------------------------------------------*/
+#if (CFG_HW_USART1_ENABLED == 1)
+ UART_HandleTypeDef huart1 = {0};
+#if (CFG_HW_USART1_DMA_TX_SUPPORTED == 1)
+DMA_HandleTypeDef HW_hdma_huart1_tx ={0};
+#endif
+void (*HW_huart1RxCb)(void);
+void (*HW_huart1TxCb)(void);
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ UART_HandleTypeDef hlpuart1 = {0};
+#if (CFG_HW_LPUART1_DMA_TX_SUPPORTED == 1)
+DMA_HandleTypeDef HW_hdma_hlpuart1_tx ={0};
+#endif
+void (*HW_hlpuart1RxCb)(void);
+void (*HW_hlpuart1TxCb)(void);
+#endif
+
+void HW_UART_Init(hw_uart_id_t hw_uart_id)
+{
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case hw_uart1:
+ HW_UART_INIT(huart1, USART1);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case hw_lpuart1:
+ HW_UART_INIT(hlpuart1, LPUART1);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+void HW_UART_Receive_IT(hw_uart_id_t hw_uart_id, uint8_t *p_data, uint16_t size, void (*cb)(void))
+{
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case hw_uart1:
+ HW_UART_RX_IT(huart1, USART1);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case hw_lpuart1:
+ HW_UART_RX_IT(hlpuart1, LPUART1);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+void HW_UART_Transmit_IT(hw_uart_id_t hw_uart_id, uint8_t *p_data, uint16_t size, void (*cb)(void))
+{
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case hw_uart1:
+ HW_UART_TX_IT(huart1, USART1);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case hw_lpuart1:
+ HW_UART_TX_IT(hlpuart1, LPUART1);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+hw_status_t HW_UART_Transmit(hw_uart_id_t hw_uart_id, uint8_t *p_data, uint16_t size, uint32_t timeout)
+{
+ HAL_StatusTypeDef hal_status = HAL_OK;
+ hw_status_t hw_status = hw_uart_ok;
+
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case hw_uart1:
+ HW_UART_TX(huart1, USART1);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case hw_lpuart1:
+ HW_UART_TX(hlpuart1, LPUART1);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ switch (hal_status)
+ {
+ case HAL_OK:
+ hw_status = hw_uart_ok;
+ break;
+
+ case HAL_ERROR:
+ hw_status = hw_uart_error;
+ break;
+
+ case HAL_BUSY:
+ hw_status = hw_uart_busy;
+ break;
+
+ case HAL_TIMEOUT:
+ hw_status = hw_uart_to;
+ break;
+
+ default:
+ break;
+ }
+
+ return hw_status;
+}
+
+hw_status_t HW_UART_Transmit_DMA(hw_uart_id_t hw_uart_id, uint8_t *p_data, uint16_t size, void (*cb)(void))
+{
+ HAL_StatusTypeDef hal_status = HAL_OK;
+ hw_status_t hw_status = hw_uart_ok;
+
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case hw_uart1:
+ HW_huart1TxCb = cb;
+ huart1.Instance = USART1;
+ hal_status = HAL_UART_Transmit_DMA(&huart1, p_data, size);
+ break;
+#endif
+
+#if (CFG_HW_USART2_ENABLED == 1)
+ case hw_uart2:
+ HW_huart2TxCb = cb;
+ huart2.Instance = USART2;
+ hal_status = HAL_UART_Transmit_DMA(&huart2, p_data, size);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case hw_lpuart1:
+ HW_hlpuart1TxCb = cb;
+ hlpuart1.Instance = LPUART1;
+ hal_status = HAL_UART_Transmit_DMA(&hlpuart1, p_data, size);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ switch (hal_status)
+ {
+ case HAL_OK:
+ hw_status = hw_uart_ok;
+ break;
+
+ case HAL_ERROR:
+ hw_status = hw_uart_error;
+ break;
+
+ case HAL_BUSY:
+ hw_status = hw_uart_busy;
+ break;
+
+ case HAL_TIMEOUT:
+ hw_status = hw_uart_to;
+ break;
+
+ default:
+ break;
+ }
+
+ return hw_status;
+}
+
+void HW_UART_Interrupt_Handler(hw_uart_id_t hw_uart_id)
+{
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case hw_uart1:
+ HAL_UART_IRQHandler(&huart1);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case hw_lpuart1:
+ HAL_UART_IRQHandler(&hlpuart1);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+void HW_UART_DMA_Interrupt_Handler(hw_uart_id_t hw_uart_id)
+{
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_DMA_TX_SUPPORTED == 1)
+ case hw_uart1:
+ HAL_DMA_IRQHandler(huart1.hdmatx);
+ break;
+#endif
+
+#if (CFG_HW_USART2_DMA_TX_SUPPORTED == 1)
+ case hw_uart2:
+ HAL_DMA_IRQHandler(huart2.hdmatx);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_DMA_TX_SUPPORTED == 1)
+ case hw_lpuart1:
+ HAL_DMA_IRQHandler(hlpuart1.hdmatx);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+void HAL_UART_MspInit(UART_HandleTypeDef *huart)
+{
+#if ( (CFG_HW_USART1_ENABLED == 1) || (CFG_HW_LPUART1_ENABLED == 1) )
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+#endif
+ switch ((uint32_t)huart->Instance)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case (uint32_t)USART1:
+ HW_UART_MSP_UART_INIT( huart1, USART1 );
+#if (CFG_HW_USART1_DMA_TX_SUPPORTED == 1)
+ HW_UART_MSP_TX_DMA_INIT( huart1, USART1 );
+#endif
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case (uint32_t)LPUART1:
+ HW_UART_MSP_UART_INIT( hlpuart1, LPUART1 );
+#if (CFG_HW_LPUART1_DMA_TX_SUPPORTED == 1)
+ HW_UART_MSP_TX_DMA_INIT( hlpuart1, LPUART1 );
+#endif
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
+{
+ switch ((uint32_t)huart->Instance)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case (uint32_t)USART1:
+ if(HW_huart1RxCb)
+ {
+ HW_huart1RxCb();
+ }
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case (uint32_t)LPUART1:
+ if(HW_hlpuart1RxCb)
+ {
+ HW_hlpuart1RxCb();
+ }
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
+{
+ switch ((uint32_t)huart->Instance)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case (uint32_t)USART1:
+ if(HW_huart1TxCb)
+ {
+ HW_huart1TxCb();
+ }
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case (uint32_t)LPUART1:
+ if(HW_hlpuart1TxCb)
+ {
+ HW_hlpuart1TxCb();
+ }
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/lp_timer.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/lp_timer.c
new file mode 100644
index 000000000..eafc19123
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/lp_timer.c
@@ -0,0 +1,132 @@
+/**
+ ***************************************************************************************
+ * File Name : lp_timer.c
+ * Description : Low power timer to be used within Mesh Application.
+ ***************************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_common.h"
+
+#include "lp_timer.h"
+
+/* Exported variables --------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+static void LpTimerCb(void);
+
+/* Private typedef -----------------------------------------------------------*/
+typedef struct
+{
+ uint32_t LpTimeLeftOnEntry;
+ uint8_t LpTimer_Id;
+} LpTimerContext_t;
+
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+static LpTimerContext_t LpTimerContext;
+
+/* Functions Definition ------------------------------------------------------*/
+
+/**
+ * @brief Initialize the low power timer
+ *
+ * @param None
+ * @retval None
+ */
+void LpTimerInit(void)
+{
+ (void) HW_TS_Create(CFG_TIM_PROC_ID_ISR, &(LpTimerContext.LpTimer_Id), hw_ts_SingleShot, LpTimerCb);
+
+ return;
+}
+
+/**
+ * @brief Request to start a low power timer ( running is stop mode )
+ *
+ * @param time_to_sleep : in ms
+ * @retval None
+ */
+void LpTimerStart(uint32_t time_to_sleep)
+{
+ /* Converts the number of ms into hw timer tick */
+ if(time_to_sleep > 0x400000)
+ {
+ time_to_sleep = time_to_sleep / (CFG_TS_TICK_VAL);
+ time_to_sleep *= 1000;
+ }
+ else
+ {
+ time_to_sleep *= 1000;
+ time_to_sleep = time_to_sleep / (CFG_TS_TICK_VAL);
+ }
+
+ HW_TS_Start(LpTimerContext.LpTimer_Id, time_to_sleep);
+
+ /**
+ * There might be other timers already running in the timer server that may elapse
+ * before this one.
+ * Store how long before the next event so that on wakeup, it will be possible to calculate
+ * how long the tick has been suppressed
+ */
+ LpTimerContext.LpTimeLeftOnEntry = HW_TS_RTC_ReadLeftTicksToCount();
+
+ return;
+}
+
+/**
+ * @brief Read how long the timer has run
+ *
+ * @param None
+ * @retval The time elapsed in ms
+ */
+uint32_t LpGetElapsedTime(void)
+{
+ uint32_t return_value;
+
+ return_value = (CFG_TS_TICK_VAL) * (uint32_t)(LpTimerContext.LpTimeLeftOnEntry - HW_TS_RTC_ReadLeftTicksToCount());
+ return_value = return_value / 1000;
+
+ /**
+ * The system may have been out from another reason than the timer
+ * Stop the timer after the elapsed time is calculated other wise, HW_TS_RTC_ReadLeftTicksToCount()
+ * may return 0xFFFF ( TIMER LIST EMPTY )
+ * It does not hurt stopping a timer that exists but is not running.
+ */
+ HW_TS_Stop(LpTimerContext.LpTimer_Id);
+
+ return return_value;
+}
+
+
+/*************************************************************
+ *
+ * LOCAL FUNCTIONS
+ *
+ *************************************************************/
+/**
+ * @brief Low power timer callback
+ *
+ * @param None
+ * @retval None
+ */
+static void LpTimerCb( void )
+{
+ /**
+ * Nothing to be done
+ */
+
+ return;
+}
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/main.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/main.c
new file mode 100644
index 000000000..682b38966
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/main.c
@@ -0,0 +1,460 @@
+/**
+ ******************************************************************************
+ * @file main.c
+ * @author MCD Application Team
+ * @brief BLE application with BLE core
+ *
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ @verbatim
+ ==============================================================================
+ ##### IMPORTANT NOTE #####
+ ==============================================================================
+
+ This application requests having the stm32wb5x_BLE_Stack_fw.bin binary
+ flashed on the Wireless Coprocessor.
+ If it is not the case, you need to use STM32CubeProgrammer to load the appropriate
+ binary.
+
+ All available binaries are located under following directory:
+ /Projects/STM32_Copro_Wireless_Binaries
+
+ Refer to UM2237 to learn how to use/install STM32CubeProgrammer.
+ Refer to /Projects/STM32_Copro_Wireless_Binaries/ReleaseNote.html for the
+ detailed procedure to change the Wireless Coprocessor binary.
+
+ @endverbatim
+ ******************************************************************************
+ */
+
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_common.h"
+
+#include "app_entry.h"
+#include "stm32_lpm.h"
+#include "stm32_seq.h"
+#include "dbg_trace.h"
+
+#include "types.h"
+#include "ble_mesh.h"
+#include "appli_mesh.h"
+#include "models_if.h"
+#include "mesh_cfg.h"
+#include "otp.h"
+#include "stm32wbxx_hal_rcc.h"
+
+#include "stm32_lcd.h"
+#include "stm32wb5mm_dk_lcd.h"
+
+/** @addtogroup ST_BLE_Mesh
+ * @{
+ */
+
+/** @addtogroup Application
+* @{
+*/
+/* Private typedef -----------------------------------------------------------*/
+/* Private defines -----------------------------------------------------------*/
+/* Private macros ------------------------------------------------------------*/
+/* Global variables ---------------------------------------------------------*/
+RTC_HandleTypeDef hrtc = { 0 }; /**< RTC handler declaration */
+TIM_HandleTypeDef htim1 = { 0 };
+TIM_HandleTypeDef htim2 = { 0 };
+
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+static void Reset_BackupDomain( void );
+static void Init_RTC( void );
+static void SystemClock_Config( void );
+static void Reset_Device( void );
+static void Reset_IPCC( void );
+static void Init_Exti( void );
+void Error_Handler(void);
+void PeriphClock_Config(void);
+static void Config_HSE(void);
+
+/* Functions Definition ------------------------------------------------------*/
+
+/**
+ * @brief Main program
+ * @param None
+ * @retval None
+ */
+int main( void )
+{
+ HAL_Init();
+
+ Reset_Device();
+ Config_HSE();
+
+ /**
+ * When the application is expected to run at higher speed, it should be better to set the correct system clock
+ * in system_stm32yyxx.c so that the initialization phase is running at max speed.
+ */
+ SystemClock_Config(); /**< Configure the system clock */
+
+ PeriphClock_Config();
+
+// HAL_RCC_MCOConfig(RCC_MCO1, RCC_MCO1SOURCE_SYSCLK, RCC_MCODIV_16);
+
+ Init_Exti( );
+
+ Init_RTC();
+
+ /* Enable CRC clock */
+ __HAL_RCC_CRC_CLK_ENABLE();
+
+ /* BSP init LCD*/
+ BSP_LCD_Init(0, LCD_ORIENTATION_LANDSCAPE);
+
+// /* Set LCD Foreground Layer */
+ UTIL_LCD_SetFuncDriver(&LCD_Driver); /* SetFunc before setting device */
+ UTIL_LCD_SetDevice(0); /* SetDevice after funcDriver is set */
+
+ BSP_LCD_Clear(0,SSD1315_COLOR_BLACK);
+ BSP_LCD_DisplayOn(0);
+ BSP_LCD_SetBrightness(0, 50);
+ BSP_LCD_Refresh(0);
+
+ /* Set the LCD Text Color */
+ UTIL_LCD_SetTextColor(SSD1315_COLOR_WHITE);
+ UTIL_LCD_SetBackColor(SSD1315_COLOR_BLACK);
+ UTIL_LCD_SetFont(&Font12);
+
+#ifdef ENABLE_SENSOR_MODEL_SERVER
+ UTIL_LCD_DisplayStringAtLine(0, (uint8_t *)"Sensor Server");
+#elif ENABLE_SENSOR_MODEL_CLIENT
+ UTIL_LCD_DisplayStringAtLine(0, (uint8_t *)"Sensor Client");
+#else
+ UTIL_LCD_DisplayStringAtLine(0, (uint8_t *)"BLE Mesh ");
+#endif
+ BSP_LCD_Refresh(0);
+
+ APPE_Init( );
+
+#if ( CFG_LPM_SUPPORTED == 1)
+// BSP_LED_On(LED_GREEN);
+#endif
+
+ while(1)
+ {
+ UTIL_SEQ_Run( UTIL_SEQ_DEFAULT );
+ }
+}
+
+/*************************************************************
+ *
+ * LOCAL FUNCTIONS
+ *
+ *************************************************************/
+static void Init_Exti( void )
+{
+ /**< Disable all wakeup interrupt on CPU1 except IPCC(36), HSEM(38) */
+ LL_EXTI_DisableIT_0_31(~0);
+ LL_EXTI_DisableIT_32_63( (~0) & (~(LL_EXTI_LINE_36 | LL_EXTI_LINE_38)) );
+
+ return;
+}
+
+static void Reset_Device( void )
+{
+#if ( CFG_HW_RESET_BY_FW == 1 )
+ Reset_BackupDomain();
+
+ Reset_IPCC();
+#endif
+
+ return;
+}
+
+static void Reset_IPCC( void )
+{
+ LL_AHB3_GRP1_EnableClock(LL_AHB3_GRP1_PERIPH_IPCC);
+
+ LL_C1_IPCC_ClearFlag_CHx(
+ IPCC,
+ LL_IPCC_CHANNEL_1 | LL_IPCC_CHANNEL_2 | LL_IPCC_CHANNEL_3 | LL_IPCC_CHANNEL_4
+ | LL_IPCC_CHANNEL_5 | LL_IPCC_CHANNEL_6);
+
+ LL_C2_IPCC_ClearFlag_CHx(
+ IPCC,
+ LL_IPCC_CHANNEL_1 | LL_IPCC_CHANNEL_2 | LL_IPCC_CHANNEL_3 | LL_IPCC_CHANNEL_4
+ | LL_IPCC_CHANNEL_5 | LL_IPCC_CHANNEL_6);
+
+ LL_C1_IPCC_DisableTransmitChannel(
+ IPCC,
+ LL_IPCC_CHANNEL_1 | LL_IPCC_CHANNEL_2 | LL_IPCC_CHANNEL_3 | LL_IPCC_CHANNEL_4
+ | LL_IPCC_CHANNEL_5 | LL_IPCC_CHANNEL_6);
+
+ LL_C2_IPCC_DisableTransmitChannel(
+ IPCC,
+ LL_IPCC_CHANNEL_1 | LL_IPCC_CHANNEL_2 | LL_IPCC_CHANNEL_3 | LL_IPCC_CHANNEL_4
+ | LL_IPCC_CHANNEL_5 | LL_IPCC_CHANNEL_6);
+
+ LL_C1_IPCC_DisableReceiveChannel(
+ IPCC,
+ LL_IPCC_CHANNEL_1 | LL_IPCC_CHANNEL_2 | LL_IPCC_CHANNEL_3 | LL_IPCC_CHANNEL_4
+ | LL_IPCC_CHANNEL_5 | LL_IPCC_CHANNEL_6);
+
+ LL_C2_IPCC_DisableReceiveChannel(
+ IPCC,
+ LL_IPCC_CHANNEL_1 | LL_IPCC_CHANNEL_2 | LL_IPCC_CHANNEL_3 | LL_IPCC_CHANNEL_4
+ | LL_IPCC_CHANNEL_5 | LL_IPCC_CHANNEL_6);
+
+ return;
+}
+
+static void Reset_BackupDomain( void )
+{
+ if ((LL_RCC_IsActiveFlag_PINRST() != FALSE) && (LL_RCC_IsActiveFlag_SFTRST() == FALSE))
+ {
+ HAL_PWR_EnableBkUpAccess(); /**< Enable access to the RTC registers */
+
+ /**
+ * Write twice the value to flush the APB-AHB bridge
+ * This bit shall be written in the register before writing the next one
+ */
+ HAL_PWR_EnableBkUpAccess();
+
+ __HAL_RCC_BACKUPRESET_FORCE();
+ __HAL_RCC_BACKUPRESET_RELEASE();
+ }
+
+ return;
+}
+
+static void Init_RTC( void )
+{
+ HAL_PWR_EnableBkUpAccess(); /**< Enable access to the RTC registers */
+
+ /**
+ * Write twice the value to flush the APB-AHB bridge
+ * This bit shall be written in the register before writing the next one
+ */
+ HAL_PWR_EnableBkUpAccess();
+
+ __HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE); /**< Select LSI as RTC Input */
+
+ __HAL_RCC_RTC_ENABLE(); /**< Enable RTC */
+
+ hrtc.Instance = RTC;
+ hrtc.Init.HourFormat = RTC_HOURFORMAT_24;
+ hrtc.Init.AsynchPrediv = CFG_RTC_ASYNCH_PRESCALER;
+ hrtc.Init.SynchPrediv = CFG_RTC_SYNCH_PRESCALER;
+ hrtc.Init.OutPut = RTC_OUTPUT_DISABLE;
+ hrtc.Init.OutPutPolarity = RTC_OUTPUT_POLARITY_HIGH;
+ hrtc.Init.OutPutType = RTC_OUTPUT_TYPE_OPENDRAIN;
+ if (HAL_RTC_Init(&hrtc) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /* Disable RTC registers write protection */
+ LL_RTC_DisableWriteProtection(RTC);
+
+ LL_RTC_WAKEUP_SetClock(RTC, CFG_RTC_WUCKSEL_DIVIDER);
+
+ /* Enable RTC registers write protection */
+ LL_RTC_EnableWriteProtection(RTC);
+
+ return;
+}
+
+void PeriphClock_Config(void)
+{
+#if (CFG_USB_INTERFACE_ENABLE != 0)
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = { 0 };
+ RCC_CRSInitTypeDef RCC_CRSInitStruct = { 0 };
+
+ /**
+ * This prevents the CPU2 to disable the HSI48 oscillator when
+ * it does not use anymore the RNG IP
+ */
+ LL_HSEM_1StepLock( HSEM, 5 );
+
+ LL_RCC_HSI48_Enable();
+
+ while(!LL_RCC_HSI48_IsReady());
+
+ /* Select HSI48 as USB clock source */
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USB;
+ PeriphClkInitStruct.UsbClockSelection = RCC_USBCLKSOURCE_HSI48;
+ HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct);
+
+ /*Configure the clock recovery system (CRS)**********************************/
+
+ /* Enable CRS Clock */
+ __HAL_RCC_CRS_CLK_ENABLE();
+
+ /* Default Synchro Signal division factor (not divided) */
+ RCC_CRSInitStruct.Prescaler = RCC_CRS_SYNC_DIV1;
+
+ /* Set the SYNCSRC[1:0] bits according to CRS_Source value */
+ RCC_CRSInitStruct.Source = RCC_CRS_SYNC_SOURCE_USB;
+
+ /* HSI48 is synchronized with USB SOF at 1KHz rate */
+ RCC_CRSInitStruct.ReloadValue = RCC_CRS_RELOADVALUE_DEFAULT;
+ RCC_CRSInitStruct.ErrorLimitValue = RCC_CRS_ERRORLIMIT_DEFAULT;
+
+ RCC_CRSInitStruct.Polarity = RCC_CRS_SYNC_POLARITY_RISING;
+
+ /* Set the TRIM[5:0] to the default value*/
+ RCC_CRSInitStruct.HSI48CalibrationValue = RCC_CRS_HSI48CALIBRATION_DEFAULT;
+
+ /* Start automatic synchronization */
+ HAL_RCCEx_CRSConfig(&RCC_CRSInitStruct);
+#endif
+
+ return;
+}
+
+static void Config_HSE(void)
+{
+ OTP_ID0_t * p_otp;
+
+ /**
+ * Read HSE_Tuning from OTP
+ */
+ p_otp = (OTP_ID0_t *) OTP_Read(0);
+ if (p_otp)
+ {
+ LL_RCC_HSE_SetCapacitorTuning(p_otp->hse_tuning);
+ }
+
+ return;
+}
+
+ /**
+ * @brief This function is executed in case of error occurrence.
+ * @retval None
+ */
+void Error_Handler(void)
+{
+ /* USER CODE BEGIN Error_Handler_Debug */
+ /* User can add his own implementation to report the HAL error return state */
+
+ /* USER CODE END Error_Handler_Debug */
+ while(1); /* ERROR */
+}
+
+void SystemClock_Config(void)
+{
+ RCC_OscInitTypeDef RCC_OscInitStruct = {0};
+ RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+
+ /** Configure LSE Drive Capability
+ */
+ __HAL_RCC_LSEDRIVE_CONFIG(RCC_LSEDRIVE_LOW);
+ /** 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_HSI|RCC_OSCILLATORTYPE_HSE
+ |RCC_OSCILLATORTYPE_LSE;
+ RCC_OscInitStruct.HSEState = RCC_HSE_ON;
+ RCC_OscInitStruct.LSEState = RCC_LSE_ON;
+ RCC_OscInitStruct.HSIState = RCC_HSI_ON;
+ RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT;
+ 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_HCLK4|RCC_CLOCKTYPE_HCLK2
+ |RCC_CLOCKTYPE_HCLK|RCC_CLOCKTYPE_SYSCLK
+ |RCC_CLOCKTYPE_PCLK1|RCC_CLOCKTYPE_PCLK2;
+ RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE;
+#if ( CFG_LPM_SUPPORTED == 1)
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV2;
+#else
+ RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
+#endif
+ RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
+ RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
+ RCC_ClkInitStruct.AHBCLK2Divider = RCC_SYSCLK_DIV1;
+ RCC_ClkInitStruct.AHBCLK4Divider = RCC_SYSCLK_DIV1;
+
+ if (HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /** Initializes the peripherals clocks
+ */
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS|RCC_PERIPHCLK_RFWAKEUP
+ |RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_USART1
+ |RCC_PERIPHCLK_LPUART1;
+ PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
+ PeriphClkInitStruct.Lpuart1ClockSelection = RCC_LPUART1CLKSOURCE_PCLK1;
+ PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
+ PeriphClkInitStruct.RFWakeUpClockSelection = RCC_RFWKPCLKSOURCE_LSE;
+ PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSE;
+ PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE1;
+
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN Smps */
+
+#if (CFG_USE_SMPS != 0)
+ /**
+ * Configure and enable SMPS
+ *
+ * The SMPS configuration is not yet supported by CubeMx
+ */
+ LL_PWR_SMPS_SetStartupCurrent(LL_PWR_SMPS_STARTUP_CURRENT_80MA);
+ LL_PWR_SMPS_SetOutputVoltageLevel(LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
+ LL_PWR_SMPS_Enable();
+#endif
+ /* USER CODE END Smps */
+}
+
+
+/*************************************************************
+ *
+ * WRAP FUNCTIONS
+ *
+ *************************************************************/
+void HAL_Delay(uint32_t Delay)
+{
+ uint32_t tickstart = HAL_GetTick();
+ uint32_t wait = Delay;
+
+ /* Add a freq to guarantee minimum wait */
+ if (wait < HAL_MAX_DELAY)
+ {
+ wait += HAL_GetTickFreq();
+ }
+
+ while ((HAL_GetTick() - tickstart) < wait)
+ {
+ /************************************************************************************
+ * ENTER SLEEP MODE
+ ***********************************************************************************/
+ LL_LPM_EnableSleep( ); /**< Clear SLEEPDEEP bit of Cortex System Control Register */
+
+ /**
+ * This option is used to ensure that store operations are completed
+ */
+ #if defined ( __CC_ARM)
+ __force_stores();
+ #endif
+
+ __WFI( );
+ }
+}
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/stm32_lpm_if.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/stm32_lpm_if.c
new file mode 100644
index 000000000..8018ad626
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/stm32_lpm_if.c
@@ -0,0 +1,349 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file stm32_lpm_if.c
+ * @author MCD Application Team
+ * @brief Low layer function to enter/exit low power modes (stop, sleep).
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32_lpm_if.h"
+#include "stm32_lpm.h"
+#include "app_conf.h"
+/* USER CODE BEGIN include */
+
+/* USER CODE END include */
+
+/* Exported variables --------------------------------------------------------*/
+const struct UTIL_LPM_Driver_s UTIL_PowerDriver =
+{
+ PWR_EnterSleepMode,
+ PWR_ExitSleepMode,
+
+ PWR_EnterStopMode,
+ PWR_ExitStopMode,
+
+ PWR_EnterOffMode,
+ PWR_ExitOffMode,
+};
+
+/* Private function prototypes -----------------------------------------------*/
+static void Switch_On_HSI( void );
+static void EnterLowPower( void );
+static void ExitLowPower( void );
+/* USER CODE BEGIN Private_Function_Prototypes */
+
+/* USER CODE END Private_Function_Prototypes */
+/* Private typedef -----------------------------------------------------------*/
+/* USER CODE BEGIN Private_Typedef */
+
+/* USER CODE END Private_Typedef */
+/* Private define ------------------------------------------------------------*/
+/* USER CODE BEGIN Private_Define */
+
+/* USER CODE END Private_Define */
+/* Private macro -------------------------------------------------------------*/
+/* USER CODE BEGIN Private_Macro */
+
+/* USER CODE END Private_Macro */
+/* Private variables ---------------------------------------------------------*/
+/* USER CODE BEGIN Private_Variables */
+
+/* USER CODE END Private_Variables */
+
+/* Functions Definition ------------------------------------------------------*/
+/**
+ * @brief Enters Low Power Off Mode
+ * @param none
+ * @retval none
+ */
+void PWR_EnterOffMode( void )
+{
+/* USER CODE BEGIN PWR_EnterOffMode_1 */
+
+/* USER CODE END PWR_EnterOffMode_1 */
+ /**
+ * The systick should be disabled for the same reason than when the device enters stop mode because
+ * at this time, the device may enter either OffMode or StopMode.
+ */
+ HAL_SuspendTick();
+
+ EnterLowPower();
+
+ /************************************************************************************
+ * ENTER OFF MODE
+ ***********************************************************************************/
+ /*
+ * There is no risk to clear all the WUF here because in the current implementation, this API is called
+ * in critical section. If an interrupt occurs while in that critical section before that point,
+ * the flag is set and will be cleared here but the system will not enter Off Mode
+ * because an interrupt is pending in the NVIC. The ISR will be executed when moving out
+ * of this critical section
+ */
+ LL_PWR_ClearFlag_WU( );
+
+ LL_PWR_SetPowerMode( LL_PWR_MODE_STANDBY );
+
+ LL_LPM_EnableDeepSleep( ); /**< Set SLEEPDEEP bit of Cortex System Control Register */
+
+ /**
+ * This option is used to ensure that store operations are completed
+ */
+#if defined ( __CC_ARM)
+ __force_stores( );
+#endif
+
+ __WFI();
+
+/* USER CODE BEGIN PWR_EnterOffMode_2 */
+
+/* USER CODE END PWR_EnterOffMode_2 */
+ return;
+}
+
+/**
+ * @brief Exits Low Power Off Mode
+ * @param none
+ * @retval none
+ */
+void PWR_ExitOffMode( void )
+{
+/* USER CODE BEGIN PWR_ExitOffMode_1 */
+
+/* USER CODE END PWR_ExitOffMode_1 */
+ HAL_ResumeTick();
+/* USER CODE BEGIN PWR_ExitOffMode_2 */
+
+/* USER CODE END PWR_ExitOffMode_2 */
+ return;
+}
+
+/**
+ * @brief Enters Low Power Stop Mode
+ * @note ARM exists the function when waking up
+ * @param none
+ * @retval none
+ */
+void PWR_EnterStopMode( void )
+{
+/* USER CODE BEGIN PWR_EnterStopMode_1 */
+
+/* USER CODE END PWR_EnterStopMode_1 */
+ /**
+ * When HAL_DBGMCU_EnableDBGStopMode() is called to keep the debugger active in Stop Mode,
+ * the systick shall be disabled otherwise the cpu may crash when moving out from stop mode
+ *
+ * When in production, the HAL_DBGMCU_EnableDBGStopMode() is not called so that the device can reach best power consumption
+ * However, the systick should be disabled anyway to avoid the case when it is about to expire at the same time the device enters
+ * stop mode ( this will abort the Stop Mode entry ).
+ */
+ HAL_SuspendTick();
+
+ /**
+ * This function is called from CRITICAL SECTION
+ */
+ EnterLowPower();
+
+ /************************************************************************************
+ * ENTER STOP MODE
+ ***********************************************************************************/
+ LL_PWR_SetPowerMode( LL_PWR_MODE_STOP2 );
+
+ LL_LPM_EnableDeepSleep( ); /**< Set SLEEPDEEP bit of Cortex System Control Register */
+
+ /**
+ * This option is used to ensure that store operations are completed
+ */
+#if defined ( __CC_ARM)
+ __force_stores( );
+#endif
+
+ __WFI();
+
+/* USER CODE BEGIN PWR_EnterStopMode_2 */
+
+/* USER CODE END PWR_EnterStopMode_2 */
+ return;
+}
+
+/**
+ * @brief Exits Low Power Stop Mode
+ * @note Enable the pll at 32MHz
+ * @param none
+ * @retval none
+ */
+void PWR_ExitStopMode( void )
+{
+/* USER CODE BEGIN PWR_ExitStopMode_1 */
+
+/* USER CODE END PWR_ExitStopMode_1 */
+ /**
+ * This function is called from CRITICAL SECTION
+ */
+ ExitLowPower();
+
+ HAL_ResumeTick();
+/* USER CODE BEGIN PWR_ExitStopMode_2 */
+
+/* USER CODE END PWR_ExitStopMode_2 */
+ return;
+}
+
+/**
+ * @brief Enters Low Power Sleep Mode
+ * @note ARM exits the function when waking up
+ * @param none
+ * @retval none
+ */
+void PWR_EnterSleepMode( void )
+{
+/* USER CODE BEGIN PWR_EnterSleepMode_1 */
+
+/* USER CODE END PWR_EnterSleepMode_1 */
+
+ HAL_SuspendTick();
+
+ /************************************************************************************
+ * ENTER SLEEP MODE
+ ***********************************************************************************/
+ LL_LPM_EnableSleep( ); /**< Clear SLEEPDEEP bit of Cortex System Control Register */
+
+ /**
+ * This option is used to ensure that store operations are completed
+ */
+#if defined ( __CC_ARM)
+ __force_stores();
+#endif
+
+ __WFI( );
+/* USER CODE BEGIN PWR_EnterSleepMode_2 */
+
+/* USER CODE END PWR_EnterSleepMode_2 */
+ return;
+}
+
+/**
+ * @brief Exits Low Power Sleep Mode
+ * @note ARM exits the function when waking up
+ * @param none
+ * @retval none
+ */
+void PWR_ExitSleepMode( void )
+{
+/* USER CODE BEGIN PWR_ExitSleepMode_1 */
+
+/* USER CODE END PWR_ExitSleepMode_1 */
+ HAL_ResumeTick();
+/* USER CODE BEGIN PWR_ExitSleepMode_2 */
+
+/* USER CODE END PWR_ExitSleepMode_2 */
+ return;
+}
+
+/*************************************************************
+ *
+ * LOCAL FUNCTIONS
+ *
+ *************************************************************/
+/**
+ * @brief Setup the system to enter either stop or off mode
+ * @param none
+ * @retval none
+ */
+static void EnterLowPower( void )
+{
+ /**
+ * This function is called from CRITICAL SECTION
+ */
+
+ while( LL_HSEM_1StepLock( HSEM, CFG_HW_RCC_SEMID ) );
+
+ if ( ! LL_HSEM_1StepLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID ) )
+ {
+ if( LL_PWR_IsActiveFlag_C2DS() || LL_PWR_IsActiveFlag_C2SB() )
+ {
+ /* Release ENTRY_STOP_MODE semaphore */
+ LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
+
+ Switch_On_HSI( );
+ }
+ }
+ else
+ {
+ Switch_On_HSI( );
+ }
+
+ /* Release RCC semaphore */
+ LL_HSEM_ReleaseLock( HSEM, CFG_HW_RCC_SEMID, 0 );
+
+ return;
+}
+
+/**
+ * @brief Restore the system to exit stop mode
+ * @param none
+ * @retval none
+ */
+static void ExitLowPower( void )
+{
+ /* Release ENTRY_STOP_MODE semaphore */
+ LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
+
+ while( LL_HSEM_1StepLock( HSEM, CFG_HW_RCC_SEMID ) );
+
+ if(LL_RCC_GetSysClkSource( ) == LL_RCC_SYS_CLKSOURCE_STATUS_HSI)
+ {
+/* Restore the clock configuration of the application in this user section */
+/* USER CODE BEGIN ExitLowPower_1 */
+ LL_RCC_HSE_Enable( );
+ __HAL_FLASH_SET_LATENCY(FLASH_LATENCY_1);
+ while(!LL_RCC_HSE_IsReady( ));
+ LL_RCC_SetSysClkSource(LL_RCC_SYS_CLKSOURCE_HSE);
+ while (LL_RCC_GetSysClkSource( ) != LL_RCC_SYS_CLKSOURCE_STATUS_HSE);
+/* USER CODE END ExitLowPower_1 */
+ }
+ else
+ {
+/* If the application is not running on HSE restore the clock configuration in this user section */
+/* USER CODE BEGIN ExitLowPower_2 */
+
+/* USER CODE END ExitLowPower_2 */
+ }
+
+ /* Release RCC semaphore */
+ LL_HSEM_ReleaseLock( HSEM, CFG_HW_RCC_SEMID, 0 );
+
+ return;
+}
+
+/**
+ * @brief Switch the system clock on HSI
+ * @param none
+ * @retval none
+ */
+static void Switch_On_HSI( void )
+{
+ LL_RCC_HSI_Enable( );
+ while(!LL_RCC_HSI_IsReady( ));
+ LL_RCC_SetSysClkSource( LL_RCC_SYS_CLKSOURCE_HSI );
+ LL_RCC_SetSMPSClockSource(LL_RCC_SMPS_CLKSOURCE_HSI);
+ while (LL_RCC_GetSysClkSource( ) != LL_RCC_SYS_CLKSOURCE_STATUS_HSI);
+ return;
+}
+
+/* USER CODE BEGIN Private_Functions */
+
+/* USER CODE END Private_Functions */
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/stm32wbxx_it.c
new file mode 100644
index 000000000..78004ebbc
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/stm32wbxx_it.c
@@ -0,0 +1,224 @@
+/**
+ ******************************************************************************
+ * @file stm32wbxx_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) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_common.h"
+#include "stm32wbxx_it.h"
+#include "appli_mesh.h"
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+extern TIM_HandleTypeDef htim1;
+extern TIM_HandleTypeDef htim2;
+aPwmLedGsData_TypeDef aPwmLedGsData = {PWM_LED_GSDATA_OFF, PWM_LED_GSDATA_OFF, PWM_LED_GSDATA_0_7};
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+/******************************************************************************/
+/* Cortex-M4 Processor Exceptions Handlers */
+/******************************************************************************/
+
+/**
+ * @brief This function handles NMI exception.
+ * @param None
+ * @retval None
+ */
+void NMI_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles Hard Fault exception.
+ * @param None
+ * @retval None
+ */
+void HardFault_Handler(void)
+{
+ aPwmLedGsData_TypeDef aPwmLedGsData;
+
+ aPwmLedGsData[PWM_LED_RED] = PWM_LED_GSDATA_7_0;
+ aPwmLedGsData[PWM_LED_GREEN] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData[PWM_LED_BLUE] = PWM_LED_GSDATA_OFF;
+ LED_On(aPwmLedGsData);
+#ifndef DISABLE_TRACES
+ printf("HARDFAULT !\r\n");
+#endif
+ /* Go to infinite loop when Hard Fault exception occurs */
+ while (1)
+ {
+ }
+}
+
+/**
+ * @brief This function handles SVCall exception.
+ * @param None
+ * @retval None
+ */
+void SVC_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles Debug Monitor exception.
+ * @param None
+ * @retval None
+ */
+void DebugMon_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles PendSVC exception.
+ * @param None
+ * @retval None
+ */
+void PendSV_Handler(void)
+{
+}
+
+/**
+ * @brief This function handles SysTick Handler.
+ * @param None
+ * @retval None
+ */
+void SysTick_Handler(void)
+{
+ HAL_IncTick();
+}
+
+/********************************************************************************/
+/* STM32WBxx Peripherals Interrupt Handlers */
+/* Add here the Interrupt Handler for the used peripheral(s), for the */
+/* available peripheral interrupt handler's name please refer to the startup */
+/* file (startup_stm32wb55xx_cm4.s). */
+/********************************************************************************/
+
+/**
+ * @brief This function handles External line
+ * interrupt request.
+ * @param None
+ * @retval None
+ */
+void PUSH_BUTTON_SW_EXTI_IRQHandler(void)
+{
+ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_12); //BUTTON_SW1_PIN
+ HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_13); //BUTTON_SW2_PIN
+}
+
+#ifdef SAVE_MODEL_STATE_POWER_FAILURE_DETECTION
+/**
+ * @brief This function handles External line
+ * interrupt request.
+ * @param None
+ * @retval None
+ */
+void POWEROFF_EXTI_IRQHandler(void)
+{
+ HAL_GPIO_EXTI_IRQHandler(POWEROFF_PIN);
+}
+#endif
+
+/**
+ * @brief This function handles TIM17 IRQ Handler.
+ * @param None
+ * @retval None
+ */
+void TIM1_TRG_COM_TIM17_IRQHandler(void)
+{
+ BSP_PWM_LED_IRQHandler();
+}
+
+#if(CFG_HW_USART1_ENABLED == 1)
+void USART1_IRQHandler(void)
+{
+ HW_UART_Interrupt_Handler(hw_uart1);
+}
+#endif
+
+#if(CFG_HW_USART1_DMA_TX_SUPPORTED == 1)
+void CFG_HW_USART1_DMA_TX_IRQHandler( void )
+{
+ HW_UART_DMA_Interrupt_Handler(hw_uart1);
+}
+#endif
+
+#if(CFG_HW_LPUART1_ENABLED == 1)
+void LPUART1_IRQHandler(void)
+{
+ HW_UART_Interrupt_Handler(hw_lpuart1);
+}
+#endif
+
+#if(CFG_HW_LPUART1_DMA_TX_SUPPORTED == 1)
+void CFG_HW_LPUART1_DMA_TX_IRQHandler( void )
+{
+ HW_UART_DMA_Interrupt_Handler(hw_lpuart1);
+}
+#endif
+
+void RTC_WKUP_IRQHandler(void)
+{
+ HW_TS_RTC_Wakeup_Handler();
+}
+
+void IPCC_C1_TX_IRQHandler(void)
+{
+ HW_IPCC_Tx_Handler();
+
+ return;
+}
+
+void IPCC_C1_RX_IRQHandler(void)
+{
+ HW_IPCC_Rx_Handler();
+ return;
+}
+
+/**
+ * @brief This function handles TIM2 global interrupt.
+ */
+void TIM2_IRQHandler(void)
+{
+ /* USER CODE BEGIN TIM2_IRQn 0 */
+
+ /* USER CODE END TIM2_IRQn 0 */
+ HAL_TIM_IRQHandler(&htim2);
+ /* USER CODE BEGIN TIM2_IRQn 1 */
+
+ /* USER CODE END TIM2_IRQn 1 */
+}
+
+/**
+ * @brief This function handles TIM1 global interrupt.
+ */
+void TIM1_CC_IRQHandler(void)
+{
+ /* USER CODE BEGIN TIM1_IRQn 0 */
+
+ /* USER CODE END TIM1_IRQn 0 */
+ HAL_TIM_IRQHandler(&htim1);
+ /* USER CODE BEGIN TIM1_IRQn 1 */
+
+ /* USER CODE END TIM1_IRQn 1 */
+}
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/system_stm32wbxx.c
new file mode 100644
index 000000000..f820e244c
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/system_stm32wbxx.c
@@ -0,0 +1,340 @@
+/**
+ ******************************************************************************
+ * @file system_stm32wbxx.c
+ * @author MCD Application Team
+ * @brief CMSIS Cortex Device Peripheral Access Layer System Source File
+ *
+ * This file provides two functions and one global variable to be called from
+ * user application:
+ * - SystemInit(): This function is called at startup just after reset and
+ * before branch to main program. This call is made inside
+ * the "startup_stm32wbxx.s" file.
+ *
+ * - SystemCoreClock variable: Contains the core clock (HCLK), it can be used
+ * by the user application to setup the SysTick
+ * timer or configure other parameters.
+ *
+ * - SystemCoreClockUpdate(): Updates the variable SystemCoreClock and must
+ * be called whenever the core clock is changed
+ * during program execution.
+ *
+ * After each device reset the MSI (4 MHz) is used as system clock source.
+ * Then SystemInit() function is called, in "startup_stm32wbxx.s" file, to
+ * configure the system clock before to branch to main program.
+ *
+ * This file configures the system clock as follows:
+ *=============================================================================
+ *-----------------------------------------------------------------------------
+ * System Clock source | MSI
+ *-----------------------------------------------------------------------------
+ * SYSCLK(Hz) | 4000000
+ *-----------------------------------------------------------------------------
+ * HCLK(Hz) | 4000000
+ *-----------------------------------------------------------------------------
+ * AHB Prescaler | 1
+ *-----------------------------------------------------------------------------
+ * APB1 Prescaler | 1
+ *-----------------------------------------------------------------------------
+ * APB2 Prescaler | 1
+ *-----------------------------------------------------------------------------
+ * PLL_M | 1
+ *-----------------------------------------------------------------------------
+ * PLL_N | 8
+ *-----------------------------------------------------------------------------
+ * PLL_P | 7
+ *-----------------------------------------------------------------------------
+ * PLL_Q | 2
+ *-----------------------------------------------------------------------------
+ * PLL_R | 2
+ *-----------------------------------------------------------------------------
+ * PLLSAI1_P | NA
+ *-----------------------------------------------------------------------------
+ * PLLSAI1_Q | NA
+ *-----------------------------------------------------------------------------
+ * PLLSAI1_R | NA
+ *-----------------------------------------------------------------------------
+ * Require 48MHz for USB OTG FS, | Disabled
+ * SDIO and RNG clock |
+ *-----------------------------------------------------------------------------
+ *=============================================================================
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/** @addtogroup CMSIS
+ * @{
+ */
+
+/** @addtogroup stm32WBxx_system
+ * @{
+ */
+
+/** @addtogroup stm32WBxx_System_Private_Includes
+ * @{
+ */
+
+#include "app_common.h"
+#include "otp.h"
+
+#if !defined (HSE_VALUE)
+ #define HSE_VALUE (32000000UL) /*!< Value of the External oscillator in Hz */
+#endif /* HSE_VALUE */
+
+#if !defined (MSI_VALUE)
+ #define MSI_VALUE (4000000UL) /*!< Value of the Internal oscillator in Hz*/
+#endif /* MSI_VALUE */
+
+#if !defined (HSI_VALUE)
+ #define HSI_VALUE (16000000UL) /*!< Value of the Internal oscillator in Hz*/
+#endif /* HSI_VALUE */
+
+#if !defined (LSI_VALUE)
+ #define LSI_VALUE (32000UL) /*!< Value of LSI in Hz*/
+#endif /* LSI_VALUE */
+
+#if !defined (LSE_VALUE)
+ #define LSE_VALUE (32768UL) /*!< Value of LSE in Hz*/
+#endif /* LSE_VALUE */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32WBxx_System_Private_TypesDefinitions
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32WBxx_System_Private_Defines
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32WBxx_System_Private_Macros
+ * @{
+ */
+
+/**
+ * @}
+ */
+
+/** @addtogroup STM32WBxx_System_Private_Variables
+ * @{
+ */
+/* The SystemCoreClock variable is updated in three ways:
+ 1) by calling CMSIS function SystemCoreClockUpdate()
+ 2) by calling HAL API function HAL_RCC_GetHCLKFreq()
+ 3) each time HAL_RCC_ClockConfig() is called to configure the system clock frequency
+ Note: If you use this function to configure the system clock; then there
+ is no need to call the 2 first functions listed above, since SystemCoreClock
+ variable is updated automatically.
+ */
+ uint32_t SystemCoreClock = 4000000UL ; /*CPU1: M4 on MSI clock after startup (4MHz)*/
+
+ const uint32_t AHBPrescTable[16UL] = {1UL, 3UL, 5UL, 1UL, 1UL, 6UL, 10UL, 32UL, 2UL, 4UL, 8UL, 16UL, 64UL, 128UL, 256UL, 512UL};
+
+ const uint32_t APBPrescTable[8UL] = {0UL, 0UL, 0UL, 0UL, 1UL, 2UL, 3UL, 4UL};
+
+ const uint32_t MSIRangeTable[16UL] = {100000UL, 200000UL, 400000UL, 800000UL, 1000000UL, 2000000UL, \
+ 4000000UL, 8000000UL, 16000000UL, 24000000UL, 32000000UL, 48000000UL, 0UL, 0UL, 0UL, 0UL}; /* 0UL values are incorrect cases */
+
+ const uint32_t SmpsPrescalerTable[4UL][6UL]={{1UL,3UL,2UL,2UL,1UL,2UL}, \
+ {2UL,6UL,4UL,3UL,2UL,4UL}, \
+ {4UL,12UL,8UL,6UL,4UL,8UL}, \
+ {4UL,12UL,8UL,6UL,4UL,8UL}};
+
+/**
+ * @}
+ */
+
+ /** @addtogroup STM32WBxx_System_Private_FunctionPrototypes
+ * @{
+ */
+
+ /**
+ * @}
+ */
+
+ /** @addtogroup STM32WBxx_System_Private_Functions
+ * @{
+ */
+
+/**
+ * @brief Setup the microcontroller system.
+ * @param None
+ * @retval None
+ */
+void SystemInit(void)
+{
+ OTP_ID0_t * p_otp;
+
+ /* FPU settings ------------------------------------------------------------*/
+#if (__FPU_PRESENT == 1) && (__FPU_USED == 1)
+ SCB->CPACR |= ((3UL << (10UL*2UL))|(3UL << (11UL*2UL))); /* set CP10 and CP11 Full Access */
+#endif
+
+ /**
+ * Read HSE_Tuning from OTP
+ */
+ p_otp = (OTP_ID0_t *) OTP_Read(0);
+ if (p_otp)
+ {
+ LL_RCC_HSE_SetCapacitorTuning(p_otp->hse_tuning);
+ }
+
+ LL_RCC_HSE_Enable();
+
+ /**
+ * Set FLASH latency to 1WS
+ */
+ LL_FLASH_SetLatency( LL_FLASH_LATENCY_1 );
+ while( LL_FLASH_GetLatency() != LL_FLASH_LATENCY_1 );
+
+ /**
+ * Switch to HSE
+ *
+ */
+ while(!LL_RCC_HSE_IsReady());
+ LL_RCC_SetSysClkSource( LL_RCC_SYS_CLKSOURCE_HSE );
+ while (LL_RCC_GetSysClkSource() != LL_RCC_SYS_CLKSOURCE_STATUS_HSE);
+
+ /**
+ * Switch OFF MSI
+ */
+ LL_RCC_MSI_Disable();
+}
+
+/**
+ * @brief Update SystemCoreClock variable according to Clock Register Values.
+ * The SystemCoreClock variable contains the core clock (HCLK), it can
+ * be used by the user application to setup the SysTick timer or configure
+ * other parameters.
+ *
+ * @note Each time the core clock (HCLK) changes, this function must be called
+ * to update SystemCoreClock variable value. Otherwise, any configuration
+ * based on this variable will be incorrect.
+ *
+ * @note - The system frequency computed by this function is not the real
+ * frequency in the chip. It is calculated based on the predefined
+ * constant and the selected clock source:
+ *
+ * - If SYSCLK source is MSI, SystemCoreClock will contain the MSI_VALUE(*)
+ *
+ * - If SYSCLK source is HSI, SystemCoreClock will contain the HSI_VALUE(**)
+ *
+ * - If SYSCLK source is HSE, SystemCoreClock will contain the HSE_VALUE(***)
+ *
+ * - If SYSCLK source is PLL, SystemCoreClock will contain the HSE_VALUE(***)
+ * or HSI_VALUE(*) or MSI_VALUE(*) multiplied/divided by the PLL factors.
+ *
+ * (*) MSI_VALUE is a constant defined in stm32wbxx_hal.h file (default value
+ * 4 MHz) but the real value may vary depending on the variations
+ * in voltage and temperature.
+ *
+ * (**) HSI_VALUE is a constant defined in stm32wbxx_hal_conf.h file (default value
+ * 16 MHz) but the real value may vary depending on the variations
+ * in voltage and temperature.
+ *
+ * (***) HSE_VALUE is a constant defined in stm32wbxx_hal_conf.h file (default value
+ * 32 MHz), user has to ensure that HSE_VALUE is same as the real
+ * frequency of the crystal used. Otherwise, this function may
+ * have wrong result.
+ *
+ * - The result of this function could be not correct when using fractional
+ * value for HSE crystal.
+ *
+ * @param None
+ * @retval None
+ */
+void SystemCoreClockUpdate(void)
+{
+ uint32_t tmp, msirange, pllvco, pllr, pllsource , pllm;
+
+ /* Get MSI Range frequency--------------------------------------------------*/
+
+ /*MSI frequency range in Hz*/
+ msirange = MSIRangeTable[(RCC->CR & RCC_CR_MSIRANGE) >> RCC_CR_MSIRANGE_Pos];
+
+ /*SystemCoreClock=HAL_RCC_GetSysClockFreq();*/
+ /* Get SYSCLK source -------------------------------------------------------*/
+ switch (RCC->CFGR & RCC_CFGR_SWS)
+ {
+ case 0x00: /* MSI used as system clock source */
+ SystemCoreClock = msirange;
+ break;
+
+ case 0x04: /* HSI used as system clock source */
+ /* HSI used as system clock source */
+ SystemCoreClock = HSI_VALUE;
+ break;
+
+ case 0x08: /* HSE used as system clock source */
+ SystemCoreClock = HSE_VALUE;
+ break;
+
+ case 0x0C: /* PLL used as system clock source */
+ /* PLL_VCO = (HSE_VALUE or HSI_VALUE or MSI_VALUE/ PLLM) * PLLN
+ SYSCLK = PLL_VCO / PLLR
+ */
+ pllsource = (RCC->PLLCFGR & RCC_PLLCFGR_PLLSRC);
+ pllm = ((RCC->PLLCFGR & RCC_PLLCFGR_PLLM) >> RCC_PLLCFGR_PLLM_Pos) + 1UL ;
+
+ if(pllsource == 0x02UL) /* HSI used as PLL clock source */
+ {
+ pllvco = (HSI_VALUE / pllm);
+ }
+ else if(pllsource == 0x03UL) /* HSE used as PLL clock source */
+ {
+ pllvco = (HSE_VALUE / pllm);
+ }
+ else /* MSI used as PLL clock source */
+ {
+ pllvco = (msirange / pllm);
+ }
+
+ pllvco = pllvco * ((RCC->PLLCFGR & RCC_PLLCFGR_PLLN) >> RCC_PLLCFGR_PLLN_Pos);
+ pllr = (((RCC->PLLCFGR & RCC_PLLCFGR_PLLR) >> RCC_PLLCFGR_PLLR_Pos) + 1UL);
+
+ SystemCoreClock = pllvco/pllr;
+ break;
+
+ default:
+ SystemCoreClock = msirange;
+ break;
+ }
+
+ /* Compute HCLK clock frequency --------------------------------------------*/
+ /* Get HCLK1 prescaler */
+ tmp = AHBPrescTable[((RCC->CFGR & RCC_CFGR_HPRE) >> RCC_CFGR_HPRE_Pos)];
+ /* HCLK clock frequency */
+ SystemCoreClock = SystemCoreClock / tmp;
+
+}
+
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api.c
new file mode 100644
index 000000000..1dc5f475f
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api.c
@@ -0,0 +1,2977 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#include "vl53l0x_api.h"
+#include "vl53l0x_tuning.h"
+#include "vl53l0x_interrupt_threshold_settings.h"
+#include "vl53l0x_api_core.h"
+#include "vl53l0x_api_calibration.h"
+#include "vl53l0x_api_strings.h"
+
+#ifndef __KERNEL__
+#include <stdlib.h>
+#endif
+#define LOG_FUNCTION_START(fmt, ...) \
+ _LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
+#define LOG_FUNCTION_END(status, ...) \
+ _LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
+#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
+ _LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
+
+#ifdef VL53L0X_LOG_ENABLE
+#define trace_print(level, ...) trace_print_module_function(TRACE_MODULE_API, \
+ level, TRACE_FUNCTION_NONE, ##__VA_ARGS__)
+#endif
+
+/* Group PAL General Functions */
+
+VL53L0X_Error VL53L0X_GetVersion(VL53L0X_Version_t *pVersion)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ pVersion->major = VL53L0X_IMPLEMENTATION_VER_MAJOR;
+ pVersion->minor = VL53L0X_IMPLEMENTATION_VER_MINOR;
+ pVersion->build = VL53L0X_IMPLEMENTATION_VER_SUB;
+
+ pVersion->revision = VL53L0X_IMPLEMENTATION_VER_REVISION;
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetPalSpecVersion(VL53L0X_Version_t *pPalSpecVersion)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ pPalSpecVersion->major = VL53L0X_SPECIFICATION_VER_MAJOR;
+ pPalSpecVersion->minor = VL53L0X_SPECIFICATION_VER_MINOR;
+ pPalSpecVersion->build = VL53L0X_SPECIFICATION_VER_SUB;
+
+ pPalSpecVersion->revision = VL53L0X_SPECIFICATION_VER_REVISION;
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetProductRevision(VL53L0X_DEV Dev,
+ uint8_t *pProductRevisionMajor, uint8_t *pProductRevisionMinor)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t revision_id;
+
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_RdByte(Dev, VL53L0X_REG_IDENTIFICATION_REVISION_ID,
+ &revision_id);
+ *pProductRevisionMajor = 1;
+ *pProductRevisionMinor = (revision_id & 0xF0) >> 4;
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+
+}
+
+VL53L0X_Error VL53L0X_GetDeviceInfo(VL53L0X_DEV Dev,
+ VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_device_info(Dev, pVL53L0X_DeviceInfo);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetDeviceErrorStatus(VL53L0X_DEV Dev,
+ VL53L0X_DeviceError *pDeviceErrorStatus)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t RangeStatus;
+
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_RdByte(Dev, VL53L0X_REG_RESULT_RANGE_STATUS,
+ &RangeStatus);
+
+ *pDeviceErrorStatus = (VL53L0X_DeviceError)((RangeStatus & 0x78) >> 3);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+
+VL53L0X_Error VL53L0X_GetDeviceErrorString(VL53L0X_DeviceError ErrorCode,
+ char *pDeviceErrorString)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_device_error_string(ErrorCode, pDeviceErrorString);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetRangeStatusString(uint8_t RangeStatus,
+ char *pRangeStatusString)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_range_status_string(RangeStatus,
+ pRangeStatusString);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetPalErrorString(VL53L0X_Error PalErrorCode,
+ char *pPalErrorString)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_pal_error_string(PalErrorCode, pPalErrorString);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetPalStateString(VL53L0X_State PalStateCode,
+ char *pPalStateString)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_pal_state_string(PalStateCode, pPalStateString);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetPalState(VL53L0X_DEV Dev, VL53L0X_State *pPalState)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ *pPalState = PALDevDataGet(Dev, PalState);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetPowerMode(VL53L0X_DEV Dev, VL53L0X_PowerModes PowerMode)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ /* Only level1 of Power mode exists */
+ if ((PowerMode != VL53L0X_POWERMODE_STANDBY_LEVEL1)
+ && (PowerMode != VL53L0X_POWERMODE_IDLE_LEVEL1)) {
+ Status = VL53L0X_ERROR_MODE_NOT_SUPPORTED;
+ } else if (PowerMode == VL53L0X_POWERMODE_STANDBY_LEVEL1) {
+ /* set the standby level1 of power mode */
+ Status = VL53L0X_WrByte(Dev, 0x80, 0x00);
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* Set PAL State to standby */
+ PALDevDataSet(Dev, PalState, VL53L0X_STATE_STANDBY);
+ PALDevDataSet(Dev, PowerMode,
+ VL53L0X_POWERMODE_STANDBY_LEVEL1);
+ }
+
+ } else {
+ /* VL53L0X_POWERMODE_IDLE_LEVEL1 */
+ Status = VL53L0X_WrByte(Dev, 0x80, 0x00);
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_StaticInit(Dev);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ PALDevDataSet(Dev, PowerMode,
+ VL53L0X_POWERMODE_IDLE_LEVEL1);
+
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetPowerMode(VL53L0X_DEV Dev, VL53L0X_PowerModes *pPowerMode)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t Byte;
+ LOG_FUNCTION_START("");
+
+ /* Only level1 of Power mode exists */
+ Status = VL53L0X_RdByte(Dev, 0x80, &Byte);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (Byte == 1) {
+ PALDevDataSet(Dev, PowerMode,
+ VL53L0X_POWERMODE_IDLE_LEVEL1);
+ } else {
+ PALDevDataSet(Dev, PowerMode,
+ VL53L0X_POWERMODE_STANDBY_LEVEL1);
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetOffsetCalibrationDataMicroMeter(VL53L0X_DEV Dev,
+ int32_t OffsetCalibrationDataMicroMeter)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_set_offset_calibration_data_micro_meter(Dev,
+ OffsetCalibrationDataMicroMeter);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetOffsetCalibrationDataMicroMeter(VL53L0X_DEV Dev,
+ int32_t *pOffsetCalibrationDataMicroMeter)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_offset_calibration_data_micro_meter(Dev,
+ pOffsetCalibrationDataMicroMeter);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetLinearityCorrectiveGain(VL53L0X_DEV Dev,
+ int16_t LinearityCorrectiveGain)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ if ((LinearityCorrectiveGain < 0) || (LinearityCorrectiveGain > 1000))
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ else {
+ PALDevDataSet(Dev, LinearityCorrectiveGain,
+ LinearityCorrectiveGain);
+
+ if (LinearityCorrectiveGain != 1000) {
+ /* Disable FW Xtalk */
+ Status = VL53L0X_WrWord(Dev,
+ VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS, 0);
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetLinearityCorrectiveGain(VL53L0X_DEV Dev,
+ uint16_t *pLinearityCorrectiveGain)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ *pLinearityCorrectiveGain = PALDevDataGet(Dev, LinearityCorrectiveGain);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetGroupParamHold(VL53L0X_DEV Dev, uint8_t GroupParamHold)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+ LOG_FUNCTION_START("");
+
+ /* not implemented on VL53L0X */
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetUpperLimitMilliMeter(VL53L0X_DEV Dev,
+ uint16_t *pUpperLimitMilliMeter)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+ LOG_FUNCTION_START("");
+
+ /* not implemented on VL53L0X */
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetTotalSignalRate(VL53L0X_DEV Dev,
+ FixPoint1616_t *pTotalSignalRate)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ VL53L0X_RangingMeasurementData_t LastRangeDataBuffer;
+
+ LOG_FUNCTION_START("");
+
+ LastRangeDataBuffer = PALDevDataGet(Dev, LastRangeMeasure);
+
+ Status = VL53L0X_get_total_signal_rate(
+ Dev, &LastRangeDataBuffer, pTotalSignalRate);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+/* End Group PAL General Functions */
+
+/* Group PAL Init Functions */
+VL53L0X_Error VL53L0X_SetDeviceAddress(VL53L0X_DEV Dev, uint8_t DeviceAddress)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS,
+ DeviceAddress / 2);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_DataInit(VL53L0X_DEV Dev)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ VL53L0X_DeviceParameters_t CurrentParameters;
+ int i;
+
+ LOG_FUNCTION_START("");
+
+ /* by default the I2C is running at 1V8 if you want to change it you
+ * need to include this define at compilation level. */
+#ifdef USE_I2C_2V8
+ Status = VL53L0X_UpdateByte(Dev,
+ VL53L0X_REG_VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV,
+ 0xFE,
+ 0x01);
+#endif
+
+ /* Set I2C standard mode */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev, 0x88, 0x00);
+
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, ReadDataFromDeviceDone, 0);
+
+#ifdef USE_IQC_STATION
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_apply_offset_adjustment(Dev);
+#endif
+
+ /* Default value is 1000 for Linearity Corrective Gain */
+ PALDevDataSet(Dev, LinearityCorrectiveGain, 1000);
+
+ /* Dmax default Parameter */
+ PALDevDataSet(Dev, DmaxCalRangeMilliMeter, 400);
+ PALDevDataSet(Dev, DmaxCalSignalRateRtnMegaCps,
+ (FixPoint1616_t)((0x00016B85))); /* 1.42 No Cover Glass*/
+
+ /* Set Default static parameters
+ *set first temporary values 9.44MHz * 65536 = 618660 */
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, OscFrequencyMHz, 618660);
+
+ /* Set Default XTalkCompensationRateMegaCps to 0 */
+ VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps, 0);
+
+ /* Get default parameters */
+ Status = VL53L0X_GetDeviceParameters(Dev, &CurrentParameters);
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* initialize PAL values */
+ CurrentParameters.DeviceMode = VL53L0X_DEVICEMODE_SINGLE_RANGING;
+ CurrentParameters.HistogramMode = VL53L0X_HISTOGRAMMODE_DISABLED;
+ PALDevDataSet(Dev, CurrentParameters, CurrentParameters);
+ }
+
+ /* Sigma estimator variable */
+ PALDevDataSet(Dev, SigmaEstRefArray, 100);
+ PALDevDataSet(Dev, SigmaEstEffPulseWidth, 900);
+ PALDevDataSet(Dev, SigmaEstEffAmbWidth, 500);
+ PALDevDataSet(Dev, targetRefRate, 0x0A00); /* 20 MCPS in 9:7 format */
+
+ /* Use internal default settings */
+ PALDevDataSet(Dev, UseInternalTuningSettings, 1);
+
+ /* Enable all check */
+ for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
+ if (Status == VL53L0X_ERROR_NONE)
+ Status |= VL53L0X_SetLimitCheckEnable(Dev, i, 1);
+ else
+ break;
+
+ }
+
+ /* Disable the following checks */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetLimitCheckEnable(Dev,
+ VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP, 0);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetLimitCheckEnable(Dev,
+ VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, 0);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetLimitCheckEnable(Dev,
+ VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC, 0);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetLimitCheckEnable(Dev,
+ VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE, 0);
+
+ /* Limit default values */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_SetLimitCheckValue(Dev,
+ VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
+ (FixPoint1616_t)(18 * 65536));
+ }
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_SetLimitCheckValue(Dev,
+ VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE,
+ (FixPoint1616_t)(25 * 65536 / 100));
+ /* 0.25 * 65536 */
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_SetLimitCheckValue(Dev,
+ VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
+ (FixPoint1616_t)(35 * 65536));
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_SetLimitCheckValue(Dev,
+ VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+ (FixPoint1616_t)(0 * 65536));
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+
+ PALDevDataSet(Dev, SequenceConfig, 0xFF);
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ 0xFF);
+
+ /* Set PAL state to tell that we are waiting for call to
+ * VL53L0X_StaticInit */
+ PALDevDataSet(Dev, PalState, VL53L0X_STATE_WAIT_STATICINIT);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE)
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, RefSpadsInitialised, 0);
+
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetTuningSettingBuffer(VL53L0X_DEV Dev,
+ uint8_t *pTuningSettingBuffer, uint8_t UseInternalTuningSettings)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ if (UseInternalTuningSettings == 1) {
+ /* Force use internal settings */
+ PALDevDataSet(Dev, UseInternalTuningSettings, 1);
+ } else {
+
+ /* check that the first byte is not 0 */
+ if (*pTuningSettingBuffer != 0) {
+ PALDevDataSet(Dev, pTuningSettingsPointer,
+ pTuningSettingBuffer);
+ PALDevDataSet(Dev, UseInternalTuningSettings, 0);
+
+ } else {
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetTuningSettingBuffer(VL53L0X_DEV Dev,
+ uint8_t **ppTuningSettingBuffer, uint8_t *pUseInternalTuningSettings)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ *ppTuningSettingBuffer = PALDevDataGet(Dev, pTuningSettingsPointer);
+ *pUseInternalTuningSettings = PALDevDataGet(Dev,
+ UseInternalTuningSettings);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_StaticInit(VL53L0X_DEV Dev)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ VL53L0X_DeviceParameters_t CurrentParameters = {0};
+ uint8_t *pTuningSettingBuffer;
+ uint16_t tempword = 0;
+ uint8_t tempbyte = 0;
+ uint8_t UseInternalTuningSettings = 0;
+ uint32_t count = 0;
+ uint8_t isApertureSpads = 0;
+ uint32_t refSpadCount = 0;
+ uint8_t ApertureSpads = 0;
+ uint8_t vcselPulsePeriodPCLK;
+ FixPoint1616_t seqTimeoutMilliSecs;
+
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_info_from_device(Dev, 1);
+
+ /* set the ref spad from NVM */
+ count = (uint32_t)VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ ReferenceSpadCount);
+ ApertureSpads = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ ReferenceSpadType);
+
+ /* NVM value invalid */
+ if ((ApertureSpads > 1) ||
+ ((ApertureSpads == 1) && (count > 32)) ||
+ ((ApertureSpads == 0) && (count > 12)))
+ Status = VL53L0X_perform_ref_spad_management(Dev, &refSpadCount,
+ &isApertureSpads);
+ else
+ Status = VL53L0X_set_reference_spads(Dev, count, ApertureSpads);
+
+
+ /* Initialize tuning settings buffer to prevent compiler warning. */
+ pTuningSettingBuffer = DefaultTuningSettings;
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ UseInternalTuningSettings = PALDevDataGet(Dev,
+ UseInternalTuningSettings);
+
+ if (UseInternalTuningSettings == 0)
+ pTuningSettingBuffer = PALDevDataGet(Dev,
+ pTuningSettingsPointer);
+ else
+ pTuningSettingBuffer = DefaultTuningSettings;
+
+ }
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_load_tuning_settings(Dev, pTuningSettingBuffer);
+
+
+ /* Set interrupt config to new sample ready */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_SetGpioConfig(Dev, 0, 0,
+ VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY,
+ VL53L0X_INTERRUPTPOLARITY_LOW);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ Status |= VL53L0X_RdWord(Dev, 0x84, &tempword);
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, OscFrequencyMHz,
+ VL53L0X_FIXPOINT412TOFIXPOINT1616(tempword));
+ }
+
+ /* After static init, some device parameters may be changed,
+ * so update them */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_GetDeviceParameters(Dev, &CurrentParameters);
+
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_GetFractionEnable(Dev, &tempbyte);
+ if (Status == VL53L0X_ERROR_NONE)
+ PALDevDataSet(Dev, RangeFractionalEnable, tempbyte);
+
+ }
+
+ if (Status == VL53L0X_ERROR_NONE)
+ PALDevDataSet(Dev, CurrentParameters, CurrentParameters);
+
+
+ /* read the sequence config and save it */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_RdByte(Dev,
+ VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, &tempbyte);
+ if (Status == VL53L0X_ERROR_NONE)
+ PALDevDataSet(Dev, SequenceConfig, tempbyte);
+
+ }
+
+ /* Disable MSRC and TCC by default */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetSequenceStepEnable(Dev,
+ VL53L0X_SEQUENCESTEP_TCC, 0);
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetSequenceStepEnable(Dev,
+ VL53L0X_SEQUENCESTEP_MSRC, 0);
+
+
+ /* Set PAL State to standby */
+ if (Status == VL53L0X_ERROR_NONE)
+ PALDevDataSet(Dev, PalState, VL53L0X_STATE_IDLE);
+
+
+
+ /* Store pre-range vcsel period */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_GetVcselPulsePeriod(
+ Dev,
+ VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+ &vcselPulsePeriodPCLK);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETDEVICESPECIFICPARAMETER(
+ Dev,
+ PreRangeVcselPulsePeriod,
+ vcselPulsePeriodPCLK);
+ }
+
+ /* Store final-range vcsel period */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_GetVcselPulsePeriod(
+ Dev,
+ VL53L0X_VCSEL_PERIOD_FINAL_RANGE,
+ &vcselPulsePeriodPCLK);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETDEVICESPECIFICPARAMETER(
+ Dev,
+ FinalRangeVcselPulsePeriod,
+ vcselPulsePeriodPCLK);
+ }
+
+ /* Store pre-range timeout */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_GetSequenceStepTimeout(
+ Dev,
+ VL53L0X_SEQUENCESTEP_PRE_RANGE,
+ &seqTimeoutMilliSecs);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETDEVICESPECIFICPARAMETER(
+ Dev,
+ PreRangeTimeoutMicroSecs,
+ seqTimeoutMilliSecs);
+ }
+
+ /* Store final-range timeout */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_GetSequenceStepTimeout(
+ Dev,
+ VL53L0X_SEQUENCESTEP_FINAL_RANGE,
+ &seqTimeoutMilliSecs);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETDEVICESPECIFICPARAMETER(
+ Dev,
+ FinalRangeTimeoutMicroSecs,
+ seqTimeoutMilliSecs);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_WaitDeviceBooted(VL53L0X_DEV Dev)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+ LOG_FUNCTION_START("");
+
+ /* not implemented on VL53L0X */
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_ResetDevice(VL53L0X_DEV Dev)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t Byte;
+ LOG_FUNCTION_START("");
+
+ /* Set reset bit */
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N,
+ 0x00);
+
+ /* Wait for some time */
+ if (Status == VL53L0X_ERROR_NONE) {
+ do {
+ Status = VL53L0X_RdByte(Dev,
+ VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Byte);
+ } while (Byte != 0x00);
+ }
+
+ /* Release reset */
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N,
+ 0x01);
+
+ /* Wait until correct boot-up of the device */
+ if (Status == VL53L0X_ERROR_NONE) {
+ do {
+ Status = VL53L0X_RdByte(Dev,
+ VL53L0X_REG_IDENTIFICATION_MODEL_ID, &Byte);
+ } while (Byte == 0x00);
+ }
+
+ /* Set PAL State to VL53L0X_STATE_POWERDOWN */
+ if (Status == VL53L0X_ERROR_NONE)
+ PALDevDataSet(Dev, PalState, VL53L0X_STATE_POWERDOWN);
+
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+/* End Group PAL Init Functions */
+
+/* Group PAL Parameters Functions */
+VL53L0X_Error VL53L0X_SetDeviceParameters(VL53L0X_DEV Dev,
+ const VL53L0X_DeviceParameters_t *pDeviceParameters)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ int i;
+ LOG_FUNCTION_START("");
+ Status = VL53L0X_SetDeviceMode(Dev, pDeviceParameters->DeviceMode);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetInterMeasurementPeriodMilliSeconds(Dev,
+ pDeviceParameters->InterMeasurementPeriodMilliSeconds);
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetXTalkCompensationRateMegaCps(Dev,
+ pDeviceParameters->XTalkCompensationRateMegaCps);
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetOffsetCalibrationDataMicroMeter(Dev,
+ pDeviceParameters->RangeOffsetMicroMeters);
+
+
+ for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
+ if (Status == VL53L0X_ERROR_NONE)
+ Status |= VL53L0X_SetLimitCheckEnable(Dev, i,
+ pDeviceParameters->LimitChecksEnable[i]);
+ else
+ break;
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status |= VL53L0X_SetLimitCheckValue(Dev, i,
+ pDeviceParameters->LimitChecksValue[i]);
+ else
+ break;
+
+ }
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetWrapAroundCheckEnable(Dev,
+ pDeviceParameters->WrapAroundCheckEnable);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
+ pDeviceParameters->MeasurementTimingBudgetMicroSeconds);
+
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetDeviceParameters(VL53L0X_DEV Dev,
+ VL53L0X_DeviceParameters_t *pDeviceParameters)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ int i;
+
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_GetDeviceMode(Dev, &(pDeviceParameters->DeviceMode));
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_GetInterMeasurementPeriodMilliSeconds(Dev,
+ &(pDeviceParameters->InterMeasurementPeriodMilliSeconds));
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ pDeviceParameters->XTalkCompensationEnable = 0;
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_GetXTalkCompensationRateMegaCps(Dev,
+ &(pDeviceParameters->XTalkCompensationRateMegaCps));
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_GetOffsetCalibrationDataMicroMeter(Dev,
+ &(pDeviceParameters->RangeOffsetMicroMeters));
+
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ for (i = 0; i < VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS; i++) {
+ /* get first the values, then the enables.
+ * VL53L0X_GetLimitCheckValue will modify the enable
+ * flags
+ */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status |= VL53L0X_GetLimitCheckValue(Dev, i,
+ &(pDeviceParameters->LimitChecksValue[i]));
+ } else {
+ break;
+ }
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status |= VL53L0X_GetLimitCheckEnable(Dev, i,
+ &(pDeviceParameters->LimitChecksEnable[i]));
+ } else {
+ break;
+ }
+ }
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_GetWrapAroundCheckEnable(Dev,
+ &(pDeviceParameters->WrapAroundCheckEnable));
+ }
+
+ /* Need to be done at the end as it uses VCSELPulsePeriod */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_GetMeasurementTimingBudgetMicroSeconds(Dev,
+ &(pDeviceParameters->MeasurementTimingBudgetMicroSeconds));
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetDeviceMode(VL53L0X_DEV Dev, VL53L0X_DeviceModes DeviceMode)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("%d", (int)DeviceMode);
+
+ switch (DeviceMode) {
+ case VL53L0X_DEVICEMODE_SINGLE_RANGING:
+ case VL53L0X_DEVICEMODE_CONTINUOUS_RANGING:
+ case VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING:
+ case VL53L0X_DEVICEMODE_GPIO_DRIVE:
+ case VL53L0X_DEVICEMODE_GPIO_OSC:
+ /* Supported modes */
+ VL53L0X_SETPARAMETERFIELD(Dev, DeviceMode, DeviceMode);
+ break;
+ default:
+ /* Unsupported mode */
+ Status = VL53L0X_ERROR_MODE_NOT_SUPPORTED;
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetDeviceMode(VL53L0X_DEV Dev,
+ VL53L0X_DeviceModes *pDeviceMode)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ VL53L0X_GETPARAMETERFIELD(Dev, DeviceMode, *pDeviceMode);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetRangeFractionEnable(VL53L0X_DEV Dev, uint8_t Enable)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("%d", (int)Enable);
+
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_RANGE_CONFIG, Enable);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ PALDevDataSet(Dev, RangeFractionalEnable, Enable);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetFractionEnable(VL53L0X_DEV Dev, uint8_t *pEnabled)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_RANGE_CONFIG, pEnabled);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ *pEnabled = (*pEnabled & 1);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetHistogramMode(VL53L0X_DEV Dev,
+ VL53L0X_HistogramModes HistogramMode)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+ LOG_FUNCTION_START("");
+
+ /* not implemented on VL53L0X */
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetHistogramMode(VL53L0X_DEV Dev,
+ VL53L0X_HistogramModes *pHistogramMode)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+ LOG_FUNCTION_START("");
+
+ /* not implemented on VL53L0X */
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetMeasurementTimingBudgetMicroSeconds(VL53L0X_DEV Dev,
+ uint32_t MeasurementTimingBudgetMicroSeconds)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_set_measurement_timing_budget_micro_seconds(Dev,
+ MeasurementTimingBudgetMicroSeconds);
+
+ LOG_FUNCTION_END(Status);
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetMeasurementTimingBudgetMicroSeconds(VL53L0X_DEV Dev,
+ uint32_t *pMeasurementTimingBudgetMicroSeconds)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_measurement_timing_budget_micro_seconds(Dev,
+ pMeasurementTimingBudgetMicroSeconds);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetVcselPulsePeriod(VL53L0X_DEV Dev,
+ VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriodPCLK)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_set_vcsel_pulse_period(Dev, VcselPeriodType,
+ VCSELPulsePeriodPCLK);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetVcselPulsePeriod(VL53L0X_DEV Dev,
+ VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriodPCLK)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_vcsel_pulse_period(Dev, VcselPeriodType,
+ pVCSELPulsePeriodPCLK);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetSequenceStepEnable(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceStepEnabled)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t SequenceConfig = 0;
+ uint8_t SequenceConfigNew = 0;
+ uint32_t MeasurementTimingBudgetMicroSeconds;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ &SequenceConfig);
+
+ SequenceConfigNew = SequenceConfig;
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (SequenceStepEnabled == 1) {
+
+ /* Enable requested sequence step
+ */
+ switch (SequenceStepId) {
+ case VL53L0X_SEQUENCESTEP_TCC:
+ SequenceConfigNew |= 0x10;
+ break;
+ case VL53L0X_SEQUENCESTEP_DSS:
+ SequenceConfigNew |= 0x28;
+ break;
+ case VL53L0X_SEQUENCESTEP_MSRC:
+ SequenceConfigNew |= 0x04;
+ break;
+ case VL53L0X_SEQUENCESTEP_PRE_RANGE:
+ SequenceConfigNew |= 0x40;
+ break;
+ case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
+ SequenceConfigNew |= 0x80;
+ break;
+ default:
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+ } else {
+ /* Disable requested sequence step
+ */
+ switch (SequenceStepId) {
+ case VL53L0X_SEQUENCESTEP_TCC:
+ SequenceConfigNew &= 0xef;
+ break;
+ case VL53L0X_SEQUENCESTEP_DSS:
+ SequenceConfigNew &= 0xd7;
+ break;
+ case VL53L0X_SEQUENCESTEP_MSRC:
+ SequenceConfigNew &= 0xfb;
+ break;
+ case VL53L0X_SEQUENCESTEP_PRE_RANGE:
+ SequenceConfigNew &= 0xbf;
+ break;
+ case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
+ SequenceConfigNew &= 0x7f;
+ break;
+ default:
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+ }
+ }
+
+ if (SequenceConfigNew != SequenceConfig) {
+ /* Apply New Setting */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, SequenceConfigNew);
+ }
+ if (Status == VL53L0X_ERROR_NONE)
+ PALDevDataSet(Dev, SequenceConfig, SequenceConfigNew);
+
+
+ /* Recalculate timing budget */
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_GETPARAMETERFIELD(Dev,
+ MeasurementTimingBudgetMicroSeconds,
+ MeasurementTimingBudgetMicroSeconds);
+
+ VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
+ MeasurementTimingBudgetMicroSeconds);
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+
+ return Status;
+}
+
+VL53L0X_Error sequence_step_enabled(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceConfig,
+ uint8_t *pSequenceStepEnabled)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ *pSequenceStepEnabled = 0;
+ LOG_FUNCTION_START("");
+
+ switch (SequenceStepId) {
+ case VL53L0X_SEQUENCESTEP_TCC:
+ *pSequenceStepEnabled = (SequenceConfig & 0x10) >> 4;
+ break;
+ case VL53L0X_SEQUENCESTEP_DSS:
+ *pSequenceStepEnabled = (SequenceConfig & 0x08) >> 3;
+ break;
+ case VL53L0X_SEQUENCESTEP_MSRC:
+ *pSequenceStepEnabled = (SequenceConfig & 0x04) >> 2;
+ break;
+ case VL53L0X_SEQUENCESTEP_PRE_RANGE:
+ *pSequenceStepEnabled = (SequenceConfig & 0x40) >> 6;
+ break;
+ case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
+ *pSequenceStepEnabled = (SequenceConfig & 0x80) >> 7;
+ break;
+ default:
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSequenceStepEnable(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId, uint8_t *pSequenceStepEnabled)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t SequenceConfig = 0;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ &SequenceConfig);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = sequence_step_enabled(Dev, SequenceStepId,
+ SequenceConfig, pSequenceStepEnabled);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSequenceStepEnables(VL53L0X_DEV Dev,
+ VL53L0X_SchedulerSequenceSteps_t *pSchedulerSequenceSteps)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t SequenceConfig = 0;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ &SequenceConfig);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = sequence_step_enabled(Dev,
+ VL53L0X_SEQUENCESTEP_TCC, SequenceConfig,
+ &pSchedulerSequenceSteps->TccOn);
+ }
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = sequence_step_enabled(Dev,
+ VL53L0X_SEQUENCESTEP_DSS, SequenceConfig,
+ &pSchedulerSequenceSteps->DssOn);
+ }
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = sequence_step_enabled(Dev,
+ VL53L0X_SEQUENCESTEP_MSRC, SequenceConfig,
+ &pSchedulerSequenceSteps->MsrcOn);
+ }
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = sequence_step_enabled(Dev,
+ VL53L0X_SEQUENCESTEP_PRE_RANGE, SequenceConfig,
+ &pSchedulerSequenceSteps->PreRangeOn);
+ }
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = sequence_step_enabled(Dev,
+ VL53L0X_SEQUENCESTEP_FINAL_RANGE, SequenceConfig,
+ &pSchedulerSequenceSteps->FinalRangeOn);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetNumberOfSequenceSteps(VL53L0X_DEV Dev,
+ uint8_t *pNumberOfSequenceSteps)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ *pNumberOfSequenceSteps = VL53L0X_SEQUENCESTEP_NUMBER_OF_CHECKS;
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSequenceStepsInfo(VL53L0X_SequenceStepId SequenceStepId,
+ char *pSequenceStepsString)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_sequence_steps_info(
+ SequenceStepId,
+ pSequenceStepsString);
+
+ LOG_FUNCTION_END(Status);
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetSequenceStepTimeout(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId, FixPoint1616_t TimeOutMilliSecs)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ VL53L0X_Error Status1 = VL53L0X_ERROR_NONE;
+ uint32_t TimeoutMicroSeconds = ((TimeOutMilliSecs * 1000) + 0x8000)
+ >> 16;
+ uint32_t MeasurementTimingBudgetMicroSeconds;
+ FixPoint1616_t OldTimeOutMicroSeconds;
+
+ LOG_FUNCTION_START("");
+
+ /* Read back the current value in case we need to revert back to this.
+ */
+ Status = get_sequence_step_timeout(Dev, SequenceStepId,
+ &OldTimeOutMicroSeconds);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = set_sequence_step_timeout(Dev, SequenceStepId,
+ TimeoutMicroSeconds);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_GETPARAMETERFIELD(Dev,
+ MeasurementTimingBudgetMicroSeconds,
+ MeasurementTimingBudgetMicroSeconds);
+
+ /* At this point we don't know if the requested value is valid,
+ therefore proceed to update the entire timing budget and
+ if this fails, revert back to the previous value.
+ */
+ Status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
+ MeasurementTimingBudgetMicroSeconds);
+
+ if (Status != VL53L0X_ERROR_NONE) {
+ Status1 = set_sequence_step_timeout(Dev, SequenceStepId,
+ OldTimeOutMicroSeconds);
+
+ if (Status1 == VL53L0X_ERROR_NONE) {
+ Status1 =
+ VL53L0X_SetMeasurementTimingBudgetMicroSeconds(
+ Dev,
+ MeasurementTimingBudgetMicroSeconds);
+ }
+
+ Status = Status1;
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSequenceStepTimeout(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId, FixPoint1616_t *pTimeOutMilliSecs)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint32_t TimeoutMicroSeconds;
+ uint32_t WholeNumber_ms = 0;
+ uint32_t Fraction_ms = 0;
+ LOG_FUNCTION_START("");
+
+ Status = get_sequence_step_timeout(Dev, SequenceStepId,
+ &TimeoutMicroSeconds);
+ if (Status == VL53L0X_ERROR_NONE) {
+ WholeNumber_ms = TimeoutMicroSeconds / 1000;
+ Fraction_ms = TimeoutMicroSeconds - (WholeNumber_ms * 1000);
+ *pTimeOutMilliSecs = (WholeNumber_ms << 16)
+ + (((Fraction_ms * 0xffff) + 500) / 1000);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetInterMeasurementPeriodMilliSeconds(VL53L0X_DEV Dev,
+ uint32_t InterMeasurementPeriodMilliSeconds)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint16_t osc_calibrate_val;
+ uint32_t IMPeriodMilliSeconds;
+
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_RdWord(Dev, VL53L0X_REG_OSC_CALIBRATE_VAL,
+ &osc_calibrate_val);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (osc_calibrate_val != 0) {
+ IMPeriodMilliSeconds =
+ InterMeasurementPeriodMilliSeconds
+ * osc_calibrate_val;
+ } else {
+ IMPeriodMilliSeconds =
+ InterMeasurementPeriodMilliSeconds;
+ }
+ Status = VL53L0X_WrDWord(Dev,
+ VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD,
+ IMPeriodMilliSeconds);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETPARAMETERFIELD(Dev,
+ InterMeasurementPeriodMilliSeconds,
+ InterMeasurementPeriodMilliSeconds);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetInterMeasurementPeriodMilliSeconds(VL53L0X_DEV Dev,
+ uint32_t *pInterMeasurementPeriodMilliSeconds)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint16_t osc_calibrate_val;
+ uint32_t IMPeriodMilliSeconds;
+
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_RdWord(Dev, VL53L0X_REG_OSC_CALIBRATE_VAL,
+ &osc_calibrate_val);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_RdDWord(Dev,
+ VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD,
+ &IMPeriodMilliSeconds);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (osc_calibrate_val != 0) {
+ *pInterMeasurementPeriodMilliSeconds =
+ IMPeriodMilliSeconds / osc_calibrate_val;
+ }
+ VL53L0X_SETPARAMETERFIELD(Dev,
+ InterMeasurementPeriodMilliSeconds,
+ *pInterMeasurementPeriodMilliSeconds);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetXTalkCompensationEnable(VL53L0X_DEV Dev,
+ uint8_t XTalkCompensationEnable)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ FixPoint1616_t TempFix1616;
+ uint16_t LinearityCorrectiveGain;
+
+ LOG_FUNCTION_START("");
+
+ LinearityCorrectiveGain = PALDevDataGet(Dev, LinearityCorrectiveGain);
+
+ if ((XTalkCompensationEnable == 0)
+ || (LinearityCorrectiveGain != 1000)) {
+ TempFix1616 = 0;
+ } else {
+ VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps,
+ TempFix1616);
+ }
+
+ /* the following register has a format 3.13 */
+ Status = VL53L0X_WrWord(Dev,
+ VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS,
+ VL53L0X_FIXPOINT1616TOFIXPOINT313(TempFix1616));
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (XTalkCompensationEnable == 0) {
+ VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+ 0);
+ } else {
+ VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+ 1);
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetXTalkCompensationEnable(VL53L0X_DEV Dev,
+ uint8_t *pXTalkCompensationEnable)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t Temp8;
+ LOG_FUNCTION_START("");
+
+ VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationEnable, Temp8);
+ *pXTalkCompensationEnable = Temp8;
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
+ FixPoint1616_t XTalkCompensationRateMegaCps)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t Temp8;
+ uint16_t LinearityCorrectiveGain;
+ uint16_t data;
+ LOG_FUNCTION_START("");
+
+ VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationEnable, Temp8);
+ LinearityCorrectiveGain = PALDevDataGet(Dev, LinearityCorrectiveGain);
+
+ if (Temp8 == 0) { /* disabled write only internal value */
+ VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps,
+ XTalkCompensationRateMegaCps);
+ } else {
+ /* the following register has a format 3.13 */
+ if (LinearityCorrectiveGain == 1000) {
+ data = VL53L0X_FIXPOINT1616TOFIXPOINT313(
+ XTalkCompensationRateMegaCps);
+ } else {
+ data = 0;
+ }
+
+ Status = VL53L0X_WrWord(Dev,
+ VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS, data);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETPARAMETERFIELD(Dev,
+ XTalkCompensationRateMegaCps,
+ XTalkCompensationRateMegaCps);
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
+ FixPoint1616_t *pXTalkCompensationRateMegaCps)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint16_t Value;
+ FixPoint1616_t TempFix1616;
+
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_RdWord(Dev,
+ VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS, (uint16_t *)&Value);
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (Value == 0) {
+ /* the Xtalk is disabled return value from memory */
+ VL53L0X_GETPARAMETERFIELD(Dev,
+ XTalkCompensationRateMegaCps, TempFix1616);
+ *pXTalkCompensationRateMegaCps = TempFix1616;
+ VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+ 0);
+ } else {
+ TempFix1616 = VL53L0X_FIXPOINT313TOFIXPOINT1616(Value);
+ *pXTalkCompensationRateMegaCps = TempFix1616;
+ VL53L0X_SETPARAMETERFIELD(Dev,
+ XTalkCompensationRateMegaCps, TempFix1616);
+ VL53L0X_SETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+ 1);
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetRefCalibration(VL53L0X_DEV Dev, uint8_t VhvSettings,
+ uint8_t PhaseCal)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_set_ref_calibration(Dev, VhvSettings, PhaseCal);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetRefCalibration(VL53L0X_DEV Dev, uint8_t *pVhvSettings,
+ uint8_t *pPhaseCal)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_ref_calibration(Dev, pVhvSettings, pPhaseCal);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+/*
+ * CHECK LIMIT FUNCTIONS
+ */
+
+VL53L0X_Error VL53L0X_GetNumberOfLimitCheck(uint16_t *pNumberOfLimitCheck)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ *pNumberOfLimitCheck = VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS;
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetLimitCheckInfo(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+ char *pLimitCheckString)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_limit_check_info(Dev, LimitCheckId,
+ pLimitCheckString);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetLimitCheckStatus(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+ uint8_t *pLimitCheckStatus)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t Temp8;
+
+ LOG_FUNCTION_START("");
+
+ if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ } else {
+
+ VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+ LimitCheckId, Temp8);
+
+ *pLimitCheckStatus = Temp8;
+
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetLimitCheckEnable(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+ uint8_t LimitCheckEnable)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ FixPoint1616_t TempFix1616 = 0;
+ uint8_t LimitCheckEnableInt = 0;
+ uint8_t LimitCheckDisable = 0;
+ uint8_t Temp8;
+
+ LOG_FUNCTION_START("");
+
+ if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ } else {
+ if (LimitCheckEnable == 0) {
+ TempFix1616 = 0;
+ LimitCheckEnableInt = 0;
+ LimitCheckDisable = 1;
+
+ } else {
+ VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ LimitCheckId, TempFix1616);
+ LimitCheckDisable = 0;
+ /* this to be sure to have either 0 or 1 */
+ LimitCheckEnableInt = 1;
+ }
+
+ switch (LimitCheckId) {
+
+ case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
+ /* internal computation: */
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+ VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
+ LimitCheckEnableInt);
+
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
+
+ Status = VL53L0X_WrWord(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT,
+ VL53L0X_FIXPOINT1616TOFIXPOINT97(TempFix1616));
+
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
+
+ /* internal computation: */
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+ VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
+ LimitCheckEnableInt);
+
+ break;
+
+ case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
+
+ /* internal computation: */
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+ VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+ LimitCheckEnableInt);
+
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
+
+ Temp8 = (uint8_t)(LimitCheckDisable << 1);
+ Status = VL53L0X_UpdateByte(Dev,
+ VL53L0X_REG_MSRC_CONFIG_CONTROL,
+ 0xFE, Temp8);
+
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
+
+ Temp8 = (uint8_t)(LimitCheckDisable << 4);
+ Status = VL53L0X_UpdateByte(Dev,
+ VL53L0X_REG_MSRC_CONFIG_CONTROL,
+ 0xEF, Temp8);
+
+ break;
+
+
+ default:
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+ }
+
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (LimitCheckEnable == 0) {
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+ LimitCheckId, 0);
+ } else {
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+ LimitCheckId, 1);
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetLimitCheckEnable(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+ uint8_t *pLimitCheckEnable)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t Temp8;
+
+ LOG_FUNCTION_START("");
+
+ if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ *pLimitCheckEnable = 0;
+ } else {
+ VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksEnable,
+ LimitCheckId, Temp8);
+ *pLimitCheckEnable = Temp8;
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetLimitCheckValue(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+ FixPoint1616_t LimitCheckValue)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t Temp8;
+
+ LOG_FUNCTION_START("");
+
+ VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksEnable, LimitCheckId,
+ Temp8);
+
+ if (Temp8 == 0) { /* disabled write only internal value */
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ LimitCheckId, LimitCheckValue);
+ } else {
+
+ switch (LimitCheckId) {
+
+ case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
+ /* internal computation: */
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
+ LimitCheckValue);
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
+
+ Status = VL53L0X_WrWord(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT,
+ VL53L0X_FIXPOINT1616TOFIXPOINT97(
+ LimitCheckValue));
+
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
+
+ /* internal computation: */
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
+ LimitCheckValue);
+
+ break;
+
+ case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
+
+ /* internal computation: */
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+ LimitCheckValue);
+
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
+
+ Status = VL53L0X_WrWord(Dev,
+ VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT,
+ VL53L0X_FIXPOINT1616TOFIXPOINT97(
+ LimitCheckValue));
+
+ break;
+
+ default:
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ LimitCheckId, LimitCheckValue);
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetLimitCheckValue(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+ FixPoint1616_t *pLimitCheckValue)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t EnableZeroValue = 0;
+ uint16_t Temp16;
+ FixPoint1616_t TempFix1616;
+
+ LOG_FUNCTION_START("");
+
+ switch (LimitCheckId) {
+
+ case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
+ /* internal computation: */
+ VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, TempFix1616);
+ EnableZeroValue = 0;
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
+ Status = VL53L0X_RdWord(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT,
+ &Temp16);
+ if (Status == VL53L0X_ERROR_NONE)
+ TempFix1616 = VL53L0X_FIXPOINT97TOFIXPOINT1616(Temp16);
+
+
+ EnableZeroValue = 1;
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
+ /* internal computation: */
+ VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP, TempFix1616);
+ EnableZeroValue = 0;
+ break;
+
+ case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
+ /* internal computation: */
+ VL53L0X_GETARRAYPARAMETERFIELD(Dev, LimitChecksValue,
+ VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, TempFix1616);
+ EnableZeroValue = 0;
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
+ Status = VL53L0X_RdWord(Dev,
+ VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT,
+ &Temp16);
+ if (Status == VL53L0X_ERROR_NONE)
+ TempFix1616 = VL53L0X_FIXPOINT97TOFIXPOINT1616(Temp16);
+
+
+ EnableZeroValue = 0;
+ break;
+
+ default:
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+
+ if (EnableZeroValue == 1) {
+
+ if (TempFix1616 == 0) {
+ /* disabled: return value from memory */
+ VL53L0X_GETARRAYPARAMETERFIELD(Dev,
+ LimitChecksValue, LimitCheckId,
+ TempFix1616);
+ *pLimitCheckValue = TempFix1616;
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev,
+ LimitChecksEnable, LimitCheckId, 0);
+ } else {
+ *pLimitCheckValue = TempFix1616;
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev,
+ LimitChecksValue, LimitCheckId,
+ TempFix1616);
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev,
+ LimitChecksEnable, LimitCheckId, 1);
+ }
+ } else {
+ *pLimitCheckValue = TempFix1616;
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+
+}
+
+VL53L0X_Error VL53L0X_GetLimitCheckCurrent(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+ FixPoint1616_t *pLimitCheckCurrent)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ VL53L0X_RangingMeasurementData_t LastRangeDataBuffer;
+
+ LOG_FUNCTION_START("");
+
+ if (LimitCheckId >= VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS) {
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ } else {
+ switch (LimitCheckId) {
+ case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
+ /* Need to run a ranging to have the latest values */
+ *pLimitCheckCurrent = PALDevDataGet(Dev, SigmaEstimate);
+
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
+ /* Need to run a ranging to have the latest values */
+ LastRangeDataBuffer = PALDevDataGet(Dev,
+ LastRangeMeasure);
+ *pLimitCheckCurrent =
+ LastRangeDataBuffer.SignalRateRtnMegaCps;
+
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
+ /* Need to run a ranging to have the latest values */
+ *pLimitCheckCurrent = PALDevDataGet(Dev,
+ LastSignalRefMcps);
+
+ break;
+
+ case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
+ /* Need to run a ranging to have the latest values */
+ LastRangeDataBuffer = PALDevDataGet(Dev,
+ LastRangeMeasure);
+ *pLimitCheckCurrent =
+ LastRangeDataBuffer.SignalRateRtnMegaCps;
+
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
+ /* Need to run a ranging to have the latest values */
+ LastRangeDataBuffer = PALDevDataGet(Dev,
+ LastRangeMeasure);
+ *pLimitCheckCurrent =
+ LastRangeDataBuffer.SignalRateRtnMegaCps;
+
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
+ /* Need to run a ranging to have the latest values */
+ LastRangeDataBuffer = PALDevDataGet(Dev,
+ LastRangeMeasure);
+ *pLimitCheckCurrent =
+ LastRangeDataBuffer.SignalRateRtnMegaCps;
+
+ break;
+
+ default:
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+
+}
+
+/*
+ * WRAPAROUND Check
+ */
+VL53L0X_Error VL53L0X_SetWrapAroundCheckEnable(VL53L0X_DEV Dev,
+ uint8_t WrapAroundCheckEnable)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t Byte;
+ uint8_t WrapAroundCheckEnableInt;
+
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, &Byte);
+ if (WrapAroundCheckEnable == 0) {
+ /* Disable wraparound */
+ Byte = Byte & 0x7F;
+ WrapAroundCheckEnableInt = 0;
+ } else {
+ /*Enable wraparound */
+ Byte = Byte | 0x80;
+ WrapAroundCheckEnableInt = 1;
+ }
+
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, Byte);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ PALDevDataSet(Dev, SequenceConfig, Byte);
+ VL53L0X_SETPARAMETERFIELD(Dev, WrapAroundCheckEnable,
+ WrapAroundCheckEnableInt);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetWrapAroundCheckEnable(VL53L0X_DEV Dev,
+ uint8_t *pWrapAroundCheckEnable)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t data;
+
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_RdByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, &data);
+ if (Status == VL53L0X_ERROR_NONE) {
+ PALDevDataSet(Dev, SequenceConfig, data);
+ if (data & (0x01 << 7))
+ *pWrapAroundCheckEnable = 0x01;
+ else
+ *pWrapAroundCheckEnable = 0x00;
+ }
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETPARAMETERFIELD(Dev, WrapAroundCheckEnable,
+ *pWrapAroundCheckEnable);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetDmaxCalParameters(VL53L0X_DEV Dev,
+ uint16_t RangeMilliMeter, FixPoint1616_t SignalRateRtnMegaCps)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ FixPoint1616_t SignalRateRtnMegaCpsTemp = 0;
+
+ LOG_FUNCTION_START("");
+
+ /* Check if one of input parameter is zero, in that case the
+ * value are get from NVM */
+ if ((RangeMilliMeter == 0) || (SignalRateRtnMegaCps == 0)) {
+ /* NVM parameters */
+ /* Run VL53L0X_get_info_from_device wit option 4 to get
+ * signal rate at 400 mm if the value have been already
+ * get this function will return with no access to device */
+ VL53L0X_get_info_from_device(Dev, 4);
+
+ SignalRateRtnMegaCpsTemp = VL53L0X_GETDEVICESPECIFICPARAMETER(
+ Dev, SignalRateMeasFixed400mm);
+
+ PALDevDataSet(Dev, DmaxCalRangeMilliMeter, 400);
+ PALDevDataSet(Dev, DmaxCalSignalRateRtnMegaCps,
+ SignalRateRtnMegaCpsTemp);
+ } else {
+ /* User parameters */
+ PALDevDataSet(Dev, DmaxCalRangeMilliMeter, RangeMilliMeter);
+ PALDevDataSet(Dev, DmaxCalSignalRateRtnMegaCps,
+ SignalRateRtnMegaCps);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetDmaxCalParameters(VL53L0X_DEV Dev,
+ uint16_t *pRangeMilliMeter, FixPoint1616_t *pSignalRateRtnMegaCps)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ *pRangeMilliMeter = PALDevDataGet(Dev, DmaxCalRangeMilliMeter);
+ *pSignalRateRtnMegaCps = PALDevDataGet(Dev,
+ DmaxCalSignalRateRtnMegaCps);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+/* End Group PAL Parameters Functions */
+
+/* Group PAL Measurement Functions */
+VL53L0X_Error VL53L0X_PerformSingleMeasurement(VL53L0X_DEV Dev)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ VL53L0X_DeviceModes DeviceMode;
+
+ LOG_FUNCTION_START("");
+
+ /* Get Current DeviceMode */
+ Status = VL53L0X_GetDeviceMode(Dev, &DeviceMode);
+
+ /* Start immediately to run a single ranging measurement in case of
+ * single ranging or single histogram */
+ if (Status == VL53L0X_ERROR_NONE
+ && DeviceMode == VL53L0X_DEVICEMODE_SINGLE_RANGING)
+ Status = VL53L0X_StartMeasurement(Dev);
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_measurement_poll_for_completion(Dev);
+
+
+ /* Change PAL State in case of single ranging or single histogram */
+ if (Status == VL53L0X_ERROR_NONE
+ && DeviceMode == VL53L0X_DEVICEMODE_SINGLE_RANGING)
+ PALDevDataSet(Dev, PalState, VL53L0X_STATE_IDLE);
+
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformSingleHistogramMeasurement(VL53L0X_DEV Dev,
+ VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+ LOG_FUNCTION_START("");
+
+ /* not implemented on VL53L0X */
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformRefCalibration(VL53L0X_DEV Dev, uint8_t *pVhvSettings,
+ uint8_t *pPhaseCal)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_perform_ref_calibration(Dev, pVhvSettings,
+ pPhaseCal, 1);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformXTalkMeasurement(VL53L0X_DEV Dev,
+ uint32_t TimeoutMs, FixPoint1616_t *pXtalkPerSpad,
+ uint8_t *pAmbientTooHigh)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+ LOG_FUNCTION_START("");
+
+ /* not implemented on VL53L0X */
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformXTalkCalibration(VL53L0X_DEV Dev,
+ FixPoint1616_t XTalkCalDistance,
+ FixPoint1616_t *pXTalkCompensationRateMegaCps)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_perform_xtalk_calibration(Dev, XTalkCalDistance,
+ pXTalkCompensationRateMegaCps);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformOffsetCalibration(VL53L0X_DEV Dev,
+ FixPoint1616_t CalDistanceMilliMeter, int32_t *pOffsetMicroMeter)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_perform_offset_calibration(Dev, CalDistanceMilliMeter,
+ pOffsetMicroMeter);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_CheckAndLoadInterruptSettings(VL53L0X_DEV Dev,
+ uint8_t StartNotStopFlag)
+{
+ uint8_t InterruptConfig;
+ FixPoint1616_t ThresholdLow;
+ FixPoint1616_t ThresholdHigh;
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ InterruptConfig = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ Pin0GpioFunctionality);
+
+ if ((InterruptConfig ==
+ VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW) ||
+ (InterruptConfig ==
+ VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH) ||
+ (InterruptConfig ==
+ VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT)) {
+
+ Status = VL53L0X_GetInterruptThresholds(Dev,
+ VL53L0X_DEVICEMODE_CONTINUOUS_RANGING,
+ &ThresholdLow, &ThresholdHigh);
+
+ if (((ThresholdLow > 255*65536) ||
+ (ThresholdHigh > 255*65536)) &&
+ (Status == VL53L0X_ERROR_NONE)) {
+
+ if (StartNotStopFlag != 0) {
+ Status = VL53L0X_load_tuning_settings(Dev,
+ InterruptThresholdSettings);
+ } else {
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x04);
+ Status |= VL53L0X_WrByte(Dev, 0x70, 0x00);
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ Status |= VL53L0X_WrByte(Dev, 0x80, 0x00);
+ }
+
+ }
+
+
+ }
+
+ return Status;
+
+}
+
+
+VL53L0X_Error VL53L0X_StartMeasurement(VL53L0X_DEV Dev)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ VL53L0X_DeviceModes DeviceMode;
+ uint8_t Byte;
+ uint8_t StartStopByte = VL53L0X_REG_SYSRANGE_MODE_START_STOP;
+ uint32_t LoopNb;
+ LOG_FUNCTION_START("");
+
+ /* Get Current DeviceMode */
+ VL53L0X_GetDeviceMode(Dev, &DeviceMode);
+
+ switch (DeviceMode) {
+ case VL53L0X_DEVICEMODE_SINGLE_RANGING:
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START, 0x01);
+
+ Byte = StartStopByte;
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* Wait until start bit has been cleared */
+ LoopNb = 0;
+ do {
+ if (LoopNb > 0)
+ Status = VL53L0X_RdByte(Dev,
+ VL53L0X_REG_SYSRANGE_START, &Byte);
+ LoopNb = LoopNb + 1;
+ } while (((Byte & StartStopByte) == StartStopByte)
+ && (Status == VL53L0X_ERROR_NONE)
+ && (LoopNb < VL53L0X_DEFAULT_MAX_LOOP));
+
+ if (LoopNb >= VL53L0X_DEFAULT_MAX_LOOP)
+ Status = VL53L0X_ERROR_TIME_OUT;
+
+ }
+
+ break;
+ case VL53L0X_DEVICEMODE_CONTINUOUS_RANGING:
+ /* Back-to-back mode */
+
+ /* Check if need to apply interrupt settings */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_CheckAndLoadInterruptSettings(Dev, 1);
+
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_SYSRANGE_START,
+ VL53L0X_REG_SYSRANGE_MODE_BACKTOBACK);
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* Set PAL State to Running */
+ PALDevDataSet(Dev, PalState, VL53L0X_STATE_RUNNING);
+ }
+ break;
+ case VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING:
+ /* Continuous mode */
+ /* Check if need to apply interrupt settings */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_CheckAndLoadInterruptSettings(Dev, 1);
+
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_SYSRANGE_START,
+ VL53L0X_REG_SYSRANGE_MODE_TIMED);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* Set PAL State to Running */
+ PALDevDataSet(Dev, PalState, VL53L0X_STATE_RUNNING);
+ }
+ break;
+ default:
+ /* Selected mode not supported */
+ Status = VL53L0X_ERROR_MODE_NOT_SUPPORTED;
+ }
+
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_StopMeasurement(VL53L0X_DEV Dev)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START, 0x00);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* Set PAL State to Idle */
+ PALDevDataSet(Dev, PalState, VL53L0X_STATE_IDLE);
+ }
+
+ /* Check if need to apply interrupt settings */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_CheckAndLoadInterruptSettings(Dev, 0);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetMeasurementDataReady(VL53L0X_DEV Dev,
+ uint8_t *pMeasurementDataReady)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t SysRangeStatusRegister;
+ uint8_t InterruptConfig;
+ uint32_t InterruptMask;
+ LOG_FUNCTION_START("");
+
+ InterruptConfig = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ Pin0GpioFunctionality);
+
+ if (InterruptConfig ==
+ VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY) {
+ Status = VL53L0X_GetInterruptMaskStatus(Dev, &InterruptMask);
+ if (InterruptMask ==
+ VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY)
+ *pMeasurementDataReady = 1;
+ else
+ *pMeasurementDataReady = 0;
+ } else {
+ Status = VL53L0X_RdByte(Dev, VL53L0X_REG_RESULT_RANGE_STATUS,
+ &SysRangeStatusRegister);
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (SysRangeStatusRegister & 0x01)
+ *pMeasurementDataReady = 1;
+ else
+ *pMeasurementDataReady = 0;
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_WaitDeviceReadyForNewMeasurement(VL53L0X_DEV Dev,
+ uint32_t MaxLoop)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+ LOG_FUNCTION_START("");
+
+ /* not implemented for VL53L0X */
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+
+VL53L0X_Error VL53L0X_GetRangingMeasurementData(VL53L0X_DEV Dev,
+ VL53L0X_RangingMeasurementData_t *pRangingMeasurementData)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t DeviceRangeStatus;
+ uint8_t RangeFractionalEnable;
+ uint8_t PalRangeStatus;
+ uint8_t XTalkCompensationEnable;
+ uint16_t AmbientRate;
+ FixPoint1616_t SignalRate;
+ uint16_t XTalkCompensationRateMegaCps;
+ uint16_t EffectiveSpadRtnCount;
+ uint16_t tmpuint16;
+ uint16_t XtalkRangeMilliMeter;
+ uint16_t LinearityCorrectiveGain;
+ uint8_t localBuffer[12];
+ VL53L0X_RangingMeasurementData_t LastRangeDataBuffer;
+
+ LOG_FUNCTION_START("");
+
+ /*
+ * use multi read even if some registers are not useful, result will
+ * be more efficient
+ * start reading at 0x14 dec20
+ * end reading at 0x21 dec33 total 14 bytes to read
+ */
+ Status = VL53L0X_ReadMulti(Dev, 0x14, localBuffer, 12);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+
+ pRangingMeasurementData->ZoneId = 0; /* Only one zone */
+ pRangingMeasurementData->TimeStamp = 0; /* Not Implemented */
+
+ tmpuint16 = VL53L0X_MAKEUINT16(localBuffer[11], localBuffer[10]);
+ /* cut1.1 if SYSTEM__RANGE_CONFIG if 1 range is 2bits fractional
+ *(format 11.2) else no fractional
+ */
+
+ pRangingMeasurementData->MeasurementTimeUsec = 0;
+
+ SignalRate = VL53L0X_FIXPOINT97TOFIXPOINT1616(
+ VL53L0X_MAKEUINT16(localBuffer[7], localBuffer[6]));
+ /* peak_signal_count_rate_rtn_mcps */
+ pRangingMeasurementData->SignalRateRtnMegaCps = SignalRate;
+
+ AmbientRate = VL53L0X_MAKEUINT16(localBuffer[9], localBuffer[8]);
+ pRangingMeasurementData->AmbientRateRtnMegaCps =
+ VL53L0X_FIXPOINT97TOFIXPOINT1616(AmbientRate);
+
+ EffectiveSpadRtnCount = VL53L0X_MAKEUINT16(localBuffer[3],
+ localBuffer[2]);
+ /* EffectiveSpadRtnCount is 8.8 format */
+ pRangingMeasurementData->EffectiveSpadRtnCount =
+ EffectiveSpadRtnCount;
+
+ DeviceRangeStatus = localBuffer[0];
+
+ /* Get Linearity Corrective Gain */
+ LinearityCorrectiveGain = PALDevDataGet(Dev,
+ LinearityCorrectiveGain);
+
+ /* Get ranging configuration */
+ RangeFractionalEnable = PALDevDataGet(Dev,
+ RangeFractionalEnable);
+
+ if (LinearityCorrectiveGain != 1000) {
+
+ tmpuint16 = (uint16_t)((LinearityCorrectiveGain
+ * tmpuint16 + 500) / 1000);
+
+ /* Implement Xtalk */
+ VL53L0X_GETPARAMETERFIELD(Dev,
+ XTalkCompensationRateMegaCps,
+ XTalkCompensationRateMegaCps);
+ VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationEnable,
+ XTalkCompensationEnable);
+
+ if (XTalkCompensationEnable) {
+
+ if ((SignalRate
+ - ((XTalkCompensationRateMegaCps
+ * EffectiveSpadRtnCount) >> 8))
+ <= 0) {
+ if (RangeFractionalEnable)
+ XtalkRangeMilliMeter = 8888;
+ else
+ XtalkRangeMilliMeter = 8888
+ << 2;
+ } else {
+ XtalkRangeMilliMeter =
+ (tmpuint16 * SignalRate)
+ / (SignalRate
+ - ((XTalkCompensationRateMegaCps
+ * EffectiveSpadRtnCount)
+ >> 8));
+ }
+
+ tmpuint16 = XtalkRangeMilliMeter;
+ }
+
+ }
+
+ if (RangeFractionalEnable) {
+ pRangingMeasurementData->RangeMilliMeter =
+ (uint16_t)((tmpuint16) >> 2);
+ pRangingMeasurementData->RangeFractionalPart =
+ (uint8_t)((tmpuint16 & 0x03) << 6);
+ } else {
+ pRangingMeasurementData->RangeMilliMeter = tmpuint16;
+ pRangingMeasurementData->RangeFractionalPart = 0;
+ }
+
+ /*
+ * For a standard definition of RangeStatus, this should
+ * return 0 in case of good result after a ranging
+ * The range status depends on the device so call a device
+ * specific function to obtain the right Status.
+ */
+ Status |= VL53L0X_get_pal_range_status(Dev, DeviceRangeStatus,
+ SignalRate, EffectiveSpadRtnCount,
+ pRangingMeasurementData, &PalRangeStatus);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ pRangingMeasurementData->RangeStatus = PalRangeStatus;
+
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* Copy last read data into Dev buffer */
+ LastRangeDataBuffer = PALDevDataGet(Dev, LastRangeMeasure);
+
+ LastRangeDataBuffer.RangeMilliMeter =
+ pRangingMeasurementData->RangeMilliMeter;
+ LastRangeDataBuffer.RangeFractionalPart =
+ pRangingMeasurementData->RangeFractionalPart;
+ LastRangeDataBuffer.RangeDMaxMilliMeter =
+ pRangingMeasurementData->RangeDMaxMilliMeter;
+ LastRangeDataBuffer.MeasurementTimeUsec =
+ pRangingMeasurementData->MeasurementTimeUsec;
+ LastRangeDataBuffer.SignalRateRtnMegaCps =
+ pRangingMeasurementData->SignalRateRtnMegaCps;
+ LastRangeDataBuffer.AmbientRateRtnMegaCps =
+ pRangingMeasurementData->AmbientRateRtnMegaCps;
+ LastRangeDataBuffer.EffectiveSpadRtnCount =
+ pRangingMeasurementData->EffectiveSpadRtnCount;
+ LastRangeDataBuffer.RangeStatus =
+ pRangingMeasurementData->RangeStatus;
+
+ PALDevDataSet(Dev, LastRangeMeasure, LastRangeDataBuffer);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetMeasurementRefSignal(VL53L0X_DEV Dev,
+ FixPoint1616_t *pMeasurementRefSignal)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ *pMeasurementRefSignal = PALDevDataGet(Dev, LastSignalRefMcps);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+
+}
+
+VL53L0X_Error VL53L0X_GetHistogramMeasurementData(VL53L0X_DEV Dev,
+ VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+ LOG_FUNCTION_START("");
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformSingleRangingMeasurement(VL53L0X_DEV Dev,
+ VL53L0X_RangingMeasurementData_t *pRangingMeasurementData)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ /* This function will do a complete single ranging
+ * Here we fix the mode! */
+ Status = VL53L0X_SetDeviceMode(Dev, VL53L0X_DEVICEMODE_SINGLE_RANGING);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_PerformSingleMeasurement(Dev);
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_GetRangingMeasurementData(Dev,
+ pRangingMeasurementData);
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_ClearInterruptMask(Dev, 0);
+
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetNumberOfROIZones(VL53L0X_DEV Dev,
+ uint8_t NumberOfROIZones)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ if (NumberOfROIZones != 1)
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetNumberOfROIZones(VL53L0X_DEV Dev,
+ uint8_t *pNumberOfROIZones)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ *pNumberOfROIZones = 1;
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetMaxNumberOfROIZones(VL53L0X_DEV Dev,
+ uint8_t *pMaxNumberOfROIZones)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ *pMaxNumberOfROIZones = 1;
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+/* End Group PAL Measurement Functions */
+
+VL53L0X_Error VL53L0X_SetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
+ VL53L0X_DeviceModes DeviceMode, VL53L0X_GpioFunctionality Functionality,
+ VL53L0X_InterruptPolarity Polarity)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t data;
+
+ LOG_FUNCTION_START("");
+
+ if (Pin != 0) {
+ Status = VL53L0X_ERROR_GPIO_NOT_EXISTING;
+ } else if (DeviceMode == VL53L0X_DEVICEMODE_GPIO_DRIVE) {
+ if (Polarity == VL53L0X_INTERRUPTPOLARITY_LOW)
+ data = 0x10;
+ else
+ data = 1;
+
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH, data);
+
+ } else if (DeviceMode == VL53L0X_DEVICEMODE_GPIO_OSC) {
+
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+ Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+ Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
+ Status |= VL53L0X_WrByte(Dev, 0x85, 0x02);
+
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x04);
+ Status |= VL53L0X_WrByte(Dev, 0xcd, 0x00);
+ Status |= VL53L0X_WrByte(Dev, 0xcc, 0x11);
+
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x07);
+ Status |= VL53L0X_WrByte(Dev, 0xbe, 0x00);
+
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x06);
+ Status |= VL53L0X_WrByte(Dev, 0xcc, 0x09);
+
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+ Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+
+ } else {
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ switch (Functionality) {
+ case VL53L0X_GPIOFUNCTIONALITY_OFF:
+ data = 0x00;
+ break;
+ case VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW:
+ data = 0x01;
+ break;
+ case VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH:
+ data = 0x02;
+ break;
+ case VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT:
+ data = 0x03;
+ break;
+ case VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY:
+ data = 0x04;
+ break;
+ default:
+ Status =
+ VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED;
+ }
+ }
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO, data);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (Polarity == VL53L0X_INTERRUPTPOLARITY_LOW)
+ data = 0;
+ else
+ data = (uint8_t)(1 << 4);
+
+ Status = VL53L0X_UpdateByte(Dev,
+ VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH, 0xEF, data);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE)
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ Pin0GpioFunctionality, Functionality);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_ClearInterruptMask(Dev, 0);
+
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
+ VL53L0X_DeviceModes *pDeviceMode,
+ VL53L0X_GpioFunctionality *pFunctionality,
+ VL53L0X_InterruptPolarity *pPolarity)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ VL53L0X_GpioFunctionality GpioFunctionality;
+ uint8_t data;
+
+ LOG_FUNCTION_START("");
+
+ /* pDeviceMode not managed by Ewok it return the current mode */
+
+ Status = VL53L0X_GetDeviceMode(Dev, pDeviceMode);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (Pin != 0) {
+ Status = VL53L0X_ERROR_GPIO_NOT_EXISTING;
+ } else {
+ Status = VL53L0X_RdByte(Dev,
+ VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO, &data);
+ }
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ switch (data & 0x07) {
+ case 0x00:
+ GpioFunctionality = VL53L0X_GPIOFUNCTIONALITY_OFF;
+ break;
+ case 0x01:
+ GpioFunctionality =
+ VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW;
+ break;
+ case 0x02:
+ GpioFunctionality =
+ VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH;
+ break;
+ case 0x03:
+ GpioFunctionality =
+ VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT;
+ break;
+ case 0x04:
+ GpioFunctionality =
+ VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY;
+ break;
+ default:
+ Status = VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED;
+ }
+ }
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_RdByte(Dev, VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH,
+ &data);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if ((data & (uint8_t)(1 << 4)) == 0)
+ *pPolarity = VL53L0X_INTERRUPTPOLARITY_LOW;
+ else
+ *pPolarity = VL53L0X_INTERRUPTPOLARITY_HIGH;
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ *pFunctionality = GpioFunctionality;
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, Pin0GpioFunctionality,
+ GpioFunctionality);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetInterruptThresholds(VL53L0X_DEV Dev,
+ VL53L0X_DeviceModes DeviceMode, FixPoint1616_t ThresholdLow,
+ FixPoint1616_t ThresholdHigh)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint16_t Threshold16;
+ LOG_FUNCTION_START("");
+
+ /* no dependency on DeviceMode for Ewok */
+ /* Need to divide by 2 because the FW will apply a x2 */
+ Threshold16 = (uint16_t)((ThresholdLow >> 17) & 0x00fff);
+ Status = VL53L0X_WrWord(Dev, VL53L0X_REG_SYSTEM_THRESH_LOW, Threshold16);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* Need to divide by 2 because the FW will apply a x2 */
+ Threshold16 = (uint16_t)((ThresholdHigh >> 17) & 0x00fff);
+ Status = VL53L0X_WrWord(Dev, VL53L0X_REG_SYSTEM_THRESH_HIGH,
+ Threshold16);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetInterruptThresholds(VL53L0X_DEV Dev,
+ VL53L0X_DeviceModes DeviceMode, FixPoint1616_t *pThresholdLow,
+ FixPoint1616_t *pThresholdHigh)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint16_t Threshold16;
+ LOG_FUNCTION_START("");
+
+ /* no dependency on DeviceMode for Ewok */
+
+ Status = VL53L0X_RdWord(Dev, VL53L0X_REG_SYSTEM_THRESH_LOW, &Threshold16);
+ /* Need to multiply by 2 because the FW will apply a x2 */
+ *pThresholdLow = (FixPoint1616_t)((0x00fff & Threshold16) << 17);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_RdWord(Dev, VL53L0X_REG_SYSTEM_THRESH_HIGH,
+ &Threshold16);
+ /* Need to multiply by 2 because the FW will apply a x2 */
+ *pThresholdHigh =
+ (FixPoint1616_t)((0x00fff & Threshold16) << 17);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetStopCompletedStatus(VL53L0X_DEV Dev,
+ uint32_t *pStopStatus)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t Byte = 0;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_RdByte(Dev, 0x04, &Byte);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x0);
+
+ *pStopStatus = Byte;
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+/* Group PAL Interrupt Functions */
+VL53L0X_Error VL53L0X_ClearInterruptMask(VL53L0X_DEV Dev, uint32_t InterruptMask)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t LoopCount;
+ uint8_t Byte;
+ LOG_FUNCTION_START("");
+
+ /* clear bit 0 range interrupt, bit 1 error interrupt */
+ LoopCount = 0;
+ do {
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR, 0x01);
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR, 0x00);
+ Status |= VL53L0X_RdByte(Dev,
+ VL53L0X_REG_RESULT_INTERRUPT_STATUS, &Byte);
+ LoopCount++;
+ } while (((Byte & 0x07) != 0x00)
+ && (LoopCount < 3)
+ && (Status == VL53L0X_ERROR_NONE));
+
+
+ if (LoopCount >= 3)
+ Status = VL53L0X_ERROR_INTERRUPT_NOT_CLEARED;
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetInterruptMaskStatus(VL53L0X_DEV Dev,
+ uint32_t *pInterruptMaskStatus)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t Byte;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_RdByte(Dev, VL53L0X_REG_RESULT_INTERRUPT_STATUS, &Byte);
+ *pInterruptMaskStatus = Byte & 0x07;
+
+ if (Byte & 0x18)
+ Status = VL53L0X_ERROR_RANGE_ERROR;
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_EnableInterruptMask(VL53L0X_DEV Dev, uint32_t InterruptMask)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NOT_IMPLEMENTED;
+ LOG_FUNCTION_START("");
+
+ /* not implemented for VL53L0X */
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+/* End Group PAL Interrupt Functions */
+
+/* Group SPAD functions */
+
+VL53L0X_Error VL53L0X_SetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
+ uint16_t SpadAmbientDamperThreshold)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ Status |= VL53L0X_WrWord(Dev, 0x40, SpadAmbientDamperThreshold);
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
+ uint16_t *pSpadAmbientDamperThreshold)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ Status |= VL53L0X_RdWord(Dev, 0x40, pSpadAmbientDamperThreshold);
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_SetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
+ uint16_t SpadAmbientDamperFactor)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t Byte;
+ LOG_FUNCTION_START("");
+
+ Byte = (uint8_t)(SpadAmbientDamperFactor & 0x00FF);
+
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ Status |= VL53L0X_WrByte(Dev, 0x42, Byte);
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
+ uint16_t *pSpadAmbientDamperFactor)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t Byte;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ Status |= VL53L0X_RdByte(Dev, 0x42, &Byte);
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ *pSpadAmbientDamperFactor = (uint16_t)Byte;
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+/* END Group SPAD functions */
+
+/*****************************************************************************
+ * Internal functions
+ *****************************************************************************/
+
+VL53L0X_Error VL53L0X_SetReferenceSpads(VL53L0X_DEV Dev, uint32_t count,
+ uint8_t isApertureSpads)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_set_reference_spads(Dev, count, isApertureSpads);
+
+ LOG_FUNCTION_END(Status);
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_GetReferenceSpads(VL53L0X_DEV Dev, uint32_t *pSpadCount,
+ uint8_t *pIsApertureSpads)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_reference_spads(Dev, pSpadCount, pIsApertureSpads);
+
+ LOG_FUNCTION_END(Status);
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_PerformRefSpadManagement(VL53L0X_DEV Dev,
+ uint32_t *refSpadCount, uint8_t *isApertureSpads)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_perform_ref_spad_management(Dev, refSpadCount,
+ isApertureSpads);
+
+ LOG_FUNCTION_END(Status);
+
+ return Status;
+}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api.h
new file mode 100644
index 000000000..67762d8f9
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api.h
@@ -0,0 +1,1943 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#ifndef _VL53L0X_API_H_
+#define _VL53L0X_API_H_
+
+#include "vl53l0x_api_strings.h"
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform.h"
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+#ifdef _MSC_VER
+# ifdef VL53L0X_API_EXPORTS
+# define VL53L0X_API __declspec(dllexport)
+# else
+# define VL53L0X_API
+# endif
+#else
+# define VL53L0X_API
+#endif
+
+/** @defgroup VL53L0X_cut11_group VL53L0X cut1.1 Function Definition
+ * @brief VL53L0X cut1.1 Function Definition
+ * @{
+ */
+
+/** @defgroup VL53L0X_general_group VL53L0X General Functions
+ * @brief General functions and definitions
+ * @{
+ */
+
+VL53L0X_Error sequence_step_enabled(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceConfig,
+ uint8_t *pSequenceStepEnabled);
+
+VL53L0X_Error VL53L0X_CheckAndLoadInterruptSettings(VL53L0X_DEV Dev,
+ uint8_t StartNotStopFlag);
+
+/**
+ * @brief Return the VL53L0X PAL Implementation Version
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param pVersion Pointer to current PAL Implementation Version
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetVersion(VL53L0X_Version_t *pVersion);
+
+/**
+ * @brief Return the PAL Specification Version used for the current
+ * implementation.
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param pPalSpecVersion Pointer to current PAL Specification Version
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetPalSpecVersion(
+ VL53L0X_Version_t *pPalSpecVersion);
+
+/**
+ * @brief Reads the Product Revision for a for given Device
+ * This function can be used to distinguish cut1.0 from cut1.1.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pProductRevisionMajor Pointer to Product Revision Major
+ * for a given Device
+ * @param pProductRevisionMinor Pointer to Product Revision Minor
+ * for a given Device
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetProductRevision(VL53L0X_DEV Dev,
+ uint8_t *pProductRevisionMajor, uint8_t *pProductRevisionMinor);
+
+/**
+ * @brief Reads the Device information for given Device
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pVL53L0X_DeviceInfo Pointer to current device info for a given
+ * Device
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceInfo(VL53L0X_DEV Dev,
+ VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo);
+
+/**
+ * @brief Read current status of the error register for the selected device
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pDeviceErrorStatus Pointer to current error code of the device
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceErrorStatus(VL53L0X_DEV Dev,
+ VL53L0X_DeviceError *pDeviceErrorStatus);
+
+/**
+ * @brief Human readable Range Status string for a given RangeStatus
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param RangeStatus The RangeStatus code as stored on
+ * @a VL53L0X_RangingMeasurementData_t
+ * @param pRangeStatusString The returned RangeStatus string.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetRangeStatusString(uint8_t RangeStatus,
+ char *pRangeStatusString);
+
+/**
+ * @brief Human readable error string for a given Error Code
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param ErrorCode The error code as stored on ::VL53L0X_DeviceError
+ * @param pDeviceErrorString The error string corresponding to the ErrorCode
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceErrorString(
+ VL53L0X_DeviceError ErrorCode, char *pDeviceErrorString);
+
+/**
+ * @brief Human readable error string for current PAL error status
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param PalErrorCode The error code as stored on @a VL53L0X_Error
+ * @param pPalErrorString The error string corresponding to the
+ * PalErrorCode
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetPalErrorString(VL53L0X_Error PalErrorCode,
+ char *pPalErrorString);
+
+/**
+ * @brief Human readable PAL State string
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param PalStateCode The State code as stored on @a VL53L0X_State
+ * @param pPalStateString The State string corresponding to the
+ * PalStateCode
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetPalStateString(VL53L0X_State PalStateCode,
+ char *pPalStateString);
+
+/**
+ * @brief Reads the internal state of the PAL for a given Device
+ *
+ * @note This function doesn't access to the device
+ *
+ * @param Dev Device Handle
+ * @param pPalState Pointer to current state of the PAL for a
+ * given Device
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetPalState(VL53L0X_DEV Dev,
+ VL53L0X_State *pPalState);
+
+/**
+ * @brief Set the power mode for a given Device
+ * The power mode can be Standby or Idle. Different level of both Standby and
+ * Idle can exists.
+ * This function should not be used when device is in Ranging state.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param PowerMode The value of the power mode to set.
+ * see ::VL53L0X_PowerModes
+ * Valid values are:
+ * VL53L0X_POWERMODE_STANDBY_LEVEL1,
+ * VL53L0X_POWERMODE_IDLE_LEVEL1
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_MODE_NOT_SUPPORTED This error occurs when PowerMode
+ * is not in the supported list
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetPowerMode(VL53L0X_DEV Dev,
+ VL53L0X_PowerModes PowerMode);
+
+/**
+ * @brief Get the power mode for a given Device
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pPowerMode Pointer to the current value of the power
+ * mode. see ::VL53L0X_PowerModes
+ * Valid values are:
+ * VL53L0X_POWERMODE_STANDBY_LEVEL1,
+ * VL53L0X_POWERMODE_IDLE_LEVEL1
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetPowerMode(VL53L0X_DEV Dev,
+ VL53L0X_PowerModes *pPowerMode);
+
+/**
+ * Set or over-hide part to part calibration offset
+ * \sa VL53L0X_DataInit() VL53L0X_GetOffsetCalibrationDataMicroMeter()
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param OffsetCalibrationDataMicroMeter Offset (microns)
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetOffsetCalibrationDataMicroMeter(
+ VL53L0X_DEV Dev, int32_t OffsetCalibrationDataMicroMeter);
+
+/**
+ * @brief Get part to part calibration offset
+ *
+ * @par Function Description
+ * Should only be used after a successful call to @a VL53L0X_DataInit to backup
+ * device NVM value
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pOffsetCalibrationDataMicroMeter Return part to part
+ * calibration offset from device (microns)
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetOffsetCalibrationDataMicroMeter(
+ VL53L0X_DEV Dev, int32_t *pOffsetCalibrationDataMicroMeter);
+
+/**
+ * Set the linearity corrective gain
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param LinearityCorrectiveGain Linearity corrective
+ * gain in x1000
+ * if value is 1000 then no modification is applied.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetLinearityCorrectiveGain(VL53L0X_DEV Dev,
+ int16_t LinearityCorrectiveGain);
+
+/**
+ * @brief Get the linearity corrective gain
+ *
+ * @par Function Description
+ * Should only be used after a successful call to @a VL53L0X_DataInit to backup
+ * device NVM value
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pLinearityCorrectiveGain Pointer to the linearity
+ * corrective gain in x1000
+ * if value is 1000 then no modification is applied.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetLinearityCorrectiveGain(VL53L0X_DEV Dev,
+ uint16_t *pLinearityCorrectiveGain);
+
+/**
+ * Set Group parameter Hold state
+ *
+ * @par Function Description
+ * Set or remove device internal group parameter hold
+ *
+ * @note This function is not Implemented
+ *
+ * @param Dev Device Handle
+ * @param GroupParamHold Group parameter Hold state to be set (on/off)
+ * @return VL53L0X_ERROR_NOT_IMPLEMENTED Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetGroupParamHold(VL53L0X_DEV Dev,
+ uint8_t GroupParamHold);
+
+/**
+ * @brief Get the maximal distance for actual setup
+ * @par Function Description
+ * Device must be initialized through @a VL53L0X_SetParameters() prior calling
+ * this function.
+ *
+ * Any range value more than the value returned is to be considered as
+ * "no target detected" or
+ * "no target in detectable range"\n
+ * @warning The maximal distance depends on the setup
+ *
+ * @note This function is not Implemented
+ *
+ * @param Dev Device Handle
+ * @param pUpperLimitMilliMeter The maximal range limit for actual setup
+ * (in millimeter)
+ * @return VL53L0X_ERROR_NOT_IMPLEMENTED Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetUpperLimitMilliMeter(VL53L0X_DEV Dev,
+ uint16_t *pUpperLimitMilliMeter);
+
+
+/**
+ * @brief Get the Total Signal Rate
+ * @par Function Description
+ * This function will return the Total Signal Rate after a good ranging is done.
+ *
+ * @note This function access to Device
+ *
+ * @param Dev Device Handle
+ * @param pTotalSignalRate Total Signal Rate value in Mega count per second
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_GetTotalSignalRate(VL53L0X_DEV Dev,
+ FixPoint1616_t *pTotalSignalRate);
+
+/** @} VL53L0X_general_group */
+
+/** @defgroup VL53L0X_init_group VL53L0X Init Functions
+ * @brief VL53L0X Init Functions
+ * @{
+ */
+
+/**
+ * @brief Set new device address
+ *
+ * After completion the device will answer to the new address programmed.
+ * This function should be called when several devices are used in parallel
+ * before start programming the sensor.
+ * When a single device us used, there is no need to call this function.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param DeviceAddress The new Device address
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceAddress(VL53L0X_DEV Dev,
+ uint8_t DeviceAddress);
+
+/**
+ *
+ * @brief One time device initialization
+ *
+ * To be called once and only once after device is brought out of reset
+ * (Chip enable) and booted see @a VL53L0X_WaitDeviceBooted()
+ *
+ * @par Function Description
+ * When not used after a fresh device "power up" or reset, it may return
+ * @a #VL53L0X_ERROR_CALIBRATION_WARNING meaning wrong calibration data
+ * may have been fetched from device that can result in ranging offset error\n
+ * If application cannot execute device reset or need to run VL53L0X_DataInit
+ * multiple time then it must ensure proper offset calibration saving and
+ * restore on its own by using @a VL53L0X_GetOffsetCalibrationData() on first
+ * power up and then @a VL53L0X_SetOffsetCalibrationData() in all subsequent init
+ * This function will change the VL53L0X_State from VL53L0X_STATE_POWERDOWN to
+ * VL53L0X_STATE_WAIT_STATICINIT.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_DataInit(VL53L0X_DEV Dev);
+
+/**
+ * @brief Set the tuning settings pointer
+ *
+ * This function is used to specify the Tuning settings buffer to be used
+ * for a given device. The buffer contains all the necessary data to permit
+ * the API to write tuning settings.
+ * This function permit to force the usage of either external or internal
+ * tuning settings.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pTuningSettingBuffer Pointer to tuning settings buffer.
+ * @param UseInternalTuningSettings Use internal tuning settings value.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetTuningSettingBuffer(VL53L0X_DEV Dev,
+ uint8_t *pTuningSettingBuffer, uint8_t UseInternalTuningSettings);
+
+/**
+ * @brief Get the tuning settings pointer and the internal external switch
+ * value.
+ *
+ * This function is used to get the Tuning settings buffer pointer and the
+ * value.
+ * of the switch to select either external or internal tuning settings.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param ppTuningSettingBuffer Pointer to tuning settings buffer.
+ * @param pUseInternalTuningSettings Pointer to store Use internal tuning
+ * settings value.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetTuningSettingBuffer(VL53L0X_DEV Dev,
+ uint8_t **ppTuningSettingBuffer, uint8_t *pUseInternalTuningSettings);
+
+/**
+ * @brief Do basic device init (and eventually patch loading)
+ * This function will change the VL53L0X_State from
+ * VL53L0X_STATE_WAIT_STATICINIT to VL53L0X_STATE_IDLE.
+ * In this stage all default setting will be applied.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_StaticInit(VL53L0X_DEV Dev);
+
+/**
+ * @brief Wait for device booted after chip enable (hardware standby)
+ * This function can be run only when VL53L0X_State is VL53L0X_STATE_POWERDOWN.
+ *
+ * @note This function is not Implemented
+ *
+ * @param Dev Device Handle
+ * @return VL53L0X_ERROR_NOT_IMPLEMENTED Not implemented
+ *
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_WaitDeviceBooted(VL53L0X_DEV Dev);
+
+/**
+ * @brief Do an hard reset or soft reset (depending on implementation) of the
+ * device \nAfter call of this function, device must be in same state as right
+ * after a power-up sequence.This function will change the VL53L0X_State to
+ * VL53L0X_STATE_POWERDOWN.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_ResetDevice(VL53L0X_DEV Dev);
+
+/** @} VL53L0X_init_group */
+
+/** @defgroup VL53L0X_parameters_group VL53L0X Parameters Functions
+ * @brief Functions used to prepare and setup the device
+ * @{
+ */
+
+/**
+ * @brief Prepare device for operation
+ * @par Function Description
+ * Update device with provided parameters
+ * @li Then start ranging operation.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pDeviceParameters Pointer to store current device parameters.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceParameters(VL53L0X_DEV Dev,
+ const VL53L0X_DeviceParameters_t *pDeviceParameters);
+
+/**
+ * @brief Retrieve current device parameters
+ * @par Function Description
+ * Get actual parameters of the device
+ * @li Then start ranging operation.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pDeviceParameters Pointer to store current device parameters.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceParameters(VL53L0X_DEV Dev,
+ VL53L0X_DeviceParameters_t *pDeviceParameters);
+
+/**
+ * @brief Set a new device mode
+ * @par Function Description
+ * Set device to a new mode (ranging, histogram ...)
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param Dev Device Handle
+ * @param DeviceMode New device mode to apply
+ * Valid values are:
+ * VL53L0X_DEVICEMODE_SINGLE_RANGING
+ * VL53L0X_DEVICEMODE_CONTINUOUS_RANGING
+ * VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING
+ * VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
+ * VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY
+ * VL53L0X_HISTOGRAMMODE_RETURN_ONLY
+ * VL53L0X_HISTOGRAMMODE_BOTH
+ *
+ *
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_MODE_NOT_SUPPORTED This error occurs when DeviceMode is
+ * not in the supported list
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetDeviceMode(VL53L0X_DEV Dev,
+ VL53L0X_DeviceModes DeviceMode);
+
+/**
+ * @brief Get current new device mode
+ * @par Function Description
+ * Get actual mode of the device(ranging, histogram ...)
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pDeviceMode Pointer to current apply mode value
+ * Valid values are:
+ * VL53L0X_DEVICEMODE_SINGLE_RANGING
+ * VL53L0X_DEVICEMODE_CONTINUOUS_RANGING
+ * VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING
+ * VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
+ * VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY
+ * VL53L0X_HISTOGRAMMODE_RETURN_ONLY
+ * VL53L0X_HISTOGRAMMODE_BOTH
+ *
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_MODE_NOT_SUPPORTED This error occurs when
+ * DeviceMode is not in the supported list
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetDeviceMode(VL53L0X_DEV Dev,
+ VL53L0X_DeviceModes *pDeviceMode);
+
+/**
+ * @brief Sets the resolution of range measurements.
+ * @par Function Description
+ * Set resolution of range measurements to either 0.25mm if
+ * fraction enabled or 1mm if not enabled.
+ *
+ * @note This function Accesses the device
+ *
+ * @param Dev Device Handle
+ * @param Enable Enable high resolution
+ *
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetRangeFractionEnable(VL53L0X_DEV Dev,
+ uint8_t Enable);
+
+/**
+ * @brief Gets the fraction enable parameter indicating the resolution of
+ * range measurements.
+ *
+ * @par Function Description
+ * Gets the fraction enable state, which translates to the resolution of
+ * range measurements as follows :Enabled:=0.25mm resolution,
+ * Not Enabled:=1mm resolution.
+ *
+ * @note This function Accesses the device
+ *
+ * @param Dev Device Handle
+ * @param pEnable Output Parameter reporting the fraction enable state.
+ *
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetFractionEnable(VL53L0X_DEV Dev,
+ uint8_t *pEnable);
+
+/**
+ * @brief Set a new Histogram mode
+ * @par Function Description
+ * Set device to a new Histogram mode
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param Dev Device Handle
+ * @param HistogramMode New device mode to apply
+ * Valid values are:
+ * VL53L0X_HISTOGRAMMODE_DISABLED
+ * VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
+ * VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY
+ * VL53L0X_HISTOGRAMMODE_RETURN_ONLY
+ * VL53L0X_HISTOGRAMMODE_BOTH
+ *
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_MODE_NOT_SUPPORTED This error occurs when
+ * HistogramMode is not in the supported list
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetHistogramMode(VL53L0X_DEV Dev,
+ VL53L0X_HistogramModes HistogramMode);
+
+/**
+ * @brief Get current new device mode
+ * @par Function Description
+ * Get current Histogram mode of a Device
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pHistogramMode Pointer to current Histogram Mode value
+ * Valid values are:
+ * VL53L0X_HISTOGRAMMODE_DISABLED
+ * VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM
+ * VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY
+ * VL53L0X_HISTOGRAMMODE_RETURN_ONLY
+ * VL53L0X_HISTOGRAMMODE_BOTH
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetHistogramMode(VL53L0X_DEV Dev,
+ VL53L0X_HistogramModes *pHistogramMode);
+
+/**
+ * @brief Set Ranging Timing Budget in microseconds
+ *
+ * @par Function Description
+ * Defines the maximum time allowed by the user to the device to run a
+ * full ranging sequence for the current mode (ranging, histogram, ASL ...)
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param MeasurementTimingBudgetMicroSeconds Max measurement time in
+ * microseconds.
+ * Valid values are:
+ * >= 17000 microsecs when wraparound enabled
+ * >= 12000 microsecs when wraparound disabled
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS This error is returned if
+ MeasurementTimingBudgetMicroSeconds out of range
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetMeasurementTimingBudgetMicroSeconds(
+ VL53L0X_DEV Dev, uint32_t MeasurementTimingBudgetMicroSeconds);
+
+/**
+ * @brief Get Ranging Timing Budget in microseconds
+ *
+ * @par Function Description
+ * Returns the programmed the maximum time allowed by the user to the
+ * device to run a full ranging sequence for the current mode
+ * (ranging, histogram, ASL ...)
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pMeasurementTimingBudgetMicroSeconds Max measurement time in
+ * microseconds.
+ * Valid values are:
+ * >= 17000 microsecs when wraparound enabled
+ * >= 12000 microsecs when wraparound disabled
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementTimingBudgetMicroSeconds(
+ VL53L0X_DEV Dev, uint32_t *pMeasurementTimingBudgetMicroSeconds);
+
+/**
+ * @brief Gets the VCSEL pulse period.
+ *
+ * @par Function Description
+ * This function retrieves the VCSEL pulse period for the given period type.
+ *
+ * @note This function Accesses the device
+ *
+ * @param Dev Device Handle
+ * @param VcselPeriodType VCSEL period identifier (pre-range|final).
+ * @param pVCSELPulsePeriod Pointer to VCSEL period value.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS Error VcselPeriodType parameter not
+ * supported.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetVcselPulsePeriod(VL53L0X_DEV Dev,
+ VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriod);
+
+/**
+ * @brief Sets the VCSEL pulse period.
+ *
+ * @par Function Description
+ * This function retrieves the VCSEL pulse period for the given period type.
+ *
+ * @note This function Accesses the device
+ *
+ * @param Dev Device Handle
+ * @param VcselPeriodType VCSEL period identifier (pre-range|final).
+ * @param VCSELPulsePeriod VCSEL period value
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS Error VcselPeriodType parameter not
+ * supported.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetVcselPulsePeriod(VL53L0X_DEV Dev,
+ VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriod);
+
+/**
+ * @brief Sets the (on/off) state of a requested sequence step.
+ *
+ * @par Function Description
+ * This function enables/disables a requested sequence step.
+ *
+ * @note This function Accesses the device
+ *
+ * @param Dev Device Handle
+ * @param SequenceStepId Sequence step identifier.
+ * @param SequenceStepEnabled Demanded state {0=Off,1=On}
+ * is enabled.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS Error SequenceStepId parameter not
+ * supported.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetSequenceStepEnable(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId, uint8_t SequenceStepEnabled);
+
+/**
+ * @brief Gets the (on/off) state of a requested sequence step.
+ *
+ * @par Function Description
+ * This function retrieves the state of a requested sequence step, i.e. on/off.
+ *
+ * @note This function Accesses the device
+ *
+ * @param Dev Device Handle
+ * @param SequenceStepId Sequence step identifier.
+ * @param pSequenceStepEnabled Out parameter reporting if the sequence step
+ * is enabled {0=Off,1=On}.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS Error SequenceStepId parameter not
+ * supported.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepEnable(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId, uint8_t *pSequenceStepEnabled);
+
+/**
+ * @brief Gets the (on/off) state of all sequence steps.
+ *
+ * @par Function Description
+ * This function retrieves the state of all sequence step in the scheduler.
+ *
+ * @note This function Accesses the device
+ *
+ * @param Dev Device Handle
+ * @param pSchedulerSequenceSteps Pointer to struct containing result.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepEnables(VL53L0X_DEV Dev,
+ VL53L0X_SchedulerSequenceSteps_t *pSchedulerSequenceSteps);
+
+/**
+ * @brief Sets the timeout of a requested sequence step.
+ *
+ * @par Function Description
+ * This function sets the timeout of a requested sequence step.
+ *
+ * @note This function Accesses the device
+ *
+ * @param Dev Device Handle
+ * @param SequenceStepId Sequence step identifier.
+ * @param TimeOutMilliSecs Demanded timeout
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS Error SequenceStepId parameter not
+ * supported.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetSequenceStepTimeout(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId, FixPoint1616_t TimeOutMilliSecs);
+
+/**
+ * @brief Gets the timeout of a requested sequence step.
+ *
+ * @par Function Description
+ * This function retrieves the timeout of a requested sequence step.
+ *
+ * @note This function Accesses the device
+ *
+ * @param Dev Device Handle
+ * @param SequenceStepId Sequence step identifier.
+ * @param pTimeOutMilliSecs Timeout value.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS Error SequenceStepId parameter not
+ * supported.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepTimeout(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId,
+ FixPoint1616_t *pTimeOutMilliSecs);
+
+/**
+ * @brief Gets number of sequence steps managed by the API.
+ *
+ * @par Function Description
+ * This function retrieves the number of sequence steps currently managed
+ * by the API
+ *
+ * @note This function Accesses the device
+ *
+ * @param Dev Device Handle
+ * @param pNumberOfSequenceSteps Out parameter reporting the number of
+ * sequence steps.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfSequenceSteps(VL53L0X_DEV Dev,
+ uint8_t *pNumberOfSequenceSteps);
+
+/**
+ * @brief Gets the name of a given sequence step.
+ *
+ * @par Function Description
+ * This function retrieves the name of sequence steps corresponding to
+ * SequenceStepId.
+ *
+ * @note This function doesn't Accesses the device
+ *
+ * @param SequenceStepId Sequence step identifier.
+ * @param pSequenceStepsString Pointer to Info string
+ *
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetSequenceStepsInfo(
+ VL53L0X_SequenceStepId SequenceStepId, char *pSequenceStepsString);
+
+/**
+ * Program continuous mode Inter-Measurement period in milliseconds
+ *
+ * @par Function Description
+ * When trying to set too short time return INVALID_PARAMS minimal value
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param InterMeasurementPeriodMilliSeconds Inter-Measurement Period in ms.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetInterMeasurementPeriodMilliSeconds(
+ VL53L0X_DEV Dev, uint32_t InterMeasurementPeriodMilliSeconds);
+
+/**
+ * Get continuous mode Inter-Measurement period in milliseconds
+ *
+ * @par Function Description
+ * When trying to set too short time return INVALID_PARAMS minimal value
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pInterMeasurementPeriodMilliSeconds Pointer to programmed
+ * Inter-Measurement Period in milliseconds.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetInterMeasurementPeriodMilliSeconds(
+ VL53L0X_DEV Dev, uint32_t *pInterMeasurementPeriodMilliSeconds);
+
+/**
+ * @brief Enable/Disable Cross talk compensation feature
+ *
+ * @note This function is not Implemented.
+ * Enable/Disable Cross Talk by set to zero the Cross Talk value
+ * by using @a VL53L0X_SetXTalkCompensationRateMegaCps().
+ *
+ * @param Dev Device Handle
+ * @param XTalkCompensationEnable Cross talk compensation
+ * to be set 0=disabled else = enabled
+ * @return VL53L0X_ERROR_NOT_IMPLEMENTED Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetXTalkCompensationEnable(VL53L0X_DEV Dev,
+ uint8_t XTalkCompensationEnable);
+
+/**
+ * @brief Get Cross talk compensation rate
+ *
+ * @note This function is not Implemented.
+ * Enable/Disable Cross Talk by set to zero the Cross Talk value by
+ * using @a VL53L0X_SetXTalkCompensationRateMegaCps().
+ *
+ * @param Dev Device Handle
+ * @param pXTalkCompensationEnable Pointer to the Cross talk compensation
+ * state 0=disabled or 1 = enabled
+ * @return VL53L0X_ERROR_NOT_IMPLEMENTED Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetXTalkCompensationEnable(VL53L0X_DEV Dev,
+ uint8_t *pXTalkCompensationEnable);
+
+/**
+ * @brief Set Cross talk compensation rate
+ *
+ * @par Function Description
+ * Set Cross talk compensation rate.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param XTalkCompensationRateMegaCps Compensation rate in
+ * Mega counts per second (16.16 fix point) see datasheet for details
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
+ FixPoint1616_t XTalkCompensationRateMegaCps);
+
+/**
+ * @brief Get Cross talk compensation rate
+ *
+ * @par Function Description
+ * Get Cross talk compensation rate.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pXTalkCompensationRateMegaCps Pointer to Compensation rate
+ in Mega counts per second (16.16 fix point) see datasheet for details
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetXTalkCompensationRateMegaCps(VL53L0X_DEV Dev,
+ FixPoint1616_t *pXTalkCompensationRateMegaCps);
+
+/**
+ * @brief Set Reference Calibration Parameters
+ *
+ * @par Function Description
+ * Set Reference Calibration Parameters.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param VhvSettings Parameter for VHV
+ * @param PhaseCal Parameter for PhaseCal
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetRefCalibration(VL53L0X_DEV Dev,
+ uint8_t VhvSettings, uint8_t PhaseCal);
+
+/**
+ * @brief Get Reference Calibration Parameters
+ *
+ * @par Function Description
+ * Get Reference Calibration Parameters.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pVhvSettings Pointer to VHV parameter
+ * @param pPhaseCal Pointer to PhaseCal Parameter
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetRefCalibration(VL53L0X_DEV Dev,
+ uint8_t *pVhvSettings, uint8_t *pPhaseCal);
+
+/**
+ * @brief Get the number of the check limit managed by a given Device
+ *
+ * @par Function Description
+ * This function give the number of the check limit managed by the Device
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param pNumberOfLimitCheck Pointer to the number of check limit.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfLimitCheck(
+ uint16_t *pNumberOfLimitCheck);
+
+/**
+ * @brief Return a description string for a given limit check number
+ *
+ * @par Function Description
+ * This function returns a description string for a given limit check number.
+ * The limit check is identified with the LimitCheckId.
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param Dev Device Handle
+ * @param LimitCheckId Limit Check ID
+ (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param pLimitCheckString Pointer to the
+ description string of the given check limit.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS This error is
+ returned when LimitCheckId value is out of range.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckInfo(VL53L0X_DEV Dev,
+ uint16_t LimitCheckId, char *pLimitCheckString);
+
+/**
+ * @brief Return a the Status of the specified check limit
+ *
+ * @par Function Description
+ * This function returns the Status of the specified check limit.
+ * The value indicate if the check is fail or not.
+ * The limit check is identified with the LimitCheckId.
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param Dev Device Handle
+ * @param LimitCheckId Limit Check ID
+ (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param pLimitCheckStatus Pointer to the
+ Limit Check Status of the given check limit.
+ * LimitCheckStatus :
+ * 0 the check is not fail
+ * 1 the check if fail or not enabled
+ *
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS This error is
+ returned when LimitCheckId value is out of range.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckStatus(VL53L0X_DEV Dev,
+ uint16_t LimitCheckId, uint8_t *pLimitCheckStatus);
+
+/**
+ * @brief Enable/Disable a specific limit check
+ *
+ * @par Function Description
+ * This function Enable/Disable a specific limit check.
+ * The limit check is identified with the LimitCheckId.
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param Dev Device Handle
+ * @param LimitCheckId Limit Check ID
+ * (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param LimitCheckEnable if 1 the check limit
+ * corresponding to LimitCheckId is Enabled
+ * if 0 the check limit
+ * corresponding to LimitCheckId is disabled
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS This error is returned
+ * when LimitCheckId value is out of range.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetLimitCheckEnable(VL53L0X_DEV Dev,
+ uint16_t LimitCheckId, uint8_t LimitCheckEnable);
+
+/**
+ * @brief Get specific limit check enable state
+ *
+ * @par Function Description
+ * This function get the enable state of a specific limit check.
+ * The limit check is identified with the LimitCheckId.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param LimitCheckId Limit Check ID
+ * (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param pLimitCheckEnable Pointer to the check limit enable
+ * value.
+ * if 1 the check limit
+ * corresponding to LimitCheckId is Enabled
+ * if 0 the check limit
+ * corresponding to LimitCheckId is disabled
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS This error is returned
+ * when LimitCheckId value is out of range.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckEnable(VL53L0X_DEV Dev,
+ uint16_t LimitCheckId, uint8_t *pLimitCheckEnable);
+
+/**
+ * @brief Set a specific limit check value
+ *
+ * @par Function Description
+ * This function set a specific limit check value.
+ * The limit check is identified with the LimitCheckId.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param LimitCheckId Limit Check ID
+ * (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param LimitCheckValue Limit check Value for a given
+ * LimitCheckId
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS This error is returned when either
+ * LimitCheckId or LimitCheckValue value is out of range.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetLimitCheckValue(VL53L0X_DEV Dev,
+ uint16_t LimitCheckId, FixPoint1616_t LimitCheckValue);
+
+/**
+ * @brief Get a specific limit check value
+ *
+ * @par Function Description
+ * This function get a specific limit check value from device then it updates
+ * internal values and check enables.
+ * The limit check is identified with the LimitCheckId.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param LimitCheckId Limit Check ID
+ * (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param pLimitCheckValue Pointer to Limit
+ * check Value for a given LimitCheckId.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS This error is returned
+ * when LimitCheckId value is out of range.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckValue(VL53L0X_DEV Dev,
+ uint16_t LimitCheckId, FixPoint1616_t *pLimitCheckValue);
+
+/**
+ * @brief Get the current value of the signal used for the limit check
+ *
+ * @par Function Description
+ * This function get a the current value of the signal used for the limit check.
+ * To obtain the latest value you should run a ranging before.
+ * The value reported is linked to the limit check identified with the
+ * LimitCheckId.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param LimitCheckId Limit Check ID
+ * (0<= LimitCheckId < VL53L0X_GetNumberOfLimitCheck() ).
+ * @param pLimitCheckCurrent Pointer to current Value for a
+ * given LimitCheckId.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS This error is returned when
+ * LimitCheckId value is out of range.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetLimitCheckCurrent(VL53L0X_DEV Dev,
+ uint16_t LimitCheckId, FixPoint1616_t *pLimitCheckCurrent);
+
+/**
+ * @brief Enable (or disable) Wrap around Check
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param WrapAroundCheckEnable Wrap around Check to be set
+ * 0=disabled, other = enabled
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetWrapAroundCheckEnable(VL53L0X_DEV Dev,
+ uint8_t WrapAroundCheckEnable);
+
+/**
+ * @brief Get setup of Wrap around Check
+ *
+ * @par Function Description
+ * This function get the wrapAround check enable parameters
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pWrapAroundCheckEnable Pointer to the Wrap around Check state
+ * 0=disabled or 1 = enabled
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetWrapAroundCheckEnable(VL53L0X_DEV Dev,
+ uint8_t *pWrapAroundCheckEnable);
+
+/**
+ * @brief Set Dmax Calibration Parameters for a given device
+ * When one of the parameter is zero, this function will get parameter
+ * from NVM.
+ * @note This function doesn't Access to the device
+ *
+ * @param Dev Device Handle
+ * @param RangeMilliMeter Calibration Distance
+ * @param SignalRateRtnMegaCps Signal rate return read at CalDistance
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetDmaxCalParameters(VL53L0X_DEV Dev,
+ uint16_t RangeMilliMeter, FixPoint1616_t SignalRateRtnMegaCps);
+
+/**
+ * @brief Get Dmax Calibration Parameters for a given device
+ *
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pRangeMilliMeter Pointer to Calibration Distance
+ * @param pSignalRateRtnMegaCps Pointer to Signal rate return
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetDmaxCalParameters(VL53L0X_DEV Dev,
+ uint16_t *pRangeMilliMeter, FixPoint1616_t *pSignalRateRtnMegaCps);
+
+/** @} VL53L0X_parameters_group */
+
+/** @defgroup VL53L0X_measurement_group VL53L0X Measurement Functions
+ * @brief Functions used for the measurements
+ * @{
+ */
+
+/**
+ * @brief Single shot measurement.
+ *
+ * @par Function Description
+ * Perform simple measurement sequence (Start measure, Wait measure to end,
+ * and returns when measurement is done).
+ * Once function returns, user can get valid data by calling
+ * VL53L0X_GetRangingMeasurement or VL53L0X_GetHistogramMeasurement
+ * depending on defined measurement mode
+ * User should Clear the interrupt in case this are enabled by using the
+ * function VL53L0X_ClearInterruptMask().
+ *
+ * @warning This function is a blocking function
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleMeasurement(VL53L0X_DEV Dev);
+
+/**
+ * @brief Perform Reference Calibration
+ *
+ * @details Perform a reference calibration of the Device.
+ * This function should be run from time to time before doing
+ * a ranging measurement.
+ * This function will launch a special ranging measurement, so
+ * if interrupt are enable an interrupt will be done.
+ * This function will clear the interrupt generated automatically.
+ *
+ * @warning This function is a blocking function
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pVhvSettings Pointer to vhv settings parameter.
+ * @param pPhaseCal Pointer to PhaseCal parameter.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformRefCalibration(VL53L0X_DEV Dev,
+ uint8_t *pVhvSettings, uint8_t *pPhaseCal);
+
+/**
+ * @brief Perform XTalk Measurement
+ *
+ * @details Measures the current cross talk from glass in front
+ * of the sensor.
+ * This functions performs a histogram measurement and uses the results
+ * to measure the crosstalk. For the function to be successful, there
+ * must be no target in front of the sensor.
+ *
+ * @warning This function is a blocking function
+ *
+ * @warning This function is not supported when the final range
+ * vcsel clock period is set below 10 PCLKS.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param TimeoutMs Histogram measurement duration.
+ * @param pXtalkPerSpad Output parameter containing the crosstalk
+ * measurement result, in MCPS/Spad. Format fixpoint 16:16.
+ * @param pAmbientTooHigh Output parameter which indicate that
+ * pXtalkPerSpad is not good if the Ambient is too high.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS vcsel clock period not supported
+ * for this operation. Must not be less than 10PCLKS.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformXTalkMeasurement(VL53L0X_DEV Dev,
+ uint32_t TimeoutMs, FixPoint1616_t *pXtalkPerSpad,
+ uint8_t *pAmbientTooHigh);
+
+/**
+ * @brief Perform XTalk Calibration
+ *
+ * @details Perform a XTalk calibration of the Device.
+ * This function will launch a ranging measurement, if interrupts
+ * are enabled an interrupt will be done.
+ * This function will clear the interrupt generated automatically.
+ * This function will program a new value for the XTalk compensation
+ * and it will enable the cross talk before exit.
+ * This function will disable the VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD.
+ *
+ * @warning This function is a blocking function
+ *
+ * @note This function Access to the device
+ *
+ * @note This function change the device mode to
+ * VL53L0X_DEVICEMODE_SINGLE_RANGING
+ *
+ * @param Dev Device Handle
+ * @param XTalkCalDistance XTalkCalDistance value used for the XTalk
+ * computation.
+ * @param pXTalkCompensationRateMegaCps Pointer to new
+ * XTalkCompensation value.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformXTalkCalibration(VL53L0X_DEV Dev,
+ FixPoint1616_t XTalkCalDistance,
+ FixPoint1616_t *pXTalkCompensationRateMegaCps);
+
+/**
+ * @brief Perform Offset Calibration
+ *
+ * @details Perform a Offset calibration of the Device.
+ * This function will launch a ranging measurement, if interrupts are
+ * enabled an interrupt will be done.
+ * This function will clear the interrupt generated automatically.
+ * This function will program a new value for the Offset calibration value
+ * This function will disable the VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD.
+ *
+ * @warning This function is a blocking function
+ *
+ * @note This function Access to the device
+ *
+ * @note This function does not change the device mode.
+ *
+ * @param Dev Device Handle
+ * @param CalDistanceMilliMeter Calibration distance value used for the
+ * offset compensation.
+ * @param pOffsetMicroMeter Pointer to new Offset value computed by the
+ * function.
+ *
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformOffsetCalibration(VL53L0X_DEV Dev,
+ FixPoint1616_t CalDistanceMilliMeter, int32_t *pOffsetMicroMeter);
+
+/**
+ * @brief Start device measurement
+ *
+ * @details Started measurement will depend on device parameters set through
+ * @a VL53L0X_SetParameters()
+ * This is a non-blocking function.
+ * This function will change the VL53L0X_State from VL53L0X_STATE_IDLE to
+ * VL53L0X_STATE_RUNNING.
+ *
+ * @note This function Access to the device
+ *
+
+ * @param Dev Device Handle
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_MODE_NOT_SUPPORTED This error occurs when
+ * DeviceMode programmed with @a VL53L0X_SetDeviceMode is not in the supported
+ * list:
+ * Supported mode are:
+ * VL53L0X_DEVICEMODE_SINGLE_RANGING,
+ * VL53L0X_DEVICEMODE_CONTINUOUS_RANGING,
+ * VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING
+ * @return VL53L0X_ERROR_TIME_OUT Time out on start measurement
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_StartMeasurement(VL53L0X_DEV Dev);
+
+/**
+ * @brief Stop device measurement
+ *
+ * @details Will set the device in standby mode at end of current measurement\n
+ * Not necessary in single mode as device shall return automatically
+ * in standby mode at end of measurement.
+ * This function will change the VL53L0X_State from VL53L0X_STATE_RUNNING
+ * to VL53L0X_STATE_IDLE.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_StopMeasurement(VL53L0X_DEV Dev);
+
+/**
+ * @brief Return Measurement Data Ready
+ *
+ * @par Function Description
+ * This function indicate that a measurement data is ready.
+ * This function check if interrupt mode is used then check is done accordingly.
+ * If perform function clear the interrupt, this function will not work,
+ * like in case of @a VL53L0X_PerformSingleRangingMeasurement().
+ * The previous function is blocking function, VL53L0X_GetMeasurementDataReady
+ * is used for non-blocking capture.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pMeasurementDataReady Pointer to Measurement Data Ready.
+ * 0=data not ready, 1 = data ready
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementDataReady(VL53L0X_DEV Dev,
+ uint8_t *pMeasurementDataReady);
+
+/**
+ * @brief Wait for device ready for a new measurement command.
+ * Blocking function.
+ *
+ * @note This function is not Implemented
+ *
+ * @param Dev Device Handle
+ * @param MaxLoop Max Number of polling loop (timeout).
+ * @return VL53L0X_ERROR_NOT_IMPLEMENTED Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_WaitDeviceReadyForNewMeasurement(VL53L0X_DEV Dev,
+ uint32_t MaxLoop);
+
+/**
+ * @brief Retrieve the Reference Signal after a measurements
+ *
+ * @par Function Description
+ * Get Reference Signal from last successful Ranging measurement
+ * This function return a valid value after that you call the
+ * @a VL53L0X_GetRangingMeasurementData().
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pMeasurementRefSignal Pointer to the Ref Signal to fill up.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetMeasurementRefSignal(VL53L0X_DEV Dev,
+ FixPoint1616_t *pMeasurementRefSignal);
+
+/**
+ * @brief Retrieve the measurements from device for a given setup
+ *
+ * @par Function Description
+ * Get data from last successful Ranging measurement
+ * @warning USER should take care about @a VL53L0X_GetNumberOfROIZones()
+ * before get data.
+ * PAL will fill a NumberOfROIZones times the corresponding data
+ * structure used in the measurement function.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pRangingMeasurementData Pointer to the data structure to fill up.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetRangingMeasurementData(VL53L0X_DEV Dev,
+ VL53L0X_RangingMeasurementData_t *pRangingMeasurementData);
+
+/**
+ * @brief Retrieve the measurements from device for a given setup
+ *
+ * @par Function Description
+ * Get data from last successful Histogram measurement
+ * @warning USER should take care about @a VL53L0X_GetNumberOfROIZones()
+ * before get data.
+ * PAL will fill a NumberOfROIZones times the corresponding data structure
+ * used in the measurement function.
+ *
+ * @note This function is not Implemented
+ *
+ * @param Dev Device Handle
+ * @param pHistogramMeasurementData Pointer to the histogram data structure.
+ * @return VL53L0X_ERROR_NOT_IMPLEMENTED Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetHistogramMeasurementData(VL53L0X_DEV Dev,
+ VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData);
+
+/**
+ * @brief Performs a single ranging measurement and retrieve the ranging
+ * measurement data
+ *
+ * @par Function Description
+ * This function will change the device mode to VL53L0X_DEVICEMODE_SINGLE_RANGING
+ * with @a VL53L0X_SetDeviceMode(),
+ * It performs measurement with @a VL53L0X_PerformSingleMeasurement()
+ * It get data from last successful Ranging measurement with
+ * @a VL53L0X_GetRangingMeasurementData.
+ * Finally it clear the interrupt with @a VL53L0X_ClearInterruptMask().
+ *
+ * @note This function Access to the device
+ *
+ * @note This function change the device mode to
+ * VL53L0X_DEVICEMODE_SINGLE_RANGING
+ *
+ * @param Dev Device Handle
+ * @param pRangingMeasurementData Pointer to the data structure to fill up.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleRangingMeasurement(VL53L0X_DEV Dev,
+ VL53L0X_RangingMeasurementData_t *pRangingMeasurementData);
+
+/**
+ * @brief Performs a single histogram measurement and retrieve the histogram
+ * measurement data
+ * Is equivalent to VL53L0X_PerformSingleMeasurement +
+ * VL53L0X_GetHistogramMeasurementData
+ *
+ * @par Function Description
+ * Get data from last successful Ranging measurement.
+ * This function will clear the interrupt in case of these are enabled.
+ *
+ * @note This function is not Implemented
+ *
+ * @param Dev Device Handle
+ * @param pHistogramMeasurementData Pointer to the data structure to fill up.
+ * @return VL53L0X_ERROR_NOT_IMPLEMENTED Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformSingleHistogramMeasurement(VL53L0X_DEV Dev,
+ VL53L0X_HistogramMeasurementData_t *pHistogramMeasurementData);
+
+/**
+ * @brief Set the number of ROI Zones to be used for a specific Device
+ *
+ * @par Function Description
+ * Set the number of ROI Zones to be used for a specific Device.
+ * The programmed value should be less than the max number of ROI Zones given
+ * with @a VL53L0X_GetMaxNumberOfROIZones().
+ * This version of API manage only one zone.
+ *
+ * @param Dev Device Handle
+ * @param NumberOfROIZones Number of ROI Zones to be used for a
+ * specific Device.
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INVALID_PARAMS This error is returned if
+ * NumberOfROIZones != 1
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetNumberOfROIZones(VL53L0X_DEV Dev,
+ uint8_t NumberOfROIZones);
+
+/**
+ * @brief Get the number of ROI Zones managed by the Device
+ *
+ * @par Function Description
+ * Get number of ROI Zones managed by the Device
+ * USER should take care about @a VL53L0X_GetNumberOfROIZones()
+ * before get data after a perform measurement.
+ * PAL will fill a NumberOfROIZones times the corresponding data
+ * structure used in the measurement function.
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pNumberOfROIZones Pointer to the Number of ROI Zones value.
+ * @return VL53L0X_ERROR_NONE Success
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetNumberOfROIZones(VL53L0X_DEV Dev,
+ uint8_t *pNumberOfROIZones);
+
+/**
+ * @brief Get the Maximum number of ROI Zones managed by the Device
+ *
+ * @par Function Description
+ * Get Maximum number of ROI Zones managed by the Device.
+ *
+ * @note This function doesn't Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pMaxNumberOfROIZones Pointer to the Maximum Number
+ * of ROI Zones value.
+ * @return VL53L0X_ERROR_NONE Success
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetMaxNumberOfROIZones(VL53L0X_DEV Dev,
+ uint8_t *pMaxNumberOfROIZones);
+
+/** @} VL53L0X_measurement_group */
+
+/** @defgroup VL53L0X_interrupt_group VL53L0X Interrupt Functions
+ * @brief Functions used for interrupt managements
+ * @{
+ */
+
+/**
+ * @brief Set the configuration of GPIO pin for a given device
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param Pin ID of the GPIO Pin
+ * @param Functionality Select Pin functionality.
+ * Refer to ::VL53L0X_GpioFunctionality
+ * @param DeviceMode Device Mode associated to the Gpio.
+ * @param Polarity Set interrupt polarity. Active high
+ * or active low see ::VL53L0X_InterruptPolarity
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_GPIO_NOT_EXISTING Only Pin=0 is accepted.
+ * @return VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED This error occurs
+ * when Functionality programmed is not in the supported list:
+ * Supported value are:
+ * VL53L0X_GPIOFUNCTIONALITY_OFF,
+ * VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW,
+ * VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH,
+ VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT,
+ * VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
+ VL53L0X_DeviceModes DeviceMode, VL53L0X_GpioFunctionality Functionality,
+ VL53L0X_InterruptPolarity Polarity);
+
+/**
+ * @brief Get current configuration for GPIO pin for a given device
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param Pin ID of the GPIO Pin
+ * @param pDeviceMode Pointer to Device Mode associated to the Gpio.
+ * @param pFunctionality Pointer to Pin functionality.
+ * Refer to ::VL53L0X_GpioFunctionality
+ * @param pPolarity Pointer to interrupt polarity.
+ * Active high or active low see ::VL53L0X_InterruptPolarity
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_GPIO_NOT_EXISTING Only Pin=0 is accepted.
+ * @return VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED This error occurs
+ * when Functionality programmed is not in the supported list:
+ * Supported value are:
+ * VL53L0X_GPIOFUNCTIONALITY_OFF,
+ * VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW,
+ * VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH,
+ * VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT,
+ * VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetGpioConfig(VL53L0X_DEV Dev, uint8_t Pin,
+ VL53L0X_DeviceModes *pDeviceMode,
+ VL53L0X_GpioFunctionality *pFunctionality,
+ VL53L0X_InterruptPolarity *pPolarity);
+
+/**
+ * @brief Set low and high Interrupt thresholds for a given mode
+ * (ranging, ALS, ...) for a given device
+ *
+ * @par Function Description
+ * Set low and high Interrupt thresholds for a given mode (ranging, ALS, ...)
+ * for a given device
+ *
+ * @note This function Access to the device
+ *
+ * @note DeviceMode is ignored for the current device
+ *
+ * @param Dev Device Handle
+ * @param DeviceMode Device Mode for which change thresholds
+ * @param ThresholdLow Low threshold (mm, lux ..., depending on the mode)
+ * @param ThresholdHigh High threshold (mm, lux ..., depending on the mode)
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetInterruptThresholds(VL53L0X_DEV Dev,
+ VL53L0X_DeviceModes DeviceMode, FixPoint1616_t ThresholdLow,
+ FixPoint1616_t ThresholdHigh);
+
+/**
+ * @brief Get high and low Interrupt thresholds for a given mode
+ * (ranging, ALS, ...) for a given device
+ *
+ * @par Function Description
+ * Get high and low Interrupt thresholds for a given mode (ranging, ALS, ...)
+ * for a given device
+ *
+ * @note This function Access to the device
+ *
+ * @note DeviceMode is ignored for the current device
+ *
+ * @param Dev Device Handle
+ * @param DeviceMode Device Mode from which read thresholds
+ * @param pThresholdLow Low threshold (mm, lux ..., depending on the mode)
+ * @param pThresholdHigh High threshold (mm, lux ..., depending on the mode)
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetInterruptThresholds(VL53L0X_DEV Dev,
+ VL53L0X_DeviceModes DeviceMode, FixPoint1616_t *pThresholdLow,
+ FixPoint1616_t *pThresholdHigh);
+
+/**
+ * @brief Return device stop completion status
+ *
+ * @par Function Description
+ * Returns stop completiob status.
+ * User shall call this function after a stop command
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pStopStatus Pointer to status variable to update
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetStopCompletedStatus(VL53L0X_DEV Dev,
+ uint32_t *pStopStatus);
+
+
+/**
+ * @brief Clear given system interrupt condition
+ *
+ * @par Function Description
+ * Clear given interrupt(s).
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param InterruptMask Mask of interrupts to clear
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_INTERRUPT_NOT_CLEARED Cannot clear interrupts
+ *
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_ClearInterruptMask(VL53L0X_DEV Dev,
+ uint32_t InterruptMask);
+
+/**
+ * @brief Return device interrupt status
+ *
+ * @par Function Description
+ * Returns currently raised interrupts by the device.
+ * User shall be able to activate/deactivate interrupts through
+ * @a VL53L0X_SetGpioConfig()
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pInterruptMaskStatus Pointer to status variable to update
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetInterruptMaskStatus(VL53L0X_DEV Dev,
+ uint32_t *pInterruptMaskStatus);
+
+/**
+ * @brief Configure ranging interrupt reported to system
+ *
+ * @note This function is not Implemented
+ *
+ * @param Dev Device Handle
+ * @param InterruptMask Mask of interrupt to Enable/disable
+ * (0:interrupt disabled or 1: interrupt enabled)
+ * @return VL53L0X_ERROR_NOT_IMPLEMENTED Not implemented
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_EnableInterruptMask(VL53L0X_DEV Dev,
+ uint32_t InterruptMask);
+
+/** @} VL53L0X_interrupt_group */
+
+/** @defgroup VL53L0X_SPADfunctions_group VL53L0X SPAD Functions
+ * @brief Functions used for SPAD managements
+ * @{
+ */
+
+/**
+ * @brief Set the SPAD Ambient Damper Threshold value
+ *
+ * @par Function Description
+ * This function set the SPAD Ambient Damper Threshold value
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param SpadAmbientDamperThreshold SPAD Ambient Damper Threshold value
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
+ uint16_t SpadAmbientDamperThreshold);
+
+/**
+ * @brief Get the current SPAD Ambient Damper Threshold value
+ *
+ * @par Function Description
+ * This function get the SPAD Ambient Damper Threshold value
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pSpadAmbientDamperThreshold Pointer to programmed
+ * SPAD Ambient Damper Threshold value
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetSpadAmbientDamperThreshold(VL53L0X_DEV Dev,
+ uint16_t *pSpadAmbientDamperThreshold);
+
+/**
+ * @brief Set the SPAD Ambient Damper Factor value
+ *
+ * @par Function Description
+ * This function set the SPAD Ambient Damper Factor value
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param SpadAmbientDamperFactor SPAD Ambient Damper Factor value
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
+ uint16_t SpadAmbientDamperFactor);
+
+/**
+ * @brief Get the current SPAD Ambient Damper Factor value
+ *
+ * @par Function Description
+ * This function get the SPAD Ambient Damper Factor value
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param pSpadAmbientDamperFactor Pointer to programmed SPAD Ambient
+ * Damper Factor value
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetSpadAmbientDamperFactor(VL53L0X_DEV Dev,
+ uint16_t *pSpadAmbientDamperFactor);
+
+/**
+ * @brief Performs Reference Spad Management
+ *
+ * @par Function Description
+ * The reference SPAD initialization procedure determines the minimum amount
+ * of reference spads to be enables to achieve a target reference signal rate
+ * and should be performed once during initialization.
+ *
+ * @note This function Access to the device
+ *
+ * @note This function change the device mode to
+ * VL53L0X_DEVICEMODE_SINGLE_RANGING
+ *
+ * @param Dev Device Handle
+ * @param refSpadCount Reports ref Spad Count
+ * @param isApertureSpads Reports if spads are of type
+ * aperture or non-aperture.
+ * 1:=aperture, 0:=Non-Aperture
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_REF_SPAD_INIT Error in the Ref Spad procedure.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_PerformRefSpadManagement(VL53L0X_DEV Dev,
+ uint32_t *refSpadCount, uint8_t *isApertureSpads);
+
+/**
+ * @brief Applies Reference SPAD configuration
+ *
+ * @par Function Description
+ * This function applies a given number of reference spads, identified as
+ * either Aperture or Non-Aperture.
+ * The requested spad count and type are stored within the device specific
+ * parameters data for access by the host.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param refSpadCount Number of ref spads.
+ * @param isApertureSpads Defines if spads are of type
+ * aperture or non-aperture.
+ * 1:=aperture, 0:=Non-Aperture
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_REF_SPAD_INIT Error in the in the reference
+ * spad configuration.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_SetReferenceSpads(VL53L0X_DEV Dev,
+ uint32_t refSpadCount, uint8_t isApertureSpads);
+
+/**
+ * @brief Retrieves SPAD configuration
+ *
+ * @par Function Description
+ * This function retrieves the current number of applied reference spads
+ * and also their type : Aperture or Non-Aperture.
+ *
+ * @note This function Access to the device
+ *
+ * @param Dev Device Handle
+ * @param refSpadCount Number ref Spad Count
+ * @param isApertureSpads Reports if spads are of type
+ * aperture or non-aperture.
+ * 1:=aperture, 0:=Non-Aperture
+ * @return VL53L0X_ERROR_NONE Success
+ * @return VL53L0X_ERROR_REF_SPAD_INIT Error in the in the reference
+ * spad configuration.
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_API VL53L0X_Error VL53L0X_GetReferenceSpads(VL53L0X_DEV Dev,
+ uint32_t *refSpadCount, uint8_t *isApertureSpads);
+
+/** @} VL53L0X_SPADfunctions_group */
+
+/** @} VL53L0X_cut11_group */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VL53L0X_API_H_ */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c
new file mode 100644
index 000000000..ba8243293
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c
@@ -0,0 +1,1259 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#include "vl53l0x_api.h"
+#include "vl53l0x_api_core.h"
+#include "vl53l0x_api_calibration.h"
+
+#ifndef __KERNEL__
+#include <stdlib.h>
+#endif
+
+#define LOG_FUNCTION_START(fmt, ...) \
+ _LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
+#define LOG_FUNCTION_END(status, ...) \
+ _LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
+#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
+ _LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
+
+#define REF_ARRAY_SPAD_0 0
+#define REF_ARRAY_SPAD_5 5
+#define REF_ARRAY_SPAD_10 10
+
+uint32_t refArrayQuadrants[4] = {REF_ARRAY_SPAD_10, REF_ARRAY_SPAD_5,
+ REF_ARRAY_SPAD_0, REF_ARRAY_SPAD_5 };
+
+VL53L0X_Error VL53L0X_perform_xtalk_calibration(VL53L0X_DEV Dev,
+ FixPoint1616_t XTalkCalDistance,
+ FixPoint1616_t *pXTalkCompensationRateMegaCps)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint16_t sum_ranging = 0;
+ uint16_t sum_spads = 0;
+ FixPoint1616_t sum_signalRate = 0;
+ FixPoint1616_t total_count = 0;
+ uint8_t xtalk_meas = 0;
+ VL53L0X_RangingMeasurementData_t RangingMeasurementData;
+ FixPoint1616_t xTalkStoredMeanSignalRate;
+ FixPoint1616_t xTalkStoredMeanRange;
+ FixPoint1616_t xTalkStoredMeanRtnSpads;
+ uint32_t signalXTalkTotalPerSpad;
+ uint32_t xTalkStoredMeanRtnSpadsAsInt;
+ uint32_t xTalkCalDistanceAsInt;
+ FixPoint1616_t XTalkCompensationRateMegaCps;
+
+ if (XTalkCalDistance <= 0)
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+ /* Disable the XTalk compensation */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetXTalkCompensationEnable(Dev, 0);
+
+ /* Disable the RIT */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_SetLimitCheckEnable(Dev,
+ VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, 0);
+ }
+
+ /* Perform 50 measurements and compute the averages */
+ if (Status == VL53L0X_ERROR_NONE) {
+ sum_ranging = 0;
+ sum_spads = 0;
+ sum_signalRate = 0;
+ total_count = 0;
+ for (xtalk_meas = 0; xtalk_meas < 50; xtalk_meas++) {
+ Status = VL53L0X_PerformSingleRangingMeasurement(Dev,
+ &RangingMeasurementData);
+
+ if (Status != VL53L0X_ERROR_NONE)
+ break;
+
+ /* The range is valid when RangeStatus = 0 */
+ if (RangingMeasurementData.RangeStatus == 0) {
+ sum_ranging = sum_ranging +
+ RangingMeasurementData.RangeMilliMeter;
+ sum_signalRate = sum_signalRate +
+ RangingMeasurementData.SignalRateRtnMegaCps;
+ sum_spads = sum_spads +
+ RangingMeasurementData.EffectiveSpadRtnCount
+ / 256;
+ total_count = total_count + 1;
+ }
+ }
+
+ /* no valid values found */
+ if (total_count == 0)
+ Status = VL53L0X_ERROR_RANGE_ERROR;
+
+ }
+
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* FixPoint1616_t / uint16_t = FixPoint1616_t */
+ xTalkStoredMeanSignalRate = sum_signalRate / total_count;
+ xTalkStoredMeanRange = (FixPoint1616_t)((uint32_t)(
+ sum_ranging << 16) / total_count);
+ xTalkStoredMeanRtnSpads = (FixPoint1616_t)((uint32_t)(
+ sum_spads << 16) / total_count);
+
+ /* Round Mean Spads to Whole Number.
+ * Typically the calculated mean SPAD count is a whole number
+ * or very close to a whole
+ * number, therefore any truncation will not result in a
+ * significant loss in accuracy.
+ * Also, for a grey target at a typical distance of around
+ * 400mm, around 220 SPADs will
+ * be enabled, therefore, any truncation will result in a loss
+ * of accuracy of less than
+ * 0.5%.
+ */
+ xTalkStoredMeanRtnSpadsAsInt = (xTalkStoredMeanRtnSpads +
+ 0x8000) >> 16;
+
+ /* Round Cal Distance to Whole Number.
+ * Note that the cal distance is in mm, therefore no resolution
+ * is lost.*/
+ xTalkCalDistanceAsInt = (XTalkCalDistance + 0x8000) >> 16;
+
+ if (xTalkStoredMeanRtnSpadsAsInt == 0 ||
+ xTalkCalDistanceAsInt == 0 ||
+ xTalkStoredMeanRange >= XTalkCalDistance) {
+ XTalkCompensationRateMegaCps = 0;
+ } else {
+ /* Round Cal Distance to Whole Number.
+ Note that the cal distance is in mm, therefore no
+ resolution is lost.*/
+ xTalkCalDistanceAsInt = (XTalkCalDistance +
+ 0x8000) >> 16;
+
+ /* Apply division by mean spad count early in the
+ * calculation to keep the numbers small.
+ * This ensures we can maintain a 32bit calculation.
+ * Fixed1616 / int := Fixed1616 */
+ signalXTalkTotalPerSpad = (xTalkStoredMeanSignalRate) /
+ xTalkStoredMeanRtnSpadsAsInt;
+
+ /* Complete the calculation for total Signal XTalk per
+ * SPAD
+ * Fixed1616 * (Fixed1616 - Fixed1616/int) :=
+ * (2^16 * Fixed1616)
+ */
+ signalXTalkTotalPerSpad *= ((1 << 16) -
+ (xTalkStoredMeanRange / xTalkCalDistanceAsInt));
+
+ /* Round from 2^16 * Fixed1616, to Fixed1616. */
+ XTalkCompensationRateMegaCps = (signalXTalkTotalPerSpad
+ + 0x8000) >> 16;
+ }
+
+ *pXTalkCompensationRateMegaCps = XTalkCompensationRateMegaCps;
+
+ /* Enable the XTalk compensation */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetXTalkCompensationEnable(Dev, 1);
+
+ /* Enable the XTalk compensation */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetXTalkCompensationRateMegaCps(Dev,
+ XTalkCompensationRateMegaCps);
+
+ }
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_perform_offset_calibration(VL53L0X_DEV Dev,
+ FixPoint1616_t CalDistanceMilliMeter,
+ int32_t *pOffsetMicroMeter)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint16_t sum_ranging = 0;
+ FixPoint1616_t total_count = 0;
+ VL53L0X_RangingMeasurementData_t RangingMeasurementData;
+ FixPoint1616_t StoredMeanRange;
+ uint32_t StoredMeanRangeAsInt;
+ uint32_t CalDistanceAsInt_mm;
+ uint8_t SequenceStepEnabled;
+ int meas = 0;
+
+ if (CalDistanceMilliMeter <= 0)
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetOffsetCalibrationDataMicroMeter(Dev, 0);
+
+
+ /* Get the value of the TCC */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_GetSequenceStepEnable(Dev,
+ VL53L0X_SEQUENCESTEP_TCC, &SequenceStepEnabled);
+
+
+ /* Disable the TCC */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetSequenceStepEnable(Dev,
+ VL53L0X_SEQUENCESTEP_TCC, 0);
+
+
+ /* Disable the RIT */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_SetLimitCheckEnable(Dev,
+ VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD, 0);
+
+ /* Perform 50 measurements and compute the averages */
+ if (Status == VL53L0X_ERROR_NONE) {
+ sum_ranging = 0;
+ total_count = 0;
+ for (meas = 0; meas < 50; meas++) {
+ Status = VL53L0X_PerformSingleRangingMeasurement(Dev,
+ &RangingMeasurementData);
+
+ if (Status != VL53L0X_ERROR_NONE)
+ break;
+
+ /* The range is valid when RangeStatus = 0 */
+ if (RangingMeasurementData.RangeStatus == 0) {
+ sum_ranging = sum_ranging +
+ RangingMeasurementData.RangeMilliMeter;
+ total_count = total_count + 1;
+ }
+ }
+
+ /* no valid values found */
+ if (total_count == 0)
+ Status = VL53L0X_ERROR_RANGE_ERROR;
+ }
+
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* FixPoint1616_t / uint16_t = FixPoint1616_t */
+ StoredMeanRange = (FixPoint1616_t)((uint32_t)(sum_ranging << 16)
+ / total_count);
+
+ StoredMeanRangeAsInt = (StoredMeanRange + 0x8000) >> 16;
+
+ /* Round Cal Distance to Whole Number.
+ * Note that the cal distance is in mm, therefore no resolution
+ * is lost.*/
+ CalDistanceAsInt_mm = (CalDistanceMilliMeter + 0x8000) >> 16;
+
+ *pOffsetMicroMeter = (CalDistanceAsInt_mm -
+ StoredMeanRangeAsInt) * 1000;
+
+ /* Apply the calculated offset */
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETPARAMETERFIELD(Dev, RangeOffsetMicroMeters,
+ *pOffsetMicroMeter);
+ Status = VL53L0X_SetOffsetCalibrationDataMicroMeter(Dev,
+ *pOffsetMicroMeter);
+ }
+
+ }
+
+ /* Restore the TCC */
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (SequenceStepEnabled != 0)
+ Status = VL53L0X_SetSequenceStepEnable(Dev,
+ VL53L0X_SEQUENCESTEP_TCC, 1);
+ }
+
+ return Status;
+}
+
+
+VL53L0X_Error VL53L0X_set_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
+ int32_t OffsetCalibrationDataMicroMeter)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ int32_t cMaxOffsetMicroMeter = 511000;
+ int32_t cMinOffsetMicroMeter = -512000;
+ int16_t cOffsetRange = 4096;
+ uint32_t encodedOffsetVal;
+
+ LOG_FUNCTION_START("");
+
+ if (OffsetCalibrationDataMicroMeter > cMaxOffsetMicroMeter)
+ OffsetCalibrationDataMicroMeter = cMaxOffsetMicroMeter;
+ else if (OffsetCalibrationDataMicroMeter < cMinOffsetMicroMeter)
+ OffsetCalibrationDataMicroMeter = cMinOffsetMicroMeter;
+
+ /* The offset register is 10.2 format and units are mm
+ * therefore conversion is applied by a division of
+ * 250.
+ */
+ if (OffsetCalibrationDataMicroMeter >= 0) {
+ encodedOffsetVal =
+ OffsetCalibrationDataMicroMeter/250;
+ } else {
+ encodedOffsetVal =
+ cOffsetRange +
+ OffsetCalibrationDataMicroMeter/250;
+ }
+
+ Status = VL53L0X_WrWord(Dev,
+ VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM,
+ encodedOffsetVal);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_get_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
+ int32_t *pOffsetCalibrationDataMicroMeter)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint16_t RangeOffsetRegister;
+ int16_t cMaxOffset = 2047;
+ int16_t cOffsetRange = 4096;
+
+ /* Note that offset has 10.2 format */
+
+ Status = VL53L0X_RdWord(Dev,
+ VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM,
+ &RangeOffsetRegister);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ RangeOffsetRegister = (RangeOffsetRegister & 0x0fff);
+
+ /* Apply 12 bit 2's compliment conversion */
+ if (RangeOffsetRegister > cMaxOffset)
+ *pOffsetCalibrationDataMicroMeter =
+ (int16_t)(RangeOffsetRegister - cOffsetRange)
+ * 250;
+ else
+ *pOffsetCalibrationDataMicroMeter =
+ (int16_t)RangeOffsetRegister * 250;
+
+ }
+
+ return Status;
+}
+
+
+VL53L0X_Error VL53L0X_apply_offset_adjustment(VL53L0X_DEV Dev)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ int32_t CorrectedOffsetMicroMeters;
+ int32_t CurrentOffsetMicroMeters;
+
+ /* if we run on this function we can read all the NVM info
+ * used by the API */
+ Status = VL53L0X_get_info_from_device(Dev, 7);
+
+ /* Read back current device offset */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_GetOffsetCalibrationDataMicroMeter(Dev,
+ &CurrentOffsetMicroMeters);
+ }
+
+ /* Apply Offset Adjustment derived from 400mm measurements */
+ if (Status == VL53L0X_ERROR_NONE) {
+
+ /* Store initial device offset */
+ PALDevDataSet(Dev, Part2PartOffsetNVMMicroMeter,
+ CurrentOffsetMicroMeters);
+
+ CorrectedOffsetMicroMeters = CurrentOffsetMicroMeters +
+ (int32_t)PALDevDataGet(Dev,
+ Part2PartOffsetAdjustmentNVMMicroMeter);
+
+ Status = VL53L0X_SetOffsetCalibrationDataMicroMeter(Dev,
+ CorrectedOffsetMicroMeters);
+
+ /* store current, adjusted offset */
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETPARAMETERFIELD(Dev, RangeOffsetMicroMeters,
+ CorrectedOffsetMicroMeters);
+ }
+ }
+
+ return Status;
+}
+
+void get_next_good_spad(uint8_t goodSpadArray[], uint32_t size,
+ uint32_t curr, int32_t *next)
+{
+ uint32_t startIndex;
+ uint32_t fineOffset;
+ uint32_t cSpadsPerByte = 8;
+ uint32_t coarseIndex;
+ uint32_t fineIndex;
+ uint8_t dataByte;
+ uint8_t success = 0;
+
+ /*
+ * Starting with the current good spad, loop through the array to find
+ * the next. i.e. the next bit set in the sequence.
+ *
+ * The coarse index is the byte index of the array and the fine index is
+ * the index of the bit within each byte.
+ */
+
+ *next = -1;
+
+ startIndex = curr / cSpadsPerByte;
+ fineOffset = curr % cSpadsPerByte;
+
+ for (coarseIndex = startIndex; ((coarseIndex < size) && !success);
+ coarseIndex++) {
+ fineIndex = 0;
+ dataByte = goodSpadArray[coarseIndex];
+
+ if (coarseIndex == startIndex) {
+ /* locate the bit position of the provided current
+ * spad bit before iterating */
+ dataByte >>= fineOffset;
+ fineIndex = fineOffset;
+ }
+
+ while (fineIndex < cSpadsPerByte) {
+ if ((dataByte & 0x1) == 1) {
+ success = 1;
+ *next = coarseIndex * cSpadsPerByte + fineIndex;
+ break;
+ }
+ dataByte >>= 1;
+ fineIndex++;
+ }
+ }
+}
+
+
+uint8_t is_aperture(uint32_t spadIndex)
+{
+ /*
+ * This function reports if a given spad index is an aperture SPAD by
+ * deriving the quadrant.
+ */
+ uint32_t quadrant;
+ uint8_t isAperture = 1;
+ quadrant = spadIndex >> 6;
+ if (refArrayQuadrants[quadrant] == REF_ARRAY_SPAD_0)
+ isAperture = 0;
+
+ return isAperture;
+}
+
+
+VL53L0X_Error enable_spad_bit(uint8_t spadArray[], uint32_t size,
+ uint32_t spadIndex)
+{
+ VL53L0X_Error status = VL53L0X_ERROR_NONE;
+ uint32_t cSpadsPerByte = 8;
+ uint32_t coarseIndex;
+ uint32_t fineIndex;
+
+ coarseIndex = spadIndex / cSpadsPerByte;
+ fineIndex = spadIndex % cSpadsPerByte;
+ if (coarseIndex >= size)
+ status = VL53L0X_ERROR_REF_SPAD_INIT;
+ else
+ spadArray[coarseIndex] |= (1 << fineIndex);
+
+ return status;
+}
+
+VL53L0X_Error count_enabled_spads(uint8_t spadArray[],
+ uint32_t byteCount, uint32_t maxSpads,
+ uint32_t *pTotalSpadsEnabled, uint8_t *pIsAperture)
+{
+ VL53L0X_Error status = VL53L0X_ERROR_NONE;
+ uint32_t cSpadsPerByte = 8;
+ uint32_t lastByte;
+ uint32_t lastBit;
+ uint32_t byteIndex = 0;
+ uint32_t bitIndex = 0;
+ uint8_t tempByte;
+ uint8_t spadTypeIdentified = 0;
+
+ /* The entire array will not be used for spads, therefore the last
+ * byte and last bit is determined from the max spads value.
+ */
+
+ lastByte = maxSpads / cSpadsPerByte;
+ lastBit = maxSpads % cSpadsPerByte;
+
+ /* Check that the max spads value does not exceed the array bounds. */
+ if (lastByte >= byteCount)
+ status = VL53L0X_ERROR_REF_SPAD_INIT;
+
+ *pTotalSpadsEnabled = 0;
+
+ /* Count the bits enabled in the whole bytes */
+ for (byteIndex = 0; byteIndex <= (lastByte - 1); byteIndex++) {
+ tempByte = spadArray[byteIndex];
+
+ for (bitIndex = 0; bitIndex <= cSpadsPerByte; bitIndex++) {
+ if ((tempByte & 0x01) == 1) {
+ (*pTotalSpadsEnabled)++;
+
+ if (!spadTypeIdentified) {
+ *pIsAperture = 1;
+ if ((byteIndex < 2) && (bitIndex < 4))
+ *pIsAperture = 0;
+ spadTypeIdentified = 1;
+ }
+ }
+ tempByte >>= 1;
+ }
+ }
+
+ /* Count the number of bits enabled in the last byte accounting
+ * for the fact that not all bits in the byte may be used.
+ */
+ tempByte = spadArray[lastByte];
+
+ for (bitIndex = 0; bitIndex <= lastBit; bitIndex++) {
+ if ((tempByte & 0x01) == 1)
+ (*pTotalSpadsEnabled)++;
+ }
+
+ return status;
+}
+
+VL53L0X_Error set_ref_spad_map(VL53L0X_DEV Dev, uint8_t *refSpadArray)
+{
+ VL53L0X_Error status = VL53L0X_WriteMulti(Dev,
+ VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0,
+ refSpadArray, 6);
+ return status;
+}
+
+VL53L0X_Error get_ref_spad_map(VL53L0X_DEV Dev, uint8_t *refSpadArray)
+{
+ VL53L0X_Error status = VL53L0X_ReadMulti(Dev,
+ VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0,
+ refSpadArray,
+ 6);
+ return status;
+}
+
+VL53L0X_Error enable_ref_spads(VL53L0X_DEV Dev,
+ uint8_t apertureSpads,
+ uint8_t goodSpadArray[],
+ uint8_t spadArray[],
+ uint32_t size,
+ uint32_t start,
+ uint32_t offset,
+ uint32_t spadCount,
+ uint32_t *lastSpad)
+{
+ VL53L0X_Error status = VL53L0X_ERROR_NONE;
+ uint32_t index;
+ uint32_t i;
+ int32_t nextGoodSpad = offset;
+ uint32_t currentSpad;
+ uint8_t checkSpadArray[6];
+
+ /*
+ * This function takes in a spad array which may or may not have SPADS
+ * already enabled and appends from a given offset a requested number
+ * of new SPAD enables. The 'good spad map' is applied to
+ * determine the next SPADs to enable.
+ *
+ * This function applies to only aperture or only non-aperture spads.
+ * Checks are performed to ensure this.
+ */
+
+ currentSpad = offset;
+ for (index = 0; index < spadCount; index++) {
+ get_next_good_spad(goodSpadArray, size, currentSpad,
+ &nextGoodSpad);
+
+ if (nextGoodSpad == -1) {
+ status = VL53L0X_ERROR_REF_SPAD_INIT;
+ break;
+ }
+
+ /* Confirm that the next good SPAD is non-aperture */
+ if (is_aperture(start + nextGoodSpad) != apertureSpads) {
+ /* if we can't get the required number of good aperture
+ * spads from the current quadrant then this is an error
+ */
+ status = VL53L0X_ERROR_REF_SPAD_INIT;
+ break;
+ }
+ currentSpad = (uint32_t)nextGoodSpad;
+ enable_spad_bit(spadArray, size, currentSpad);
+ currentSpad++;
+ }
+ *lastSpad = currentSpad;
+
+ if (status == VL53L0X_ERROR_NONE)
+ status = set_ref_spad_map(Dev, spadArray);
+
+
+ if (status == VL53L0X_ERROR_NONE) {
+ status = get_ref_spad_map(Dev, checkSpadArray);
+
+ i = 0;
+
+ /* Compare spad maps. If not equal report error. */
+ while (i < size) {
+ if (spadArray[i] != checkSpadArray[i]) {
+ status = VL53L0X_ERROR_REF_SPAD_INIT;
+ break;
+ }
+ i++;
+ }
+ }
+ return status;
+}
+
+
+VL53L0X_Error perform_ref_signal_measurement(VL53L0X_DEV Dev,
+ uint16_t *refSignalRate)
+{
+ VL53L0X_Error status = VL53L0X_ERROR_NONE;
+ VL53L0X_RangingMeasurementData_t rangingMeasurementData;
+
+ uint8_t SequenceConfig = 0;
+
+ /* store the value of the sequence config,
+ * this will be reset before the end of the function
+ */
+
+ SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
+
+ /*
+ * This function performs a reference signal rate measurement.
+ */
+ if (status == VL53L0X_ERROR_NONE)
+ status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, 0xC0);
+
+ if (status == VL53L0X_ERROR_NONE)
+ status = VL53L0X_PerformSingleRangingMeasurement(Dev,
+ &rangingMeasurementData);
+
+ if (status == VL53L0X_ERROR_NONE)
+ status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+
+ if (status == VL53L0X_ERROR_NONE)
+ status = VL53L0X_RdWord(Dev,
+ VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF,
+ refSignalRate);
+
+ if (status == VL53L0X_ERROR_NONE)
+ status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+ if (status == VL53L0X_ERROR_NONE) {
+ /* restore the previous Sequence Config */
+ status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ SequenceConfig);
+ if (status == VL53L0X_ERROR_NONE)
+ PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+ }
+
+ return status;
+}
+
+VL53L0X_Error VL53L0X_perform_ref_spad_management(VL53L0X_DEV Dev,
+ uint32_t *refSpadCount,
+ uint8_t *isApertureSpads)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t lastSpadArray[6];
+ uint8_t startSelect = 0xB4;
+ uint32_t minimumSpadCount = 3;
+ uint32_t maxSpadCount = 44;
+ uint32_t currentSpadIndex = 0;
+ uint32_t lastSpadIndex = 0;
+ int32_t nextGoodSpad = 0;
+ uint16_t targetRefRate = 0x0A00; /* 20 MCPS in 9:7 format */
+ uint16_t peakSignalRateRef;
+ uint32_t needAptSpads = 0;
+ uint32_t index = 0;
+ uint32_t spadArraySize = 6;
+ uint32_t signalRateDiff = 0;
+ uint32_t lastSignalRateDiff = 0;
+ uint8_t complete = 0;
+ uint8_t VhvSettings = 0;
+ uint8_t PhaseCal = 0;
+ uint32_t refSpadCount_int = 0;
+ uint8_t isApertureSpads_int = 0;
+
+ /*
+ * The reference SPAD initialization procedure determines the minimum
+ * amount of reference spads to be enables to achieve a target reference
+ * signal rate and should be performed once during initialization.
+ *
+ * Either aperture or non-aperture spads are applied but never both.
+ * Firstly non-aperture spads are set, begining with 5 spads, and
+ * increased one spad at a time until the closest measurement to the
+ * target rate is achieved.
+ *
+ * If the target rate is exceeded when 5 non-aperture spads are enabled,
+ * initialization is performed instead with aperture spads.
+ *
+ * When setting spads, a 'Good Spad Map' is applied.
+ *
+ * This procedure operates within a SPAD window of interest of a maximum
+ * 44 spads.
+ * The start point is currently fixed to 180, which lies towards the end
+ * of the non-aperture quadrant and runs in to the adjacent aperture
+ * quadrant.
+ */
+
+
+ targetRefRate = PALDevDataGet(Dev, targetRefRate);
+
+ /*
+ * Initialize Spad arrays.
+ * Currently the good spad map is initialised to 'All good'.
+ * This is a short term implementation. The good spad map will be
+ * provided as an input.
+ * Note that there are 6 bytes. Only the first 44 bits will be used to
+ * represent spads.
+ */
+ for (index = 0; index < spadArraySize; index++)
+ Dev->Data.SpadData.RefSpadEnables[index] = 0;
+
+
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET, 0x00);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD, 0x2C);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT,
+ startSelect);
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_POWER_MANAGEMENT_GO1_POWER_FORCE, 0);
+
+ /* Perform ref calibration */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_perform_ref_calibration(Dev, &VhvSettings,
+ &PhaseCal, 0);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* Enable Minimum NON-APERTURE Spads */
+ currentSpadIndex = 0;
+ lastSpadIndex = currentSpadIndex;
+ needAptSpads = 0;
+ Status = enable_ref_spads(Dev,
+ needAptSpads,
+ Dev->Data.SpadData.RefGoodSpadMap,
+ Dev->Data.SpadData.RefSpadEnables,
+ spadArraySize,
+ startSelect,
+ currentSpadIndex,
+ minimumSpadCount,
+ &lastSpadIndex);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ currentSpadIndex = lastSpadIndex;
+
+ Status = perform_ref_signal_measurement(Dev,
+ &peakSignalRateRef);
+ if ((Status == VL53L0X_ERROR_NONE) &&
+ (peakSignalRateRef > targetRefRate)) {
+ /* Signal rate measurement too high,
+ * switch to APERTURE SPADs */
+
+ for (index = 0; index < spadArraySize; index++)
+ Dev->Data.SpadData.RefSpadEnables[index] = 0;
+
+
+ /* Increment to the first APERTURE spad */
+ while ((is_aperture(startSelect + currentSpadIndex)
+ == 0) && (currentSpadIndex < maxSpadCount)) {
+ currentSpadIndex++;
+ }
+
+ needAptSpads = 1;
+
+ Status = enable_ref_spads(Dev,
+ needAptSpads,
+ Dev->Data.SpadData.RefGoodSpadMap,
+ Dev->Data.SpadData.RefSpadEnables,
+ spadArraySize,
+ startSelect,
+ currentSpadIndex,
+ minimumSpadCount,
+ &lastSpadIndex);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ currentSpadIndex = lastSpadIndex;
+ Status = perform_ref_signal_measurement(Dev,
+ &peakSignalRateRef);
+
+ if ((Status == VL53L0X_ERROR_NONE) &&
+ (peakSignalRateRef > targetRefRate)) {
+ /* Signal rate still too high after
+ * setting the minimum number of
+ * APERTURE spads. Can do no more
+ * therefore set the min number of
+ * aperture spads as the result.
+ */
+ isApertureSpads_int = 1;
+ refSpadCount_int = minimumSpadCount;
+ }
+ }
+ } else {
+ needAptSpads = 0;
+ }
+ }
+
+ if ((Status == VL53L0X_ERROR_NONE) &&
+ (peakSignalRateRef < targetRefRate)) {
+ /* At this point, the minimum number of either aperture
+ * or non-aperture spads have been set. Proceed to add
+ * spads and perform measurements until the target
+ * reference is reached.
+ */
+ isApertureSpads_int = needAptSpads;
+ refSpadCount_int = minimumSpadCount;
+
+ memcpy(lastSpadArray, Dev->Data.SpadData.RefSpadEnables,
+ spadArraySize);
+ lastSignalRateDiff = abs(peakSignalRateRef -
+ targetRefRate);
+ complete = 0;
+
+ while (!complete) {
+ get_next_good_spad(
+ Dev->Data.SpadData.RefGoodSpadMap,
+ spadArraySize, currentSpadIndex,
+ &nextGoodSpad);
+
+ if (nextGoodSpad == -1) {
+ Status = VL53L0X_ERROR_REF_SPAD_INIT;
+ break;
+ }
+
+ (refSpadCount_int)++;
+
+ /* Cannot combine Aperture and Non-Aperture spads, so
+ * ensure the current spad is of the correct type.
+ */
+ if (is_aperture((uint32_t)startSelect + nextGoodSpad) !=
+ needAptSpads) {
+ Status = VL53L0X_ERROR_REF_SPAD_INIT;
+ break;
+ }
+
+ currentSpadIndex = nextGoodSpad;
+ Status = enable_spad_bit(
+ Dev->Data.SpadData.RefSpadEnables,
+ spadArraySize, currentSpadIndex);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ currentSpadIndex++;
+ /* Proceed to apply the additional spad and
+ * perform measurement. */
+ Status = set_ref_spad_map(Dev,
+ Dev->Data.SpadData.RefSpadEnables);
+ }
+
+ if (Status != VL53L0X_ERROR_NONE)
+ break;
+
+ Status = perform_ref_signal_measurement(Dev,
+ &peakSignalRateRef);
+
+ if (Status != VL53L0X_ERROR_NONE)
+ break;
+
+ signalRateDiff = abs(peakSignalRateRef - targetRefRate);
+
+ if (peakSignalRateRef > targetRefRate) {
+ /* Select the spad map that provides the
+ * measurement closest to the target rate,
+ * either above or below it.
+ */
+ if (signalRateDiff > lastSignalRateDiff) {
+ /* Previous spad map produced a closer
+ * measurement, so choose this. */
+ Status = set_ref_spad_map(Dev,
+ lastSpadArray);
+ memcpy(
+ Dev->Data.SpadData.RefSpadEnables,
+ lastSpadArray, spadArraySize);
+
+ (refSpadCount_int)--;
+ }
+ complete = 1;
+ } else {
+ /* Continue to add spads */
+ lastSignalRateDiff = signalRateDiff;
+ memcpy(lastSpadArray,
+ Dev->Data.SpadData.RefSpadEnables,
+ spadArraySize);
+ }
+
+ } /* while */
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ *refSpadCount = refSpadCount_int;
+ *isApertureSpads = isApertureSpads_int;
+
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, RefSpadsInitialised, 1);
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ ReferenceSpadCount, (uint8_t)(*refSpadCount));
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ ReferenceSpadType, *isApertureSpads);
+ }
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_set_reference_spads(VL53L0X_DEV Dev,
+ uint32_t count, uint8_t isApertureSpads)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint32_t currentSpadIndex = 0;
+ uint8_t startSelect = 0xB4;
+ uint32_t spadArraySize = 6;
+ uint32_t maxSpadCount = 44;
+ uint32_t lastSpadIndex;
+ uint32_t index;
+
+ /*
+ * This function applies a requested number of reference spads, either
+ * aperture or
+ * non-aperture, as requested.
+ * The good spad map will be applied.
+ */
+
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET, 0x00);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD, 0x2C);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT,
+ startSelect);
+
+ for (index = 0; index < spadArraySize; index++)
+ Dev->Data.SpadData.RefSpadEnables[index] = 0;
+
+ if (isApertureSpads) {
+ /* Increment to the first APERTURE spad */
+ while ((is_aperture(startSelect + currentSpadIndex) == 0) &&
+ (currentSpadIndex < maxSpadCount)) {
+ currentSpadIndex++;
+ }
+ }
+ Status = enable_ref_spads(Dev,
+ isApertureSpads,
+ Dev->Data.SpadData.RefGoodSpadMap,
+ Dev->Data.SpadData.RefSpadEnables,
+ spadArraySize,
+ startSelect,
+ currentSpadIndex,
+ count,
+ &lastSpadIndex);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, RefSpadsInitialised, 1);
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ ReferenceSpadCount, (uint8_t)(count));
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ ReferenceSpadType, isApertureSpads);
+ }
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_get_reference_spads(VL53L0X_DEV Dev,
+ uint32_t *pSpadCount, uint8_t *pIsApertureSpads)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t refSpadsInitialised;
+ uint8_t refSpadArray[6];
+ uint32_t cMaxSpadCount = 44;
+ uint32_t cSpadArraySize = 6;
+ uint32_t spadsEnabled;
+ uint8_t isApertureSpads = 0;
+
+ refSpadsInitialised = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ RefSpadsInitialised);
+
+ if (refSpadsInitialised == 1) {
+
+ *pSpadCount = (uint32_t)VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ ReferenceSpadCount);
+ *pIsApertureSpads = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ ReferenceSpadType);
+ } else {
+
+ /* obtain spad info from device.*/
+ Status = get_ref_spad_map(Dev, refSpadArray);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* count enabled spads within spad map array and
+ * determine if Aperture or Non-Aperture.
+ */
+ Status = count_enabled_spads(refSpadArray,
+ cSpadArraySize,
+ cMaxSpadCount,
+ &spadsEnabled,
+ &isApertureSpads);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+
+ *pSpadCount = spadsEnabled;
+ *pIsApertureSpads = isApertureSpads;
+
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ RefSpadsInitialised, 1);
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ ReferenceSpadCount,
+ (uint8_t)spadsEnabled);
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ ReferenceSpadType, isApertureSpads);
+ }
+ }
+ }
+
+ return Status;
+}
+
+
+VL53L0X_Error VL53L0X_perform_single_ref_calibration(VL53L0X_DEV Dev,
+ uint8_t vhv_init_byte)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START,
+ VL53L0X_REG_SYSRANGE_MODE_START_STOP |
+ vhv_init_byte);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_measurement_poll_for_completion(Dev);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_ClearInterruptMask(Dev, 0);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSRANGE_START, 0x00);
+
+ return Status;
+}
+
+
+VL53L0X_Error VL53L0X_ref_calibration_io(VL53L0X_DEV Dev, uint8_t read_not_write,
+ uint8_t VhvSettings, uint8_t PhaseCal,
+ uint8_t *pVhvSettings, uint8_t *pPhaseCal,
+ const uint8_t vhv_enable, const uint8_t phase_enable)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t PhaseCalint = 0;
+
+ /* Read VHV from device */
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+ if (read_not_write) {
+ if (vhv_enable)
+ Status |= VL53L0X_RdByte(Dev, 0xCB, pVhvSettings);
+ if (phase_enable)
+ Status |= VL53L0X_RdByte(Dev, 0xEE, &PhaseCalint);
+ } else {
+ if (vhv_enable)
+ Status |= VL53L0X_WrByte(Dev, 0xCB, VhvSettings);
+ if (phase_enable)
+ Status |= VL53L0X_UpdateByte(Dev, 0xEE, 0x80, PhaseCal);
+ }
+
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ Status |= VL53L0X_WrByte(Dev, 0x00, 0x01);
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+ *pPhaseCal = (uint8_t)(PhaseCalint&0xEF);
+
+ return Status;
+}
+
+
+VL53L0X_Error VL53L0X_perform_vhv_calibration(VL53L0X_DEV Dev,
+ uint8_t *pVhvSettings, const uint8_t get_data_enable,
+ const uint8_t restore_config)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t SequenceConfig = 0;
+ uint8_t VhvSettings = 0;
+ uint8_t PhaseCal = 0;
+ uint8_t PhaseCalInt = 0;
+
+ /* store the value of the sequence config,
+ * this will be reset before the end of the function
+ */
+
+ if (restore_config)
+ SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
+
+ /* Run VHV */
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, 0x01);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_perform_single_ref_calibration(Dev, 0x40);
+
+ /* Read VHV from device */
+ if ((Status == VL53L0X_ERROR_NONE) && (get_data_enable == 1)) {
+ Status = VL53L0X_ref_calibration_io(Dev, 1,
+ VhvSettings, PhaseCal, /* Not used here */
+ pVhvSettings, &PhaseCalInt,
+ 1, 0);
+ } else
+ *pVhvSettings = 0;
+
+
+ if ((Status == VL53L0X_ERROR_NONE) && restore_config) {
+ /* restore the previous Sequence Config */
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ SequenceConfig);
+ if (Status == VL53L0X_ERROR_NONE)
+ PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+
+ }
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_perform_phase_calibration(VL53L0X_DEV Dev,
+ uint8_t *pPhaseCal, const uint8_t get_data_enable,
+ const uint8_t restore_config)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t SequenceConfig = 0;
+ uint8_t VhvSettings = 0;
+ uint8_t PhaseCal = 0;
+ uint8_t VhvSettingsint;
+
+ /* store the value of the sequence config,
+ * this will be reset before the end of the function
+ */
+
+ if (restore_config)
+ SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
+
+ /* Run PhaseCal */
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG, 0x02);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_perform_single_ref_calibration(Dev, 0x0);
+
+ /* Read PhaseCal from device */
+ if ((Status == VL53L0X_ERROR_NONE) && (get_data_enable == 1)) {
+ Status = VL53L0X_ref_calibration_io(Dev, 1,
+ VhvSettings, PhaseCal, /* Not used here */
+ &VhvSettingsint, pPhaseCal,
+ 0, 1);
+ } else
+ *pPhaseCal = 0;
+
+
+ if ((Status == VL53L0X_ERROR_NONE) && restore_config) {
+ /* restore the previous Sequence Config */
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ SequenceConfig);
+ if (Status == VL53L0X_ERROR_NONE)
+ PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+
+ }
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_perform_ref_calibration(VL53L0X_DEV Dev,
+ uint8_t *pVhvSettings, uint8_t *pPhaseCal, uint8_t get_data_enable)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t SequenceConfig = 0;
+
+ /* store the value of the sequence config,
+ * this will be reset before the end of the function
+ */
+
+ SequenceConfig = PALDevDataGet(Dev, SequenceConfig);
+
+ /* In the following function we don't save the config to optimize
+ * writes on device. Config is saved and restored only once. */
+ Status = VL53L0X_perform_vhv_calibration(
+ Dev, pVhvSettings, get_data_enable, 0);
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_perform_phase_calibration(
+ Dev, pPhaseCal, get_data_enable, 0);
+
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* restore the previous Sequence Config */
+ Status = VL53L0X_WrByte(Dev, VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG,
+ SequenceConfig);
+ if (Status == VL53L0X_ERROR_NONE)
+ PALDevDataSet(Dev, SequenceConfig, SequenceConfig);
+
+ }
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_set_ref_calibration(VL53L0X_DEV Dev,
+ uint8_t VhvSettings, uint8_t PhaseCal)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t pVhvSettings;
+ uint8_t pPhaseCal;
+
+ Status = VL53L0X_ref_calibration_io(Dev, 0,
+ VhvSettings, PhaseCal,
+ &pVhvSettings, &pPhaseCal,
+ 1, 1);
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_get_ref_calibration(VL53L0X_DEV Dev,
+ uint8_t *pVhvSettings, uint8_t *pPhaseCal)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t VhvSettings = 0;
+ uint8_t PhaseCal = 0;
+
+ Status = VL53L0X_ref_calibration_io(Dev, 1,
+ VhvSettings, PhaseCal,
+ pVhvSettings, pPhaseCal,
+ 1, 1);
+
+ return Status;
+}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h
new file mode 100644
index 000000000..7757e76d0
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h
@@ -0,0 +1,110 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#ifndef _VL53L0X_API_CALIBRATION_H_
+#define _VL53L0X_API_CALIBRATION_H_
+
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+VL53L0X_Error VL53L0X_perform_xtalk_calibration(VL53L0X_DEV Dev,
+ FixPoint1616_t XTalkCalDistance,
+ FixPoint1616_t *pXTalkCompensationRateMegaCps);
+
+VL53L0X_Error VL53L0X_perform_offset_calibration(VL53L0X_DEV Dev,
+ FixPoint1616_t CalDistanceMilliMeter,
+ int32_t *pOffsetMicroMeter);
+
+VL53L0X_Error VL53L0X_set_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
+ int32_t OffsetCalibrationDataMicroMeter);
+
+VL53L0X_Error VL53L0X_get_offset_calibration_data_micro_meter(VL53L0X_DEV Dev,
+ int32_t *pOffsetCalibrationDataMicroMeter);
+
+VL53L0X_Error VL53L0X_apply_offset_adjustment(VL53L0X_DEV Dev);
+
+VL53L0X_Error VL53L0X_perform_ref_spad_management(VL53L0X_DEV Dev,
+ uint32_t *refSpadCount, uint8_t *isApertureSpads);
+
+VL53L0X_Error VL53L0X_set_reference_spads(VL53L0X_DEV Dev,
+ uint32_t count, uint8_t isApertureSpads);
+
+VL53L0X_Error VL53L0X_get_reference_spads(VL53L0X_DEV Dev,
+ uint32_t *pSpadCount, uint8_t *pIsApertureSpads);
+
+VL53L0X_Error VL53L0X_perform_phase_calibration(VL53L0X_DEV Dev,
+ uint8_t *pPhaseCal, const uint8_t get_data_enable,
+ const uint8_t restore_config);
+
+VL53L0X_Error VL53L0X_perform_ref_calibration(VL53L0X_DEV Dev,
+ uint8_t *pVhvSettings, uint8_t *pPhaseCal, uint8_t get_data_enable);
+
+VL53L0X_Error VL53L0X_set_ref_calibration(VL53L0X_DEV Dev,
+ uint8_t VhvSettings, uint8_t PhaseCal);
+
+VL53L0X_Error VL53L0X_get_ref_calibration(VL53L0X_DEV Dev,
+ uint8_t *pVhvSettings, uint8_t *pPhaseCal);
+
+VL53L0X_Error enable_spad_bit(uint8_t spadArray[], uint32_t size,
+ uint32_t spadIndex);
+
+VL53L0X_Error count_enabled_spads(uint8_t spadArray[],
+ uint32_t byteCount, uint32_t maxSpads,
+ uint32_t *pTotalSpadsEnabled, uint8_t *pIsAperture);
+
+VL53L0X_Error set_ref_spad_map(VL53L0X_DEV Dev, uint8_t *refSpadArray);
+
+VL53L0X_Error get_ref_spad_map(VL53L0X_DEV Dev, uint8_t *refSpadArray);
+
+VL53L0X_Error enable_ref_spads(VL53L0X_DEV Dev,
+ uint8_t apertureSpads,
+ uint8_t goodSpadArray[],
+ uint8_t spadArray[],
+ uint32_t size,
+ uint32_t start,
+ uint32_t offset,
+ uint32_t spadCount,
+ uint32_t *lastSpad);
+
+VL53L0X_Error perform_ref_signal_measurement(VL53L0X_DEV Dev,
+ uint16_t *refSignalRate);
+
+
+VL53L0X_Error VL53L0X_perform_single_ref_calibration(VL53L0X_DEV Dev,
+ uint8_t vhv_init_byte);
+
+VL53L0X_Error VL53L0X_ref_calibration_io(VL53L0X_DEV Dev, uint8_t read_not_write,
+ uint8_t VhvSettings, uint8_t PhaseCal,
+ uint8_t *pVhvSettings, uint8_t *pPhaseCal,
+ const uint8_t vhv_enable, const uint8_t phase_enable);
+
+VL53L0X_Error VL53L0X_perform_vhv_calibration(VL53L0X_DEV Dev,
+ uint8_t *pVhvSettings, const uint8_t get_data_enable,
+ const uint8_t restore_config);
+
+void get_next_good_spad(uint8_t goodSpadArray[], uint32_t size,
+ uint32_t curr, int32_t *next);
+
+uint8_t is_aperture(uint32_t spadIndex);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VL53L0X_API_CALIBRATION_H_ */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.c
new file mode 100644
index 000000000..1d7d30081
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.c
@@ -0,0 +1,2243 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#include "vl53l0x_api.h"
+#include "vl53l0x_api_core.h"
+#include "vl53l0x_api_calibration.h"
+
+
+#ifndef __KERNEL__
+#include <stdlib.h>
+#endif
+#define LOG_FUNCTION_START(fmt, ...) \
+ _LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
+#define LOG_FUNCTION_END(status, ...) \
+ _LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
+#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
+ _LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
+
+VL53L0X_Error VL53L0X_reverse_bytes(uint8_t *data, uint32_t size)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t tempData;
+ uint32_t mirrorIndex;
+ uint32_t middle = size/2;
+ uint32_t index;
+
+ for (index = 0; index < middle; index++) {
+ mirrorIndex = size - index - 1;
+ tempData = data[index];
+ data[index] = data[mirrorIndex];
+ data[mirrorIndex] = tempData;
+ }
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_measurement_poll_for_completion(VL53L0X_DEV Dev)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t NewDataReady = 0;
+ uint32_t LoopNb;
+
+ LOG_FUNCTION_START("");
+
+ LoopNb = 0;
+
+ do {
+ Status = VL53L0X_GetMeasurementDataReady(Dev, &NewDataReady);
+ if (Status != 0)
+ break; /* the error is set */
+
+ if (NewDataReady == 1)
+ break; /* done note that status == 0 */
+
+ LoopNb++;
+ if (LoopNb >= VL53L0X_DEFAULT_MAX_LOOP) {
+ Status = VL53L0X_ERROR_TIME_OUT;
+ break;
+ }
+
+ VL53L0X_PollingDelay(Dev);
+ } while (1);
+
+ LOG_FUNCTION_END(Status);
+
+ return Status;
+}
+
+
+uint8_t VL53L0X_decode_vcsel_period(uint8_t vcsel_period_reg)
+{
+ /*!
+ * Converts the encoded VCSEL period register value into the real
+ * period in PLL clocks
+ */
+
+ uint8_t vcsel_period_pclks = 0;
+
+ vcsel_period_pclks = (vcsel_period_reg + 1) << 1;
+
+ return vcsel_period_pclks;
+}
+
+uint8_t VL53L0X_encode_vcsel_period(uint8_t vcsel_period_pclks)
+{
+ /*!
+ * Converts the encoded VCSEL period register value into the real period
+ * in PLL clocks
+ */
+
+ uint8_t vcsel_period_reg = 0;
+
+ vcsel_period_reg = (vcsel_period_pclks >> 1) - 1;
+
+ return vcsel_period_reg;
+}
+
+
+uint32_t VL53L0X_isqrt(uint32_t num)
+{
+ /*
+ * Implements an integer square root
+ *
+ * From: http://en.wikipedia.org/wiki/Methods_of_computing_square_roots
+ */
+
+ uint32_t res = 0;
+ uint32_t bit = 1 << 30;
+ /* The second-to-top bit is set:
+ * 1 << 14 for 16-bits, 1 << 30 for 32 bits */
+
+ /* "bit" starts at the highest power of four <= the argument. */
+ while (bit > num)
+ bit >>= 2;
+
+
+ while (bit != 0) {
+ if (num >= res + bit) {
+ num -= res + bit;
+ res = (res >> 1) + bit;
+ } else
+ res >>= 1;
+
+ bit >>= 2;
+ }
+
+ return res;
+}
+
+
+uint32_t VL53L0X_quadrature_sum(uint32_t a, uint32_t b)
+{
+ /*
+ * Implements a quadrature sum
+ *
+ * rea = sqrt(a^2 + b^2)
+ *
+ * Trap overflow case max input value is 65535 (16-bit value)
+ * as internal calc are 32-bit wide
+ *
+ * If overflow then seta output to maximum
+ */
+ uint32_t res = 0;
+
+ if (a > 65535 || b > 65535)
+ res = 65535;
+ else
+ res = VL53L0X_isqrt(a * a + b * b);
+
+ return res;
+}
+
+
+VL53L0X_Error VL53L0X_device_read_strobe(VL53L0X_DEV Dev)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t strobe;
+ uint32_t LoopNb;
+ LOG_FUNCTION_START("");
+
+ Status |= VL53L0X_WrByte(Dev, 0x83, 0x00);
+
+ /* polling
+ * use timeout to avoid deadlock*/
+ if (Status == VL53L0X_ERROR_NONE) {
+ LoopNb = 0;
+ do {
+ Status = VL53L0X_RdByte(Dev, 0x83, &strobe);
+ if ((strobe != 0x00) || Status != VL53L0X_ERROR_NONE)
+ break;
+
+ LoopNb = LoopNb + 1;
+ } while (LoopNb < VL53L0X_DEFAULT_MAX_LOOP);
+
+ if (LoopNb >= VL53L0X_DEFAULT_MAX_LOOP)
+ Status = VL53L0X_ERROR_TIME_OUT;
+
+ }
+
+ Status |= VL53L0X_WrByte(Dev, 0x83, 0x01);
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+
+}
+
+VL53L0X_Error VL53L0X_get_info_from_device(VL53L0X_DEV Dev, uint8_t option)
+{
+
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t byte;
+ uint32_t TmpDWord;
+ uint8_t ModuleId;
+ uint8_t Revision;
+ uint8_t ReferenceSpadCount = 0;
+ uint8_t ReferenceSpadType = 0;
+ uint32_t PartUIDUpper = 0;
+ uint32_t PartUIDLower = 0;
+ uint32_t OffsetFixed1104_mm = 0;
+ int16_t OffsetMicroMeters = 0;
+ uint32_t DistMeasTgtFixed1104_mm = 400 << 4;
+ uint32_t DistMeasFixed1104_400_mm = 0;
+ uint32_t SignalRateMeasFixed1104_400_mm = 0;
+ char ProductId[19];
+ char *ProductId_tmp;
+ uint8_t ReadDataFromDeviceDone;
+ FixPoint1616_t SignalRateMeasFixed400mmFix = 0;
+ uint8_t NvmRefGoodSpadMap[VL53L0X_REF_SPAD_BUFFER_SIZE];
+ int i;
+
+
+ LOG_FUNCTION_START("");
+
+ ReadDataFromDeviceDone = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ ReadDataFromDeviceDone);
+
+ /* This access is done only once after that a GetDeviceInfo or
+ * datainit is done*/
+ if (ReadDataFromDeviceDone != 7) {
+
+ Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ Status |= VL53L0X_WrByte(Dev, 0x00, 0x00);
+
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x06);
+ Status |= VL53L0X_RdByte(Dev, 0x83, &byte);
+ Status |= VL53L0X_WrByte(Dev, 0x83, byte|4);
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x07);
+ Status |= VL53L0X_WrByte(Dev, 0x81, 0x01);
+
+ Status |= VL53L0X_PollingDelay(Dev);
+
+ Status |= VL53L0X_WrByte(Dev, 0x80, 0x01);
+
+ if (((option & 1) == 1) &&
+ ((ReadDataFromDeviceDone & 1) == 0)) {
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x6b);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+ ReferenceSpadCount = (uint8_t)((TmpDWord >> 8) & 0x07f);
+ ReferenceSpadType = (uint8_t)((TmpDWord >> 15) & 0x01);
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x24);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+
+ NvmRefGoodSpadMap[0] = (uint8_t)((TmpDWord >> 24)
+ & 0xff);
+ NvmRefGoodSpadMap[1] = (uint8_t)((TmpDWord >> 16)
+ & 0xff);
+ NvmRefGoodSpadMap[2] = (uint8_t)((TmpDWord >> 8)
+ & 0xff);
+ NvmRefGoodSpadMap[3] = (uint8_t)(TmpDWord & 0xff);
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x25);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+ NvmRefGoodSpadMap[4] = (uint8_t)((TmpDWord >> 24)
+ & 0xff);
+ NvmRefGoodSpadMap[5] = (uint8_t)((TmpDWord >> 16)
+ & 0xff);
+ }
+
+ if (((option & 2) == 2) &&
+ ((ReadDataFromDeviceDone & 2) == 0)) {
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x02);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdByte(Dev, 0x90, &ModuleId);
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x7B);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdByte(Dev, 0x90, &Revision);
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x77);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+ ProductId[0] = (char)((TmpDWord >> 25) & 0x07f);
+ ProductId[1] = (char)((TmpDWord >> 18) & 0x07f);
+ ProductId[2] = (char)((TmpDWord >> 11) & 0x07f);
+ ProductId[3] = (char)((TmpDWord >> 4) & 0x07f);
+
+ byte = (uint8_t)((TmpDWord & 0x00f) << 3);
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x78);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+ ProductId[4] = (char)(byte +
+ ((TmpDWord >> 29) & 0x07f));
+ ProductId[5] = (char)((TmpDWord >> 22) & 0x07f);
+ ProductId[6] = (char)((TmpDWord >> 15) & 0x07f);
+ ProductId[7] = (char)((TmpDWord >> 8) & 0x07f);
+ ProductId[8] = (char)((TmpDWord >> 1) & 0x07f);
+
+ byte = (uint8_t)((TmpDWord & 0x001) << 6);
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x79);
+
+ Status |= VL53L0X_device_read_strobe(Dev);
+
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+ ProductId[9] = (char)(byte +
+ ((TmpDWord >> 26) & 0x07f));
+ ProductId[10] = (char)((TmpDWord >> 19) & 0x07f);
+ ProductId[11] = (char)((TmpDWord >> 12) & 0x07f);
+ ProductId[12] = (char)((TmpDWord >> 5) & 0x07f);
+
+ byte = (uint8_t)((TmpDWord & 0x01f) << 2);
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x7A);
+
+ Status |= VL53L0X_device_read_strobe(Dev);
+
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+ ProductId[13] = (char)(byte +
+ ((TmpDWord >> 30) & 0x07f));
+ ProductId[14] = (char)((TmpDWord >> 23) & 0x07f);
+ ProductId[15] = (char)((TmpDWord >> 16) & 0x07f);
+ ProductId[16] = (char)((TmpDWord >> 9) & 0x07f);
+ ProductId[17] = (char)((TmpDWord >> 2) & 0x07f);
+ ProductId[18] = '\0';
+
+ }
+
+ if (((option & 4) == 4) &&
+ ((ReadDataFromDeviceDone & 4) == 0)) {
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x7B);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &PartUIDUpper);
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x7C);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &PartUIDLower);
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x73);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+ SignalRateMeasFixed1104_400_mm = (TmpDWord &
+ 0x000000ff) << 8;
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x74);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+ SignalRateMeasFixed1104_400_mm |= ((TmpDWord &
+ 0xff000000) >> 24);
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x75);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+ DistMeasFixed1104_400_mm = (TmpDWord & 0x000000ff)
+ << 8;
+
+ Status |= VL53L0X_WrByte(Dev, 0x94, 0x76);
+ Status |= VL53L0X_device_read_strobe(Dev);
+ Status |= VL53L0X_RdDWord(Dev, 0x90, &TmpDWord);
+
+ DistMeasFixed1104_400_mm |= ((TmpDWord & 0xff000000)
+ >> 24);
+ }
+
+ Status |= VL53L0X_WrByte(Dev, 0x81, 0x00);
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x06);
+ Status |= VL53L0X_RdByte(Dev, 0x83, &byte);
+ Status |= VL53L0X_WrByte(Dev, 0x83, byte&0xfb);
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x01);
+ Status |= VL53L0X_WrByte(Dev, 0x00, 0x01);
+
+ Status |= VL53L0X_WrByte(Dev, 0xFF, 0x00);
+ Status |= VL53L0X_WrByte(Dev, 0x80, 0x00);
+ }
+
+ if ((Status == VL53L0X_ERROR_NONE) &&
+ (ReadDataFromDeviceDone != 7)) {
+ /* Assign to variable if status is ok */
+ if (((option & 1) == 1) &&
+ ((ReadDataFromDeviceDone & 1) == 0)) {
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ ReferenceSpadCount, ReferenceSpadCount);
+
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ ReferenceSpadType, ReferenceSpadType);
+
+ for (i = 0; i < VL53L0X_REF_SPAD_BUFFER_SIZE; i++) {
+ Dev->Data.SpadData.RefGoodSpadMap[i] =
+ NvmRefGoodSpadMap[i];
+ }
+ }
+
+ if (((option & 2) == 2) &&
+ ((ReadDataFromDeviceDone & 2) == 0)) {
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ ModuleId, ModuleId);
+
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ Revision, Revision);
+
+ ProductId_tmp = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ ProductId);
+ VL53L0X_COPYSTRING(ProductId_tmp, ProductId);
+
+ }
+
+ if (((option & 4) == 4) &&
+ ((ReadDataFromDeviceDone & 4) == 0)) {
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ PartUIDUpper, PartUIDUpper);
+
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ PartUIDLower, PartUIDLower);
+
+ SignalRateMeasFixed400mmFix =
+ VL53L0X_FIXPOINT97TOFIXPOINT1616(
+ SignalRateMeasFixed1104_400_mm);
+
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ SignalRateMeasFixed400mm,
+ SignalRateMeasFixed400mmFix);
+
+ OffsetMicroMeters = 0;
+ if (DistMeasFixed1104_400_mm != 0) {
+ OffsetFixed1104_mm =
+ DistMeasFixed1104_400_mm -
+ DistMeasTgtFixed1104_mm;
+ OffsetMicroMeters = (OffsetFixed1104_mm
+ * 1000) >> 4;
+ OffsetMicroMeters *= -1;
+ }
+
+ PALDevDataSet(Dev,
+ Part2PartOffsetAdjustmentNVMMicroMeter,
+ OffsetMicroMeters);
+ }
+ byte = (uint8_t)(ReadDataFromDeviceDone|option);
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, ReadDataFromDeviceDone,
+ byte);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+
+uint32_t VL53L0X_calc_macro_period_ps(VL53L0X_DEV Dev, uint8_t vcsel_period_pclks)
+{
+ uint64_t PLL_period_ps;
+ uint32_t macro_period_vclks;
+ uint32_t macro_period_ps;
+
+ LOG_FUNCTION_START("");
+
+ /* The above calculation will produce rounding errors,
+ therefore set fixed value
+ */
+ PLL_period_ps = 1655;
+
+ macro_period_vclks = 2304;
+ macro_period_ps = (uint32_t)(macro_period_vclks
+ * vcsel_period_pclks * PLL_period_ps);
+
+ LOG_FUNCTION_END("");
+ return macro_period_ps;
+}
+
+uint16_t VL53L0X_encode_timeout(uint32_t timeout_macro_clks)
+{
+ /*!
+ * Encode timeout in macro periods in (LSByte * 2^MSByte) + 1 format
+ */
+
+ uint16_t encoded_timeout = 0;
+ uint32_t ls_byte = 0;
+ uint16_t ms_byte = 0;
+
+ if (timeout_macro_clks > 0) {
+ ls_byte = timeout_macro_clks - 1;
+
+ while ((ls_byte & 0xFFFFFF00) > 0) {
+ ls_byte = ls_byte >> 1;
+ ms_byte++;
+ }
+
+ encoded_timeout = (ms_byte << 8)
+ + (uint16_t) (ls_byte & 0x000000FF);
+ }
+
+ return encoded_timeout;
+
+}
+
+uint32_t VL53L0X_decode_timeout(uint16_t encoded_timeout)
+{
+ /*!
+ * Decode 16-bit timeout register value - format (LSByte * 2^MSByte) + 1
+ */
+
+ uint32_t timeout_macro_clks = 0;
+
+ timeout_macro_clks = ((uint32_t) (encoded_timeout & 0x00FF)
+ << (uint32_t) ((encoded_timeout & 0xFF00) >> 8)) + 1;
+
+ return timeout_macro_clks;
+}
+
+
+/* To convert ms into register value */
+uint32_t VL53L0X_calc_timeout_mclks(VL53L0X_DEV Dev,
+ uint32_t timeout_period_us,
+ uint8_t vcsel_period_pclks)
+{
+ uint32_t macro_period_ps;
+ uint32_t macro_period_ns;
+ uint32_t timeout_period_mclks = 0;
+
+ macro_period_ps = VL53L0X_calc_macro_period_ps(Dev, vcsel_period_pclks);
+ macro_period_ns = (macro_period_ps + 500) / 1000;
+
+ timeout_period_mclks =
+ (uint32_t) (((timeout_period_us * 1000)
+ + (macro_period_ns / 2)) / macro_period_ns);
+
+ return timeout_period_mclks;
+}
+
+/* To convert register value into us */
+uint32_t VL53L0X_calc_timeout_us(VL53L0X_DEV Dev,
+ uint16_t timeout_period_mclks,
+ uint8_t vcsel_period_pclks)
+{
+ uint32_t macro_period_ps;
+ uint32_t macro_period_ns;
+ uint32_t actual_timeout_period_us = 0;
+
+ macro_period_ps = VL53L0X_calc_macro_period_ps(Dev, vcsel_period_pclks);
+ macro_period_ns = (macro_period_ps + 500) / 1000;
+
+ actual_timeout_period_us =
+ ((timeout_period_mclks * macro_period_ns)
+ + (macro_period_ns / 2)) / 1000;
+
+ return actual_timeout_period_us;
+}
+
+
+VL53L0X_Error get_sequence_step_timeout(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId,
+ uint32_t *pTimeOutMicroSecs)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t CurrentVCSELPulsePeriodPClk;
+ uint8_t EncodedTimeOutByte = 0;
+ uint32_t TimeoutMicroSeconds = 0;
+ uint16_t PreRangeEncodedTimeOut = 0;
+ uint16_t MsrcTimeOutMClks;
+ uint16_t PreRangeTimeOutMClks;
+ uint16_t FinalRangeTimeOutMClks = 0;
+ uint16_t FinalRangeEncodedTimeOut;
+ VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
+
+ if ((SequenceStepId == VL53L0X_SEQUENCESTEP_TCC) ||
+ (SequenceStepId == VL53L0X_SEQUENCESTEP_DSS) ||
+ (SequenceStepId == VL53L0X_SEQUENCESTEP_MSRC)) {
+
+ Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+ &CurrentVCSELPulsePeriodPClk);
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_RdByte(Dev,
+ VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP,
+ &EncodedTimeOutByte);
+ }
+ MsrcTimeOutMClks = VL53L0X_decode_timeout(EncodedTimeOutByte);
+
+ TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
+ MsrcTimeOutMClks,
+ CurrentVCSELPulsePeriodPClk);
+ } else if (SequenceStepId == VL53L0X_SEQUENCESTEP_PRE_RANGE) {
+ /* Retrieve PRE-RANGE VCSEL Period */
+ Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+ &CurrentVCSELPulsePeriodPClk);
+
+ /* Retrieve PRE-RANGE Timeout in Macro periods (MCLKS) */
+ if (Status == VL53L0X_ERROR_NONE) {
+
+ /* Retrieve PRE-RANGE VCSEL Period */
+ Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+ &CurrentVCSELPulsePeriodPClk);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_RdWord(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI,
+ &PreRangeEncodedTimeOut);
+ }
+
+ PreRangeTimeOutMClks = VL53L0X_decode_timeout(
+ PreRangeEncodedTimeOut);
+
+ TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
+ PreRangeTimeOutMClks,
+ CurrentVCSELPulsePeriodPClk);
+ }
+ } else if (SequenceStepId == VL53L0X_SEQUENCESTEP_FINAL_RANGE) {
+
+ VL53L0X_GetSequenceStepEnables(Dev, &SchedulerSequenceSteps);
+ PreRangeTimeOutMClks = 0;
+
+ if (SchedulerSequenceSteps.PreRangeOn) {
+ /* Retrieve PRE-RANGE VCSEL Period */
+ Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+ &CurrentVCSELPulsePeriodPClk);
+
+ /* Retrieve PRE-RANGE Timeout in Macro periods
+ * (MCLKS) */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_RdWord(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI,
+ &PreRangeEncodedTimeOut);
+ PreRangeTimeOutMClks = VL53L0X_decode_timeout(
+ PreRangeEncodedTimeOut);
+ }
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ /* Retrieve FINAL-RANGE VCSEL Period */
+ Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ VL53L0X_VCSEL_PERIOD_FINAL_RANGE,
+ &CurrentVCSELPulsePeriodPClk);
+ }
+
+ /* Retrieve FINAL-RANGE Timeout in Macro periods (MCLKS) */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_RdWord(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI,
+ &FinalRangeEncodedTimeOut);
+ FinalRangeTimeOutMClks = VL53L0X_decode_timeout(
+ FinalRangeEncodedTimeOut);
+ }
+
+ FinalRangeTimeOutMClks -= PreRangeTimeOutMClks;
+ TimeoutMicroSeconds = VL53L0X_calc_timeout_us(Dev,
+ FinalRangeTimeOutMClks,
+ CurrentVCSELPulsePeriodPClk);
+ }
+
+ *pTimeOutMicroSecs = TimeoutMicroSeconds;
+
+ return Status;
+}
+
+
+VL53L0X_Error set_sequence_step_timeout(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId,
+ uint32_t TimeOutMicroSecs)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t CurrentVCSELPulsePeriodPClk;
+ uint8_t MsrcEncodedTimeOut;
+ uint16_t PreRangeEncodedTimeOut;
+ uint16_t PreRangeTimeOutMClks;
+ uint16_t MsrcRangeTimeOutMClks;
+ uint16_t FinalRangeTimeOutMClks;
+ uint16_t FinalRangeEncodedTimeOut;
+ VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
+
+ if ((SequenceStepId == VL53L0X_SEQUENCESTEP_TCC) ||
+ (SequenceStepId == VL53L0X_SEQUENCESTEP_DSS) ||
+ (SequenceStepId == VL53L0X_SEQUENCESTEP_MSRC)) {
+
+ Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+ &CurrentVCSELPulsePeriodPClk);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ MsrcRangeTimeOutMClks = VL53L0X_calc_timeout_mclks(Dev,
+ TimeOutMicroSecs,
+ (uint8_t)CurrentVCSELPulsePeriodPClk);
+
+ if (MsrcRangeTimeOutMClks > 256)
+ MsrcEncodedTimeOut = 255;
+ else
+ MsrcEncodedTimeOut =
+ (uint8_t)MsrcRangeTimeOutMClks - 1;
+
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ LastEncodedTimeout,
+ MsrcEncodedTimeOut);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP,
+ MsrcEncodedTimeOut);
+ }
+ } else {
+
+ if (SequenceStepId == VL53L0X_SEQUENCESTEP_PRE_RANGE) {
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+ &CurrentVCSELPulsePeriodPClk);
+ PreRangeTimeOutMClks =
+ VL53L0X_calc_timeout_mclks(Dev,
+ TimeOutMicroSecs,
+ (uint8_t)CurrentVCSELPulsePeriodPClk);
+ PreRangeEncodedTimeOut = VL53L0X_encode_timeout(
+ PreRangeTimeOutMClks);
+
+ VL53L0X_SETDEVICESPECIFICPARAMETER(Dev,
+ LastEncodedTimeout,
+ PreRangeEncodedTimeOut);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_WrWord(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI,
+ PreRangeEncodedTimeOut);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETDEVICESPECIFICPARAMETER(
+ Dev,
+ PreRangeTimeoutMicroSecs,
+ TimeOutMicroSecs);
+ }
+ } else if (SequenceStepId == VL53L0X_SEQUENCESTEP_FINAL_RANGE) {
+
+ /* For the final range timeout, the pre-range timeout
+ * must be added. To do this both final and pre-range
+ * timeouts must be expressed in macro periods MClks
+ * because they have different vcsel periods.
+ */
+
+ VL53L0X_GetSequenceStepEnables(Dev,
+ &SchedulerSequenceSteps);
+ PreRangeTimeOutMClks = 0;
+ if (SchedulerSequenceSteps.PreRangeOn) {
+
+ /* Retrieve PRE-RANGE VCSEL Period */
+ Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ VL53L0X_VCSEL_PERIOD_PRE_RANGE,
+ &CurrentVCSELPulsePeriodPClk);
+
+ /* Retrieve PRE-RANGE Timeout in Macro periods
+ * (MCLKS) */
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_RdWord(Dev, 0x51,
+ &PreRangeEncodedTimeOut);
+ PreRangeTimeOutMClks =
+ VL53L0X_decode_timeout(
+ PreRangeEncodedTimeOut);
+ }
+ }
+
+ /* Calculate FINAL RANGE Timeout in Macro Periods
+ * (MCLKS) and add PRE-RANGE value
+ */
+ if (Status == VL53L0X_ERROR_NONE) {
+
+ Status = VL53L0X_GetVcselPulsePeriod(Dev,
+ VL53L0X_VCSEL_PERIOD_FINAL_RANGE,
+ &CurrentVCSELPulsePeriodPClk);
+ }
+ if (Status == VL53L0X_ERROR_NONE) {
+
+ FinalRangeTimeOutMClks =
+ VL53L0X_calc_timeout_mclks(Dev,
+ TimeOutMicroSecs,
+ (uint8_t) CurrentVCSELPulsePeriodPClk);
+
+ FinalRangeTimeOutMClks += PreRangeTimeOutMClks;
+
+ FinalRangeEncodedTimeOut =
+ VL53L0X_encode_timeout(FinalRangeTimeOutMClks);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_WrWord(Dev, 0x71,
+ FinalRangeEncodedTimeOut);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETDEVICESPECIFICPARAMETER(
+ Dev,
+ FinalRangeTimeoutMicroSecs,
+ TimeOutMicroSecs);
+ }
+ }
+ } else
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+
+ }
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_set_vcsel_pulse_period(VL53L0X_DEV Dev,
+ VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriodPCLK)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t vcsel_period_reg;
+ uint8_t MinPreVcselPeriodPCLK = 12;
+ uint8_t MaxPreVcselPeriodPCLK = 18;
+ uint8_t MinFinalVcselPeriodPCLK = 8;
+ uint8_t MaxFinalVcselPeriodPCLK = 14;
+ uint32_t MeasurementTimingBudgetMicroSeconds;
+ uint32_t FinalRangeTimeoutMicroSeconds;
+ uint32_t PreRangeTimeoutMicroSeconds;
+ uint32_t MsrcTimeoutMicroSeconds;
+ uint8_t PhaseCalInt = 0;
+
+ /* Check if valid clock period requested */
+
+ if ((VCSELPulsePeriodPCLK % 2) != 0) {
+ /* Value must be an even number */
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ } else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_PRE_RANGE &&
+ (VCSELPulsePeriodPCLK < MinPreVcselPeriodPCLK ||
+ VCSELPulsePeriodPCLK > MaxPreVcselPeriodPCLK)) {
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ } else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_FINAL_RANGE &&
+ (VCSELPulsePeriodPCLK < MinFinalVcselPeriodPCLK ||
+ VCSELPulsePeriodPCLK > MaxFinalVcselPeriodPCLK)) {
+
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+
+ /* Apply specific settings for the requested clock period */
+
+ if (Status != VL53L0X_ERROR_NONE)
+ return Status;
+
+
+ if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_PRE_RANGE) {
+
+ /* Set phase check limits */
+ if (VCSELPulsePeriodPCLK == 12) {
+
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
+ 0x18);
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
+ 0x08);
+ } else if (VCSELPulsePeriodPCLK == 14) {
+
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
+ 0x30);
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
+ 0x08);
+ } else if (VCSELPulsePeriodPCLK == 16) {
+
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
+ 0x40);
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
+ 0x08);
+ } else if (VCSELPulsePeriodPCLK == 18) {
+
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH,
+ 0x50);
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW,
+ 0x08);
+ }
+ } else if (VcselPeriodType == VL53L0X_VCSEL_PERIOD_FINAL_RANGE) {
+
+ if (VCSELPulsePeriodPCLK == 8) {
+
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
+ 0x10);
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
+ 0x08);
+
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x02);
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x0C);
+
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_ALGO_PHASECAL_LIM,
+ 0x30);
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+ } else if (VCSELPulsePeriodPCLK == 10) {
+
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
+ 0x28);
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
+ 0x08);
+
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x03);
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x09);
+
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_ALGO_PHASECAL_LIM,
+ 0x20);
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+ } else if (VCSELPulsePeriodPCLK == 12) {
+
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
+ 0x38);
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
+ 0x08);
+
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x03);
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x08);
+
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_ALGO_PHASECAL_LIM,
+ 0x20);
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+ } else if (VCSELPulsePeriodPCLK == 14) {
+
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH,
+ 0x048);
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW,
+ 0x08);
+
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH, 0x03);
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT, 0x07);
+
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x01);
+ Status |= VL53L0X_WrByte(Dev,
+ VL53L0X_REG_ALGO_PHASECAL_LIM,
+ 0x20);
+ Status |= VL53L0X_WrByte(Dev, 0xff, 0x00);
+ }
+ }
+
+
+ /* Re-calculate and apply timeouts, in macro periods */
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ vcsel_period_reg = VL53L0X_encode_vcsel_period((uint8_t)
+ VCSELPulsePeriodPCLK);
+
+ /* When the VCSEL period for the pre or final range is changed,
+ * the corresponding timeout must be read from the device using
+ * the current VCSEL period, then the new VCSEL period can be
+ * applied. The timeout then must be written back to the device
+ * using the new VCSEL period.
+ *
+ * For the MSRC timeout, the same applies - this timeout being
+ * dependant on the pre-range vcsel period.
+ */
+ switch (VcselPeriodType) {
+ case VL53L0X_VCSEL_PERIOD_PRE_RANGE:
+ Status = get_sequence_step_timeout(Dev,
+ VL53L0X_SEQUENCESTEP_PRE_RANGE,
+ &PreRangeTimeoutMicroSeconds);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = get_sequence_step_timeout(Dev,
+ VL53L0X_SEQUENCESTEP_MSRC,
+ &MsrcTimeoutMicroSeconds);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD,
+ vcsel_period_reg);
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = set_sequence_step_timeout(Dev,
+ VL53L0X_SEQUENCESTEP_PRE_RANGE,
+ PreRangeTimeoutMicroSeconds);
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = set_sequence_step_timeout(Dev,
+ VL53L0X_SEQUENCESTEP_MSRC,
+ MsrcTimeoutMicroSeconds);
+
+ VL53L0X_SETDEVICESPECIFICPARAMETER(
+ Dev,
+ PreRangeVcselPulsePeriod,
+ VCSELPulsePeriodPCLK);
+ break;
+ case VL53L0X_VCSEL_PERIOD_FINAL_RANGE:
+ Status = get_sequence_step_timeout(Dev,
+ VL53L0X_SEQUENCESTEP_FINAL_RANGE,
+ &FinalRangeTimeoutMicroSeconds);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD,
+ vcsel_period_reg);
+
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = set_sequence_step_timeout(Dev,
+ VL53L0X_SEQUENCESTEP_FINAL_RANGE,
+ FinalRangeTimeoutMicroSeconds);
+
+ VL53L0X_SETDEVICESPECIFICPARAMETER(
+ Dev,
+ FinalRangeVcselPulsePeriod,
+ VCSELPulsePeriodPCLK);
+ break;
+ default:
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+ }
+
+ /* Finally, the timing budget must be re-applied */
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_GETPARAMETERFIELD(Dev,
+ MeasurementTimingBudgetMicroSeconds,
+ MeasurementTimingBudgetMicroSeconds);
+
+ Status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(Dev,
+ MeasurementTimingBudgetMicroSeconds);
+ }
+
+ /* Perform the phase calibration. This is needed after changing on
+ * vcsel period.
+ * get_data_enable = 0, restore_config = 1 */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_perform_phase_calibration(
+ Dev, &PhaseCalInt, 0, 1);
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_get_vcsel_pulse_period(VL53L0X_DEV Dev,
+ VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriodPCLK)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t vcsel_period_reg;
+
+ switch (VcselPeriodType) {
+ case VL53L0X_VCSEL_PERIOD_PRE_RANGE:
+ Status = VL53L0X_RdByte(Dev,
+ VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD,
+ &vcsel_period_reg);
+ break;
+ case VL53L0X_VCSEL_PERIOD_FINAL_RANGE:
+ Status = VL53L0X_RdByte(Dev,
+ VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD,
+ &vcsel_period_reg);
+ break;
+ default:
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+
+ if (Status == VL53L0X_ERROR_NONE)
+ *pVCSELPulsePeriodPCLK =
+ VL53L0X_decode_vcsel_period(vcsel_period_reg);
+
+ return Status;
+}
+
+
+
+VL53L0X_Error VL53L0X_set_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
+ uint32_t MeasurementTimingBudgetMicroSeconds)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint32_t FinalRangeTimingBudgetMicroSeconds;
+ VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
+ uint32_t MsrcDccTccTimeoutMicroSeconds = 2000;
+ uint32_t StartOverheadMicroSeconds = 1320;
+ uint32_t EndOverheadMicroSeconds = 960;
+ uint32_t MsrcOverheadMicroSeconds = 660;
+ uint32_t TccOverheadMicroSeconds = 590;
+ uint32_t DssOverheadMicroSeconds = 690;
+ uint32_t PreRangeOverheadMicroSeconds = 660;
+ uint32_t FinalRangeOverheadMicroSeconds = 550;
+ uint32_t PreRangeTimeoutMicroSeconds = 0;
+ uint32_t cMinTimingBudgetMicroSeconds = 20000;
+ uint32_t SubTimeout = 0;
+
+ LOG_FUNCTION_START("");
+
+ if (MeasurementTimingBudgetMicroSeconds
+ < cMinTimingBudgetMicroSeconds) {
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ return Status;
+ }
+
+ FinalRangeTimingBudgetMicroSeconds =
+ MeasurementTimingBudgetMicroSeconds -
+ (StartOverheadMicroSeconds + EndOverheadMicroSeconds);
+
+ Status = VL53L0X_GetSequenceStepEnables(Dev, &SchedulerSequenceSteps);
+
+ if (Status == VL53L0X_ERROR_NONE &&
+ (SchedulerSequenceSteps.TccOn ||
+ SchedulerSequenceSteps.MsrcOn ||
+ SchedulerSequenceSteps.DssOn)) {
+
+ /* TCC, MSRC and DSS all share the same timeout */
+ Status = get_sequence_step_timeout(Dev,
+ VL53L0X_SEQUENCESTEP_MSRC,
+ &MsrcDccTccTimeoutMicroSeconds);
+
+ /* Subtract the TCC, MSRC and DSS timeouts if they are
+ * enabled. */
+
+ if (Status != VL53L0X_ERROR_NONE)
+ return Status;
+
+ /* TCC */
+ if (SchedulerSequenceSteps.TccOn) {
+
+ SubTimeout = MsrcDccTccTimeoutMicroSeconds
+ + TccOverheadMicroSeconds;
+
+ if (SubTimeout <
+ FinalRangeTimingBudgetMicroSeconds) {
+ FinalRangeTimingBudgetMicroSeconds -=
+ SubTimeout;
+ } else {
+ /* Requested timeout too big. */
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+ }
+
+ if (Status != VL53L0X_ERROR_NONE) {
+ LOG_FUNCTION_END(Status);
+ return Status;
+ }
+
+ /* DSS */
+ if (SchedulerSequenceSteps.DssOn) {
+
+ SubTimeout = 2 * (MsrcDccTccTimeoutMicroSeconds +
+ DssOverheadMicroSeconds);
+
+ if (SubTimeout < FinalRangeTimingBudgetMicroSeconds) {
+ FinalRangeTimingBudgetMicroSeconds
+ -= SubTimeout;
+ } else {
+ /* Requested timeout too big. */
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+ } else if (SchedulerSequenceSteps.MsrcOn) {
+ /* MSRC */
+ SubTimeout = MsrcDccTccTimeoutMicroSeconds +
+ MsrcOverheadMicroSeconds;
+
+ if (SubTimeout < FinalRangeTimingBudgetMicroSeconds) {
+ FinalRangeTimingBudgetMicroSeconds
+ -= SubTimeout;
+ } else {
+ /* Requested timeout too big. */
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+ }
+
+ }
+
+ if (Status != VL53L0X_ERROR_NONE) {
+ LOG_FUNCTION_END(Status);
+ return Status;
+ }
+
+ if (SchedulerSequenceSteps.PreRangeOn) {
+
+ /* Subtract the Pre-range timeout if enabled. */
+
+ Status = get_sequence_step_timeout(Dev,
+ VL53L0X_SEQUENCESTEP_PRE_RANGE,
+ &PreRangeTimeoutMicroSeconds);
+
+ SubTimeout = PreRangeTimeoutMicroSeconds +
+ PreRangeOverheadMicroSeconds;
+
+ if (SubTimeout < FinalRangeTimingBudgetMicroSeconds) {
+ FinalRangeTimingBudgetMicroSeconds -= SubTimeout;
+ } else {
+ /* Requested timeout too big. */
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+ }
+
+
+ if (Status == VL53L0X_ERROR_NONE &&
+ SchedulerSequenceSteps.FinalRangeOn) {
+
+ FinalRangeTimingBudgetMicroSeconds -=
+ FinalRangeOverheadMicroSeconds;
+
+ /* Final Range Timeout
+ * Note that the final range timeout is determined by the timing
+ * budget and the sum of all other timeouts within the sequence.
+ * If there is no room for the final range timeout, then an error
+ * will be set. Otherwise the remaining time will be applied to
+ * the final range.
+ */
+ Status = set_sequence_step_timeout(Dev,
+ VL53L0X_SEQUENCESTEP_FINAL_RANGE,
+ FinalRangeTimingBudgetMicroSeconds);
+
+ VL53L0X_SETPARAMETERFIELD(Dev,
+ MeasurementTimingBudgetMicroSeconds,
+ MeasurementTimingBudgetMicroSeconds);
+ }
+
+ LOG_FUNCTION_END(Status);
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_get_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
+ uint32_t *pMeasurementTimingBudgetMicroSeconds)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ VL53L0X_SchedulerSequenceSteps_t SchedulerSequenceSteps;
+ uint32_t FinalRangeTimeoutMicroSeconds;
+ uint32_t MsrcDccTccTimeoutMicroSeconds = 2000;
+ uint32_t StartOverheadMicroSeconds = 1910;
+ uint32_t EndOverheadMicroSeconds = 960;
+ uint32_t MsrcOverheadMicroSeconds = 660;
+ uint32_t TccOverheadMicroSeconds = 590;
+ uint32_t DssOverheadMicroSeconds = 690;
+ uint32_t PreRangeOverheadMicroSeconds = 660;
+ uint32_t FinalRangeOverheadMicroSeconds = 550;
+ uint32_t PreRangeTimeoutMicroSeconds = 0;
+
+ LOG_FUNCTION_START("");
+
+ /* Start and end overhead times always present */
+ *pMeasurementTimingBudgetMicroSeconds
+ = StartOverheadMicroSeconds + EndOverheadMicroSeconds;
+
+ Status = VL53L0X_GetSequenceStepEnables(Dev, &SchedulerSequenceSteps);
+
+ if (Status != VL53L0X_ERROR_NONE) {
+ LOG_FUNCTION_END(Status);
+ return Status;
+ }
+
+
+ if (SchedulerSequenceSteps.TccOn ||
+ SchedulerSequenceSteps.MsrcOn ||
+ SchedulerSequenceSteps.DssOn) {
+
+ Status = get_sequence_step_timeout(Dev,
+ VL53L0X_SEQUENCESTEP_MSRC,
+ &MsrcDccTccTimeoutMicroSeconds);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (SchedulerSequenceSteps.TccOn) {
+ *pMeasurementTimingBudgetMicroSeconds +=
+ MsrcDccTccTimeoutMicroSeconds +
+ TccOverheadMicroSeconds;
+ }
+
+ if (SchedulerSequenceSteps.DssOn) {
+ *pMeasurementTimingBudgetMicroSeconds +=
+ 2 * (MsrcDccTccTimeoutMicroSeconds +
+ DssOverheadMicroSeconds);
+ } else if (SchedulerSequenceSteps.MsrcOn) {
+ *pMeasurementTimingBudgetMicroSeconds +=
+ MsrcDccTccTimeoutMicroSeconds +
+ MsrcOverheadMicroSeconds;
+ }
+ }
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (SchedulerSequenceSteps.PreRangeOn) {
+ Status = get_sequence_step_timeout(Dev,
+ VL53L0X_SEQUENCESTEP_PRE_RANGE,
+ &PreRangeTimeoutMicroSeconds);
+ *pMeasurementTimingBudgetMicroSeconds +=
+ PreRangeTimeoutMicroSeconds +
+ PreRangeOverheadMicroSeconds;
+ }
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (SchedulerSequenceSteps.FinalRangeOn) {
+ Status = get_sequence_step_timeout(Dev,
+ VL53L0X_SEQUENCESTEP_FINAL_RANGE,
+ &FinalRangeTimeoutMicroSeconds);
+ *pMeasurementTimingBudgetMicroSeconds +=
+ (FinalRangeTimeoutMicroSeconds +
+ FinalRangeOverheadMicroSeconds);
+ }
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ VL53L0X_SETPARAMETERFIELD(Dev,
+ MeasurementTimingBudgetMicroSeconds,
+ *pMeasurementTimingBudgetMicroSeconds);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+
+
+VL53L0X_Error VL53L0X_load_tuning_settings(VL53L0X_DEV Dev,
+ uint8_t *pTuningSettingBuffer)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ int i;
+ int Index;
+ uint8_t msb;
+ uint8_t lsb;
+ uint8_t SelectParam;
+ uint8_t NumberOfWrites;
+ uint8_t Address;
+ uint8_t localBuffer[4]; /* max */
+ uint16_t Temp16;
+
+ LOG_FUNCTION_START("");
+
+ Index = 0;
+
+ while ((*(pTuningSettingBuffer + Index) != 0) &&
+ (Status == VL53L0X_ERROR_NONE)) {
+ NumberOfWrites = *(pTuningSettingBuffer + Index);
+ Index++;
+ if (NumberOfWrites == 0xFF) {
+ /* internal parameters */
+ SelectParam = *(pTuningSettingBuffer + Index);
+ Index++;
+ switch (SelectParam) {
+ case 0: /* uint16_t SigmaEstRefArray -> 2 bytes */
+ msb = *(pTuningSettingBuffer + Index);
+ Index++;
+ lsb = *(pTuningSettingBuffer + Index);
+ Index++;
+ Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
+ PALDevDataSet(Dev, SigmaEstRefArray, Temp16);
+ break;
+ case 1: /* uint16_t SigmaEstEffPulseWidth -> 2 bytes */
+ msb = *(pTuningSettingBuffer + Index);
+ Index++;
+ lsb = *(pTuningSettingBuffer + Index);
+ Index++;
+ Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
+ PALDevDataSet(Dev, SigmaEstEffPulseWidth,
+ Temp16);
+ break;
+ case 2: /* uint16_t SigmaEstEffAmbWidth -> 2 bytes */
+ msb = *(pTuningSettingBuffer + Index);
+ Index++;
+ lsb = *(pTuningSettingBuffer + Index);
+ Index++;
+ Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
+ PALDevDataSet(Dev, SigmaEstEffAmbWidth, Temp16);
+ break;
+ case 3: /* uint16_t targetRefRate -> 2 bytes */
+ msb = *(pTuningSettingBuffer + Index);
+ Index++;
+ lsb = *(pTuningSettingBuffer + Index);
+ Index++;
+ Temp16 = VL53L0X_MAKEUINT16(lsb, msb);
+ PALDevDataSet(Dev, targetRefRate, Temp16);
+ break;
+ default: /* invalid parameter */
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+
+ } else if (NumberOfWrites <= 4) {
+ Address = *(pTuningSettingBuffer + Index);
+ Index++;
+
+ for (i = 0; i < NumberOfWrites; i++) {
+ localBuffer[i] = *(pTuningSettingBuffer +
+ Index);
+ Index++;
+ }
+
+ Status = VL53L0X_WriteMulti(Dev, Address, localBuffer,
+ NumberOfWrites);
+
+ } else {
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_get_total_xtalk_rate(VL53L0X_DEV Dev,
+ VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+ FixPoint1616_t *ptotal_xtalk_rate_mcps)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ uint8_t xtalkCompEnable;
+ FixPoint1616_t totalXtalkMegaCps;
+ FixPoint1616_t xtalkPerSpadMegaCps;
+
+ *ptotal_xtalk_rate_mcps = 0;
+
+ Status = VL53L0X_GetXTalkCompensationEnable(Dev, &xtalkCompEnable);
+ if (Status == VL53L0X_ERROR_NONE) {
+
+ if (xtalkCompEnable) {
+
+ VL53L0X_GETPARAMETERFIELD(
+ Dev,
+ XTalkCompensationRateMegaCps,
+ xtalkPerSpadMegaCps);
+
+ /* FixPoint1616 * FixPoint 8:8 = FixPoint0824 */
+ totalXtalkMegaCps =
+ pRangingMeasurementData->EffectiveSpadRtnCount *
+ xtalkPerSpadMegaCps;
+
+ /* FixPoint0824 >> 8 = FixPoint1616 */
+ *ptotal_xtalk_rate_mcps =
+ (totalXtalkMegaCps + 0x80) >> 8;
+ }
+ }
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_get_total_signal_rate(VL53L0X_DEV Dev,
+ VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+ FixPoint1616_t *ptotal_signal_rate_mcps)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ FixPoint1616_t totalXtalkMegaCps;
+
+ LOG_FUNCTION_START("");
+
+ *ptotal_signal_rate_mcps =
+ pRangingMeasurementData->SignalRateRtnMegaCps;
+
+ Status = VL53L0X_get_total_xtalk_rate(
+ Dev, pRangingMeasurementData, &totalXtalkMegaCps);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ *ptotal_signal_rate_mcps += totalXtalkMegaCps;
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_calc_dmax(
+ VL53L0X_DEV Dev,
+ FixPoint1616_t totalSignalRate_mcps,
+ FixPoint1616_t totalCorrSignalRate_mcps,
+ FixPoint1616_t pwMult,
+ uint32_t sigmaEstimateP1,
+ FixPoint1616_t sigmaEstimateP2,
+ uint32_t peakVcselDuration_us,
+ uint32_t *pdmax_mm)
+{
+ const uint32_t cSigmaLimit = 18;
+ const FixPoint1616_t cSignalLimit = 0x4000; /* 0.25 */
+ const FixPoint1616_t cSigmaEstRef = 0x00000042; /* 0.001 */
+ const uint32_t cAmbEffWidthSigmaEst_ns = 6;
+ const uint32_t cAmbEffWidthDMax_ns = 7;
+ uint32_t dmaxCalRange_mm;
+ FixPoint1616_t dmaxCalSignalRateRtn_mcps;
+ FixPoint1616_t minSignalNeeded;
+ FixPoint1616_t minSignalNeeded_p1;
+ FixPoint1616_t minSignalNeeded_p2;
+ FixPoint1616_t minSignalNeeded_p3;
+ FixPoint1616_t minSignalNeeded_p4;
+ FixPoint1616_t sigmaLimitTmp;
+ FixPoint1616_t sigmaEstSqTmp;
+ FixPoint1616_t signalLimitTmp;
+ FixPoint1616_t SignalAt0mm;
+ FixPoint1616_t dmaxDark;
+ FixPoint1616_t dmaxAmbient;
+ FixPoint1616_t dmaxDarkTmp;
+ FixPoint1616_t sigmaEstP2Tmp;
+ uint32_t signalRateTemp_mcps;
+
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ dmaxCalRange_mm =
+ PALDevDataGet(Dev, DmaxCalRangeMilliMeter);
+
+ dmaxCalSignalRateRtn_mcps =
+ PALDevDataGet(Dev, DmaxCalSignalRateRtnMegaCps);
+
+ /* uint32 * FixPoint1616 = FixPoint1616 */
+ SignalAt0mm = dmaxCalRange_mm * dmaxCalSignalRateRtn_mcps;
+
+ /* FixPoint1616 >> 8 = FixPoint2408 */
+ SignalAt0mm = (SignalAt0mm + 0x80) >> 8;
+ SignalAt0mm *= dmaxCalRange_mm;
+
+ minSignalNeeded_p1 = 0;
+ if (totalCorrSignalRate_mcps > 0) {
+
+ /* Shift by 10 bits to increase resolution prior to the
+ * division */
+ signalRateTemp_mcps = totalSignalRate_mcps << 10;
+
+ /* Add rounding value prior to division */
+ minSignalNeeded_p1 = signalRateTemp_mcps +
+ (totalCorrSignalRate_mcps/2);
+
+ /* FixPoint0626/FixPoint1616 = FixPoint2210 */
+ minSignalNeeded_p1 /= totalCorrSignalRate_mcps;
+
+ /* Apply a factored version of the speed of light.
+ Correction to be applied at the end */
+ minSignalNeeded_p1 *= 3;
+
+ /* FixPoint2210 * FixPoint2210 = FixPoint1220 */
+ minSignalNeeded_p1 *= minSignalNeeded_p1;
+
+ /* FixPoint1220 >> 16 = FixPoint2804 */
+ minSignalNeeded_p1 = (minSignalNeeded_p1 + 0x8000) >> 16;
+ }
+
+ minSignalNeeded_p2 = pwMult * sigmaEstimateP1;
+
+ /* FixPoint1616 >> 16 = uint32 */
+ minSignalNeeded_p2 = (minSignalNeeded_p2 + 0x8000) >> 16;
+
+ /* uint32 * uint32 = uint32 */
+ minSignalNeeded_p2 *= minSignalNeeded_p2;
+
+ /* Check sigmaEstimateP2
+ * If this value is too high there is not enough signal rate
+ * to calculate dmax value so set a suitable value to ensure
+ * a very small dmax.
+ */
+ sigmaEstP2Tmp = (sigmaEstimateP2 + 0x8000) >> 16;
+ sigmaEstP2Tmp = (sigmaEstP2Tmp + cAmbEffWidthSigmaEst_ns/2)/
+ cAmbEffWidthSigmaEst_ns;
+ sigmaEstP2Tmp *= cAmbEffWidthDMax_ns;
+
+ if (sigmaEstP2Tmp > 0xffff) {
+ minSignalNeeded_p3 = 0xfff00000;
+ } else {
+
+ /* DMAX uses a different ambient width from sigma, so apply
+ * correction.
+ * Perform division before multiplication to prevent overflow.
+ */
+ sigmaEstimateP2 = (sigmaEstimateP2 + cAmbEffWidthSigmaEst_ns/2)/
+ cAmbEffWidthSigmaEst_ns;
+ sigmaEstimateP2 *= cAmbEffWidthDMax_ns;
+
+ /* FixPoint1616 >> 16 = uint32 */
+ minSignalNeeded_p3 = (sigmaEstimateP2 + 0x8000) >> 16;
+
+ minSignalNeeded_p3 *= minSignalNeeded_p3;
+
+ }
+
+ /* FixPoint1814 / uint32 = FixPoint1814 */
+ sigmaLimitTmp = ((cSigmaLimit << 14) + 500) / 1000;
+
+ /* FixPoint1814 * FixPoint1814 = FixPoint3628 := FixPoint0428 */
+ sigmaLimitTmp *= sigmaLimitTmp;
+
+ /* FixPoint1616 * FixPoint1616 = FixPoint3232 */
+ sigmaEstSqTmp = cSigmaEstRef * cSigmaEstRef;
+
+ /* FixPoint3232 >> 4 = FixPoint0428 */
+ sigmaEstSqTmp = (sigmaEstSqTmp + 0x08) >> 4;
+
+ /* FixPoint0428 - FixPoint0428 = FixPoint0428 */
+ sigmaLimitTmp -= sigmaEstSqTmp;
+
+ /* uint32_t * FixPoint0428 = FixPoint0428 */
+ minSignalNeeded_p4 = 4 * 12 * sigmaLimitTmp;
+
+ /* FixPoint0428 >> 14 = FixPoint1814 */
+ minSignalNeeded_p4 = (minSignalNeeded_p4 + 0x2000) >> 14;
+
+ /* uint32 + uint32 = uint32 */
+ minSignalNeeded = (minSignalNeeded_p2 + minSignalNeeded_p3);
+
+ /* uint32 / uint32 = uint32 */
+ minSignalNeeded += (peakVcselDuration_us/2);
+ minSignalNeeded /= peakVcselDuration_us;
+
+ /* uint32 << 14 = FixPoint1814 */
+ minSignalNeeded <<= 14;
+
+ /* FixPoint1814 / FixPoint1814 = uint32 */
+ minSignalNeeded += (minSignalNeeded_p4/2);
+ minSignalNeeded /= minSignalNeeded_p4;
+
+ /* FixPoint3200 * FixPoint2804 := FixPoint2804*/
+ minSignalNeeded *= minSignalNeeded_p1;
+
+ /* Apply correction by dividing by 1000000.
+ * This assumes 10E16 on the numerator of the equation
+ * and 10E-22 on the denominator.
+ * We do this because 32bit fix point calculation can't
+ * handle the larger and smaller elements of this equation,
+ * i.e. speed of light and pulse widths.
+ */
+ minSignalNeeded = (minSignalNeeded + 500) / 1000;
+ minSignalNeeded <<= 4;
+
+ minSignalNeeded = (minSignalNeeded + 500) / 1000;
+
+ /* FixPoint1616 >> 8 = FixPoint2408 */
+ signalLimitTmp = (cSignalLimit + 0x80) >> 8;
+
+ /* FixPoint2408/FixPoint2408 = uint32 */
+ if (signalLimitTmp != 0)
+ dmaxDarkTmp = (SignalAt0mm + (signalLimitTmp / 2))
+ / signalLimitTmp;
+ else
+ dmaxDarkTmp = 0;
+
+ dmaxDark = VL53L0X_isqrt(dmaxDarkTmp);
+
+ /* FixPoint2408/FixPoint2408 = uint32 */
+ if (minSignalNeeded != 0)
+ dmaxAmbient = (SignalAt0mm + minSignalNeeded/2)
+ / minSignalNeeded;
+ else
+ dmaxAmbient = 0;
+
+ dmaxAmbient = VL53L0X_isqrt(dmaxAmbient);
+
+ *pdmax_mm = dmaxDark;
+ if (dmaxDark > dmaxAmbient)
+ *pdmax_mm = dmaxAmbient;
+
+ LOG_FUNCTION_END(Status);
+
+ return Status;
+}
+
+
+VL53L0X_Error VL53L0X_calc_sigma_estimate(VL53L0X_DEV Dev,
+ VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+ FixPoint1616_t *pSigmaEstimate,
+ uint32_t *pDmax_mm)
+{
+ /* Expressed in 100ths of a ns, i.e. centi-ns */
+ const uint32_t cPulseEffectiveWidth_centi_ns = 800;
+ /* Expressed in 100ths of a ns, i.e. centi-ns */
+ const uint32_t cAmbientEffectiveWidth_centi_ns = 600;
+ const FixPoint1616_t cSigmaEstRef = 0x00000042; /* 0.001 */
+ const uint32_t cVcselPulseWidth_ps = 4700; /* pico secs */
+ const FixPoint1616_t cSigmaEstMax = 0x028F87AE;
+ const FixPoint1616_t cSigmaEstRtnMax = 0xF000;
+ const FixPoint1616_t cAmbToSignalRatioMax = 0xF0000000/
+ cAmbientEffectiveWidth_centi_ns;
+ /* Time Of Flight per mm (6.6 pico secs) */
+ const FixPoint1616_t cTOF_per_mm_ps = 0x0006999A;
+ const uint32_t c16BitRoundingParam = 0x00008000;
+ const FixPoint1616_t cMaxXTalk_kcps = 0x00320000;
+ const uint32_t cPllPeriod_ps = 1655;
+
+ uint32_t vcselTotalEventsRtn;
+ uint32_t finalRangeTimeoutMicroSecs;
+ uint32_t preRangeTimeoutMicroSecs;
+ FixPoint1616_t sigmaEstimateP1;
+ FixPoint1616_t sigmaEstimateP2;
+ FixPoint1616_t sigmaEstimateP3;
+ FixPoint1616_t deltaT_ps;
+ FixPoint1616_t pwMult;
+ FixPoint1616_t sigmaEstRtn;
+ FixPoint1616_t sigmaEstimate;
+ FixPoint1616_t xTalkCorrection;
+ FixPoint1616_t ambientRate_kcps;
+ FixPoint1616_t peakSignalRate_kcps;
+ FixPoint1616_t xTalkCompRate_mcps;
+ uint32_t xTalkCompRate_kcps;
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ FixPoint1616_t diff1_mcps;
+ FixPoint1616_t diff2_mcps;
+ FixPoint1616_t sqr1;
+ FixPoint1616_t sqr2;
+ FixPoint1616_t sqrSum;
+ FixPoint1616_t sqrtResult_centi_ns;
+ FixPoint1616_t sqrtResult;
+ FixPoint1616_t totalSignalRate_mcps;
+ FixPoint1616_t correctedSignalRate_mcps;
+ uint32_t vcselWidth;
+ uint32_t finalRangeMacroPCLKS;
+ uint32_t preRangeMacroPCLKS;
+ uint32_t peakVcselDuration_us;
+ uint8_t finalRangeVcselPCLKS;
+ uint8_t preRangeVcselPCLKS;
+ /*! \addtogroup calc_sigma_estimate
+ * @{
+ *
+ * Estimates the range sigma based on the
+ *
+ * - vcsel_rate_kcps
+ * - ambient_rate_kcps
+ * - signal_total_events
+ * - xtalk_rate
+ *
+ * and the following parameters
+ *
+ * - SigmaEstRefArray
+ * - SigmaEstEffPulseWidth
+ * - SigmaEstEffAmbWidth
+ */
+
+ LOG_FUNCTION_START("");
+
+ VL53L0X_GETPARAMETERFIELD(Dev, XTalkCompensationRateMegaCps,
+ xTalkCompRate_mcps);
+
+ /*
+ * We work in kcps rather than mcps as this helps keep within the
+ * confines of the 32 Fix1616 type.
+ */
+
+ ambientRate_kcps =
+ (pRangingMeasurementData->AmbientRateRtnMegaCps * 1000) >> 16;
+
+ correctedSignalRate_mcps =
+ pRangingMeasurementData->SignalRateRtnMegaCps;
+
+
+ Status = VL53L0X_get_total_signal_rate(
+ Dev, pRangingMeasurementData, &totalSignalRate_mcps);
+ Status = VL53L0X_get_total_xtalk_rate(
+ Dev, pRangingMeasurementData, &xTalkCompRate_mcps);
+
+
+ /* Signal rate measurement provided by device is the
+ * peak signal rate, not average.
+ */
+ peakSignalRate_kcps = (totalSignalRate_mcps * 1000);
+ peakSignalRate_kcps = (peakSignalRate_kcps + 0x8000) >> 16;
+
+ xTalkCompRate_kcps = xTalkCompRate_mcps * 1000;
+
+ if (xTalkCompRate_kcps > cMaxXTalk_kcps)
+ xTalkCompRate_kcps = cMaxXTalk_kcps;
+
+ if (Status == VL53L0X_ERROR_NONE) {
+
+ /* Calculate final range macro periods */
+ finalRangeTimeoutMicroSecs = VL53L0X_GETDEVICESPECIFICPARAMETER(
+ Dev, FinalRangeTimeoutMicroSecs);
+
+ finalRangeVcselPCLKS = VL53L0X_GETDEVICESPECIFICPARAMETER(
+ Dev, FinalRangeVcselPulsePeriod);
+
+ finalRangeMacroPCLKS = VL53L0X_calc_timeout_mclks(
+ Dev, finalRangeTimeoutMicroSecs, finalRangeVcselPCLKS);
+
+ /* Calculate pre-range macro periods */
+ preRangeTimeoutMicroSecs = VL53L0X_GETDEVICESPECIFICPARAMETER(
+ Dev, PreRangeTimeoutMicroSecs);
+
+ preRangeVcselPCLKS = VL53L0X_GETDEVICESPECIFICPARAMETER(
+ Dev, PreRangeVcselPulsePeriod);
+
+ preRangeMacroPCLKS = VL53L0X_calc_timeout_mclks(
+ Dev, preRangeTimeoutMicroSecs, preRangeVcselPCLKS);
+
+ vcselWidth = 3;
+ if (finalRangeVcselPCLKS == 8)
+ vcselWidth = 2;
+
+
+ peakVcselDuration_us = vcselWidth * 2048 *
+ (preRangeMacroPCLKS + finalRangeMacroPCLKS);
+ peakVcselDuration_us = (peakVcselDuration_us + 500)/1000;
+ peakVcselDuration_us *= cPllPeriod_ps;
+ peakVcselDuration_us = (peakVcselDuration_us + 500)/1000;
+
+ /* Fix1616 >> 8 = Fix2408 */
+ totalSignalRate_mcps = (totalSignalRate_mcps + 0x80) >> 8;
+
+ /* Fix2408 * uint32 = Fix2408 */
+ vcselTotalEventsRtn = totalSignalRate_mcps *
+ peakVcselDuration_us;
+
+ /* Fix2408 >> 8 = uint32 */
+ vcselTotalEventsRtn = (vcselTotalEventsRtn + 0x80) >> 8;
+
+ /* Fix2408 << 8 = Fix1616 = */
+ totalSignalRate_mcps <<= 8;
+ }
+
+ if (Status != VL53L0X_ERROR_NONE) {
+ LOG_FUNCTION_END(Status);
+ return Status;
+ }
+
+ if (peakSignalRate_kcps == 0) {
+ *pSigmaEstimate = cSigmaEstMax;
+ PALDevDataSet(Dev, SigmaEstimate, cSigmaEstMax);
+ *pDmax_mm = 0;
+ } else {
+ if (vcselTotalEventsRtn < 1)
+ vcselTotalEventsRtn = 1;
+
+ /*
+ * Calculate individual components of the main equation -
+ * replicating the equation implemented in the script
+ * OpenAll_Ewok_ranging_data.jsl.
+ *
+ * sigmaEstimateP1 represents the effective pulse width, which
+ * is a tuning parameter, rather than a real value.
+ *
+ * sigmaEstimateP2 represents the ambient/signal rate ratio
+ * expressed as a multiple of the effective ambient width
+ * (tuning parameter).
+ *
+ * sigmaEstimateP3 provides the signal event component, with the
+ * knowledge that
+ * - Noise of a square pulse is 1/sqrt(12) of the pulse
+ * width.
+ * - at 0Lux, sigma is proportional to
+ * effectiveVcselPulseWidth/sqrt(12 * signalTotalEvents)
+ *
+ * deltaT_ps represents the time of flight in pico secs for the
+ * current range measurement, using the "TOF per mm" constant
+ * (in ps).
+ */
+
+ sigmaEstimateP1 = cPulseEffectiveWidth_centi_ns;
+
+ /* ((FixPoint1616 << 16)* uint32)/uint32 = FixPoint1616 */
+ sigmaEstimateP2 = (ambientRate_kcps << 16)/peakSignalRate_kcps;
+ if (sigmaEstimateP2 > cAmbToSignalRatioMax) {
+ /* Clip to prevent overflow. Will ensure safe
+ * max result. */
+ sigmaEstimateP2 = cAmbToSignalRatioMax;
+ }
+ sigmaEstimateP2 *= cAmbientEffectiveWidth_centi_ns;
+
+ sigmaEstimateP3 = 2 * VL53L0X_isqrt(vcselTotalEventsRtn * 12);
+
+ /* uint32 * FixPoint1616 = FixPoint1616 */
+ deltaT_ps = pRangingMeasurementData->RangeMilliMeter *
+ cTOF_per_mm_ps;
+
+ /*
+ * vcselRate - xtalkCompRate
+ * (uint32 << 16) - FixPoint1616 = FixPoint1616.
+ * Divide result by 1000 to convert to mcps.
+ * 500 is added to ensure rounding when integer division
+ * truncates.
+ */
+ diff1_mcps = (((peakSignalRate_kcps << 16) -
+ xTalkCompRate_kcps) + 500)/1000;
+
+ /* vcselRate + xtalkCompRate */
+ diff2_mcps = (((peakSignalRate_kcps << 16) +
+ xTalkCompRate_kcps) + 500)/1000;
+
+ /* Shift by 8 bits to increase resolution prior to the
+ * division */
+ diff1_mcps <<= 8;
+
+ /* FixPoint0824/FixPoint1616 = FixPoint2408 */
+ xTalkCorrection = abs(diff1_mcps/diff2_mcps);
+
+ /* FixPoint2408 << 8 = FixPoint1616 */
+ xTalkCorrection <<= 8;
+
+ /* FixPoint1616/uint32 = FixPoint1616 */
+ pwMult = deltaT_ps/cVcselPulseWidth_ps; /* smaller than 1.0f */
+
+ /*
+ * FixPoint1616 * FixPoint1616 = FixPoint3232, however both
+ * values are small enough such that32 bits will not be
+ * exceeded.
+ */
+ pwMult *= ((1 << 16) - xTalkCorrection);
+
+ /* (FixPoint3232 >> 16) = FixPoint1616 */
+ pwMult = (pwMult + c16BitRoundingParam) >> 16;
+
+ /* FixPoint1616 + FixPoint1616 = FixPoint1616 */
+ pwMult += (1 << 16);
+
+ /*
+ * At this point the value will be 1.xx, therefore if we square
+ * the value this will exceed 32 bits. To address this perform
+ * a single shift to the right before the multiplication.
+ */
+ pwMult >>= 1;
+ /* FixPoint1715 * FixPoint1715 = FixPoint3430 */
+ pwMult = pwMult * pwMult;
+
+ /* (FixPoint3430 >> 14) = Fix1616 */
+ pwMult >>= 14;
+
+ /* FixPoint1616 * uint32 = FixPoint1616 */
+ sqr1 = pwMult * sigmaEstimateP1;
+
+ /* (FixPoint1616 >> 16) = FixPoint3200 */
+ sqr1 = (sqr1 + 0x8000) >> 16;
+
+ /* FixPoint3200 * FixPoint3200 = FixPoint6400 */
+ sqr1 *= sqr1;
+
+ sqr2 = sigmaEstimateP2;
+
+ /* (FixPoint1616 >> 16) = FixPoint3200 */
+ sqr2 = (sqr2 + 0x8000) >> 16;
+
+ /* FixPoint3200 * FixPoint3200 = FixPoint6400 */
+ sqr2 *= sqr2;
+
+ /* FixPoint64000 + FixPoint6400 = FixPoint6400 */
+ sqrSum = sqr1 + sqr2;
+
+ /* SQRT(FixPoin6400) = FixPoint3200 */
+ sqrtResult_centi_ns = VL53L0X_isqrt(sqrSum);
+
+ /* (FixPoint3200 << 16) = FixPoint1616 */
+ sqrtResult_centi_ns <<= 16;
+
+ /*
+ * Note that the Speed Of Light is expressed in um per 1E-10
+ * seconds (2997) Therefore to get mm/ns we have to divide by
+ * 10000
+ */
+ sigmaEstRtn = (((sqrtResult_centi_ns+50)/100) /
+ sigmaEstimateP3);
+ sigmaEstRtn *= VL53L0X_SPEED_OF_LIGHT_IN_AIR;
+
+ /* Add 5000 before dividing by 10000 to ensure rounding. */
+ sigmaEstRtn += 5000;
+ sigmaEstRtn /= 10000;
+
+ if (sigmaEstRtn > cSigmaEstRtnMax) {
+ /* Clip to prevent overflow. Will ensure safe
+ * max result. */
+ sigmaEstRtn = cSigmaEstRtnMax;
+ }
+
+ /* FixPoint1616 * FixPoint1616 = FixPoint3232 */
+ sqr1 = sigmaEstRtn * sigmaEstRtn;
+ /* FixPoint1616 * FixPoint1616 = FixPoint3232 */
+ sqr2 = cSigmaEstRef * cSigmaEstRef;
+
+ /* sqrt(FixPoint3232) = FixPoint1616 */
+ sqrtResult = VL53L0X_isqrt((sqr1 + sqr2));
+ /*
+ * Note that the Shift by 4 bits increases resolution prior to
+ * the sqrt, therefore the result must be shifted by 2 bits to
+ * the right to revert back to the FixPoint1616 format.
+ */
+
+ sigmaEstimate = 1000 * sqrtResult;
+
+ if ((peakSignalRate_kcps < 1) || (vcselTotalEventsRtn < 1) ||
+ (sigmaEstimate > cSigmaEstMax)) {
+ sigmaEstimate = cSigmaEstMax;
+ }
+
+ *pSigmaEstimate = (uint32_t)(sigmaEstimate);
+ PALDevDataSet(Dev, SigmaEstimate, *pSigmaEstimate);
+ Status = VL53L0X_calc_dmax(
+ Dev,
+ totalSignalRate_mcps,
+ correctedSignalRate_mcps,
+ pwMult,
+ sigmaEstimateP1,
+ sigmaEstimateP2,
+ peakVcselDuration_us,
+ pDmax_mm);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_get_pal_range_status(VL53L0X_DEV Dev,
+ uint8_t DeviceRangeStatus,
+ FixPoint1616_t SignalRate,
+ uint16_t EffectiveSpadRtnCount,
+ VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+ uint8_t *pPalRangeStatus)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t NoneFlag;
+ uint8_t SigmaLimitflag = 0;
+ uint8_t SignalRefClipflag = 0;
+ uint8_t RangeIgnoreThresholdflag = 0;
+ uint8_t SigmaLimitCheckEnable = 0;
+ uint8_t SignalRateFinalRangeLimitCheckEnable = 0;
+ uint8_t SignalRefClipLimitCheckEnable = 0;
+ uint8_t RangeIgnoreThresholdLimitCheckEnable = 0;
+ FixPoint1616_t SigmaEstimate;
+ FixPoint1616_t SigmaLimitValue;
+ FixPoint1616_t SignalRefClipValue;
+ FixPoint1616_t RangeIgnoreThresholdValue;
+ FixPoint1616_t SignalRatePerSpad;
+ uint8_t DeviceRangeStatusInternal = 0;
+ uint16_t tmpWord = 0;
+ uint8_t Temp8;
+ uint32_t Dmax_mm = 0;
+ FixPoint1616_t LastSignalRefMcps;
+
+ LOG_FUNCTION_START("");
+
+
+ /*
+ * VL53L0X has a good ranging when the value of the
+ * DeviceRangeStatus = 11. This function will replace the value 0 with
+ * the value 11 in the DeviceRangeStatus.
+ * In addition, the SigmaEstimator is not included in the VL53L0X
+ * DeviceRangeStatus, this will be added in the PalRangeStatus.
+ */
+
+ DeviceRangeStatusInternal = ((DeviceRangeStatus & 0x78) >> 3);
+
+ if (DeviceRangeStatusInternal == 0 ||
+ DeviceRangeStatusInternal == 5 ||
+ DeviceRangeStatusInternal == 7 ||
+ DeviceRangeStatusInternal == 12 ||
+ DeviceRangeStatusInternal == 13 ||
+ DeviceRangeStatusInternal == 14 ||
+ DeviceRangeStatusInternal == 15
+ ) {
+ NoneFlag = 1;
+ } else {
+ NoneFlag = 0;
+ }
+
+ /* LastSignalRefMcps */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x01);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_RdWord(Dev,
+ VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF,
+ &tmpWord);
+
+ LastSignalRefMcps = VL53L0X_FIXPOINT97TOFIXPOINT1616(tmpWord);
+
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_WrByte(Dev, 0xFF, 0x00);
+
+ PALDevDataSet(Dev, LastSignalRefMcps, LastSignalRefMcps);
+
+ /*
+ * Check if Sigma limit is enabled, if yes then do comparison with limit
+ * value and put the result back into pPalRangeStatus.
+ */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_GetLimitCheckEnable(Dev,
+ VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
+ &SigmaLimitCheckEnable);
+
+ if ((SigmaLimitCheckEnable != 0) && (Status == VL53L0X_ERROR_NONE)) {
+ /*
+ * compute the Sigma and check with limit
+ */
+ Status = VL53L0X_calc_sigma_estimate(
+ Dev,
+ pRangingMeasurementData,
+ &SigmaEstimate,
+ &Dmax_mm);
+ if (Status == VL53L0X_ERROR_NONE)
+ pRangingMeasurementData->RangeDMaxMilliMeter = Dmax_mm;
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_GetLimitCheckValue(Dev,
+ VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE,
+ &SigmaLimitValue);
+
+ if ((SigmaLimitValue > 0) &&
+ (SigmaEstimate > SigmaLimitValue))
+ /* Limit Fail */
+ SigmaLimitflag = 1;
+ }
+ }
+
+ /*
+ * Check if Signal ref clip limit is enabled, if yes then do comparison
+ * with limit value and put the result back into pPalRangeStatus.
+ */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_GetLimitCheckEnable(Dev,
+ VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
+ &SignalRefClipLimitCheckEnable);
+
+ if ((SignalRefClipLimitCheckEnable != 0) &&
+ (Status == VL53L0X_ERROR_NONE)) {
+
+ Status = VL53L0X_GetLimitCheckValue(Dev,
+ VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP,
+ &SignalRefClipValue);
+
+ if ((SignalRefClipValue > 0) &&
+ (LastSignalRefMcps > SignalRefClipValue)) {
+ /* Limit Fail */
+ SignalRefClipflag = 1;
+ }
+ }
+
+ /*
+ * Check if Signal ref clip limit is enabled, if yes then do comparison
+ * with limit value and put the result back into pPalRangeStatus.
+ * EffectiveSpadRtnCount has a format 8.8
+ * If (Return signal rate < (1.5 x Xtalk x number of Spads)) : FAIL
+ */
+ if (Status == VL53L0X_ERROR_NONE)
+ Status = VL53L0X_GetLimitCheckEnable(Dev,
+ VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+ &RangeIgnoreThresholdLimitCheckEnable);
+
+ if ((RangeIgnoreThresholdLimitCheckEnable != 0) &&
+ (Status == VL53L0X_ERROR_NONE)) {
+
+ /* Compute the signal rate per spad */
+ if (EffectiveSpadRtnCount == 0) {
+ SignalRatePerSpad = 0;
+ } else {
+ SignalRatePerSpad = (FixPoint1616_t)((256 * SignalRate)
+ / EffectiveSpadRtnCount);
+ }
+
+ Status = VL53L0X_GetLimitCheckValue(Dev,
+ VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+ &RangeIgnoreThresholdValue);
+
+ if ((RangeIgnoreThresholdValue > 0) &&
+ (SignalRatePerSpad < RangeIgnoreThresholdValue)) {
+ /* Limit Fail add 2^6 to range status */
+ RangeIgnoreThresholdflag = 1;
+ }
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (NoneFlag == 1) {
+ *pPalRangeStatus = 255; /* NONE */
+ } else if (DeviceRangeStatusInternal == 1 ||
+ DeviceRangeStatusInternal == 2 ||
+ DeviceRangeStatusInternal == 3) {
+ *pPalRangeStatus = 5; /* HW fail */
+ } else if (DeviceRangeStatusInternal == 6 ||
+ DeviceRangeStatusInternal == 9) {
+ *pPalRangeStatus = 4; /* Phase fail */
+ } else if (DeviceRangeStatusInternal == 8 ||
+ DeviceRangeStatusInternal == 10 ||
+ SignalRefClipflag == 1) {
+ *pPalRangeStatus = 3; /* Min range */
+ } else if (DeviceRangeStatusInternal == 4 ||
+ RangeIgnoreThresholdflag == 1) {
+ *pPalRangeStatus = 2; /* Signal Fail */
+ } else if (SigmaLimitflag == 1) {
+ *pPalRangeStatus = 1; /* Sigma Fail */
+ } else {
+ *pPalRangeStatus = 0; /* Range Valid */
+ }
+ }
+
+ /* DMAX only relevant during range error */
+ if (*pPalRangeStatus == 0)
+ pRangingMeasurementData->RangeDMaxMilliMeter = 0;
+
+ /* fill the Limit Check Status */
+
+ Status = VL53L0X_GetLimitCheckEnable(Dev,
+ VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE,
+ &SignalRateFinalRangeLimitCheckEnable);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if ((SigmaLimitCheckEnable == 0) || (SigmaLimitflag == 1))
+ Temp8 = 1;
+ else
+ Temp8 = 0;
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+ VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, Temp8);
+
+ if ((DeviceRangeStatusInternal == 4) ||
+ (SignalRateFinalRangeLimitCheckEnable == 0))
+ Temp8 = 1;
+ else
+ Temp8 = 0;
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+ VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE,
+ Temp8);
+
+ if ((SignalRefClipLimitCheckEnable == 0) ||
+ (SignalRefClipflag == 1))
+ Temp8 = 1;
+ else
+ Temp8 = 0;
+
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+ VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP, Temp8);
+
+ if ((RangeIgnoreThresholdLimitCheckEnable == 0) ||
+ (RangeIgnoreThresholdflag == 1))
+ Temp8 = 1;
+ else
+ Temp8 = 0;
+
+ VL53L0X_SETARRAYPARAMETERFIELD(Dev, LimitChecksStatus,
+ VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD,
+ Temp8);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+
+}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.h
new file mode 100644
index 000000000..b019419b3
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.h
@@ -0,0 +1,112 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#ifndef _VL53L0X_API_CORE_H_
+#define _VL53L0X_API_CORE_H_
+
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+VL53L0X_Error VL53L0X_reverse_bytes(uint8_t *data, uint32_t size);
+
+VL53L0X_Error VL53L0X_measurement_poll_for_completion(VL53L0X_DEV Dev);
+
+uint8_t VL53L0X_encode_vcsel_period(uint8_t vcsel_period_pclks);
+
+uint8_t VL53L0X_decode_vcsel_period(uint8_t vcsel_period_reg);
+
+uint32_t VL53L0X_isqrt(uint32_t num);
+
+uint32_t VL53L0X_quadrature_sum(uint32_t a, uint32_t b);
+
+VL53L0X_Error VL53L0X_get_info_from_device(VL53L0X_DEV Dev, uint8_t option);
+
+VL53L0X_Error VL53L0X_set_vcsel_pulse_period(VL53L0X_DEV Dev,
+ VL53L0X_VcselPeriod VcselPeriodType, uint8_t VCSELPulsePeriodPCLK);
+
+VL53L0X_Error VL53L0X_get_vcsel_pulse_period(VL53L0X_DEV Dev,
+ VL53L0X_VcselPeriod VcselPeriodType, uint8_t *pVCSELPulsePeriodPCLK);
+
+uint32_t VL53L0X_decode_timeout(uint16_t encoded_timeout);
+
+VL53L0X_Error get_sequence_step_timeout(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId,
+ uint32_t *pTimeOutMicroSecs);
+
+VL53L0X_Error set_sequence_step_timeout(VL53L0X_DEV Dev,
+ VL53L0X_SequenceStepId SequenceStepId,
+ uint32_t TimeOutMicroSecs);
+
+VL53L0X_Error VL53L0X_set_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
+ uint32_t MeasurementTimingBudgetMicroSeconds);
+
+VL53L0X_Error VL53L0X_get_measurement_timing_budget_micro_seconds(VL53L0X_DEV Dev,
+ uint32_t *pMeasurementTimingBudgetMicroSeconds);
+
+VL53L0X_Error VL53L0X_load_tuning_settings(VL53L0X_DEV Dev,
+ uint8_t *pTuningSettingBuffer);
+
+VL53L0X_Error VL53L0X_calc_sigma_estimate(VL53L0X_DEV Dev,
+ VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+ FixPoint1616_t *pSigmaEstimate, uint32_t *pDmax_mm);
+
+VL53L0X_Error VL53L0X_get_total_xtalk_rate(VL53L0X_DEV Dev,
+ VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+ FixPoint1616_t *ptotal_xtalk_rate_mcps);
+
+VL53L0X_Error VL53L0X_get_total_signal_rate(VL53L0X_DEV Dev,
+ VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+ FixPoint1616_t *ptotal_signal_rate_mcps);
+
+VL53L0X_Error VL53L0X_get_pal_range_status(VL53L0X_DEV Dev,
+ uint8_t DeviceRangeStatus,
+ FixPoint1616_t SignalRate,
+ uint16_t EffectiveSpadRtnCount,
+ VL53L0X_RangingMeasurementData_t *pRangingMeasurementData,
+ uint8_t *pPalRangeStatus);
+
+VL53L0X_Error VL53L0X_device_read_strobe(VL53L0X_DEV Dev);
+
+VL53L0X_Error VL53L0X_calc_dmax(
+ VL53L0X_DEV Dev,
+ FixPoint1616_t totalSignalRate_mcps,
+ FixPoint1616_t totalCorrSignalRate_mcps,
+ FixPoint1616_t pwMult,
+ uint32_t sigmaEstimateP1,
+ FixPoint1616_t sigmaEstimateP2,
+ uint32_t peakVcselDuration_us,
+ uint32_t *pdmax_mm);
+
+uint32_t VL53L0X_calc_timeout_mclks(VL53L0X_DEV Dev,
+ uint32_t timeout_period_us, uint8_t vcsel_period_pclks);
+
+uint16_t VL53L0X_encode_timeout(uint32_t timeout_macro_clks);
+
+uint32_t VL53L0X_calc_macro_period_ps(VL53L0X_DEV Dev, uint8_t vcsel_period_pclks);
+
+uint32_t VL53L0X_calc_timeout_us(VL53L0X_DEV Dev,
+ uint16_t timeout_period_mclks,
+ uint8_t vcsel_period_pclks);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VL53L0X_API_CORE_H_ */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c
new file mode 100644
index 000000000..27ff440ce
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c
@@ -0,0 +1,28 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#include "vl53l0x_api.h"
+#include "vl53l0x_api_core.h"
+
+
+#ifndef __KERNEL__
+#include <stdlib.h>
+#endif
+#define LOG_FUNCTION_START(fmt, ...) \
+ _LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
+#define LOG_FUNCTION_END(status, ...) \
+ _LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
+#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
+ _LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h
new file mode 100644
index 000000000..a1f0f6657
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h
@@ -0,0 +1,33 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#ifndef _VL53L0X_API_RANGING_H_
+#define _VL53L0X_API_RANGING_H_
+
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VL53L0X_API_RANGING_H_ */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.c
new file mode 100644
index 000000000..8b1e814f6
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.c
@@ -0,0 +1,448 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#include "vl53l0x_api.h"
+#include "vl53l0x_api_core.h"
+#include "vl53l0x_api_strings.h"
+
+#ifndef __KERNEL__
+#include <stdlib.h>
+#endif
+
+#define LOG_FUNCTION_START(fmt, ...) \
+ _LOG_FUNCTION_START(TRACE_MODULE_API, fmt, ##__VA_ARGS__)
+#define LOG_FUNCTION_END(status, ...) \
+ _LOG_FUNCTION_END(TRACE_MODULE_API, status, ##__VA_ARGS__)
+#define LOG_FUNCTION_END_FMT(status, fmt, ...) \
+ _LOG_FUNCTION_END_FMT(TRACE_MODULE_API, status, fmt, ##__VA_ARGS__)
+
+
+VL53L0X_Error VL53L0X_check_part_used(VL53L0X_DEV Dev,
+ uint8_t *Revision,
+ VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t ModuleIdInt;
+ char *ProductId_tmp;
+
+ LOG_FUNCTION_START("");
+
+ Status = VL53L0X_get_info_from_device(Dev, 2);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ ModuleIdInt = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev, ModuleId);
+
+ if (ModuleIdInt == 0) {
+ *Revision = 0;
+ VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->ProductId, "");
+ } else {
+ *Revision = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev, Revision);
+ ProductId_tmp = VL53L0X_GETDEVICESPECIFICPARAMETER(Dev,
+ ProductId);
+ VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->ProductId, ProductId_tmp);
+ }
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+
+VL53L0X_Error VL53L0X_get_device_info(VL53L0X_DEV Dev,
+ VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t revision_id;
+ uint8_t Revision;
+
+ Status = VL53L0X_check_part_used(Dev, &Revision, pVL53L0X_DeviceInfo);
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ if (Revision == 0) {
+ VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Name,
+ VL53L0X_STRING_DEVICE_INFO_NAME_TS0);
+ } else if ((Revision <= 34) && (Revision != 32)) {
+ VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Name,
+ VL53L0X_STRING_DEVICE_INFO_NAME_TS1);
+ } else if (Revision < 39) {
+ VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Name,
+ VL53L0X_STRING_DEVICE_INFO_NAME_TS2);
+ } else {
+ VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Name,
+ VL53L0X_STRING_DEVICE_INFO_NAME_ES1);
+ }
+
+ VL53L0X_COPYSTRING(pVL53L0X_DeviceInfo->Type,
+ VL53L0X_STRING_DEVICE_INFO_TYPE);
+
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_RdByte(Dev, VL53L0X_REG_IDENTIFICATION_MODEL_ID,
+ &pVL53L0X_DeviceInfo->ProductType);
+ }
+
+ if (Status == VL53L0X_ERROR_NONE) {
+ Status = VL53L0X_RdByte(Dev,
+ VL53L0X_REG_IDENTIFICATION_REVISION_ID,
+ &revision_id);
+ pVL53L0X_DeviceInfo->ProductRevisionMajor = 1;
+ pVL53L0X_DeviceInfo->ProductRevisionMinor =
+ (revision_id & 0xF0) >> 4;
+ }
+
+ return Status;
+}
+
+
+VL53L0X_Error VL53L0X_get_device_error_string(VL53L0X_DeviceError ErrorCode,
+ char *pDeviceErrorString)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ switch (ErrorCode) {
+ case VL53L0X_DEVICEERROR_NONE:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_NONE);
+ break;
+ case VL53L0X_DEVICEERROR_VCSELCONTINUITYTESTFAILURE:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_VCSELCONTINUITYTESTFAILURE);
+ break;
+ case VL53L0X_DEVICEERROR_VCSELWATCHDOGTESTFAILURE:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_VCSELWATCHDOGTESTFAILURE);
+ break;
+ case VL53L0X_DEVICEERROR_NOVHVVALUEFOUND:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_NOVHVVALUEFOUND);
+ break;
+ case VL53L0X_DEVICEERROR_MSRCNOTARGET:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_MSRCNOTARGET);
+ break;
+ case VL53L0X_DEVICEERROR_SNRCHECK:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_SNRCHECK);
+ break;
+ case VL53L0X_DEVICEERROR_RANGEPHASECHECK:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_RANGEPHASECHECK);
+ break;
+ case VL53L0X_DEVICEERROR_SIGMATHRESHOLDCHECK:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_SIGMATHRESHOLDCHECK);
+ break;
+ case VL53L0X_DEVICEERROR_TCC:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_TCC);
+ break;
+ case VL53L0X_DEVICEERROR_PHASECONSISTENCY:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_PHASECONSISTENCY);
+ break;
+ case VL53L0X_DEVICEERROR_MINCLIP:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_MINCLIP);
+ break;
+ case VL53L0X_DEVICEERROR_RANGECOMPLETE:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_RANGECOMPLETE);
+ break;
+ case VL53L0X_DEVICEERROR_ALGOUNDERFLOW:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_ALGOUNDERFLOW);
+ break;
+ case VL53L0X_DEVICEERROR_ALGOOVERFLOW:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_ALGOOVERFLOW);
+ break;
+ case VL53L0X_DEVICEERROR_RANGEIGNORETHRESHOLD:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_DEVICEERROR_RANGEIGNORETHRESHOLD);
+ break;
+
+ default:
+ VL53L0X_COPYSTRING(pDeviceErrorString,
+ VL53L0X_STRING_UNKNOW_ERROR_CODE);
+
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_get_range_status_string(uint8_t RangeStatus,
+ char *pRangeStatusString)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ switch (RangeStatus) {
+ case 0:
+ VL53L0X_COPYSTRING(pRangeStatusString,
+ VL53L0X_STRING_RANGESTATUS_RANGEVALID);
+ break;
+ case 1:
+ VL53L0X_COPYSTRING(pRangeStatusString,
+ VL53L0X_STRING_RANGESTATUS_SIGMA);
+ break;
+ case 2:
+ VL53L0X_COPYSTRING(pRangeStatusString,
+ VL53L0X_STRING_RANGESTATUS_SIGNAL);
+ break;
+ case 3:
+ VL53L0X_COPYSTRING(pRangeStatusString,
+ VL53L0X_STRING_RANGESTATUS_MINRANGE);
+ break;
+ case 4:
+ VL53L0X_COPYSTRING(pRangeStatusString,
+ VL53L0X_STRING_RANGESTATUS_PHASE);
+ break;
+ case 5:
+ VL53L0X_COPYSTRING(pRangeStatusString,
+ VL53L0X_STRING_RANGESTATUS_HW);
+ break;
+
+ default: /**/
+ VL53L0X_COPYSTRING(pRangeStatusString,
+ VL53L0X_STRING_RANGESTATUS_NONE);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_get_pal_error_string(VL53L0X_Error PalErrorCode,
+ char *pPalErrorString)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ switch (PalErrorCode) {
+ case VL53L0X_ERROR_NONE:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_NONE);
+ break;
+ case VL53L0X_ERROR_CALIBRATION_WARNING:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_CALIBRATION_WARNING);
+ break;
+ case VL53L0X_ERROR_MIN_CLIPPED:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_MIN_CLIPPED);
+ break;
+ case VL53L0X_ERROR_UNDEFINED:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_UNDEFINED);
+ break;
+ case VL53L0X_ERROR_INVALID_PARAMS:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_INVALID_PARAMS);
+ break;
+ case VL53L0X_ERROR_NOT_SUPPORTED:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_NOT_SUPPORTED);
+ break;
+ case VL53L0X_ERROR_INTERRUPT_NOT_CLEARED:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_INTERRUPT_NOT_CLEARED);
+ break;
+ case VL53L0X_ERROR_RANGE_ERROR:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_RANGE_ERROR);
+ break;
+ case VL53L0X_ERROR_TIME_OUT:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_TIME_OUT);
+ break;
+ case VL53L0X_ERROR_MODE_NOT_SUPPORTED:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_MODE_NOT_SUPPORTED);
+ break;
+ case VL53L0X_ERROR_BUFFER_TOO_SMALL:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_BUFFER_TOO_SMALL);
+ break;
+ case VL53L0X_ERROR_GPIO_NOT_EXISTING:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_GPIO_NOT_EXISTING);
+ break;
+ case VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED);
+ break;
+ case VL53L0X_ERROR_CONTROL_INTERFACE:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_CONTROL_INTERFACE);
+ break;
+ case VL53L0X_ERROR_INVALID_COMMAND:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_INVALID_COMMAND);
+ break;
+ case VL53L0X_ERROR_DIVISION_BY_ZERO:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_DIVISION_BY_ZERO);
+ break;
+ case VL53L0X_ERROR_REF_SPAD_INIT:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_REF_SPAD_INIT);
+ break;
+ case VL53L0X_ERROR_NOT_IMPLEMENTED:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_ERROR_NOT_IMPLEMENTED);
+ break;
+
+ default:
+ VL53L0X_COPYSTRING(pPalErrorString,
+ VL53L0X_STRING_UNKNOW_ERROR_CODE);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_get_pal_state_string(VL53L0X_State PalStateCode,
+ char *pPalStateString)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ switch (PalStateCode) {
+ case VL53L0X_STATE_POWERDOWN:
+ VL53L0X_COPYSTRING(pPalStateString,
+ VL53L0X_STRING_STATE_POWERDOWN);
+ break;
+ case VL53L0X_STATE_WAIT_STATICINIT:
+ VL53L0X_COPYSTRING(pPalStateString,
+ VL53L0X_STRING_STATE_WAIT_STATICINIT);
+ break;
+ case VL53L0X_STATE_STANDBY:
+ VL53L0X_COPYSTRING(pPalStateString,
+ VL53L0X_STRING_STATE_STANDBY);
+ break;
+ case VL53L0X_STATE_IDLE:
+ VL53L0X_COPYSTRING(pPalStateString,
+ VL53L0X_STRING_STATE_IDLE);
+ break;
+ case VL53L0X_STATE_RUNNING:
+ VL53L0X_COPYSTRING(pPalStateString,
+ VL53L0X_STRING_STATE_RUNNING);
+ break;
+ case VL53L0X_STATE_UNKNOWN:
+ VL53L0X_COPYSTRING(pPalStateString,
+ VL53L0X_STRING_STATE_UNKNOWN);
+ break;
+ case VL53L0X_STATE_ERROR:
+ VL53L0X_COPYSTRING(pPalStateString,
+ VL53L0X_STRING_STATE_ERROR);
+ break;
+
+ default:
+ VL53L0X_COPYSTRING(pPalStateString,
+ VL53L0X_STRING_STATE_UNKNOWN);
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_get_sequence_steps_info(
+ VL53L0X_SequenceStepId SequenceStepId,
+ char *pSequenceStepsString)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ LOG_FUNCTION_START("");
+
+ switch (SequenceStepId) {
+ case VL53L0X_SEQUENCESTEP_TCC:
+ VL53L0X_COPYSTRING(pSequenceStepsString,
+ VL53L0X_STRING_SEQUENCESTEP_TCC);
+ break;
+ case VL53L0X_SEQUENCESTEP_DSS:
+ VL53L0X_COPYSTRING(pSequenceStepsString,
+ VL53L0X_STRING_SEQUENCESTEP_DSS);
+ break;
+ case VL53L0X_SEQUENCESTEP_MSRC:
+ VL53L0X_COPYSTRING(pSequenceStepsString,
+ VL53L0X_STRING_SEQUENCESTEP_MSRC);
+ break;
+ case VL53L0X_SEQUENCESTEP_PRE_RANGE:
+ VL53L0X_COPYSTRING(pSequenceStepsString,
+ VL53L0X_STRING_SEQUENCESTEP_PRE_RANGE);
+ break;
+ case VL53L0X_SEQUENCESTEP_FINAL_RANGE:
+ VL53L0X_COPYSTRING(pSequenceStepsString,
+ VL53L0X_STRING_SEQUENCESTEP_FINAL_RANGE);
+ break;
+
+ default:
+ Status = VL53L0X_ERROR_INVALID_PARAMS;
+ }
+
+ LOG_FUNCTION_END(Status);
+
+ return Status;
+}
+
+
+VL53L0X_Error VL53L0X_get_limit_check_info(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+ char *pLimitCheckString)
+{
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ LOG_FUNCTION_START("");
+
+ switch (LimitCheckId) {
+ case VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE:
+ VL53L0X_COPYSTRING(pLimitCheckString,
+ VL53L0X_STRING_CHECKENABLE_SIGMA_FINAL_RANGE);
+ break;
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE:
+ VL53L0X_COPYSTRING(pLimitCheckString,
+ VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE);
+ break;
+ case VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP:
+ VL53L0X_COPYSTRING(pLimitCheckString,
+ VL53L0X_STRING_CHECKENABLE_SIGNAL_REF_CLIP);
+ break;
+ case VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD:
+ VL53L0X_COPYSTRING(pLimitCheckString,
+ VL53L0X_STRING_CHECKENABLE_RANGE_IGNORE_THRESHOLD);
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC:
+ VL53L0X_COPYSTRING(pLimitCheckString,
+ VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_MSRC);
+ break;
+
+ case VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE:
+ VL53L0X_COPYSTRING(pLimitCheckString,
+ VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_PRE_RANGE);
+ break;
+
+ default:
+ VL53L0X_COPYSTRING(pLimitCheckString,
+ VL53L0X_STRING_UNKNOW_ERROR_CODE);
+
+ }
+
+ LOG_FUNCTION_END(Status);
+ return Status;
+}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.h
new file mode 100644
index 000000000..5b77fb51b
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.h
@@ -0,0 +1,266 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#ifndef VL53L0X_API_STRINGS_H_
+#define VL53L0X_API_STRINGS_H_
+
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+VL53L0X_Error VL53L0X_get_device_info(VL53L0X_DEV Dev,
+ VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo);
+
+VL53L0X_Error VL53L0X_get_device_error_string(VL53L0X_DeviceError ErrorCode,
+ char *pDeviceErrorString);
+
+VL53L0X_Error VL53L0X_get_range_status_string(uint8_t RangeStatus,
+ char *pRangeStatusString);
+
+VL53L0X_Error VL53L0X_get_pal_error_string(VL53L0X_Error PalErrorCode,
+ char *pPalErrorString);
+
+VL53L0X_Error VL53L0X_get_pal_state_string(VL53L0X_State PalStateCode,
+ char *pPalStateString);
+
+VL53L0X_Error VL53L0X_get_sequence_steps_info(
+ VL53L0X_SequenceStepId SequenceStepId,
+ char *pSequenceStepsString);
+
+VL53L0X_Error VL53L0X_get_limit_check_info(VL53L0X_DEV Dev, uint16_t LimitCheckId,
+ char *pLimitCheckString);
+
+VL53L0X_Error VL53L0X_check_part_used(VL53L0X_DEV Dev,
+ uint8_t *Revision,
+ VL53L0X_DeviceInfo_t *pVL53L0X_DeviceInfo);
+
+#ifdef USE_EMPTY_STRING
+ #define VL53L0X_STRING_DEVICE_INFO_NAME ""
+ #define VL53L0X_STRING_DEVICE_INFO_NAME_TS0 ""
+ #define VL53L0X_STRING_DEVICE_INFO_NAME_TS1 ""
+ #define VL53L0X_STRING_DEVICE_INFO_NAME_TS2 ""
+ #define VL53L0X_STRING_DEVICE_INFO_NAME_ES1 ""
+ #define VL53L0X_STRING_DEVICE_INFO_TYPE ""
+
+ /* PAL ERROR strings */
+ #define VL53L0X_STRING_ERROR_NONE ""
+ #define VL53L0X_STRING_ERROR_CALIBRATION_WARNING ""
+ #define VL53L0X_STRING_ERROR_MIN_CLIPPED ""
+ #define VL53L0X_STRING_ERROR_UNDEFINED ""
+ #define VL53L0X_STRING_ERROR_INVALID_PARAMS ""
+ #define VL53L0X_STRING_ERROR_NOT_SUPPORTED ""
+ #define VL53L0X_STRING_ERROR_RANGE_ERROR ""
+ #define VL53L0X_STRING_ERROR_TIME_OUT ""
+ #define VL53L0X_STRING_ERROR_MODE_NOT_SUPPORTED ""
+ #define VL53L0X_STRING_ERROR_BUFFER_TOO_SMALL ""
+ #define VL53L0X_STRING_ERROR_GPIO_NOT_EXISTING ""
+ #define VL53L0X_STRING_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED ""
+ #define VL53L0X_STRING_ERROR_CONTROL_INTERFACE ""
+ #define VL53L0X_STRING_ERROR_INVALID_COMMAND ""
+ #define VL53L0X_STRING_ERROR_DIVISION_BY_ZERO ""
+ #define VL53L0X_STRING_ERROR_REF_SPAD_INIT ""
+ #define VL53L0X_STRING_ERROR_NOT_IMPLEMENTED ""
+
+ #define VL53L0X_STRING_UNKNOW_ERROR_CODE ""
+
+
+
+ /* Range Status */
+ #define VL53L0X_STRING_RANGESTATUS_NONE ""
+ #define VL53L0X_STRING_RANGESTATUS_RANGEVALID ""
+ #define VL53L0X_STRING_RANGESTATUS_SIGMA ""
+ #define VL53L0X_STRING_RANGESTATUS_SIGNAL ""
+ #define VL53L0X_STRING_RANGESTATUS_MINRANGE ""
+ #define VL53L0X_STRING_RANGESTATUS_PHASE ""
+ #define VL53L0X_STRING_RANGESTATUS_HW ""
+
+
+ /* Range Status */
+ #define VL53L0X_STRING_STATE_POWERDOWN ""
+ #define VL53L0X_STRING_STATE_WAIT_STATICINIT ""
+ #define VL53L0X_STRING_STATE_STANDBY ""
+ #define VL53L0X_STRING_STATE_IDLE ""
+ #define VL53L0X_STRING_STATE_RUNNING ""
+ #define VL53L0X_STRING_STATE_UNKNOWN ""
+ #define VL53L0X_STRING_STATE_ERROR ""
+
+
+ /* Device Specific */
+ #define VL53L0X_STRING_DEVICEERROR_NONE ""
+ #define VL53L0X_STRING_DEVICEERROR_VCSELCONTINUITYTESTFAILURE ""
+ #define VL53L0X_STRING_DEVICEERROR_VCSELWATCHDOGTESTFAILURE ""
+ #define VL53L0X_STRING_DEVICEERROR_NOVHVVALUEFOUND ""
+ #define VL53L0X_STRING_DEVICEERROR_MSRCNOTARGET ""
+ #define VL53L0X_STRING_DEVICEERROR_SNRCHECK ""
+ #define VL53L0X_STRING_DEVICEERROR_RANGEPHASECHECK ""
+ #define VL53L0X_STRING_DEVICEERROR_SIGMATHRESHOLDCHECK ""
+ #define VL53L0X_STRING_DEVICEERROR_TCC ""
+ #define VL53L0X_STRING_DEVICEERROR_PHASECONSISTENCY ""
+ #define VL53L0X_STRING_DEVICEERROR_MINCLIP ""
+ #define VL53L0X_STRING_DEVICEERROR_RANGECOMPLETE ""
+ #define VL53L0X_STRING_DEVICEERROR_ALGOUNDERFLOW ""
+ #define VL53L0X_STRING_DEVICEERROR_ALGOOVERFLOW ""
+ #define VL53L0X_STRING_DEVICEERROR_RANGEIGNORETHRESHOLD ""
+ #define VL53L0X_STRING_DEVICEERROR_UNKNOWN ""
+
+ /* Check Enable */
+ #define VL53L0X_STRING_CHECKENABLE_SIGMA_FINAL_RANGE ""
+ #define VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE ""
+ #define VL53L0X_STRING_CHECKENABLE_SIGNAL_REF_CLIP ""
+ #define VL53L0X_STRING_CHECKENABLE_RANGE_IGNORE_THRESHOLD ""
+
+ /* Sequence Step */
+ #define VL53L0X_STRING_SEQUENCESTEP_TCC ""
+ #define VL53L0X_STRING_SEQUENCESTEP_DSS ""
+ #define VL53L0X_STRING_SEQUENCESTEP_MSRC ""
+ #define VL53L0X_STRING_SEQUENCESTEP_PRE_RANGE ""
+ #define VL53L0X_STRING_SEQUENCESTEP_FINAL_RANGE ""
+#else
+ #define VL53L0X_STRING_DEVICE_INFO_NAME "VL53L0X cut1.0"
+ #define VL53L0X_STRING_DEVICE_INFO_NAME_TS0 "VL53L0X TS0"
+ #define VL53L0X_STRING_DEVICE_INFO_NAME_TS1 "VL53L0X TS1"
+ #define VL53L0X_STRING_DEVICE_INFO_NAME_TS2 "VL53L0X TS2"
+ #define VL53L0X_STRING_DEVICE_INFO_NAME_ES1 "VL53L0X ES1 or later"
+ #define VL53L0X_STRING_DEVICE_INFO_TYPE "VL53L0X"
+
+ /* PAL ERROR strings */
+ #define VL53L0X_STRING_ERROR_NONE \
+ "No Error"
+ #define VL53L0X_STRING_ERROR_CALIBRATION_WARNING \
+ "Calibration Warning Error"
+ #define VL53L0X_STRING_ERROR_MIN_CLIPPED \
+ "Min clipped error"
+ #define VL53L0X_STRING_ERROR_UNDEFINED \
+ "Undefined error"
+ #define VL53L0X_STRING_ERROR_INVALID_PARAMS \
+ "Invalid parameters error"
+ #define VL53L0X_STRING_ERROR_NOT_SUPPORTED \
+ "Not supported error"
+ #define VL53L0X_STRING_ERROR_RANGE_ERROR \
+ "Range error"
+ #define VL53L0X_STRING_ERROR_TIME_OUT \
+ "Time out error"
+ #define VL53L0X_STRING_ERROR_MODE_NOT_SUPPORTED \
+ "Mode not supported error"
+ #define VL53L0X_STRING_ERROR_BUFFER_TOO_SMALL \
+ "Buffer too small"
+ #define VL53L0X_STRING_ERROR_GPIO_NOT_EXISTING \
+ "GPIO not existing"
+ #define VL53L0X_STRING_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED \
+ "GPIO funct not supported"
+ #define VL53L0X_STRING_ERROR_INTERRUPT_NOT_CLEARED \
+ "Interrupt not Cleared"
+ #define VL53L0X_STRING_ERROR_CONTROL_INTERFACE \
+ "Control Interface Error"
+ #define VL53L0X_STRING_ERROR_INVALID_COMMAND \
+ "Invalid Command Error"
+ #define VL53L0X_STRING_ERROR_DIVISION_BY_ZERO \
+ "Division by zero Error"
+ #define VL53L0X_STRING_ERROR_REF_SPAD_INIT \
+ "Reference Spad Init Error"
+ #define VL53L0X_STRING_ERROR_NOT_IMPLEMENTED \
+ "Not implemented error"
+
+ #define VL53L0X_STRING_UNKNOW_ERROR_CODE \
+ "Unknown Error Code"
+
+
+
+ /* Range Status */
+ #define VL53L0X_STRING_RANGESTATUS_NONE "No Update"
+ #define VL53L0X_STRING_RANGESTATUS_RANGEVALID "Range Valid"
+ #define VL53L0X_STRING_RANGESTATUS_SIGMA "Sigma Fail"
+ #define VL53L0X_STRING_RANGESTATUS_SIGNAL "Signal Fail"
+ #define VL53L0X_STRING_RANGESTATUS_MINRANGE "Min Range Fail"
+ #define VL53L0X_STRING_RANGESTATUS_PHASE "Phase Fail"
+ #define VL53L0X_STRING_RANGESTATUS_HW "Hardware Fail"
+
+
+ /* Range Status */
+ #define VL53L0X_STRING_STATE_POWERDOWN "POWERDOWN State"
+ #define VL53L0X_STRING_STATE_WAIT_STATICINIT \
+ "Wait for staticinit State"
+ #define VL53L0X_STRING_STATE_STANDBY "STANDBY State"
+ #define VL53L0X_STRING_STATE_IDLE "IDLE State"
+ #define VL53L0X_STRING_STATE_RUNNING "RUNNING State"
+ #define VL53L0X_STRING_STATE_UNKNOWN "UNKNOWN State"
+ #define VL53L0X_STRING_STATE_ERROR "ERROR State"
+
+
+ /* Device Specific */
+ #define VL53L0X_STRING_DEVICEERROR_NONE "No Update"
+ #define VL53L0X_STRING_DEVICEERROR_VCSELCONTINUITYTESTFAILURE \
+ "VCSEL Continuity Test Failure"
+ #define VL53L0X_STRING_DEVICEERROR_VCSELWATCHDOGTESTFAILURE \
+ "VCSEL Watchdog Test Failure"
+ #define VL53L0X_STRING_DEVICEERROR_NOVHVVALUEFOUND \
+ "No VHV Value found"
+ #define VL53L0X_STRING_DEVICEERROR_MSRCNOTARGET \
+ "MSRC No Target Error"
+ #define VL53L0X_STRING_DEVICEERROR_SNRCHECK \
+ "SNR Check Exit"
+ #define VL53L0X_STRING_DEVICEERROR_RANGEPHASECHECK \
+ "Range Phase Check Error"
+ #define VL53L0X_STRING_DEVICEERROR_SIGMATHRESHOLDCHECK \
+ "Sigma Threshold Check Error"
+ #define VL53L0X_STRING_DEVICEERROR_TCC \
+ "TCC Error"
+ #define VL53L0X_STRING_DEVICEERROR_PHASECONSISTENCY \
+ "Phase Consistency Error"
+ #define VL53L0X_STRING_DEVICEERROR_MINCLIP \
+ "Min Clip Error"
+ #define VL53L0X_STRING_DEVICEERROR_RANGECOMPLETE \
+ "Range Complete"
+ #define VL53L0X_STRING_DEVICEERROR_ALGOUNDERFLOW \
+ "Range Algo Underflow Error"
+ #define VL53L0X_STRING_DEVICEERROR_ALGOOVERFLOW \
+ "Range Algo Overlow Error"
+ #define VL53L0X_STRING_DEVICEERROR_RANGEIGNORETHRESHOLD \
+ "Range Ignore Threshold Error"
+ #define VL53L0X_STRING_DEVICEERROR_UNKNOWN \
+ "Unknown error code"
+
+ /* Check Enable */
+ #define VL53L0X_STRING_CHECKENABLE_SIGMA_FINAL_RANGE \
+ "SIGMA FINAL RANGE"
+ #define VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE \
+ "SIGNAL RATE FINAL RANGE"
+ #define VL53L0X_STRING_CHECKENABLE_SIGNAL_REF_CLIP \
+ "SIGNAL REF CLIP"
+ #define VL53L0X_STRING_CHECKENABLE_RANGE_IGNORE_THRESHOLD \
+ "RANGE IGNORE THRESHOLD"
+ #define VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_MSRC \
+ "SIGNAL RATE MSRC"
+ #define VL53L0X_STRING_CHECKENABLE_SIGNAL_RATE_PRE_RANGE \
+ "SIGNAL RATE PRE RANGE"
+
+ /* Sequence Step */
+ #define VL53L0X_STRING_SEQUENCESTEP_TCC "TCC"
+ #define VL53L0X_STRING_SEQUENCESTEP_DSS "DSS"
+ #define VL53L0X_STRING_SEQUENCESTEP_MSRC "MSRC"
+ #define VL53L0X_STRING_SEQUENCESTEP_PRE_RANGE "PRE RANGE"
+ #define VL53L0X_STRING_SEQUENCESTEP_FINAL_RANGE "FINAL RANGE"
+#endif /* USE_EMPTY_STRING */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_def.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_def.h
new file mode 100644
index 000000000..6416e01ca
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_def.h
@@ -0,0 +1,619 @@
+/**
+ ******************************************************************************
+ * @file VL53L0X_def.h
+ * @brief Type definitions for VL53L0X API
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#ifndef _VL53L0X_DEF_H_
+#define _VL53L0X_DEF_H_
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** @defgroup VL53L0X_globaldefine_group VL53L0X Defines
+ * @brief VL53L0X Defines
+ * @{
+ */
+
+
+/** PAL SPECIFICATION major version */
+#define VL53L0X10_SPECIFICATION_VER_MAJOR 1
+/** PAL SPECIFICATION minor version */
+#define VL53L0X10_SPECIFICATION_VER_MINOR 2
+/** PAL SPECIFICATION sub version */
+#define VL53L0X10_SPECIFICATION_VER_SUB 7
+/** PAL SPECIFICATION sub version */
+#define VL53L0X10_SPECIFICATION_VER_REVISION 1440
+
+/** VL53L0X PAL IMPLEMENTATION major version */
+#define VL53L0X10_IMPLEMENTATION_VER_MAJOR 1
+/** VL53L0X PAL IMPLEMENTATION minor version */
+#define VL53L0X10_IMPLEMENTATION_VER_MINOR 0
+/** VL53L0X PAL IMPLEMENTATION sub version */
+#define VL53L0X10_IMPLEMENTATION_VER_SUB 9
+/** VL53L0X PAL IMPLEMENTATION sub version */
+#define VL53L0X10_IMPLEMENTATION_VER_REVISION 3673
+
+/** PAL SPECIFICATION major version */
+#define VL53L0X_SPECIFICATION_VER_MAJOR 1
+/** PAL SPECIFICATION minor version */
+#define VL53L0X_SPECIFICATION_VER_MINOR 2
+/** PAL SPECIFICATION sub version */
+#define VL53L0X_SPECIFICATION_VER_SUB 7
+/** PAL SPECIFICATION sub version */
+#define VL53L0X_SPECIFICATION_VER_REVISION 1440
+
+/** VL53L0X PAL IMPLEMENTATION major version */
+#define VL53L0X_IMPLEMENTATION_VER_MAJOR 1
+/** VL53L0X PAL IMPLEMENTATION minor version */
+#define VL53L0X_IMPLEMENTATION_VER_MINOR 0
+/** VL53L0X PAL IMPLEMENTATION sub version */
+#define VL53L0X_IMPLEMENTATION_VER_SUB 0
+/** VL53L0X PAL IMPLEMENTATION sub version */
+#define VL53L0X_IMPLEMENTATION_VER_REVISION 4570
+#define VL53L0X_DEFAULT_MAX_LOOP 200
+#define VL53L0X_MAX_STRING_LENGTH 32
+
+
+#include "vl53l0x_device.h"
+#include "vl53l0x_types.h"
+
+
+/****************************************
+ * PRIVATE define do not edit
+ ****************************************/
+
+/** @brief Defines the parameters of the Get Version Functions
+ */
+typedef struct {
+ uint32_t revision; /*!< revision number */
+ uint8_t major; /*!< major number */
+ uint8_t minor; /*!< minor number */
+ uint8_t build; /*!< build number */
+} VL53L0X_Version_t;
+
+
+/** @brief Defines the parameters of the Get Device Info Functions
+ */
+typedef struct {
+ char Name[VL53L0X_MAX_STRING_LENGTH];
+ /*!< Name of the Device e.g. Left_Distance */
+ char Type[VL53L0X_MAX_STRING_LENGTH];
+ /*!< Type of the Device e.g VL53L0X */
+ char ProductId[VL53L0X_MAX_STRING_LENGTH];
+ /*!< Product Identifier String */
+ uint8_t ProductType;
+ /*!< Product Type, VL53L0X = 1, VL53L1 = 2 */
+ uint8_t ProductRevisionMajor;
+ /*!< Product revision major */
+ uint8_t ProductRevisionMinor;
+ /*!< Product revision minor */
+} VL53L0X_DeviceInfo_t;
+
+
+/** @defgroup VL53L0X_define_Error_group Error and Warning code returned by API
+ * The following DEFINE are used to identify the PAL ERROR
+ * @{
+ */
+
+typedef int8_t VL53L0X_Error;
+
+#define VL53L0X_ERROR_NONE ((VL53L0X_Error) 0)
+#define VL53L0X_ERROR_CALIBRATION_WARNING ((VL53L0X_Error) -1)
+ /*!< Warning invalid calibration data may be in used
+ \a VL53L0X_InitData()
+ \a VL53L0X_GetOffsetCalibrationData
+ \a VL53L0X_SetOffsetCalibrationData */
+#define VL53L0X_ERROR_MIN_CLIPPED ((VL53L0X_Error) -2)
+ /*!< Warning parameter passed was clipped to min before to be applied */
+
+#define VL53L0X_ERROR_UNDEFINED ((VL53L0X_Error) -3)
+ /*!< Unqualified error */
+#define VL53L0X_ERROR_INVALID_PARAMS ((VL53L0X_Error) -4)
+ /*!< Parameter passed is invalid or out of range */
+#define VL53L0X_ERROR_NOT_SUPPORTED ((VL53L0X_Error) -5)
+ /*!< Function is not supported in current mode or configuration */
+#define VL53L0X_ERROR_RANGE_ERROR ((VL53L0X_Error) -6)
+ /*!< Device report a ranging error interrupt status */
+#define VL53L0X_ERROR_TIME_OUT ((VL53L0X_Error) -7)
+ /*!< Aborted due to time out */
+#define VL53L0X_ERROR_MODE_NOT_SUPPORTED ((VL53L0X_Error) -8)
+ /*!< Asked mode is not supported by the device */
+#define VL53L0X_ERROR_BUFFER_TOO_SMALL ((VL53L0X_Error) -9)
+ /*!< ... */
+#define VL53L0X_ERROR_GPIO_NOT_EXISTING ((VL53L0X_Error) -10)
+ /*!< User tried to setup a non-existing GPIO pin */
+#define VL53L0X_ERROR_GPIO_FUNCTIONALITY_NOT_SUPPORTED ((VL53L0X_Error) -11)
+ /*!< unsupported GPIO functionality */
+#define VL53L0X_ERROR_INTERRUPT_NOT_CLEARED ((VL53L0X_Error) -12)
+ /*!< Error during interrupt clear */
+#define VL53L0X_ERROR_CONTROL_INTERFACE ((VL53L0X_Error) -20)
+ /*!< error reported from IO functions */
+#define VL53L0X_ERROR_INVALID_COMMAND ((VL53L0X_Error) -30)
+ /*!< The command is not allowed in the current device state
+ * (power down) */
+#define VL53L0X_ERROR_DIVISION_BY_ZERO ((VL53L0X_Error) -40)
+ /*!< In the function a division by zero occurs */
+#define VL53L0X_ERROR_REF_SPAD_INIT ((VL53L0X_Error) -50)
+ /*!< Error during reference SPAD initialization */
+#define VL53L0X_ERROR_NOT_IMPLEMENTED ((VL53L0X_Error) -99)
+ /*!< Tells requested functionality has not been implemented yet or
+ * not compatible with the device */
+/** @} VL53L0X_define_Error_group */
+
+
+/** @defgroup VL53L0X_define_DeviceModes_group Defines Device modes
+ * Defines all possible modes for the device
+ * @{
+ */
+typedef uint8_t VL53L0X_DeviceModes;
+
+#define VL53L0X_DEVICEMODE_SINGLE_RANGING ((VL53L0X_DeviceModes) 0)
+#define VL53L0X_DEVICEMODE_CONTINUOUS_RANGING ((VL53L0X_DeviceModes) 1)
+#define VL53L0X_DEVICEMODE_SINGLE_HISTOGRAM ((VL53L0X_DeviceModes) 2)
+#define VL53L0X_DEVICEMODE_CONTINUOUS_TIMED_RANGING ((VL53L0X_DeviceModes) 3)
+#define VL53L0X_DEVICEMODE_SINGLE_ALS ((VL53L0X_DeviceModes) 10)
+#define VL53L0X_DEVICEMODE_GPIO_DRIVE ((VL53L0X_DeviceModes) 20)
+#define VL53L0X_DEVICEMODE_GPIO_OSC ((VL53L0X_DeviceModes) 21)
+ /* ... Modes to be added depending on device */
+/** @} VL53L0X_define_DeviceModes_group */
+
+
+
+/** @defgroup VL53L0X_define_HistogramModes_group Defines Histogram modes
+ * Defines all possible Histogram modes for the device
+ * @{
+ */
+typedef uint8_t VL53L0X_HistogramModes;
+
+#define VL53L0X_HISTOGRAMMODE_DISABLED ((VL53L0X_HistogramModes) 0)
+ /*!< Histogram Disabled */
+#define VL53L0X_HISTOGRAMMODE_REFERENCE_ONLY ((VL53L0X_HistogramModes) 1)
+ /*!< Histogram Reference array only */
+#define VL53L0X_HISTOGRAMMODE_RETURN_ONLY ((VL53L0X_HistogramModes) 2)
+ /*!< Histogram Return array only */
+#define VL53L0X_HISTOGRAMMODE_BOTH ((VL53L0X_HistogramModes) 3)
+ /*!< Histogram both Reference and Return Arrays */
+ /* ... Modes to be added depending on device */
+/** @} VL53L0X_define_HistogramModes_group */
+
+
+/** @defgroup VL53L0X_define_PowerModes_group List of available Power Modes
+ * List of available Power Modes
+ * @{
+ */
+
+typedef uint8_t VL53L0X_PowerModes;
+
+#define VL53L0X_POWERMODE_STANDBY_LEVEL1 ((VL53L0X_PowerModes) 0)
+ /*!< Standby level 1 */
+#define VL53L0X_POWERMODE_STANDBY_LEVEL2 ((VL53L0X_PowerModes) 1)
+ /*!< Standby level 2 */
+#define VL53L0X_POWERMODE_IDLE_LEVEL1 ((VL53L0X_PowerModes) 2)
+ /*!< Idle level 1 */
+#define VL53L0X_POWERMODE_IDLE_LEVEL2 ((VL53L0X_PowerModes) 3)
+ /*!< Idle level 2 */
+
+/** @} VL53L0X_define_PowerModes_group */
+
+
+/** @brief Defines all parameters for the device
+ */
+typedef struct {
+ VL53L0X_DeviceModes DeviceMode;
+ /*!< Defines type of measurement to be done for the next measure */
+ VL53L0X_HistogramModes HistogramMode;
+ /*!< Defines type of histogram measurement to be done for the next
+ * measure */
+ uint32_t MeasurementTimingBudgetMicroSeconds;
+ /*!< Defines the allowed total time for a single measurement */
+ uint32_t InterMeasurementPeriodMilliSeconds;
+ /*!< Defines time between two consecutive measurements (between two
+ * measurement starts). If set to 0 means back-to-back mode */
+ uint8_t XTalkCompensationEnable;
+ /*!< Tells if Crosstalk compensation shall be enable or not */
+ uint16_t XTalkCompensationRangeMilliMeter;
+ /*!< CrossTalk compensation range in millimeter */
+ FixPoint1616_t XTalkCompensationRateMegaCps;
+ /*!< CrossTalk compensation rate in Mega counts per seconds.
+ * Expressed in 16.16 fixed point format. */
+ int32_t RangeOffsetMicroMeters;
+ /*!< Range offset adjustment (mm). */
+
+ uint8_t LimitChecksEnable[VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS];
+ /*!< This Array store all the Limit Check enable for this device. */
+ uint8_t LimitChecksStatus[VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS];
+ /*!< This Array store all the Status of the check linked to last
+ * measurement. */
+ FixPoint1616_t LimitChecksValue[VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS];
+ /*!< This Array store all the Limit Check value for this device */
+
+ uint8_t WrapAroundCheckEnable;
+ /*!< Tells if Wrap Around Check shall be enable or not */
+} VL53L0X_DeviceParameters_t;
+
+
+/** @defgroup VL53L0X_define_State_group Defines the current status of the device
+ * Defines the current status of the device
+ * @{
+ */
+
+typedef uint8_t VL53L0X_State;
+
+#define VL53L0X_STATE_POWERDOWN ((VL53L0X_State) 0)
+ /*!< Device is in HW reset */
+#define VL53L0X_STATE_WAIT_STATICINIT ((VL53L0X_State) 1)
+ /*!< Device is initialized and wait for static initialization */
+#define VL53L0X_STATE_STANDBY ((VL53L0X_State) 2)
+ /*!< Device is in Low power Standby mode */
+#define VL53L0X_STATE_IDLE ((VL53L0X_State) 3)
+ /*!< Device has been initialized and ready to do measurements */
+#define VL53L0X_STATE_RUNNING ((VL53L0X_State) 4)
+ /*!< Device is performing measurement */
+#define VL53L0X_STATE_UNKNOWN ((VL53L0X_State) 98)
+ /*!< Device is in unknown state and need to be rebooted */
+#define VL53L0X_STATE_ERROR ((VL53L0X_State) 99)
+ /*!< Device is in error state and need to be rebooted */
+
+/** @} VL53L0X_define_State_group */
+
+
+/** @brief Structure containing the Dmax computation parameters and data
+ */
+typedef struct {
+ int32_t AmbTuningWindowFactor_K;
+ /*!< internal algo tuning (*1000) */
+ int32_t RetSignalAt0mm;
+ /*!< intermediate dmax computation value caching */
+} VL53L0X_DMaxData_t;
+
+/**
+ * @struct VL53L0X_RangeData_t
+ * @brief Range measurement data.
+ */
+typedef struct {
+ uint32_t TimeStamp; /*!< 32-bit time stamp. */
+ uint32_t MeasurementTimeUsec;
+ /*!< Give the Measurement time needed by the device to do the
+ * measurement.*/
+
+
+ uint16_t RangeMilliMeter; /*!< range distance in millimeter. */
+
+ uint16_t RangeDMaxMilliMeter;
+ /*!< Tells what is the maximum detection distance of the device
+ * in current setup and environment conditions (Filled when
+ * applicable) */
+
+ FixPoint1616_t SignalRateRtnMegaCps;
+ /*!< Return signal rate (MCPS)\n these is a 16.16 fix point
+ * value, which is effectively a measure of target
+ * reflectance.*/
+ FixPoint1616_t AmbientRateRtnMegaCps;
+ /*!< Return ambient rate (MCPS)\n these is a 16.16 fix point
+ * value, which is effectively a measure of the ambien
+ * t light.*/
+
+ uint16_t EffectiveSpadRtnCount;
+ /*!< Return the effective SPAD count for the return signal.
+ * To obtain Real value it should be divided by 256 */
+
+ uint8_t ZoneId;
+ /*!< Denotes which zone and range scheduler stage the range
+ * data relates to. */
+ uint8_t RangeFractionalPart;
+ /*!< Fractional part of range distance. Final value is a
+ * FixPoint168 value. */
+ uint8_t RangeStatus;
+ /*!< Range Status for the current measurement. This is device
+ * dependent. Value = 0 means value is valid.
+ * See \ref RangeStatusPage */
+} VL53L0X_RangingMeasurementData_t;
+
+
+#define VL53L0X_HISTOGRAM_BUFFER_SIZE 24
+
+/**
+ * @struct VL53L0X_HistogramData_t
+ * @brief Histogram measurement data.
+ */
+typedef struct {
+ /* Histogram Measurement data */
+ uint32_t HistogramData[VL53L0X_HISTOGRAM_BUFFER_SIZE];
+ /*!< Histogram data */
+ uint8_t HistogramType; /*!< Indicate the types of histogram data :
+ Return only, Reference only, both Return and Reference */
+ uint8_t FirstBin; /*!< First Bin value */
+ uint8_t BufferSize; /*!< Buffer Size - Set by the user.*/
+ uint8_t NumberOfBins;
+ /*!< Number of bins filled by the histogram measurement */
+
+ VL53L0X_DeviceError ErrorStatus;
+ /*!< Error status of the current measurement. \n
+ see @a ::VL53L0X_DeviceError @a VL53L0X_GetStatusErrorString() */
+} VL53L0X_HistogramMeasurementData_t;
+
+#define VL53L0X_REF_SPAD_BUFFER_SIZE 6
+
+/**
+ * @struct VL53L0X_SpadData_t
+ * @brief Spad Configuration Data.
+ */
+typedef struct {
+ uint8_t RefSpadEnables[VL53L0X_REF_SPAD_BUFFER_SIZE];
+ /*!< Reference Spad Enables */
+ uint8_t RefGoodSpadMap[VL53L0X_REF_SPAD_BUFFER_SIZE];
+ /*!< Reference Spad Good Spad Map */
+} VL53L0X_SpadData_t;
+
+typedef struct {
+ FixPoint1616_t OscFrequencyMHz; /* Frequency used */
+
+ uint16_t LastEncodedTimeout;
+ /* last encoded Time out used for timing budget*/
+
+ VL53L0X_GpioFunctionality Pin0GpioFunctionality;
+ /* store the functionality of the GPIO: pin0 */
+
+ uint32_t FinalRangeTimeoutMicroSecs;
+ /*!< Execution time of the final range*/
+ uint8_t FinalRangeVcselPulsePeriod;
+ /*!< Vcsel pulse period (pll clocks) for the final range measurement*/
+ uint32_t PreRangeTimeoutMicroSecs;
+ /*!< Execution time of the final range*/
+ uint8_t PreRangeVcselPulsePeriod;
+ /*!< Vcsel pulse period (pll clocks) for the pre-range measurement*/
+
+ uint16_t SigmaEstRefArray;
+ /*!< Reference array sigma value in 1/100th of [mm] e.g. 100 = 1mm */
+ uint16_t SigmaEstEffPulseWidth;
+ /*!< Effective Pulse width for sigma estimate in 1/100th
+ * of ns e.g. 900 = 9.0ns */
+ uint16_t SigmaEstEffAmbWidth;
+ /*!< Effective Ambient width for sigma estimate in 1/100th of ns
+ * e.g. 500 = 5.0ns */
+
+
+ uint8_t ReadDataFromDeviceDone; /* Indicate if read from device has
+ been done (==1) or not (==0) */
+ uint8_t ModuleId; /* Module ID */
+ uint8_t Revision; /* test Revision */
+ char ProductId[VL53L0X_MAX_STRING_LENGTH];
+ /* Product Identifier String */
+ uint8_t ReferenceSpadCount; /* used for ref spad management */
+ uint8_t ReferenceSpadType; /* used for ref spad management */
+ uint8_t RefSpadsInitialised; /* reports if ref spads are initialised. */
+ uint32_t PartUIDUpper; /*!< Unique Part ID Upper */
+ uint32_t PartUIDLower; /*!< Unique Part ID Lower */
+ FixPoint1616_t SignalRateMeasFixed400mm; /*!< Peek Signal rate
+ at 400 mm*/
+
+} VL53L0X_DeviceSpecificParameters_t;
+
+/**
+ * @struct VL53L0X_DevData_t
+ *
+ * @brief VL53L0X PAL device ST private data structure \n
+ * End user should never access any of these field directly
+ *
+ * These must never access directly but only via macro
+ */
+typedef struct {
+ VL53L0X_DMaxData_t DMaxData;
+ /*!< Dmax Data */
+ int32_t Part2PartOffsetNVMMicroMeter;
+ /*!< backed up NVM value */
+ int32_t Part2PartOffsetAdjustmentNVMMicroMeter;
+ /*!< backed up NVM value representing additional offset adjustment */
+ VL53L0X_DeviceParameters_t CurrentParameters;
+ /*!< Current Device Parameter */
+ VL53L0X_RangingMeasurementData_t LastRangeMeasure;
+ /*!< Ranging Data */
+ VL53L0X_HistogramMeasurementData_t LastHistogramMeasure;
+ /*!< Histogram Data */
+ VL53L0X_DeviceSpecificParameters_t DeviceSpecificParameters;
+ /*!< Parameters specific to the device */
+ VL53L0X_SpadData_t SpadData;
+ /*!< Spad Data */
+ uint8_t SequenceConfig;
+ /*!< Internal value for the sequence config */
+ uint8_t RangeFractionalEnable;
+ /*!< Enable/Disable fractional part of ranging data */
+ VL53L0X_State PalState;
+ /*!< Current state of the PAL for this device */
+ VL53L0X_PowerModes PowerMode;
+ /*!< Current Power Mode */
+ uint16_t SigmaEstRefArray;
+ /*!< Reference array sigma value in 1/100th of [mm] e.g. 100 = 1mm */
+ uint16_t SigmaEstEffPulseWidth;
+ /*!< Effective Pulse width for sigma estimate in 1/100th
+ * of ns e.g. 900 = 9.0ns */
+ uint16_t SigmaEstEffAmbWidth;
+ /*!< Effective Ambient width for sigma estimate in 1/100th of ns
+ * e.g. 500 = 5.0ns */
+ uint16_t targetRefRate;
+ /*!< Target Ambient Rate for Ref spad management */
+ FixPoint1616_t SigmaEstimate;
+ /*!< Sigma Estimate - based on ambient & VCSEL rates and
+ * signal_total_events */
+ FixPoint1616_t SignalEstimate;
+ /*!< Signal Estimate - based on ambient & VCSEL rates and cross talk */
+ FixPoint1616_t LastSignalRefMcps;
+ /*!< Latest Signal ref in Mcps */
+ uint8_t *pTuningSettingsPointer;
+ /*!< Pointer for Tuning Settings table */
+ uint8_t UseInternalTuningSettings;
+ /*!< Indicate if we use Tuning Settings table */
+ uint16_t LinearityCorrectiveGain;
+ /*!< Linearity Corrective Gain value in x1000 */
+ uint16_t DmaxCalRangeMilliMeter;
+ /*!< Dmax Calibration Range millimeter */
+ FixPoint1616_t DmaxCalSignalRateRtnMegaCps;
+ /*!< Dmax Calibration Signal Rate Return MegaCps */
+
+} VL53L0X_DevData_t;
+
+
+/** @defgroup VL53L0X_define_InterruptPolarity_group Defines the Polarity
+ * of the Interrupt
+ * Defines the Polarity of the Interrupt
+ * @{
+ */
+typedef uint8_t VL53L0X_InterruptPolarity;
+
+#define VL53L0X_INTERRUPTPOLARITY_LOW ((VL53L0X_InterruptPolarity) 0)
+/*!< Set active low polarity best setup for falling edge. */
+#define VL53L0X_INTERRUPTPOLARITY_HIGH ((VL53L0X_InterruptPolarity) 1)
+/*!< Set active high polarity best setup for rising edge. */
+
+/** @} VL53L0X_define_InterruptPolarity_group */
+
+
+/** @defgroup VL53L0X_define_VcselPeriod_group Vcsel Period Defines
+ * Defines the range measurement for which to access the vcsel period.
+ * @{
+ */
+typedef uint8_t VL53L0X_VcselPeriod;
+
+#define VL53L0X_VCSEL_PERIOD_PRE_RANGE ((VL53L0X_VcselPeriod) 0)
+/*!<Identifies the pre-range vcsel period. */
+#define VL53L0X_VCSEL_PERIOD_FINAL_RANGE ((VL53L0X_VcselPeriod) 1)
+/*!<Identifies the final range vcsel period. */
+
+/** @} VL53L0X_define_VcselPeriod_group */
+
+/** @defgroup VL53L0X_define_SchedulerSequence_group Defines the steps
+ * carried out by the scheduler during a range measurement.
+ * @{
+ * Defines the states of all the steps in the scheduler
+ * i.e. enabled/disabled.
+ */
+typedef struct {
+ uint8_t TccOn; /*!<Reports if Target Centre Check On */
+ uint8_t MsrcOn; /*!<Reports if MSRC On */
+ uint8_t DssOn; /*!<Reports if DSS On */
+ uint8_t PreRangeOn; /*!<Reports if Pre-Range On */
+ uint8_t FinalRangeOn; /*!<Reports if Final-Range On */
+} VL53L0X_SchedulerSequenceSteps_t;
+
+/** @} VL53L0X_define_SchedulerSequence_group */
+
+/** @defgroup VL53L0X_define_SequenceStepId_group Defines the Polarity
+ * of the Interrupt
+ * Defines the the sequence steps performed during ranging..
+ * @{
+ */
+typedef uint8_t VL53L0X_SequenceStepId;
+
+#define VL53L0X_SEQUENCESTEP_TCC ((VL53L0X_VcselPeriod) 0)
+/*!<Target CentreCheck identifier. */
+#define VL53L0X_SEQUENCESTEP_DSS ((VL53L0X_VcselPeriod) 1)
+/*!<Dynamic Spad Selection function Identifier. */
+#define VL53L0X_SEQUENCESTEP_MSRC ((VL53L0X_VcselPeriod) 2)
+/*!<Minimum Signal Rate Check function Identifier. */
+#define VL53L0X_SEQUENCESTEP_PRE_RANGE ((VL53L0X_VcselPeriod) 3)
+/*!<Pre-Range check Identifier. */
+#define VL53L0X_SEQUENCESTEP_FINAL_RANGE ((VL53L0X_VcselPeriod) 4)
+/*!<Final Range Check Identifier. */
+
+#define VL53L0X_SEQUENCESTEP_NUMBER_OF_CHECKS 5
+/*!<Number of Sequence Step Managed by the API. */
+
+/** @} VL53L0X_define_SequenceStepId_group */
+
+
+/* MACRO Definitions */
+/** @defgroup VL53L0X_define_GeneralMacro_group General Macro Defines
+ * General Macro Defines
+ * @{
+ */
+
+/* Defines */
+#define VL53L0X_SETPARAMETERFIELD(Dev, field, value) \
+ PALDevDataSet(Dev, CurrentParameters.field, value)
+
+#define VL53L0X_GETPARAMETERFIELD(Dev, field, variable) \
+ variable = PALDevDataGet(Dev, CurrentParameters).field
+
+
+#define VL53L0X_SETARRAYPARAMETERFIELD(Dev, field, index, value) \
+ PALDevDataSet(Dev, CurrentParameters.field[index], value)
+
+#define VL53L0X_GETARRAYPARAMETERFIELD(Dev, field, index, variable) \
+ variable = PALDevDataGet(Dev, CurrentParameters).field[index]
+
+
+#define VL53L0X_SETDEVICESPECIFICPARAMETER(Dev, field, value) \
+ PALDevDataSet(Dev, DeviceSpecificParameters.field, value)
+
+#define VL53L0X_GETDEVICESPECIFICPARAMETER(Dev, field) \
+ PALDevDataGet(Dev, DeviceSpecificParameters).field
+
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT97(Value) \
+ (uint16_t)((Value>>9)&0xFFFF)
+#define VL53L0X_FIXPOINT97TOFIXPOINT1616(Value) \
+ (FixPoint1616_t)(Value<<9)
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT88(Value) \
+ (uint16_t)((Value>>8)&0xFFFF)
+#define VL53L0X_FIXPOINT88TOFIXPOINT1616(Value) \
+ (FixPoint1616_t)(Value<<8)
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT412(Value) \
+ (uint16_t)((Value>>4)&0xFFFF)
+#define VL53L0X_FIXPOINT412TOFIXPOINT1616(Value) \
+ (FixPoint1616_t)(Value<<4)
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT313(Value) \
+ (uint16_t)((Value>>3)&0xFFFF)
+#define VL53L0X_FIXPOINT313TOFIXPOINT1616(Value) \
+ (FixPoint1616_t)(Value<<3)
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT08(Value) \
+ (uint8_t)((Value>>8)&0x00FF)
+#define VL53L0X_FIXPOINT08TOFIXPOINT1616(Value) \
+ (FixPoint1616_t)(Value<<8)
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT53(Value) \
+ (uint8_t)((Value>>13)&0x00FF)
+#define VL53L0X_FIXPOINT53TOFIXPOINT1616(Value) \
+ (FixPoint1616_t)(Value<<13)
+
+#define VL53L0X_FIXPOINT1616TOFIXPOINT102(Value) \
+ (uint16_t)((Value>>14)&0x0FFF)
+#define VL53L0X_FIXPOINT102TOFIXPOINT1616(Value) \
+ (FixPoint1616_t)(Value<<12)
+
+#define VL53L0X_MAKEUINT16(lsb, msb) (uint16_t)((((uint16_t)msb)<<8) + \
+ (uint16_t)lsb)
+
+/** @} VL53L0X_define_GeneralMacro_group */
+
+/** @} VL53L0X_globaldefine_group */
+
+
+
+
+
+
+
+#ifdef __cplusplus
+}
+#endif
+
+
+#endif /* _VL53L0X_DEF_H_ */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_device.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_device.h
new file mode 100644
index 000000000..20842e60f
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_device.h
@@ -0,0 +1,243 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/**
+ * Device specific defines. To be adapted by implementer for the targeted
+ * device.
+ */
+
+#ifndef _VL53L0X_DEVICE_H_
+#define _VL53L0X_DEVICE_H_
+
+#include "vl53l0x_types.h"
+
+
+/** @defgroup VL53L0X_DevSpecDefines_group VL53L0X cut1.1 Device Specific Defines
+ * @brief VL53L0X cut1.1 Device Specific Defines
+ * @{
+ */
+
+
+/** @defgroup VL53L0X_DeviceError_group Device Error
+ * @brief Device Error code
+ *
+ * This enum is Device specific it should be updated in the implementation
+ * Use @a VL53L0X_GetStatusErrorString() to get the string.
+ * It is related to Status Register of the Device.
+ * @{
+ */
+typedef uint8_t VL53L0X_DeviceError;
+
+#define VL53L0X_DEVICEERROR_NONE ((VL53L0X_DeviceError) 0)
+ /*!< 0 NoError */
+#define VL53L0X_DEVICEERROR_VCSELCONTINUITYTESTFAILURE ((VL53L0X_DeviceError) 1)
+#define VL53L0X_DEVICEERROR_VCSELWATCHDOGTESTFAILURE ((VL53L0X_DeviceError) 2)
+#define VL53L0X_DEVICEERROR_NOVHVVALUEFOUND ((VL53L0X_DeviceError) 3)
+#define VL53L0X_DEVICEERROR_MSRCNOTARGET ((VL53L0X_DeviceError) 4)
+#define VL53L0X_DEVICEERROR_SNRCHECK ((VL53L0X_DeviceError) 5)
+#define VL53L0X_DEVICEERROR_RANGEPHASECHECK ((VL53L0X_DeviceError) 6)
+#define VL53L0X_DEVICEERROR_SIGMATHRESHOLDCHECK ((VL53L0X_DeviceError) 7)
+#define VL53L0X_DEVICEERROR_TCC ((VL53L0X_DeviceError) 8)
+#define VL53L0X_DEVICEERROR_PHASECONSISTENCY ((VL53L0X_DeviceError) 9)
+#define VL53L0X_DEVICEERROR_MINCLIP ((VL53L0X_DeviceError) 10)
+#define VL53L0X_DEVICEERROR_RANGECOMPLETE ((VL53L0X_DeviceError) 11)
+#define VL53L0X_DEVICEERROR_ALGOUNDERFLOW ((VL53L0X_DeviceError) 12)
+#define VL53L0X_DEVICEERROR_ALGOOVERFLOW ((VL53L0X_DeviceError) 13)
+#define VL53L0X_DEVICEERROR_RANGEIGNORETHRESHOLD ((VL53L0X_DeviceError) 14)
+
+/** @} end of VL53L0X_DeviceError_group */
+
+
+/** @defgroup VL53L0X_CheckEnable_group Check Enable list
+ * @brief Check Enable code
+ *
+ * Define used to specify the LimitCheckId.
+ * Use @a VL53L0X_GetLimitCheckInfo() to get the string.
+ * @{
+ */
+
+#define VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE 0
+#define VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE 1
+#define VL53L0X_CHECKENABLE_SIGNAL_REF_CLIP 2
+#define VL53L0X_CHECKENABLE_RANGE_IGNORE_THRESHOLD 3
+#define VL53L0X_CHECKENABLE_SIGNAL_RATE_MSRC 4
+#define VL53L0X_CHECKENABLE_SIGNAL_RATE_PRE_RANGE 5
+
+#define VL53L0X_CHECKENABLE_NUMBER_OF_CHECKS 6
+
+/** @} end of VL53L0X_CheckEnable_group */
+
+
+/** @defgroup VL53L0X_GpioFunctionality_group Gpio Functionality
+ * @brief Defines the different functionalities for the device GPIO(s)
+ * @{
+ */
+typedef uint8_t VL53L0X_GpioFunctionality;
+
+#define VL53L0X_GPIOFUNCTIONALITY_OFF \
+ ((VL53L0X_GpioFunctionality) 0) /*!< NO Interrupt */
+#define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_LOW \
+ ((VL53L0X_GpioFunctionality) 1) /*!< Level Low (value < thresh_low) */
+#define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_HIGH \
+ ((VL53L0X_GpioFunctionality) 2) /*!< Level High (value > thresh_high) */
+#define VL53L0X_GPIOFUNCTIONALITY_THRESHOLD_CROSSED_OUT \
+ ((VL53L0X_GpioFunctionality) 3)
+ /*!< Out Of Window (value < thresh_low OR value > thresh_high) */
+#define VL53L0X_GPIOFUNCTIONALITY_NEW_MEASURE_READY \
+ ((VL53L0X_GpioFunctionality) 4) /*!< New Sample Ready */
+
+/** @} end of VL53L0X_GpioFunctionality_group */
+
+
+/* Device register map */
+
+/** @defgroup VL53L0X_DefineRegisters_group Define Registers
+ * @brief List of all the defined registers
+ * @{
+ */
+#define VL53L0X_REG_SYSRANGE_START 0x000
+ /** mask existing bit in #VL53L0X_REG_SYSRANGE_START*/
+ #define VL53L0X_REG_SYSRANGE_MODE_MASK 0x0F
+ /** bit 0 in #VL53L0X_REG_SYSRANGE_START write 1 toggle state in
+ * continuous mode and arm next shot in single shot mode */
+ #define VL53L0X_REG_SYSRANGE_MODE_START_STOP 0x01
+ /** bit 1 write 0 in #VL53L0X_REG_SYSRANGE_START set single shot mode */
+ #define VL53L0X_REG_SYSRANGE_MODE_SINGLESHOT 0x00
+ /** bit 1 write 1 in #VL53L0X_REG_SYSRANGE_START set back-to-back
+ * operation mode */
+ #define VL53L0X_REG_SYSRANGE_MODE_BACKTOBACK 0x02
+ /** bit 2 write 1 in #VL53L0X_REG_SYSRANGE_START set timed operation
+ * mode */
+ #define VL53L0X_REG_SYSRANGE_MODE_TIMED 0x04
+ /** bit 3 write 1 in #VL53L0X_REG_SYSRANGE_START set histogram operation
+ * mode */
+ #define VL53L0X_REG_SYSRANGE_MODE_HISTOGRAM 0x08
+
+
+#define VL53L0X_REG_SYSTEM_THRESH_HIGH 0x000C
+#define VL53L0X_REG_SYSTEM_THRESH_LOW 0x000E
+
+
+#define VL53L0X_REG_SYSTEM_SEQUENCE_CONFIG 0x0001
+#define VL53L0X_REG_SYSTEM_RANGE_CONFIG 0x0009
+#define VL53L0X_REG_SYSTEM_INTERMEASUREMENT_PERIOD 0x0004
+
+
+#define VL53L0X_REG_SYSTEM_INTERRUPT_CONFIG_GPIO 0x000A
+ #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_DISABLED 0x00
+ #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_LOW 0x01
+ #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_LEVEL_HIGH 0x02
+ #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_OUT_OF_WINDOW 0x03
+ #define VL53L0X_REG_SYSTEM_INTERRUPT_GPIO_NEW_SAMPLE_READY 0x04
+
+#define VL53L0X_REG_GPIO_HV_MUX_ACTIVE_HIGH 0x0084
+
+
+#define VL53L0X_REG_SYSTEM_INTERRUPT_CLEAR 0x000B
+
+/* Result registers */
+#define VL53L0X_REG_RESULT_INTERRUPT_STATUS 0x0013
+#define VL53L0X_REG_RESULT_RANGE_STATUS 0x0014
+
+#define VL53L0X_REG_RESULT_CORE_PAGE 1
+#define VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_RTN 0x00BC
+#define VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_RTN 0x00C0
+#define VL53L0X_REG_RESULT_CORE_AMBIENT_WINDOW_EVENTS_REF 0x00D0
+#define VL53L0X_REG_RESULT_CORE_RANGING_TOTAL_EVENTS_REF 0x00D4
+#define VL53L0X_REG_RESULT_PEAK_SIGNAL_RATE_REF 0x00B6
+
+/* Algo register */
+
+#define VL53L0X_REG_ALGO_PART_TO_PART_RANGE_OFFSET_MM 0x0028
+
+#define VL53L0X_REG_I2C_SLAVE_DEVICE_ADDRESS 0x008a
+
+/* Check Limit registers */
+#define VL53L0X_REG_MSRC_CONFIG_CONTROL 0x0060
+
+#define VL53L0X_REG_PRE_RANGE_CONFIG_MIN_SNR 0X0027
+#define VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_LOW 0x0056
+#define VL53L0X_REG_PRE_RANGE_CONFIG_VALID_PHASE_HIGH 0x0057
+#define VL53L0X_REG_PRE_RANGE_MIN_COUNT_RATE_RTN_LIMIT 0x0064
+
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_SNR 0X0067
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_LOW 0x0047
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_VALID_PHASE_HIGH 0x0048
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_MIN_COUNT_RATE_RTN_LIMIT 0x0044
+
+
+#define VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_HI 0X0061
+#define VL53L0X_REG_PRE_RANGE_CONFIG_SIGMA_THRESH_LO 0X0062
+
+/* PRE RANGE registers */
+#define VL53L0X_REG_PRE_RANGE_CONFIG_VCSEL_PERIOD 0x0050
+#define VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_HI 0x0051
+#define VL53L0X_REG_PRE_RANGE_CONFIG_TIMEOUT_MACROP_LO 0x0052
+
+#define VL53L0X_REG_SYSTEM_HISTOGRAM_BIN 0x0081
+#define VL53L0X_REG_HISTOGRAM_CONFIG_INITIAL_PHASE_SELECT 0x0033
+#define VL53L0X_REG_HISTOGRAM_CONFIG_READOUT_CTRL 0x0055
+
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_VCSEL_PERIOD 0x0070
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_HI 0x0071
+#define VL53L0X_REG_FINAL_RANGE_CONFIG_TIMEOUT_MACROP_LO 0x0072
+#define VL53L0X_REG_CROSSTALK_COMPENSATION_PEAK_RATE_MCPS 0x0020
+
+#define VL53L0X_REG_MSRC_CONFIG_TIMEOUT_MACROP 0x0046
+
+
+#define VL53L0X_REG_SOFT_RESET_GO2_SOFT_RESET_N 0x00bf
+#define VL53L0X_REG_IDENTIFICATION_MODEL_ID 0x00c0
+#define VL53L0X_REG_IDENTIFICATION_REVISION_ID 0x00c2
+
+#define VL53L0X_REG_OSC_CALIBRATE_VAL 0x00f8
+
+
+#define VL53L0X_SIGMA_ESTIMATE_MAX_VALUE 65535
+/* equivalent to a range sigma of 655.35mm */
+
+#define VL53L0X_REG_GLOBAL_CONFIG_VCSEL_WIDTH 0x032
+#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_0 0x0B0
+#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_1 0x0B1
+#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_2 0x0B2
+#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_3 0x0B3
+#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_4 0x0B4
+#define VL53L0X_REG_GLOBAL_CONFIG_SPAD_ENABLES_REF_5 0x0B5
+
+#define VL53L0X_REG_GLOBAL_CONFIG_REF_EN_START_SELECT 0xB6
+#define VL53L0X_REG_DYNAMIC_SPAD_NUM_REQUESTED_REF_SPAD 0x4E /* 0x14E */
+#define VL53L0X_REG_DYNAMIC_SPAD_REF_EN_START_OFFSET 0x4F /* 0x14F */
+#define VL53L0X_REG_POWER_MANAGEMENT_GO1_POWER_FORCE 0x80
+
+/*
+ * Speed of light in um per 1E-10 Seconds
+ */
+
+#define VL53L0X_SPEED_OF_LIGHT_IN_AIR 2997
+
+#define VL53L0X_REG_VHV_CONFIG_PAD_SCL_SDA__EXTSUP_HV 0x0089
+
+#define VL53L0X_REG_ALGO_PHASECAL_LIM 0x0030 /* 0x130 */
+#define VL53L0X_REG_ALGO_PHASECAL_CONFIG_TIMEOUT 0x0030
+
+/** @} VL53L0X_DefineRegisters_group */
+
+/** @} VL53L0X_DevSpecDefines_group */
+
+
+#endif
+
+/* _VL53L0X_DEVICE_H_ */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h
new file mode 100644
index 000000000..3ee4534cf
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h
@@ -0,0 +1,179 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#ifndef _VL53L0X_INTERRUPT_THRESHOLD_SETTINGS_H_
+#define _VL53L0X_INTERRUPT_THRESHOLD_SETTINGS_H_
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+uint8_t InterruptThresholdSettings[] = {
+
+ /* Start of Interrupt Threshold Settings */
+ 0x1, 0xff, 0x00,
+ 0x1, 0x80, 0x01,
+ 0x1, 0xff, 0x01,
+ 0x1, 0x00, 0x00,
+ 0x1, 0xff, 0x01,
+ 0x1, 0x4f, 0x02,
+ 0x1, 0xFF, 0x0E,
+ 0x1, 0x00, 0x03,
+ 0x1, 0x01, 0x84,
+ 0x1, 0x02, 0x0A,
+ 0x1, 0x03, 0x03,
+ 0x1, 0x04, 0x08,
+ 0x1, 0x05, 0xC8,
+ 0x1, 0x06, 0x03,
+ 0x1, 0x07, 0x8D,
+ 0x1, 0x08, 0x08,
+ 0x1, 0x09, 0xC6,
+ 0x1, 0x0A, 0x01,
+ 0x1, 0x0B, 0x02,
+ 0x1, 0x0C, 0x00,
+ 0x1, 0x0D, 0xD5,
+ 0x1, 0x0E, 0x18,
+ 0x1, 0x0F, 0x12,
+ 0x1, 0x10, 0x01,
+ 0x1, 0x11, 0x82,
+ 0x1, 0x12, 0x00,
+ 0x1, 0x13, 0xD5,
+ 0x1, 0x14, 0x18,
+ 0x1, 0x15, 0x13,
+ 0x1, 0x16, 0x03,
+ 0x1, 0x17, 0x86,
+ 0x1, 0x18, 0x0A,
+ 0x1, 0x19, 0x09,
+ 0x1, 0x1A, 0x08,
+ 0x1, 0x1B, 0xC2,
+ 0x1, 0x1C, 0x03,
+ 0x1, 0x1D, 0x8F,
+ 0x1, 0x1E, 0x0A,
+ 0x1, 0x1F, 0x06,
+ 0x1, 0x20, 0x01,
+ 0x1, 0x21, 0x02,
+ 0x1, 0x22, 0x00,
+ 0x1, 0x23, 0xD5,
+ 0x1, 0x24, 0x18,
+ 0x1, 0x25, 0x22,
+ 0x1, 0x26, 0x01,
+ 0x1, 0x27, 0x82,
+ 0x1, 0x28, 0x00,
+ 0x1, 0x29, 0xD5,
+ 0x1, 0x2A, 0x18,
+ 0x1, 0x2B, 0x0B,
+ 0x1, 0x2C, 0x28,
+ 0x1, 0x2D, 0x78,
+ 0x1, 0x2E, 0x28,
+ 0x1, 0x2F, 0x91,
+ 0x1, 0x30, 0x00,
+ 0x1, 0x31, 0x0B,
+ 0x1, 0x32, 0x00,
+ 0x1, 0x33, 0x0B,
+ 0x1, 0x34, 0x00,
+ 0x1, 0x35, 0xA1,
+ 0x1, 0x36, 0x00,
+ 0x1, 0x37, 0xA0,
+ 0x1, 0x38, 0x00,
+ 0x1, 0x39, 0x04,
+ 0x1, 0x3A, 0x28,
+ 0x1, 0x3B, 0x30,
+ 0x1, 0x3C, 0x0C,
+ 0x1, 0x3D, 0x04,
+ 0x1, 0x3E, 0x0F,
+ 0x1, 0x3F, 0x79,
+ 0x1, 0x40, 0x28,
+ 0x1, 0x41, 0x1E,
+ 0x1, 0x42, 0x2F,
+ 0x1, 0x43, 0x87,
+ 0x1, 0x44, 0x00,
+ 0x1, 0x45, 0x0B,
+ 0x1, 0x46, 0x00,
+ 0x1, 0x47, 0x0B,
+ 0x1, 0x48, 0x00,
+ 0x1, 0x49, 0xA7,
+ 0x1, 0x4A, 0x00,
+ 0x1, 0x4B, 0xA6,
+ 0x1, 0x4C, 0x00,
+ 0x1, 0x4D, 0x04,
+ 0x1, 0x4E, 0x01,
+ 0x1, 0x4F, 0x00,
+ 0x1, 0x50, 0x00,
+ 0x1, 0x51, 0x80,
+ 0x1, 0x52, 0x09,
+ 0x1, 0x53, 0x08,
+ 0x1, 0x54, 0x01,
+ 0x1, 0x55, 0x00,
+ 0x1, 0x56, 0x0F,
+ 0x1, 0x57, 0x79,
+ 0x1, 0x58, 0x09,
+ 0x1, 0x59, 0x05,
+ 0x1, 0x5A, 0x00,
+ 0x1, 0x5B, 0x60,
+ 0x1, 0x5C, 0x05,
+ 0x1, 0x5D, 0xD1,
+ 0x1, 0x5E, 0x0C,
+ 0x1, 0x5F, 0x3C,
+ 0x1, 0x60, 0x00,
+ 0x1, 0x61, 0xD0,
+ 0x1, 0x62, 0x0B,
+ 0x1, 0x63, 0x03,
+ 0x1, 0x64, 0x28,
+ 0x1, 0x65, 0x10,
+ 0x1, 0x66, 0x2A,
+ 0x1, 0x67, 0x39,
+ 0x1, 0x68, 0x0B,
+ 0x1, 0x69, 0x02,
+ 0x1, 0x6A, 0x28,
+ 0x1, 0x6B, 0x10,
+ 0x1, 0x6C, 0x2A,
+ 0x1, 0x6D, 0x61,
+ 0x1, 0x6E, 0x0C,
+ 0x1, 0x6F, 0x00,
+ 0x1, 0x70, 0x0F,
+ 0x1, 0x71, 0x79,
+ 0x1, 0x72, 0x00,
+ 0x1, 0x73, 0x0B,
+ 0x1, 0x74, 0x00,
+ 0x1, 0x75, 0x0B,
+ 0x1, 0x76, 0x00,
+ 0x1, 0x77, 0xA1,
+ 0x1, 0x78, 0x00,
+ 0x1, 0x79, 0xA0,
+ 0x1, 0x7A, 0x00,
+ 0x1, 0x7B, 0x04,
+ 0x1, 0xFF, 0x04,
+ 0x1, 0x79, 0x1D,
+ 0x1, 0x7B, 0x27,
+ 0x1, 0x96, 0x0E,
+ 0x1, 0x97, 0xFE,
+ 0x1, 0x98, 0x03,
+ 0x1, 0x99, 0xEF,
+ 0x1, 0x9A, 0x02,
+ 0x1, 0x9B, 0x44,
+ 0x1, 0x73, 0x07,
+ 0x1, 0x70, 0x01,
+ 0x1, 0xff, 0x01,
+ 0x1, 0x00, 0x01,
+ 0x1, 0xff, 0x00,
+ 0x00, 0x00, 0x00
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VL53L0X_INTERRUPT_THRESHOLD_SETTINGS_H_ */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_platform.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_platform.h
new file mode 100644
index 000000000..c4c3a12f8
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_platform.h
@@ -0,0 +1,43 @@
+/**
+ ******************************************************************************
+ * @file vl53l0x_platform.h
+ * @author MCD Application Team
+ * @brief VL53l0x platform include file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __VL53L0X_PLATFORM_H
+#define __VL53L0X_PLATFORM_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32wbxx_hal.h"
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform_log.h"
+#include "vl53l0x_tof.h"
+
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+/* Exported macros -----------------------------------------------------------*/
+/* Private macros ------------------------------------------------------------*/
+/* Exported functions --------------------------------------------------------*/
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __VL53L0X_PLATFORM_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.c
new file mode 100644
index 000000000..b34420d99
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.c
@@ -0,0 +1,59 @@
+/*
+ * COPYRIGHT (C) STMicroelectronics 2015. All rights reserved.
+ *
+ * This software is the confidential and proprietary information of
+ * STMicroelectronics ("Confidential Information"). You shall not
+ * disclose such Confidential Information and shall use it only in
+ * accordance with the terms of the license agreement you entered into
+ * with STMicroelectronics
+ *
+ * Programming Golden Rule: Keep it Simple!
+ *
+ */
+
+/*!
+ * \file VL53L0X_platform_log.c
+ * \brief Code function defintions for Ewok Platform Layer
+ *
+ */
+
+
+#include <stdio.h> // sprintf(), vsnprintf(), printf()
+#include <stdarg.h> // sprintf(), vsnprintf(), printf()
+#ifdef _MSC_VER
+#define snprintf _snprintf
+#endif
+
+#include "vl53l0x_def.h"
+#include "vl53l0x_platform_log.h"
+
+
+uint32_t _trace_level = TRACE_LEVEL_WARNING;
+uint32_t _trace_modules = TRACE_MODULE_NONE;
+uint32_t _trace_functions = TRACE_FUNCTION_NONE;
+
+#if defined(VL53L0X_LOG_ENABLE) && (TRACE_UART==1)
+int32_t VL53L0X_trace_config(char *filename, uint32_t modules, uint32_t level, uint32_t functions)
+{
+ int STATUS = 0;
+
+ _trace_functions = functions;
+ _trace_level = level;
+ _trace_modules = modules;
+
+ return STATUS;
+}
+
+
+void trace_print_module_function(uint32_t module, uint32_t level, uint32_t function, const char *format, ...)
+{
+ if ( ((level <=_trace_level) && ((module & _trace_modules) > 0))
+ || ((function & _trace_functions) > 0) )
+ {
+ va_list arg_list;
+ va_start(arg_list, format);
+ trace_vprintf( format, arg_list);
+ va_end(arg_list);
+ }
+}
+#endif
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.h
new file mode 100644
index 000000000..07d2b0643
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.h
@@ -0,0 +1,110 @@
+/**
+ ******************************************************************************
+ * @file vl53l0x_platform_log.h
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#ifndef _VL53L0X_PLATFORM_LOG_H_
+#define _VL53L0X_PLATFORM_LOG_H_
+
+#include <stdio.h>
+#include <string.h>
+/* LOG Functions */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+/**
+ * @file vl53l0x_platform_log.h
+ *
+ * @brief platform log function definition
+ */
+
+//#define VL53L0X_LOG_ENABLE 0
+
+enum {
+ TRACE_LEVEL_NONE,
+ TRACE_LEVEL_ERRORS,
+ TRACE_LEVEL_WARNING,
+ TRACE_LEVEL_INFO,
+ TRACE_LEVEL_DEBUG,
+ TRACE_LEVEL_ALL,
+ TRACE_LEVEL_IGNORE
+};
+
+enum {
+ TRACE_FUNCTION_NONE = 0,
+ TRACE_FUNCTION_I2C = 1,
+ TRACE_FUNCTION_ALL = 0x7fffffff //all bits except sign
+};
+
+enum {
+ TRACE_MODULE_NONE = 0x0,
+ TRACE_MODULE_API = 0x1,
+ TRACE_MODULE_PLATFORM = 0x2,
+ TRACE_MODULE_ALL = 0x7fffffff //all bits except sign
+};
+
+
+#if defined(VL53L0X_LOG_ENABLE) && (TRACE_UART==1)
+
+#include <stdarg.h>
+extern int uart_printf(const char *msg, ...);
+extern int uart_vprintf(const char *msg, va_list ap);
+
+#define trace_printf uart_printf
+#define trace_vprintf uart_vprintf
+
+
+extern uint32_t _trace_level;
+
+
+
+int32_t VL53L0X_trace_config(char *filename, uint32_t modules, uint32_t level, uint32_t functions);
+void trace_print_module_function(uint32_t module, uint32_t level, uint32_t function, const char *format, ...);
+
+
+//extern FILE * log_file;
+
+#define LOG_GET_TIME() (int)HAL_GetTick()
+
+#define _LOG_FUNCTION_START(module, fmt, ... ) \
+ trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%ld <START> %s "fmt"\n", LOG_GET_TIME(), __FUNCTION__, ##__VA_ARGS__);
+
+#define _LOG_FUNCTION_END(module, status, ... )\
+ trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%d <END> %s %d\n", LOG_GET_TIME(), __FUNCTION__, (int)status, ##__VA_ARGS__)
+
+#define _LOG_FUNCTION_END_FMT(module, status, fmt, ... )\
+ trace_print_module_function(module, _trace_level, TRACE_FUNCTION_ALL, "%d <END> %s %d "fmt"\n", LOG_GET_TIME(), __FUNCTION__, (int)status,##__VA_ARGS__)
+
+
+#else /* VL53L0X_LOG_ENABLE no logging or no TRACE_UART */
+ #define VL53L0X_ErrLog(...) (void)0
+ #define _LOG_FUNCTION_START(module, fmt, ... ) (void)0
+ #define _LOG_FUNCTION_END(module, status, ... ) (void)0
+ #define _LOG_FUNCTION_END_FMT(module, status, fmt, ... ) (void)0
+ #define trace_vprintf(...) (void)0
+ #define VL53L0X_trace_config(...) (void)0
+
+#endif /* else */
+
+#define VL53L0_COPYSTRING(str, ...) strcpy(str, ##__VA_ARGS__)
+#ifdef __cplusplus
+}
+#endif
+#endif /* _VL53L0X_PLATFORM_LOG_H_ */
+
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_tof.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_tof.c
new file mode 100644
index 000000000..9ef7bc0f7
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_tof.c
@@ -0,0 +1,330 @@
+/**
+ ******************************************************************************
+ * @file vl53l0x_tof.c
+ * @author MCD Application Team
+ * @brief STM32L475E-IOT01 board support package
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include <string.h>
+#include "stm32wbxx_hal.h"
+#include "vl53l0x_def.h"
+#include "vl53l0x_api.h"
+
+#include "vl53l0x_tof.h"
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+#define I2C_TIME_OUT_BASE 10
+#define I2C_TIME_OUT_BYTE 1
+
+#define VL53L0X_OsDelay(...) HAL_Delay(2)
+
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+int _I2CWrite(VL53L0X_DEV Dev, uint8_t *pdata, uint32_t count);
+int _I2CRead(VL53L0X_DEV Dev, uint8_t *pdata, uint32_t count);
+/* Exported functions --------------------------------------------------------*/
+
+int _I2CWrite(VL53L0X_DEV Dev, uint8_t *pdata, uint32_t count) {
+ int status;
+ int i2c_time_out = I2C_TIME_OUT_BASE+ count* I2C_TIME_OUT_BYTE;
+
+ status = HAL_I2C_Master_Transmit(Dev->I2cHandle, Dev->I2cDevAddr, pdata, count, i2c_time_out);
+
+ return status;
+}
+
+int _I2CRead(VL53L0X_DEV Dev, uint8_t *pdata, uint32_t count) {
+ int status;
+ int i2c_time_out = I2C_TIME_OUT_BASE+ count* I2C_TIME_OUT_BYTE;
+
+ status = HAL_I2C_Master_Receive(Dev->I2cHandle, Dev->I2cDevAddr|1, pdata, count, i2c_time_out);
+
+ return status;
+}
+
+VL53L0X_Error VL53L0X_RdByte(VL53L0X_DEV Dev, uint8_t index, uint8_t *data) {
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ int32_t status_int;
+
+ status_int = _I2CWrite(Dev, &index, 1);
+
+ if( status_int ){
+ Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ goto done;
+ }
+
+ status_int = _I2CRead(Dev, data, 1);
+
+ if (status_int != 0) {
+ Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ }
+done:
+ return Status;
+}
+
+uint8_t _I2CBuffer[64];
+
+
+// the ranging_sensor_comms.dll will take care of the page selection
+VL53L0X_Error VL53L0X_WriteMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count) {
+ int status_int;
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+
+ if (count > sizeof(_I2CBuffer) - 1) {
+ return VL53L0X_ERROR_INVALID_PARAMS;
+ }
+
+ _I2CBuffer[0] = index;
+ memcpy(&_I2CBuffer[1], pdata, count);
+
+ status_int = _I2CWrite(Dev, _I2CBuffer, count + 1);
+
+ if (status_int != 0) {
+ Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ }
+
+ return Status;
+}
+
+// the ranging_sensor_comms.dll will take care of the page selection
+VL53L0X_Error VL53L0X_ReadMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count) {
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ int32_t status_int;
+
+ status_int = _I2CWrite(Dev, &index, 1);
+
+ if (status_int != 0) {
+ Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ goto done;
+ }
+
+ status_int = _I2CRead(Dev, pdata, count);
+
+ if (status_int != 0) {
+ Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ }
+done:
+ return Status;
+}
+
+
+VL53L0X_Error VL53L0X_RdWord(VL53L0X_DEV Dev, uint8_t index, uint16_t *data) {
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ int32_t status_int;
+
+ status_int = _I2CWrite(Dev, &index, 1);
+
+ if( status_int ){
+ Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ goto done;
+ }
+
+ status_int = _I2CRead(Dev, _I2CBuffer, 2);
+
+ if (status_int != 0) {
+ Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ goto done;
+ }
+
+ *data = ((uint16_t)_I2CBuffer[0]<<8) + (uint16_t)_I2CBuffer[1];
+done:
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_RdDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t *data) {
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ int32_t status_int;
+
+ status_int = _I2CWrite(Dev, &index, 1);
+
+ if (status_int != 0) {
+ Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ goto done;
+ }
+
+ status_int = _I2CRead(Dev, _I2CBuffer, 4);
+
+ if (status_int != 0) {
+ Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ goto done;
+ }
+
+ *data = ((uint32_t)_I2CBuffer[0]<<24) + ((uint32_t)_I2CBuffer[1]<<16) + ((uint32_t)_I2CBuffer[2]<<8) + (uint32_t)_I2CBuffer[3];
+
+done:
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_WrByte(VL53L0X_DEV Dev, uint8_t index, uint8_t data) {
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ int32_t status_int;
+
+ _I2CBuffer[0] = index;
+ _I2CBuffer[1] = data;
+
+ status_int = _I2CWrite(Dev, _I2CBuffer, 2);
+
+ if (status_int != 0) {
+ Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ }
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_WrWord(VL53L0X_DEV Dev, uint8_t index, uint16_t data) {
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ int32_t status_int;
+
+ _I2CBuffer[0] = index;
+ _I2CBuffer[1] = data >> 8;
+ _I2CBuffer[2] = data & 0x00FF;
+
+ status_int = _I2CWrite(Dev, _I2CBuffer, 3);
+
+ if (status_int != 0) {
+ Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ }
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_UpdateByte(VL53L0X_DEV Dev, uint8_t index, uint8_t AndData, uint8_t OrData) {
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ uint8_t data;
+
+ Status = VL53L0X_RdByte(Dev, index, &data);
+
+ if (Status) {
+ goto done;
+ }
+
+ data = (data & AndData) | OrData;
+ Status = VL53L0X_WrByte(Dev, index, data);
+done:
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_WrDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t data) {
+ VL53L0X_Error Status = VL53L0X_ERROR_NONE;
+ int32_t status_int;
+ _I2CBuffer[0] = index;
+ _I2CBuffer[1] = (data >> 24) & 0xFF;
+ _I2CBuffer[2] = (data >> 16) & 0xFF;
+ _I2CBuffer[3] = (data >> 8) & 0xFF;
+ _I2CBuffer[4] = (data >> 0 ) & 0xFF;
+
+ status_int = _I2CWrite(Dev, _I2CBuffer, 5);
+ if (status_int != 0) {
+ Status = VL53L0X_ERROR_CONTROL_INTERFACE;
+ }
+
+ return Status;
+}
+
+VL53L0X_Error VL53L0X_PollingDelay(VL53L0X_DEV Dev) {
+ VL53L0X_Error status = VL53L0X_ERROR_NONE;
+
+ // do nothing
+ VL53L0X_OsDelay();
+ return status;
+}
+
+/**
+ * Setup all detected sensors for single shot mode and setup ranging configuration
+ */
+void SetupSingleShot(VL53L0X_Dev_t Dev)
+{
+ int status;
+ uint8_t VhvSettings;
+ uint8_t PhaseCal;
+ uint32_t refSpadCount;
+ uint8_t isApertureSpads;
+ FixPoint1616_t signalLimit = (FixPoint1616_t)(0.25*65536);
+ FixPoint1616_t sigmaLimit = (FixPoint1616_t)(18*65536);
+ uint32_t timingBudget = 33000;
+ uint8_t preRangeVcselPeriod = 14;
+ uint8_t finalRangeVcselPeriod = 10;
+
+
+ if( Dev.Present){
+ status=VL53L0X_StaticInit(&Dev);
+ if( status ){
+ printf("VL53L0X_StaticInit failed\n");
+ }
+
+
+ status = VL53L0X_PerformRefCalibration(&Dev, &VhvSettings, &PhaseCal);
+ if( status ){
+ printf("VL53L0X_PerformRefCalibration failed\n");
+ }
+
+ status = VL53L0X_PerformRefSpadManagement(&Dev, &refSpadCount, &isApertureSpads);
+ if( status ){
+ printf("VL53L0X_PerformRefSpadManagement failed\n");
+ }
+
+ status = VL53L0X_SetDeviceMode(&Dev, VL53L0X_DEVICEMODE_SINGLE_RANGING); // Setup in single ranging mode
+ if( status ){
+ printf("VL53L0X_SetDeviceMode failed\n");
+ }
+
+ status = VL53L0X_SetLimitCheckEnable(&Dev, VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, 1); // Enable Sigma limit
+ if( status ){
+ printf("VL53L0X_SetLimitCheckEnable failed\n");
+ }
+
+ status = VL53L0X_SetLimitCheckEnable(&Dev, VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE, 1); // Enable Signa limit
+ if( status ){
+ printf("VL53L0X_SetLimitCheckEnable failed\n");
+ }
+
+ /* Ranging configuration */
+ signalLimit = (FixPoint1616_t)(0.1*65536);
+ sigmaLimit = (FixPoint1616_t)(60*65536);
+ timingBudget = 33000;
+ preRangeVcselPeriod = 18;
+ finalRangeVcselPeriod = 14;
+
+ status = VL53L0X_SetLimitCheckValue(&Dev, VL53L0X_CHECKENABLE_SIGNAL_RATE_FINAL_RANGE, signalLimit);
+
+ if( status ){
+ printf("VL53L0X_SetLimitCheckValue failed\n");
+ }
+
+ status = VL53L0X_SetLimitCheckValue(&Dev, VL53L0X_CHECKENABLE_SIGMA_FINAL_RANGE, sigmaLimit);
+ if( status ){
+ printf("VL53L0X_SetLimitCheckValue failed\n");
+ }
+
+ status = VL53L0X_SetMeasurementTimingBudgetMicroSeconds(&Dev, timingBudget);
+ if( status ){
+ printf("VL53L0X_SetMeasurementTimingBudgetMicroSeconds failed\n");
+ }
+
+ status = VL53L0X_SetVcselPulsePeriod(&Dev, VL53L0X_VCSEL_PERIOD_PRE_RANGE, preRangeVcselPeriod);
+ if( status ){
+ printf("VL53L0X_SetVcselPulsePeriod failed\n");
+ }
+
+ status = VL53L0X_SetVcselPulsePeriod(&Dev, VL53L0X_VCSEL_PERIOD_FINAL_RANGE, finalRangeVcselPeriod);
+ if( status ){
+ printf("VL53L0X_SetVcselPulsePeriod failed\n");
+ }
+
+ Dev.LeakyFirst=1;
+ }
+}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_tof.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_tof.h
new file mode 100644
index 000000000..a1caf711a
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_tof.h
@@ -0,0 +1,230 @@
+/**
+ ******************************************************************************
+ * @file vl53l0x_tof.h
+ * @author MCD Application Team
+ * @brief STM32L475E-IOT01 board support package
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __VL53L0X_TOF_H
+#define __VL53L0X_TOF_H
+
+#ifdef __cplusplus
+ extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+/* Exported types ------------------------------------------------------------*/
+/**
+ * @struct VL53L0X_Dev_t
+ * @brief Generic PAL device type that does link between API and platform abstraction layer
+ *
+ */
+typedef struct {
+ VL53L0X_DevData_t Data; /*!< embed ST Ewok Dev data as "Data"*/
+
+ /*!< user specific field */
+
+ I2C_HandleTypeDef *I2cHandle;
+ uint8_t I2cDevAddr;
+
+ char DevLetter;
+
+ int Id;
+ int Present;
+ int Enabled;
+ int Ready;
+
+ uint8_t comms_type;
+ uint16_t comms_speed_khz;
+
+ int LeakyRange;
+ int LeakyFirst;
+ uint8_t RangeStatus;
+ uint8_t PreviousRangeStatus;
+ FixPoint1616_t SignalRateRtnMegaCps;
+ uint16_t EffectiveSpadRtnCount;
+
+} VL53L0X_Dev_t;
+
+
+/**
+ * @brief Declare the device Handle as a pointer of the structure @a VL53L0X_Dev_t.
+ *
+ */
+typedef VL53L0X_Dev_t* VL53L0X_DEV;
+
+/* Exported constants --------------------------------------------------------*/
+/* Exported macros -----------------------------------------------------------*/
+/**
+ * @def PALDevDataGet
+ * @brief Get ST private structure @a VL53L0X_DevData_t data access
+ *
+ * @param Dev Device Handle
+ * @param field ST structure field name
+ * It maybe used and as real data "ref" not just as "get" for sub-structure item
+ * like PALDevDataGet(FilterData.field)[i] or PALDevDataGet(FilterData.MeasurementIndex)++
+ */
+#define PALDevDataGet(Dev, field) (Dev->Data.field)
+
+/**
+ * @def PALDevDataSet(Dev, field, data)
+ * @brief Set ST private structure @a VL53L0X_DevData_t data field
+ * @param Dev Device Handle
+ * @param field ST structure field name
+ * @param data Data to be set
+ */
+#define PALDevDataSet(Dev, field, data) (Dev->Data.field)=(data)
+
+#define VL53L0X_COPYSTRING(str, ...) strcpy(str, ##__VA_ARGS__)
+/* Private macros ------------------------------------------------------------*/
+/* Exported functions --------------------------------------------------------*/
+
+/**
+ * Lock comms interface to serialize all commands to a shared I2C interface for a specific device
+ * @param Dev Device Handle
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_LockSequenceAccess(VL53L0X_DEV Dev);
+
+/**
+ * Unlock comms interface to serialize all commands to a shared I2C interface for a specific device
+ * @param Dev Device Handle
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_UnlockSequenceAccess(VL53L0X_DEV Dev);
+
+
+/**
+ * Writes the supplied byte buffer to the device
+ * @param Dev Device Handle
+ * @param index The register index
+ * @param pdata Pointer to uint8_t buffer containing the data to be written
+ * @param count Number of bytes in the supplied byte buffer
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_WriteMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count);
+
+/**
+ * Reads the requested number of bytes from the device
+ * @param Dev Device Handle
+ * @param index The register index
+ * @param pdata Pointer to the uint8_t buffer to store read data
+ * @param count Number of uint8_t's to read
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_ReadMulti(VL53L0X_DEV Dev, uint8_t index, uint8_t *pdata, uint32_t count);
+
+/**
+ * Write single byte register
+ * @param Dev Device Handle
+ * @param index The register index
+ * @param data 8 bit register data
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_WrByte(VL53L0X_DEV Dev, uint8_t index, uint8_t data);
+
+/**
+ * Write word register
+ * @param Dev Device Handle
+ * @param index The register index
+ * @param data 16 bit register data
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_WrWord(VL53L0X_DEV Dev, uint8_t index, uint16_t data);
+
+/**
+ * Write double word (4 byte) register
+ * @param Dev Device Handle
+ * @param index The register index
+ * @param data 32 bit register data
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_WrDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t data);
+
+/**
+ * Read single byte register
+ * @param Dev Device Handle
+ * @param index The register index
+ * @param data pointer to 8 bit data
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_RdByte(VL53L0X_DEV Dev, uint8_t index, uint8_t *data);
+
+/**
+ * Read word (2byte) register
+ * @param Dev Device Handle
+ * @param index The register index
+ * @param data pointer to 16 bit data
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_RdWord(VL53L0X_DEV Dev, uint8_t index, uint16_t *data);
+
+/**
+ * Read dword (4byte) register
+ * @param Dev Device Handle
+ * @param index The register index
+ * @param data pointer to 32 bit data
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_RdDWord(VL53L0X_DEV Dev, uint8_t index, uint32_t *data);
+
+/**
+ * Threat safe Update (read/modify/write) single byte register
+ *
+ * Final_reg = (Initial_reg & and_data) |or_data
+ *
+ * @param Dev Device Handle
+ * @param index The register index
+ * @param AndData 8 bit and data
+ * @param OrData 8 bit or data
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_UpdateByte(VL53L0X_DEV Dev, uint8_t index, uint8_t AndData, uint8_t OrData);
+
+/** @} end of VL53L0X_registerAccess_group */
+
+
+/**
+ * @brief execute delay in all polling API call
+ *
+ * A typical multi-thread or RTOs implementation is to sleep the task for some 5ms (with 100Hz max rate faster polling is not needed)
+ * if nothing specific is need you can define it as an empty/void macro
+ * @code
+ * #define VL53L0X_PollingDelay(...) (void)0
+ * @endcode
+ * @param Dev Device Handle
+ * @return VL53L0X_ERROR_NONE Success
+ * @return "Other error code" See ::VL53L0X_Error
+ */
+VL53L0X_Error VL53L0X_PollingDelay(VL53L0X_DEV Dev); /* usually best implemented as a real function */
+
+void SetupSingleShot(VL53L0X_Dev_t Dev);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __VL53L0X_TOF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_tuning.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_tuning.h
new file mode 100644
index 000000000..3bee119ac
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_tuning.h
@@ -0,0 +1,131 @@
+/**
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#ifndef _VL53L0X_TUNING_H_
+#define _VL53L0X_TUNING_H_
+
+#include "vl53l0x_def.h"
+
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+uint8_t DefaultTuningSettings[] = {
+
+ /* update 02/11/2015_v36 */
+ 0x01, 0xFF, 0x01,
+ 0x01, 0x00, 0x00,
+
+ 0x01, 0xFF, 0x00,
+ 0x01, 0x09, 0x00,
+ 0x01, 0x10, 0x00,
+ 0x01, 0x11, 0x00,
+
+ 0x01, 0x24, 0x01,
+ 0x01, 0x25, 0xff,
+ 0x01, 0x75, 0x00,
+
+ 0x01, 0xFF, 0x01,
+ 0x01, 0x4e, 0x2c,
+ 0x01, 0x48, 0x00,
+ 0x01, 0x30, 0x20,
+
+ 0x01, 0xFF, 0x00,
+ 0x01, 0x30, 0x09, /* mja changed from 0x64. */
+ 0x01, 0x54, 0x00,
+ 0x01, 0x31, 0x04,
+ 0x01, 0x32, 0x03,
+ 0x01, 0x40, 0x83,
+ 0x01, 0x46, 0x25,
+ 0x01, 0x60, 0x00,
+ 0x01, 0x27, 0x00,
+ 0x01, 0x50, 0x06,
+ 0x01, 0x51, 0x00,
+ 0x01, 0x52, 0x96,
+ 0x01, 0x56, 0x08,
+ 0x01, 0x57, 0x30,
+ 0x01, 0x61, 0x00,
+ 0x01, 0x62, 0x00,
+ 0x01, 0x64, 0x00,
+ 0x01, 0x65, 0x00,
+ 0x01, 0x66, 0xa0,
+
+ 0x01, 0xFF, 0x01,
+ 0x01, 0x22, 0x32,
+ 0x01, 0x47, 0x14,
+ 0x01, 0x49, 0xff,
+ 0x01, 0x4a, 0x00,
+
+ 0x01, 0xFF, 0x00,
+ 0x01, 0x7a, 0x0a,
+ 0x01, 0x7b, 0x00,
+ 0x01, 0x78, 0x21,
+
+ 0x01, 0xFF, 0x01,
+ 0x01, 0x23, 0x34,
+ 0x01, 0x42, 0x00,
+ 0x01, 0x44, 0xff,
+ 0x01, 0x45, 0x26,
+ 0x01, 0x46, 0x05,
+ 0x01, 0x40, 0x40,
+ 0x01, 0x0E, 0x06,
+ 0x01, 0x20, 0x1a,
+ 0x01, 0x43, 0x40,
+
+ 0x01, 0xFF, 0x00,
+ 0x01, 0x34, 0x03,
+ 0x01, 0x35, 0x44,
+
+ 0x01, 0xFF, 0x01,
+ 0x01, 0x31, 0x04,
+ 0x01, 0x4b, 0x09,
+ 0x01, 0x4c, 0x05,
+ 0x01, 0x4d, 0x04,
+
+
+ 0x01, 0xFF, 0x00,
+ 0x01, 0x44, 0x00,
+ 0x01, 0x45, 0x20,
+ 0x01, 0x47, 0x08,
+ 0x01, 0x48, 0x28,
+ 0x01, 0x67, 0x00,
+ 0x01, 0x70, 0x04,
+ 0x01, 0x71, 0x01,
+ 0x01, 0x72, 0xfe,
+ 0x01, 0x76, 0x00,
+ 0x01, 0x77, 0x00,
+
+ 0x01, 0xFF, 0x01,
+ 0x01, 0x0d, 0x01,
+
+ 0x01, 0xFF, 0x00,
+ 0x01, 0x80, 0x01,
+ 0x01, 0x01, 0xF8,
+
+ 0x01, 0xFF, 0x01,
+ 0x01, 0x8e, 0x01,
+ 0x01, 0x00, 0x01,
+ 0x01, 0xFF, 0x00,
+ 0x01, 0x80, 0x00,
+
+ 0x00, 0x00, 0x00
+};
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* _VL53L0X_TUNING_H_ */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_types.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_types.h
new file mode 100644
index 000000000..53f930f3e
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/vl53l0x_types.h
@@ -0,0 +1,96 @@
+/**
+ ******************************************************************************
+ * @file vl53l0x_types.h
+ * @brief VL53L0X types definition
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2017(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#ifndef VL53L0X_TYPES_H_
+#define VL53L0X_TYPES_H_
+
+/** @defgroup porting_type Basic type definition
+ * @ingroup VL53L0X_platform_group
+ *
+ * @brief file vl53l0x_types.h files hold basic type definition that may requires porting
+ *
+ * contains type that must be defined for the platform\n
+ * when target platform and compiler provide stdint.h and stddef.h it is enough to include it.\n
+ * If stdint.h is not available review and adapt all signed and unsigned 8/16/32 bits basic types. \n
+ * If stddef.h is not available review and adapt NULL definition .
+ */
+#include <stdint.h>
+#include <stddef.h>
+
+#ifndef NULL
+#error "Error NULL definition should be done. Please add required include "
+#endif
+
+
+#if ! defined(STDINT_H) && !defined(_GCC_STDINT_H) &&!defined(__STDINT_DECLS) && !defined(_GCC_WRAP_STDINT_H) && !defined(_STDINT) && !defined(_STDINT_H)
+
+ #pragma message("Please review type definition of STDINT define for your platform and add to list above ")
+
+ /*
+ * target platform do not provide stdint or use a different #define than above
+ * to avoid seeing the message below addapt the #define list above or implement
+ * all type and delete these pragma
+ */
+
+/** \ingroup VL53L0X_portingType_group
+ * @{
+ */
+
+
+typedef unsigned long long uint64_t;
+
+
+/** @brief Typedef defining 32 bit unsigned int type.\n
+ * The developer should modify this to suit the platform being deployed.
+ */
+typedef unsigned int uint32_t;
+
+/** @brief Typedef defining 32 bit int type.\n
+ * The developer should modify this to suit the platform being deployed.
+ */
+typedef int int32_t;
+
+/** @brief Typedef defining 16 bit unsigned short type.\n
+ * The developer should modify this to suit the platform being deployed.
+ */
+typedef unsigned short uint16_t;
+
+/** @brief Typedef defining 16 bit short type.\n
+ * The developer should modify this to suit the platform being deployed.
+ */
+typedef short int16_t;
+
+/** @brief Typedef defining 8 bit unsigned char type.\n
+ * The developer should modify this to suit the platform being deployed.
+ */
+typedef unsigned char uint8_t;
+
+/** @brief Typedef defining 8 bit char type.\n
+ * The developer should modify this to suit the platform being deployed.
+ */
+typedef signed char int8_t;
+
+/** @} */
+#endif /* _STDINT_H */
+
+
+/** use where fractional values are expected
+ *
+ * Given a floating point value f it's .16 bit point is (int)(f*(1<<16))*/
+typedef uint32_t FixPoint1616_t;
+
+#endif /* VL53L0X_TYPES_H_ */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/BLE_Mesh_Model_Sensor.ewd b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/BLE_Mesh_Model_Sensor.ewd
new file mode 100644
index 000000000..b37a6b4ed
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/BLE_Mesh_Model_Sensor.ewd
@@ -0,0 +1,1419 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <fileVersion>3</fileVersion>
+ <configuration>
+ <name>BLE_Mesh_Model_Sensor</name>
+ <toolchain>
+ <name>ARM</name>
+ </toolchain>
+ <debug>0</debug>
+ <settings>
+ <name>C-SPY</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>29</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>CInput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CEndian</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCVariant</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>MemOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MemFile</name>
+ <state>$TOOLKIT_DIR$\CONFIG\debugger\ST\STM32WB_M4.ddf</state>
+ </option>
+ <option>
+ <name>RunToEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>RunToName</name>
+ <state>main</state>
+ </option>
+ <option>
+ <name>CExtraOptionsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCDDFArgumentProducer</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCDownloadSuppressDownload</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCDownloadVerifyAll</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCProductVersion</name>
+ <state>8.20.2.14834</state>
+ </option>
+ <option>
+ <name>OCDynDriverList</name>
+ <state>STLINK_ID</state>
+ </option>
+ <option>
+ <name>OCLastSavedByProductVersion</name>
+ <state>8.20.2.14834</state>
+ </option>
+ <option>
+ <name>UseFlashLoader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CLowLevel</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCBE8Slave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacFile2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CDevice</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>FlashLoadersV3</name>
+ <state>$TOOLKIT_DIR$\config\flashloader\ST\FlashSTM32WB_M4.board</state>
+ </option>
+ <option>
+ <name>OCImagesSuppressCheck1</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesPath1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCImagesSuppressCheck2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesPath2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCImagesSuppressCheck3</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesPath3</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OverrideDefFlashBoard</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesOffset1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCImagesOffset2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCImagesOffset3</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCImagesUse1</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesUse2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCImagesUse3</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCDeviceConfigMacroFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCDebuggerExtraOption</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCAllMTBOptions</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCMulticoreNrOfCores</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCMulticoreMaster</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCMulticorePort</name>
+ <state>53461</state>
+ </option>
+ <option>
+ <name>OCMulticoreWorkspace</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCMulticoreSlaveProject</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCMulticoreSlaveConfiguration</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCDownloadExtraImage</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCAttachSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MassEraseBeforeFlashing</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ARMSIM_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>OCSimDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCSimEnablePSP</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCSimPspOverrideConfig</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCSimPspConfigFile</name>
+ <state></state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CADI_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>CCadiMemory</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Fast Model</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCADILogFileCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCADILogFileEditB</name>
+ <state>$PROJ_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CMSISDAP_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>4</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCIarProbeScriptFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CMSISDAPResetList</name>
+ <version>1</version>
+ <state>10</state>
+ </option>
+ <option>
+ <name>CMSISDAPHWResetDuration</name>
+ <state>300</state>
+ </option>
+ <option>
+ <name>CMSISDAPHWResetDelay</name>
+ <state>200</state>
+ </option>
+ <option>
+ <name>CMSISDAPDoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CMSISDAPLogFile</name>
+ <state>$PROJ_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CMSISDAPInterfaceRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CMSISDAPInterfaceCmdLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CMSISDAPMultiTargetEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CMSISDAPMultiTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CMSISDAPJtagSpeedList</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CMSISDAPBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CMSISDAPRestoreBreakpointsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CMSISDAPUpdateBreakpointsEdit</name>
+ <state>_call_main</state>
+ </option>
+ <option>
+ <name>RDICatchReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RDICatchUndef</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>RDICatchSWI</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RDICatchData</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>RDICatchPrefetch</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>RDICatchIRQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RDICatchFIQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CatchCORERESET</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CatchMMERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchNOCPERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchCHKERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchSTATERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchBUSERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchINTERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchSFERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchHARDERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchDummy</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CMSISDAPMultiCPUEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CMSISDAPMultiCPUNumber</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCProbeCfgOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCProbeConfig</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CMSISDAPProbeConfigRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CMSISDAPSelectedCPUBehaviour</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ICpuName</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCJetEmuParams</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCCMSISDAPUsbSerialNo</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCCMSISDAPUsbSerialNoSelect</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>GDBSERVER_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>TCPIP</name>
+ <state>aaa.bbb.ccc.ddd</state>
+ </option>
+ <option>
+ <name>DoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>LogFile</name>
+ <state>$PROJ_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCJTagBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJTagUpdateBreakpoints</name>
+ <state>_call_main</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>IJET_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>8</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCIarProbeScriptFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IjetResetList</name>
+ <version>1</version>
+ <state>10</state>
+ </option>
+ <option>
+ <name>IjetHWResetDuration</name>
+ <state>300</state>
+ </option>
+ <option>
+ <name>IjetHWResetDelay</name>
+ <state>200</state>
+ </option>
+ <option>
+ <name>IjetPowerFromProbe</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IjetPowerRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetDoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetLogFile</name>
+ <state>$PROJ_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>IjetInterfaceRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetInterfaceCmdLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetMultiTargetEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetMultiTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetScanChainNonARMDevices</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetIRLength</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetJtagSpeedList</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetProtocolRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetSwoPin</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetCpuClockEdit</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IjetSwoPrescalerList</name>
+ <version>1</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetRestoreBreakpointsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetUpdateBreakpointsEdit</name>
+ <state>_call_main</state>
+ </option>
+ <option>
+ <name>RDICatchReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RDICatchUndef</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>RDICatchSWI</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RDICatchData</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>RDICatchPrefetch</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>RDICatchIRQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>RDICatchFIQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CatchCORERESET</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CatchMMERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchNOCPERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchCHKERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchSTATERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchBUSERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchINTERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchSFERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchHARDERR</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CatchDummy</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCProbeCfgOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCProbeConfig</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IjetProbeConfigRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetMultiCPUEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetMultiCPUNumber</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetSelectedCPUBehaviour</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ICpuName</name>
+ <state></state>
+ </option>
+ <option>
+ <name>OCJetEmuParams</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IjetPreferETB</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IjetTraceSettingsList</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IjetTraceSizeList</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>FlashBoardPathSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCIjetUsbSerialNo</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCIjetUsbSerialNoSelect</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>JLINK_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>16</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>JLinkSpeed</name>
+ <state>1000</state>
+ </option>
+ <option>
+ <name>CCJLinkDoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkLogFile</name>
+ <state>$PROJ_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCJLinkHWResetDelay</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>JLinkInitialSpeed</name>
+ <state>1000</state>
+ </option>
+ <option>
+ <name>CCDoJlinkMultiTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCScanChainNonARMDevices</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkMultiTarget</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkIRLength</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkCommRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkTCPIP</name>
+ <state>aaa.bbb.ccc.ddd</state>
+ </option>
+ <option>
+ <name>CCJLinkSpeedRadioV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCUSBDevice</name>
+ <version>1</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCRDICatchReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchUndef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchSWI</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchData</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchPrefetch</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchIRQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCRDICatchFIQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkBreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkUpdateBreakpoints</name>
+ <state>_call_main</state>
+ </option>
+ <option>
+ <name>CCJLinkInterfaceRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkResetList</name>
+ <version>6</version>
+ <state>5</state>
+ </option>
+ <option>
+ <name>CCJLinkInterfaceCmdLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCatchCORERESET</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCatchMMERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCatchNOCPERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCatchCHRERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCatchSTATERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCatchBUSERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCatchINTERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCatchSFERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCatchHARDERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCatchDummy</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCJLinkScriptFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCJLinkUsbSerialNo</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCTcpIpAlt</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCJLinkTcpIpSerialNo</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCCpuClockEdit</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCSwoClockAuto</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSwoClockEdit</name>
+ <state>2000</state>
+ </option>
+ <option>
+ <name>OCJLinkTraceSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCJLinkTraceSourceDummy</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OCJLinkDeviceName</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>LMIFTDI_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>2</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>LmiftdiSpeed</name>
+ <state>500</state>
+ </option>
+ <option>
+ <name>CCLmiftdiDoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiftdiLogFile</name>
+ <state>$PROJ_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCLmiFtdiInterfaceRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCLmiFtdiInterfaceCmdLine</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>PEMICRO_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>3</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCJPEMicroShowSettings</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>DoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>LogFile</name>
+ <state>$PROJ_DIR$\cspycomm.log</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>STLINK_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>4</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCSTLinkInterfaceRadio</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCSTLinkInterfaceCmdLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkResetList</name>
+ <version>3</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>CCCpuClockEdit</name>
+ <state>32.0</state>
+ </option>
+ <option>
+ <name>CCSwoClockAuto</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSwoClockEdit</name>
+ <state>2000</state>
+ </option>
+ <option>
+ <name>DoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>LogFile</name>
+ <state>$PROJ_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCSTLinkDoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkUpdateBreakpoints</name>
+ <state>_call_main</state>
+ </option>
+ <option>
+ <name>CCSTLinkCatchCORERESET</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkCatchMMERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkCatchNOCPERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkCatchCHRERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkCatchSTATERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkCatchBUSERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkCatchINTERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkCatchSFERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkCatchHARDERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkCatchDummy</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkUsbSerialNo</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCSTLinkUsbSerialNoSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkJtagSpeedList</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSTLinkDAPNumber</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCSTLinkDebugAccessPortRadio</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>THIRDPARTY_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>CThirdPartyDriverDll</name>
+ <state>###Uninitialized###</state>
+ </option>
+ <option>
+ <name>CThirdPartyLogFileCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CThirdPartyLogFileEditB</name>
+ <state>$PROJ_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>TIFET_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCMSPFetResetList</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMSPFetInterfaceRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMSPFetInterfaceCmdLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMSPFetTargetVccTypeDefault</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMSPFetTargetVoltage</name>
+ <state>###Uninitialized###</state>
+ </option>
+ <option>
+ <name>CCMSPFetVCCDefault</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCMSPFetTargetSettlingtime</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMSPFetRadioJtagSpeedType</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCMSPFetConnection</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMSPFetUsbComPort</name>
+ <state>Automatic</state>
+ </option>
+ <option>
+ <name>CCMSPFetAllowAccessToBSL</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMSPFetDoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCMSPFetLogFile</name>
+ <state>$PROJ_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCMSPFetRadioEraseFlash</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>XDS100_ID</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>6</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>OCDriverInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>TIPackageOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>TIPackage</name>
+ <state></state>
+ </option>
+ <option>
+ <name>BoardFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>DoLogfile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>LogFile</name>
+ <state>$PROJ_DIR$\cspycomm.log</state>
+ </option>
+ <option>
+ <name>CCXds100BreakpointRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100DoUpdateBreakpoints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100UpdateBreakpoints</name>
+ <state>_call_main</state>
+ </option>
+ <option>
+ <name>CCXds100CatchReset</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchUndef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchSWI</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchData</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchPrefetch</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchIRQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchFIQ</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchCORERESET</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchMMERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchNOCPERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchCHRERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchSTATERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchBUSERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchINTERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchSFERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchHARDERR</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CatchDummy</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100CpuClockEdit</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCXds100SwoClockAuto</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100SwoClockEdit</name>
+ <state>1000</state>
+ </option>
+ <option>
+ <name>CCXds100HWResetDelay</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100ResetList</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100UsbSerialNo</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCXds100UsbSerialNoSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100JtagSpeedList</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100InterfaceRadio</name>
+ <state>2</state>
+ </option>
+ <option>
+ <name>CCXds100InterfaceCmdLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100ProbeList</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>CCXds100SWOPortRadio</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCXds100SWOPort</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <debuggerPlugins>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxArmPlugin.ENU.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\CMX\CmxTinyArmPlugin.ENU.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\embOS\embOSPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\Mbed\MbedArmPlugin.ENU.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\OpenRTOS\OpenRTOSPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\SafeRTOS\SafeRTOSPlugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\ThreadX\ThreadXArmPlugin.ENU.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\TI-RTOS\tirtosplugin.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-286-KA-CSpy.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-II\uCOS-II-KA-CSpy.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$TOOLKIT_DIR$\plugins\rtos\uCOS-III\uCOS-III-KA-CSpy.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\CodeCoverage\CodeCoverage.ENU.ewplugin</file>
+ <loadFlag>1</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\Orti\Orti.ENU.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\TargetAccessServer\TargetAccessServer.ENU.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ <plugin>
+ <file>$EW_DIR$\common\plugins\uCProbe\uCProbePlugin.ENU.ewplugin</file>
+ <loadFlag>0</loadFlag>
+ </plugin>
+ </debuggerPlugins>
+ </configuration>
+</project>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/BLE_Mesh_Model_Sensor.ewp b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/BLE_Mesh_Model_Sensor.ewp
new file mode 100644
index 000000000..3297979a1
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/BLE_Mesh_Model_Sensor.ewp
@@ -0,0 +1,1447 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <fileVersion>3</fileVersion>
+ <configuration>
+ <name>BLE_Mesh_Model_Sensor</name>
+ <toolchain>
+ <name>ARM</name>
+ </toolchain>
+ <debug>0</debug>
+ <settings>
+ <name>General</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <version>30</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>ExePath</name>
+ <state>BLE_Mesh_Model_Sensor\Exe</state>
+ </option>
+ <option>
+ <name>ObjPath</name>
+ <state>BLE_Mesh_Model_Sensor\Obj</state>
+ </option>
+ <option>
+ <name>ListPath</name>
+ <state>BLE_Mesh_Model_Sensor\List</state>
+ </option>
+ <option>
+ <name>GEndianMode</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Input description</name>
+ <state>Automatic choice of formatter, without multibyte support.</state>
+ </option>
+ <option>
+ <name>Output description</name>
+ <state>Automatic choice of formatter, without multibyte support.</state>
+ </option>
+ <option>
+ <name>GOutputBinary</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGCoreOrChip</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelect</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelectSlave</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>RTDescription</name>
+ <state>Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.</state>
+ </option>
+ <option>
+ <name>OGProductVersion</name>
+ <state>8.20.2.14834</state>
+ </option>
+ <option>
+ <name>OGLastSavedByProductVersion</name>
+ <state>8.20.2.14834</state>
+ </option>
+ <option>
+ <name>GeneralEnableMisra</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraVerbose</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGChipSelectEditMenu</name>
+ <state>STM32WB5MMG ST STM32WB5MMG</state>
+ </option>
+ <option>
+ <name>GenLowLevelInterface</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GEndianModeBE</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGBufferedTerminalOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GenStdoutInterface</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>GeneralMisraVer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules04</name>
+ <version>0</version>
+ <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+ </option>
+ <option>
+ <name>RTConfigPath2</name>
+ <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Full.h</state>
+ </option>
+ <option>
+ <name>GBECoreSlave</name>
+ <version>26</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGUseCmsis</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGUseCmsisDspLib</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GRuntimeLibThreads</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CoreVariant</name>
+ <version>26</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GFPUDeviceSlave</name>
+ <state>STM32WB5MMG ST STM32WB5MMG</state>
+ </option>
+ <option>
+ <name>FPU2</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NrRegs</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>NEON</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GFPUCoreSlave2</name>
+ <version>26</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGCMSISPackSelectDevice</name>
+ </option>
+ <option>
+ <name>OgLibHeap</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGLibAdditionalLocale</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGPrintfVariant</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGPrintfMultibyteSupport</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGScanfVariant</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGScanfMultibyteSupport</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GenLocaleTags</name>
+ <state></state>
+ </option>
+ <option>
+ <name>GenLocaleDisplayOnly</name>
+ <state></state>
+ </option>
+ <option>
+ <name>DSPExtension</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>TrustZone</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ICCARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>34</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>CCDefines</name>
+ <state>USE_STM32WB5M_DK</state>
+ <state>STM32WB55xx</state>
+ <state>USE_HAL_DRIVER</state>
+ <state>CORE_CM4</state>
+ <state>STM32</state>
+ <state>ENABLE_USART</state>
+ <state>TRACE_ENABLE_NO_FUNCTION</state>
+ <state>SERVER</state>
+ </option>
+ <option>
+ <name>CCPreprocFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocComments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocLine</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCListCFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMnemonics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMessages</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagSuppress</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagRemark</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagWarning</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagError</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCAllowList</name>
+ <version>1</version>
+ <state>11111110</state>
+ </option>
+ <option>
+ <name>CCDebugInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IEndianMode</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IExtraOptionsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCLangConformance</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSignedPlainChar</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCRequirePrototypes</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCDiagWarnAreErr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCompilerRuntimeInfo</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.o</state>
+ </option>
+ <option>
+ <name>CCLibConfigHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>PreInclude</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CompilerMisraOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Drivers\CMSIS\Include</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Inc</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\Inc</state>
+ <state>$PROJ_DIR$\..\Core\Inc</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Utilities\lpm\tiny_lpm</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Utilities\sequencer</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\template</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\shci</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\MeshModel\Inc</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread</state>
+ <state>$PROJ_DIR$\..\STM32_WPAN\app</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Drivers\CMSIS\Device\ST\STM32WBxx\Include</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315</state>
+ <state>$PROJ_DIR$\..\Core\Src\vl53l0x</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\stts22h</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\Common</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Utilities\LCD</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Utilities\Fonts</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ism330dhcx</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCodeSection</name>
+ <state>.text</state>
+ </option>
+ <option>
+ <name>IProcessorMode2</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevel</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CCOptStrategy</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevelSlave</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules04</name>
+ <version>0</version>
+ <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+ </option>
+ <option>
+ <name>CCPosIndRopi</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPosIndRwpi</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPosIndNoDynInit</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccLang</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCDialect</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IccAllowVLA</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccStaticDestr</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IccCppInlineSemantics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCmsis</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IccFloatSemantics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCOptimizationNoSizeConstraints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCNoLiteralPool</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCOptStrategySlave</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCGuardCalls</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEncSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEncOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEncOutputBom</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEncInput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccExceptions2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccRTTI2</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>AARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>10</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>AObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AEndian</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ACaseSensitivity</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacroChars</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnWhat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnOne</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ADebug</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AltRegisterNames</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ADefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AList</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AListHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AListing</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Includes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacDefs</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacExps</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacExec</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OnlyAssed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MultiLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>TabSpacing</name>
+ <state>8</state>
+ </option>
+ <option>
+ <name>AXRef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDefines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefInternal</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDual</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AOutputFile</name>
+ <state>$FILE_BNAME$.o</state>
+ </option>
+ <option>
+ <name>ALimitErrorsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ALimitErrorsEdit</name>
+ <state>100</state>
+ </option>
+ <option>
+ <name>AIgnoreStdInclude</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AUserIncludes</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AExtraOptionsCheckV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AExtraOptionsV2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AsmNoLiteralPool</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>OBJCOPY</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>OOCOutputFormat</name>
+ <version>3</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCOutputOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OOCOutputFile</name>
+ <state>BLE_Mesh_Model_Sensor.hex</state>
+ </option>
+ <option>
+ <name>OOCCommandLineProducer</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OOCObjCopyEnable</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CUSTOM</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <extensions></extensions>
+ <cmdline></cmdline>
+ <hasPrio>0</hasPrio>
+ </data>
+ </settings>
+ <settings>
+ <name>BICOMP</name>
+ <archiveVersion>0</archiveVersion>
+ <data />
+ </settings>
+ <settings>
+ <name>BUILDACTION</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <prebuild></prebuild>
+ <postbuild></postbuild>
+ </data>
+ </settings>
+ <settings>
+ <name>ILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>20</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>IlinkLibIOConfig</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XLinkMisraHandler</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkInputFileSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOutputFile</name>
+ <state>BLE_Mesh_Model_Sensor.out</state>
+ </option>
+ <option>
+ <name>IlinkDebugInfoEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkKeepSymbols</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinaryFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinarySymbol</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinarySegment</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinaryAlign</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkConfigDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkMapFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLogFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogInitialization</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogModule</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogSection</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogVeneer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIcfOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkIcfFile</name>
+ <state>$PROJ_DIR$\stm32wb5mxx_flash_cm4.icf</state>
+ </option>
+ <option>
+ <name>IlinkIcfFileSlave</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkSuppressDiags</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsRem</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsWarn</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsErr</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkWarningsAreErrors</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkUseExtraOptions</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkLowLevelInterfaceSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkAutoLibEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkAdditionalLibs</name>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\Library\libBle_Mesh_CM4_IAR.a
+</state>
+ </option>
+ <option>
+ <name>IlinkOverrideProgramEntryLabel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkProgramEntryLabelSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkProgramEntryLabel</name>
+ <state>__iar_program_start</state>
+ </option>
+ <option>
+ <name>DoFill</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FillerByte</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>FillerStart</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>FillerEnd</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>CrcSize</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcPoly</name>
+ <state>0x11021</state>
+ </option>
+ <option>
+ <name>CrcCompl</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcBitOrder</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>DoCrc</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkBE8Slave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkBufferedTerminalOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkStdoutInterfaceSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcFullSize</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIElfToolPostProcess</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogAutoLibSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogRedirSymbols</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogUnusedFragments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCrcReverseByteOrder</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCrcUseAsInput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptInline</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptExceptionsAllow</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptExceptionsForce</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCmsis</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptMergeDuplSections</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOptUseVfe</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptForceVfe</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkStackAnalysisEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkStackControlFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkStackCallGraphFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CrcAlgorithm</name>
+ <version>1</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcUnitSize</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkThreadsSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLogCallGraph</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIcfFile_AltDefault</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkEncInput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkEncOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkEncOutputBom</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkHeapSelect</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLocaleSelect</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>IARCHIVE</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>0</debug>
+ <option>
+ <name>IarchiveInputs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IarchiveOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IarchiveOutput</name>
+ <state>###Unitialized###</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>BILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data />
+ </settings>
+ <settings>
+ <name>Coder</name>
+ <archiveVersion>0</archiveVersion>
+ <data />
+ </settings>
+ </configuration>
+ <group>
+ <name>Application</name>
+ <group>
+ <name>Core</name>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_debug.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_entry.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_stts22h.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_vl53l0x.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\hw_flash.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\hw_timerserver.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\hw_uart.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\lp_timer.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\main.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32_lpm_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_it.c</name>
+ </file>
+ </group>
+ <group>
+ <name>EWARM</name>
+ <file>
+ <name>$PROJ_DIR$\startup_stm32wb55xx_cm4.s</name>
+ </file>
+ </group>
+ <group>
+ <name>STM32_WPAN</name>
+ <group>
+ <name>app</name>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\app_ble.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\appli_config.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\appli_config_client.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\appli_generic.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\appli_generic_client.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\appli_light.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\appli_light_client.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\appli_light_lc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\appli_mesh.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\appli_nvm.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\appli_sensor.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\appli_sensors_client.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\appli_vendor.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\models_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\app\pal_nvm.c</name>
+ </file>
+ </group>
+ <group>
+ <name>target</name>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\target\hw_ipcc.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>vl5310x</name>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api_calibration.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api_core.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api_ranging.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api_strings.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_platform_log.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_tof.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>Doc</name>
+ <file>
+ <name>$PROJ_DIR$\..\readme.txt</name>
+ </file>
+ </group>
+ <group>
+ <name>Drivers</name>
+ <group>
+ <name>BSP</name>
+ <group>
+ <name>Component</name>
+ <group>
+ <name>ssdl1315</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315_reg.c</name>
+ </file>
+ </group>
+ <group>
+ <name>stts22h</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\stts22h\stts22h.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\stts22h\stts22h_reg.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>STM32WB5MM-DK</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_bus.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_lcd.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>CMSIS</name>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\system_stm32wbxx.c</name>
+ </file>
+ </group>
+ <group>
+ <name>STM32WBxx_HAL_Driver</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_adc_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_cortex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_exti.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_gpio.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart_ex.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>Middlewares</name>
+ <group>
+ <name>STM32_WPAN</name>
+ <group>
+ <name>ble</name>
+ <group>
+ <name>blesvc</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\MeshModel\Src\common.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\MeshModel\Src\config_client.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\MeshModel\Src\generic.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\MeshModel\Src\generic_client.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\MeshModel\Src\light.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\MeshModel\Src\light_client.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\MeshModel\Src\light_lc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\mesh.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\Src\mesh_cfg.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\MeshModel\Src\sensors.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\MeshModel\Src\sensors_client.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\svc_ctl.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\MeshModel\Src\time_scene.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\MeshModel\Src\vendor.c</name>
+ </file>
+ </group>
+ <group>
+ <name>core</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gap_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gatt_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hal_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hci_le.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_l2cap_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\template\osal.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>interface</name>
+ <group>
+ <name>patterns</name>
+ <group>
+ <name>ble_thread</name>
+ <group>
+ <name>shci</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\shci\shci.c</name>
+ </file>
+ </group>
+ <group>
+ <name>tl</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\tl_mbox.c</name>
+ </file>
+ </group>
+ </group>
+ </group>
+ </group>
+ <group>
+ <name>utilities</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\dbg_trace.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\otp.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\lpm\tiny_lpm\stm32_lpm.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\sequencer\stm32_seq.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_list.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_queue.c</name>
+ </file>
+ </group>
+ </group>
+ </group>
+ <group>
+ <name>Utilities</name>
+ <group>
+ <name>Fonts</name>
+ </group>
+ <group>
+ <name>LCD</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\LCD\stm32_lcd.c</name>
+ </file>
+ </group>
+ </group>
+</project>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/Project.eww b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/Project.eww
new file mode 100644
index 000000000..470e4b26c
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/Project.eww
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<workspace>
+ <project>
+ <path>$WS_DIR$\BLE_Mesh_Model_Sensor.ewp</path>
+ </project>
+ <batchBuild />
+</workspace>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/startup_stm32wb55xx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/startup_stm32wb55xx_cm4.s
new file mode 100644
index 000000000..911641737
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/startup_stm32wb55xx_cm4.s
@@ -0,0 +1,515 @@
+;******************************************************************************
+;* File Name : startup_stm32wb55xx_cm4.s
+;* Author : MCD Application Team
+;* Description : M4 core vector table of the STM32WB55xx devices for the
+;* IAR (EWARM) toolchain.
+;*
+;* This module performs:
+;* - Set the initial SP
+;* - Set the initial PC == _iar_program_start,
+;* - Set the vector table entries with the exceptions ISR
+;* address.
+;* - Branches to main in the C library (which eventually
+;* calls main()).
+;* After Reset the Cortex-M4 processor is in Thread mode,
+;* priority is Privileged, and the Stack is set to Main.
+;******************************************************************************
+;* @attention
+;*
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
+;*
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
+;*
+;******************************************************************************
+;
+;
+; The modules in this file are included in the libraries, and may be replaced
+; by any user-defined modules that define the PUBLIC symbol _program_start or
+; a user defined start symbol.
+; To override the cstartup defined in the library, simply add your modified
+; version to the workbench project.
+;
+; The vector table is normally located at address 0.
+; When debugging in RAM, it can be located in RAM, aligned to at least 2^6.
+; The name "__vector_table" has special meaning for C-SPY:
+; it is where the SP start value is found, and the NVIC vector
+; table register (VTOR) is initialized to this address if != 0.
+;
+; Cortex-M version
+;
+
+ MODULE ?cstartup
+
+ ;; Forward declaration of sections.
+ SECTION CSTACK:DATA:NOROOT(3)
+
+ SECTION .intvec:CODE:NOROOT(2)
+
+ EXTERN __iar_program_start
+ EXTERN SystemInit
+ PUBLIC __vector_table
+
+ DATA
+__vector_table
+ DCD sfe(CSTACK)
+ 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_PVM_IRQHandler ; PVD and PVM Interrupt
+ DCD TAMP_STAMP_LSECSS_IRQHandler ; RTC Tamper, TimeStamp Interrupts and LSECSS Interrupts
+ DCD RTC_WKUP_IRQHandler ; RTC Wakeup Interrupt
+ DCD FLASH_IRQHandler ; FLASH global Interrupt
+ DCD RCC_IRQHandler ; RCC Interrupt
+ DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
+ DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
+ DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
+ DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
+ DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
+ DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
+ DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 Interrupt
+ DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 Interrupt
+ DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 Interrupt
+ DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 Interrupt
+ DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 Interrupt
+ DCD ADC1_IRQHandler ; ADC1 Interrupt
+ DCD USB_HP_IRQHandler ; USB High Priority Interrupt
+ DCD USB_LP_IRQHandler ; USB Low Priority Interrupt
+ DCD C2SEV_PWR_C2H_IRQHandler ; CPU M0+ SEV Interrupt
+ DCD COMP_IRQHandler ; COMP1 and COMP2 Interrupts
+ DCD EXTI9_5_IRQHandler ; EXTI Lines [9:5] Interrupt
+ DCD TIM1_BRK_IRQHandler ; TIM1 Break Interrupt
+ DCD TIM1_UP_TIM16_IRQHandler ; TIM1 Update and TIM16 global Interrupts
+ DCD TIM1_TRG_COM_TIM17_IRQHandler ; TIM1 Trigger and Communication and TIM17 global Interrupts
+ DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare Interrupt
+ DCD TIM2_IRQHandler ; TIM2 Global Interrupt
+ DCD PKA_IRQHandler ; PKA Interrupt
+ DCD I2C1_EV_IRQHandler ; I2C1 Event Interrupt
+ DCD I2C1_ER_IRQHandler ; I2C1 Error Interrupt
+ DCD I2C3_EV_IRQHandler ; I2C3 Event Interrupt
+ DCD I2C3_ER_IRQHandler ; I2C3 Error Interrupt
+ DCD SPI1_IRQHandler ; SPI1 Interrupt
+ DCD SPI2_IRQHandler ; SPI2 Interrupt
+ DCD USART1_IRQHandler ; USART1 Interrupt
+ DCD LPUART1_IRQHandler ; LPUART1 Interrupt
+ DCD SAI1_IRQHandler ; SAI Interrupt
+ DCD TSC_IRQHandler ; TSC Interrupt
+ DCD EXTI15_10_IRQHandler ; EXTI Lines1[15:10 ]Interrupts
+ DCD RTC_Alarm_IRQHandler ; RTC Alarms (A and B) Interrupt
+ DCD CRS_IRQHandler ; CRS interrupt
+ DCD PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler ; WKUP Interrupt from PWR
+ DCD IPCC_C1_RX_IRQHandler ; IPCC CPU1 RX occupied interrupt
+ DCD IPCC_C1_TX_IRQHandler ; IPCC CPU1 RX free interrupt
+ DCD HSEM_IRQHandler ; HSEM0 Interrupt
+ DCD LPTIM1_IRQHandler ; LPTIM1 Interrupt
+ DCD LPTIM2_IRQHandler ; LPTIM2 Interrupt
+ DCD LCD_IRQHandler ; LCD Interrupt
+ DCD QUADSPI_IRQHandler ; QUADSPI Interrupt
+ DCD AES1_IRQHandler ; AES1 Interrupt
+ DCD AES2_IRQHandler ; AES2 Interrupt
+ DCD RNG_IRQHandler ; RNG1 Interrupt
+ DCD FPU_IRQHandler ; FPU Interrupt
+ DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1 Interrupt
+ DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2 Interrupt
+ DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3 Interrupt
+ DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4 Interrupt
+ DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5 Interrupt
+ DCD DMA2_Channel6_IRQHandler ; DMA2 Channel 6 Interrupt
+ DCD DMA2_Channel7_IRQHandler ; DMA2 Channel 7 Interrupt
+ DCD DMAMUX1_OVR_IRQHandler ; DMAMUX overrun Interrupt
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; Default interrupt handlers.
+;;
+ THUMB
+
+ PUBWEAK Reset_Handler
+ SECTION .text:CODE:NOROOT:REORDER(2)
+Reset_Handler
+ LDR R0, =SystemInit
+ BLX R0
+ LDR R0, =__iar_program_start
+ BX R0
+
+ PUBWEAK NMI_Handler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+NMI_Handler
+ B NMI_Handler
+
+ PUBWEAK HardFault_Handler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+HardFault_Handler
+ B HardFault_Handler
+
+ PUBWEAK MemManage_Handler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+MemManage_Handler
+ B MemManage_Handler
+
+ PUBWEAK BusFault_Handler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+BusFault_Handler
+ B BusFault_Handler
+
+ PUBWEAK UsageFault_Handler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+UsageFault_Handler
+ B UsageFault_Handler
+
+ PUBWEAK SVC_Handler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+SVC_Handler
+ B SVC_Handler
+
+ PUBWEAK DebugMon_Handler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DebugMon_Handler
+ B DebugMon_Handler
+
+ PUBWEAK PendSV_Handler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+PendSV_Handler
+ B PendSV_Handler
+
+ PUBWEAK SysTick_Handler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+SysTick_Handler
+ B SysTick_Handler
+
+ PUBWEAK WWDG_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+WWDG_IRQHandler
+ B WWDG_IRQHandler
+
+ PUBWEAK PVD_PVM_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+PVD_PVM_IRQHandler
+ B PVD_PVM_IRQHandler
+
+ PUBWEAK TAMP_STAMP_LSECSS_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+TAMP_STAMP_LSECSS_IRQHandler
+ B TAMP_STAMP_LSECSS_IRQHandler
+
+ PUBWEAK RTC_WKUP_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+RTC_WKUP_IRQHandler
+ B RTC_WKUP_IRQHandler
+
+ PUBWEAK FLASH_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+FLASH_IRQHandler
+ B FLASH_IRQHandler
+
+ PUBWEAK RCC_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+RCC_IRQHandler
+ B RCC_IRQHandler
+
+ PUBWEAK EXTI0_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+EXTI0_IRQHandler
+ B EXTI0_IRQHandler
+
+ PUBWEAK EXTI1_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+EXTI1_IRQHandler
+ B EXTI1_IRQHandler
+
+ PUBWEAK EXTI2_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+EXTI2_IRQHandler
+ B EXTI2_IRQHandler
+
+ PUBWEAK EXTI3_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+EXTI3_IRQHandler
+ B EXTI3_IRQHandler
+
+ PUBWEAK EXTI4_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+EXTI4_IRQHandler
+ B EXTI4_IRQHandler
+
+ PUBWEAK DMA1_Channel1_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA1_Channel1_IRQHandler
+ B DMA1_Channel1_IRQHandler
+
+ PUBWEAK DMA1_Channel2_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA1_Channel2_IRQHandler
+ B DMA1_Channel2_IRQHandler
+
+ PUBWEAK DMA1_Channel3_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA1_Channel3_IRQHandler
+ B DMA1_Channel3_IRQHandler
+
+ PUBWEAK DMA1_Channel4_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA1_Channel4_IRQHandler
+ B DMA1_Channel4_IRQHandler
+
+ PUBWEAK DMA1_Channel5_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA1_Channel5_IRQHandler
+ B DMA1_Channel5_IRQHandler
+
+ PUBWEAK DMA1_Channel6_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA1_Channel6_IRQHandler
+ B DMA1_Channel6_IRQHandler
+
+ PUBWEAK DMA1_Channel7_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA1_Channel7_IRQHandler
+ B DMA1_Channel7_IRQHandler
+
+ PUBWEAK ADC1_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+ADC1_IRQHandler
+ B ADC1_IRQHandler
+
+ PUBWEAK USB_HP_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+USB_HP_IRQHandler
+ B USB_HP_IRQHandler
+
+ PUBWEAK USB_LP_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+USB_LP_IRQHandler
+ B USB_LP_IRQHandler
+
+ PUBWEAK C2SEV_PWR_C2H_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+C2SEV_PWR_C2H_IRQHandler
+ B C2SEV_PWR_C2H_IRQHandler
+
+ PUBWEAK COMP_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+COMP_IRQHandler
+ B COMP_IRQHandler
+
+ PUBWEAK EXTI9_5_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+EXTI9_5_IRQHandler
+ B EXTI9_5_IRQHandler
+
+ PUBWEAK TIM1_BRK_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+TIM1_BRK_IRQHandler
+ B TIM1_BRK_IRQHandler
+
+ PUBWEAK TIM1_UP_TIM16_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+TIM1_UP_TIM16_IRQHandler
+ B TIM1_UP_TIM16_IRQHandler
+
+ PUBWEAK TIM1_TRG_COM_TIM17_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+TIM1_TRG_COM_TIM17_IRQHandler
+ B TIM1_TRG_COM_TIM17_IRQHandler
+
+ PUBWEAK TIM1_CC_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+TIM1_CC_IRQHandler
+ B TIM1_CC_IRQHandler
+
+ PUBWEAK TIM2_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+TIM2_IRQHandler
+ B TIM2_IRQHandler
+
+ PUBWEAK PKA_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+PKA_IRQHandler
+ B PKA_IRQHandler
+
+ PUBWEAK I2C1_EV_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+I2C1_EV_IRQHandler
+ B I2C1_EV_IRQHandler
+
+ PUBWEAK I2C1_ER_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+I2C1_ER_IRQHandler
+ B I2C1_ER_IRQHandler
+
+ PUBWEAK I2C3_EV_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+I2C3_EV_IRQHandler
+ B I2C3_EV_IRQHandler
+
+ PUBWEAK I2C3_ER_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+I2C3_ER_IRQHandler
+ B I2C3_ER_IRQHandler
+
+ PUBWEAK SPI1_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+SPI1_IRQHandler
+ B SPI1_IRQHandler
+
+ PUBWEAK SPI2_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+SPI2_IRQHandler
+ B SPI2_IRQHandler
+
+ PUBWEAK USART1_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+USART1_IRQHandler
+ B USART1_IRQHandler
+
+ PUBWEAK LPUART1_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+LPUART1_IRQHandler
+ B LPUART1_IRQHandler
+
+ PUBWEAK SAI1_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+SAI1_IRQHandler
+ B SAI1_IRQHandler
+
+ PUBWEAK TSC_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+TSC_IRQHandler
+ B TSC_IRQHandler
+
+ PUBWEAK EXTI15_10_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+EXTI15_10_IRQHandler
+ B EXTI15_10_IRQHandler
+
+ PUBWEAK RTC_Alarm_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+RTC_Alarm_IRQHandler
+ B RTC_Alarm_IRQHandler
+
+ PUBWEAK CRS_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+CRS_IRQHandler
+ B CRS_IRQHandler
+
+ PUBWEAK PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler
+ B PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler
+
+ PUBWEAK IPCC_C1_RX_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+IPCC_C1_RX_IRQHandler
+ B IPCC_C1_RX_IRQHandler
+
+ PUBWEAK IPCC_C1_TX_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+IPCC_C1_TX_IRQHandler
+ B IPCC_C1_TX_IRQHandler
+
+ PUBWEAK HSEM_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+HSEM_IRQHandler
+ B HSEM_IRQHandler
+
+ PUBWEAK LPTIM1_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+LPTIM1_IRQHandler
+ B LPTIM1_IRQHandler
+
+ PUBWEAK LPTIM2_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+LPTIM2_IRQHandler
+ B LPTIM2_IRQHandler
+
+ PUBWEAK LCD_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+LCD_IRQHandler
+ B LCD_IRQHandler
+
+ PUBWEAK QUADSPI_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+QUADSPI_IRQHandler
+ B QUADSPI_IRQHandler
+
+ PUBWEAK AES1_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+AES1_IRQHandler
+ B AES1_IRQHandler
+
+ PUBWEAK AES2_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+AES2_IRQHandler
+ B AES2_IRQHandler
+
+ PUBWEAK RNG_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+RNG_IRQHandler
+ B RNG_IRQHandler
+
+ PUBWEAK FPU_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+FPU_IRQHandler
+ B FPU_IRQHandler
+
+ PUBWEAK DMA2_Channel1_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA2_Channel1_IRQHandler
+ B DMA2_Channel1_IRQHandler
+
+ PUBWEAK DMA2_Channel2_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA2_Channel2_IRQHandler
+ B DMA2_Channel2_IRQHandler
+
+ PUBWEAK DMA2_Channel3_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA2_Channel3_IRQHandler
+ B DMA2_Channel3_IRQHandler
+
+ PUBWEAK DMA2_Channel4_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA2_Channel4_IRQHandler
+ B DMA2_Channel4_IRQHandler
+
+ PUBWEAK DMA2_Channel5_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA2_Channel5_IRQHandler
+ B DMA2_Channel5_IRQHandler
+
+ PUBWEAK DMA2_Channel6_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA2_Channel6_IRQHandler
+ B DMA2_Channel6_IRQHandler
+
+ PUBWEAK DMA2_Channel7_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMA2_Channel7_IRQHandler
+ B DMA2_Channel7_IRQHandler
+
+ PUBWEAK DMAMUX1_OVR_IRQHandler
+ SECTION .text:CODE:NOROOT:REORDER(1)
+DMAMUX1_OVR_IRQHandler
+ B DMAMUX1_OVR_IRQHandler
+
+ END
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/stm32wb55xx_flash_cm4.icf b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/stm32wb5mxx_flash_cm4.icf
index 2d3b26636..f13848f65 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/stm32wb55xx_flash_cm4.icf
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/EWARM/stm32wb5mxx_flash_cm4.icf
@@ -21,6 +21,7 @@ define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region RAM_SHARED_region = mem:[from __ICFEDIT_region_RAM_SHARED_start__ to __ICFEDIT_region_RAM_SHARED_end__];
+define region Total_RAM_region = RAM_region | RAM_SHARED_region ;
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
@@ -32,9 +33,10 @@ do not initialize { section .noinit,
section MB_MEM1 };
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
+place at address mem:__ICFEDIT_region_RAM_SHARED_start__ { section MAPPING_TABLE };
place in ROM_region { readonly };
-place in RAM_region { readwrite,block CSTACK, block HEAP };
-place in RAM_SHARED_region { first section MAPPING_TABLE};
+place in RAM_region { block CSTACK, block HEAP };
place in RAM_SHARED_region { section MB_MEM1};
place in RAM_SHARED_region { section MB_MEM2};
+place in Total_RAM_region { readwrite };
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/BLE_Mesh_Model_Sensor.uvoptx b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/BLE_Mesh_Model_Sensor.uvoptx
new file mode 100644
index 000000000..7309c5b62
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/BLE_Mesh_Model_Sensor.uvoptx
@@ -0,0 +1,1529 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
+
+ <SchemaVersion>1.0</SchemaVersion>
+
+ <Header>### uVision Project, (C) Keil Software</Header>
+
+ <Extensions>
+ <cExt>*.c</cExt>
+ <aExt>*.s*; *.src; *.a*</aExt>
+ <oExt>*.obj; *.o</oExt>
+ <lExt>*.lib</lExt>
+ <tExt>*.txt; *.h; *.inc; *.md</tExt>
+ <pExt>*.plm</pExt>
+ <CppX>*.cpp</CppX>
+ <nMigrate>0</nMigrate>
+ </Extensions>
+
+ <DaveTm>
+ <dwLowDateTime>0</dwLowDateTime>
+ <dwHighDateTime>0</dwHighDateTime>
+ </DaveTm>
+
+ <Target>
+ <TargetName>BLE_Mesh_Model_Sensor</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <TargetOption>
+ <CLKADS>12000000</CLKADS>
+ <OPTTT>
+ <gFlags>1</gFlags>
+ <BeepAtEnd>1</BeepAtEnd>
+ <RunSim>0</RunSim>
+ <RunTarget>1</RunTarget>
+ <RunAbUc>0</RunAbUc>
+ </OPTTT>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <FlashByte>65535</FlashByte>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ </OPTHX>
+ <OPTLEX>
+ <PageWidth>79</PageWidth>
+ <PageLength>66</PageLength>
+ <TabStop>8</TabStop>
+ <ListingPath></ListingPath>
+ </OPTLEX>
+ <ListingPage>
+ <CreateCListing>1</CreateCListing>
+ <CreateAListing>1</CreateAListing>
+ <CreateLListing>1</CreateLListing>
+ <CreateIListing>0</CreateIListing>
+ <AsmCond>1</AsmCond>
+ <AsmSymb>1</AsmSymb>
+ <AsmXref>0</AsmXref>
+ <CCond>1</CCond>
+ <CCode>0</CCode>
+ <CListInc>0</CListInc>
+ <CSymb>0</CSymb>
+ <LinkerCodeListing>0</LinkerCodeListing>
+ </ListingPage>
+ <OPTXL>
+ <LMap>1</LMap>
+ <LComments>1</LComments>
+ <LGenerateSymbols>1</LGenerateSymbols>
+ <LLibSym>1</LLibSym>
+ <LLines>1</LLines>
+ <LLocSym>1</LLocSym>
+ <LPubSym>1</LPubSym>
+ <LXref>0</LXref>
+ <LExpSel>0</LExpSel>
+ </OPTXL>
+ <OPTFL>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <IsCurrentTarget>1</IsCurrentTarget>
+ </OPTFL>
+ <CpuCode>18</CpuCode>
+ <DebugOpt>
+ <uSim>0</uSim>
+ <uTrg>1</uTrg>
+ <sLdApp>1</sLdApp>
+ <sGomain>1</sGomain>
+ <sRbreak>1</sRbreak>
+ <sRwatch>1</sRwatch>
+ <sRmem>1</sRmem>
+ <sRfunc>1</sRfunc>
+ <sRbox>1</sRbox>
+ <tLdApp>1</tLdApp>
+ <tGomain>1</tGomain>
+ <tRbreak>1</tRbreak>
+ <tRwatch>1</tRwatch>
+ <tRmem>1</tRmem>
+ <tRfunc>1</tRfunc>
+ <tRbox>1</tRbox>
+ <tRtrace>1</tRtrace>
+ <sRSysVw>1</sRSysVw>
+ <tRSysVw>1</tRSysVw>
+ <sRunDeb>0</sRunDeb>
+ <sLrtime>0</sLrtime>
+ <bEvRecOn>1</bEvRecOn>
+ <bSchkAxf>0</bSchkAxf>
+ <bTchkAxf>0</bTchkAxf>
+ <nTsel>6</nTsel>
+ <sDll></sDll>
+ <sDllPa></sDllPa>
+ <sDlgDll></sDlgDll>
+ <sDlgPa></sDlgPa>
+ <sIfile></sIfile>
+ <tDll></tDll>
+ <tDllPa></tDllPa>
+ <tDlgDll></tDlgDll>
+ <tDlgPa></tDlgPa>
+ <tIfile></tIfile>
+ <pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
+ </DebugOpt>
+ <TargetDriverDllRegistry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2CM3</Key>
+ <Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32WB5x_M4_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32WB5MMGHx$CMSIS\Flash\STM32WB5x_M4_1024.FLM))</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>ST-LINKIII-KEIL_SWO</Key>
+ <Name>-U-O142 -O2254 -S0 -C0 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32WB_M4.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32WB5MMG$CMSIS\Flash\STM32WB_M4.FLM)</Name>
+ </SetRegEntry>
+ </TargetDriverDllRegistry>
+ <Breakpoint/>
+ <Tracepoint>
+ <THDelay>0</THDelay>
+ </Tracepoint>
+ <DebugFlag>
+ <trace>0</trace>
+ <periodic>1</periodic>
+ <aLwin>1</aLwin>
+ <aCover>0</aCover>
+ <aSer1>0</aSer1>
+ <aSer2>0</aSer2>
+ <aPa>0</aPa>
+ <viewmode>1</viewmode>
+ <vrSel>0</vrSel>
+ <aSym>0</aSym>
+ <aTbox>0</aTbox>
+ <AscS1>0</AscS1>
+ <AscS2>0</AscS2>
+ <AscS3>0</AscS3>
+ <aSer3>0</aSer3>
+ <eProf>0</eProf>
+ <aLa>0</aLa>
+ <aPa1>0</aPa1>
+ <AscS4>0</AscS4>
+ <aSer4>0</aSer4>
+ <StkLoc>1</StkLoc>
+ <TrcWin>0</TrcWin>
+ <newCpu>0</newCpu>
+ <uProt>0</uProt>
+ </DebugFlag>
+ <LintExecutable></LintExecutable>
+ <LintConfigFile></LintConfigFile>
+ <bLintAuto>0</bLintAuto>
+ <bAutoGenD>0</bAutoGenD>
+ <LntExFlags>0</LntExFlags>
+ <pMisraName></pMisraName>
+ <pszMrule></pszMrule>
+ <pSingCmds></pSingCmds>
+ <pMultCmds></pMultCmds>
+ <pMisraNamep></pMisraNamep>
+ <pszMrulep></pszMrulep>
+ <pSingCmdsp></pSingCmdsp>
+ <pMultCmdsp></pMultCmdsp>
+ </TargetOption>
+ </Target>
+
+ <Group>
+ <GroupName>Application/Core</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>1</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/app_debug.c</PathWithFileName>
+ <FilenameWithoutPath>app_debug.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>2</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/app_entry.c</PathWithFileName>
+ <FilenameWithoutPath>app_entry.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>3</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/app_stts22h.c</PathWithFileName>
+ <FilenameWithoutPath>app_stts22h.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>4</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/app_vl53l0x.c</PathWithFileName>
+ <FilenameWithoutPath>app_vl53l0x.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>5</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/hw_flash.c</PathWithFileName>
+ <FilenameWithoutPath>hw_flash.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>6</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/hw_timerserver.c</PathWithFileName>
+ <FilenameWithoutPath>hw_timerserver.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>7</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/hw_uart.c</PathWithFileName>
+ <FilenameWithoutPath>hw_uart.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>8</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/lp_timer.c</PathWithFileName>
+ <FilenameWithoutPath>lp_timer.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>9</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/main.c</PathWithFileName>
+ <FilenameWithoutPath>main.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>10</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/stm32_lpm_if.c</PathWithFileName>
+ <FilenameWithoutPath>stm32_lpm_if.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>11</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/stm32wbxx_it.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_it.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Application/MDK-ARM</GroupName>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>12</FileNumber>
+ <FileType>2</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>startup_stm32wb5mxx_cm4.s</PathWithFileName>
+ <FilenameWithoutPath>startup_stm32wb5mxx_cm4.s</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Application/STM32_WPAN/app</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>13</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/app_ble.c</PathWithFileName>
+ <FilenameWithoutPath>app_ble.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>14</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/appli_config.c</PathWithFileName>
+ <FilenameWithoutPath>appli_config.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>15</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/appli_config_client.c</PathWithFileName>
+ <FilenameWithoutPath>appli_config_client.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>16</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/appli_generic.c</PathWithFileName>
+ <FilenameWithoutPath>appli_generic.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>17</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/appli_generic_client.c</PathWithFileName>
+ <FilenameWithoutPath>appli_generic_client.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>18</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/appli_light.c</PathWithFileName>
+ <FilenameWithoutPath>appli_light.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>19</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/appli_light_client.c</PathWithFileName>
+ <FilenameWithoutPath>appli_light_client.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>20</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/appli_light_lc.c</PathWithFileName>
+ <FilenameWithoutPath>appli_light_lc.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>21</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/appli_mesh.c</PathWithFileName>
+ <FilenameWithoutPath>appli_mesh.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>22</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/appli_nvm.c</PathWithFileName>
+ <FilenameWithoutPath>appli_nvm.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>23</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/appli_sensor.c</PathWithFileName>
+ <FilenameWithoutPath>appli_sensor.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>24</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/appli_sensors_client.c</PathWithFileName>
+ <FilenameWithoutPath>appli_sensors_client.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>25</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/appli_vendor.c</PathWithFileName>
+ <FilenameWithoutPath>appli_vendor.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>26</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/models_if.c</PathWithFileName>
+ <FilenameWithoutPath>models_if.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>27</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/app/pal_nvm.c</PathWithFileName>
+ <FilenameWithoutPath>pal_nvm.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Application/STM32_WPAN/target</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>4</GroupNumber>
+ <FileNumber>28</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/target/hw_ipcc.c</PathWithFileName>
+ <FilenameWithoutPath>hw_ipcc.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Application/vl5310x</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>5</GroupNumber>
+ <FileNumber>29</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/vl53l0x/vl53l0x_api.c</PathWithFileName>
+ <FilenameWithoutPath>vl53l0x_api.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>5</GroupNumber>
+ <FileNumber>30</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/vl53l0x/vl53l0x_api_calibration.c</PathWithFileName>
+ <FilenameWithoutPath>vl53l0x_api_calibration.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>5</GroupNumber>
+ <FileNumber>31</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/vl53l0x/vl53l0x_api_core.c</PathWithFileName>
+ <FilenameWithoutPath>vl53l0x_api_core.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>5</GroupNumber>
+ <FileNumber>32</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/vl53l0x/vl53l0x_api_ranging.c</PathWithFileName>
+ <FilenameWithoutPath>vl53l0x_api_ranging.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>5</GroupNumber>
+ <FileNumber>33</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/vl53l0x/vl53l0x_api_strings.c</PathWithFileName>
+ <FilenameWithoutPath>vl53l0x_api_strings.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>5</GroupNumber>
+ <FileNumber>34</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/vl53l0x/vl53l0x_platform_log.c</PathWithFileName>
+ <FilenameWithoutPath>vl53l0x_platform_log.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>5</GroupNumber>
+ <FileNumber>35</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/vl53l0x/vl53l0x_tof.c</PathWithFileName>
+ <FilenameWithoutPath>vl53l0x_tof.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Doc</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>6</GroupNumber>
+ <FileNumber>36</FileNumber>
+ <FileType>5</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../readme.txt</PathWithFileName>
+ <FilenameWithoutPath>readme.txt</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Drivers/BSP/Component/ssdl1315</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>7</GroupNumber>
+ <FileNumber>37</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/BSP/Components/ssd1315/ssd1315.c</PathWithFileName>
+ <FilenameWithoutPath>ssd1315.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>7</GroupNumber>
+ <FileNumber>38</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/BSP/Components/ssd1315/ssd1315_reg.c</PathWithFileName>
+ <FilenameWithoutPath>ssd1315_reg.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Drivers/BSP/Component/stts22h</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>39</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/BSP/Components/stts22h/stts22h.c</PathWithFileName>
+ <FilenameWithoutPath>stts22h.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>40</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/BSP/Components/stts22h/stts22h_reg.c</PathWithFileName>
+ <FilenameWithoutPath>stts22h_reg.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Drivers/BSP/STM32WB5MM-DK</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>41</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wb5mm_dk.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>42</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wb5mm_dk_bus.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>43</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_lcd.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wb5mm_dk_lcd.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Drivers/CMSIS</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>10</GroupNumber>
+ <FileNumber>44</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/system_stm32wbxx.c</PathWithFileName>
+ <FilenameWithoutPath>system_stm32wbxx.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Drivers/STM32WBxx_HAL_Driver</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>45</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>46</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_adc_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_adc_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>47</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_cortex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_cortex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>48</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_dma.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_dma.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>49</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_exti.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_exti.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>50</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_flash.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_flash.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>51</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_flash_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_flash_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>52</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_gpio.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_gpio.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>53</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_i2c.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_i2c.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>54</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_i2c_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_i2c_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>55</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pwr.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_pwr.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>56</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pwr_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_pwr_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>57</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rcc.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_rcc.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>58</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rcc_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_rcc_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>59</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rtc.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_rtc.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>60</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rtc_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_rtc_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>61</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_spi.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_spi.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>62</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_spi_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_spi_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>63</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_tim.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_tim.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>64</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_tim_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_tim_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>65</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_uart.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_uart.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>11</GroupNumber>
+ <FileNumber>66</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_uart_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_uart_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Middlewares/STM32_WPAN/ble/blesvc</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>67</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/common.c</PathWithFileName>
+ <FilenameWithoutPath>common.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>68</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/config_client.c</PathWithFileName>
+ <FilenameWithoutPath>config_client.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>69</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/generic.c</PathWithFileName>
+ <FilenameWithoutPath>generic.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>70</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/generic_client.c</PathWithFileName>
+ <FilenameWithoutPath>generic_client.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>71</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/light.c</PathWithFileName>
+ <FilenameWithoutPath>light.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>72</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/light_client.c</PathWithFileName>
+ <FilenameWithoutPath>light_client.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>73</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/light_lc.c</PathWithFileName>
+ <FilenameWithoutPath>light_lc.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>74</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src/mesh.c</PathWithFileName>
+ <FilenameWithoutPath>mesh.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>75</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/Src/mesh_cfg.c</PathWithFileName>
+ <FilenameWithoutPath>mesh_cfg.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>76</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/sensors.c</PathWithFileName>
+ <FilenameWithoutPath>sensors.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>77</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/sensors_client.c</PathWithFileName>
+ <FilenameWithoutPath>sensors_client.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>78</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src/svc_ctl.c</PathWithFileName>
+ <FilenameWithoutPath>svc_ctl.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>79</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/time_scene.c</PathWithFileName>
+ <FilenameWithoutPath>time_scene.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>12</GroupNumber>
+ <FileNumber>80</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/vendor.c</PathWithFileName>
+ <FilenameWithoutPath>vendor.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Middlewares/STM32_WPAN/ble/core</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>13</GroupNumber>
+ <FileNumber>81</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_gap_aci.c</PathWithFileName>
+ <FilenameWithoutPath>ble_gap_aci.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>13</GroupNumber>
+ <FileNumber>82</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_gatt_aci.c</PathWithFileName>
+ <FilenameWithoutPath>ble_gatt_aci.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>13</GroupNumber>
+ <FileNumber>83</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_hal_aci.c</PathWithFileName>
+ <FilenameWithoutPath>ble_hal_aci.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>13</GroupNumber>
+ <FileNumber>84</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_hci_le.c</PathWithFileName>
+ <FilenameWithoutPath>ble_hci_le.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>13</GroupNumber>
+ <FileNumber>85</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_l2cap_aci.c</PathWithFileName>
+ <FilenameWithoutPath>ble_l2cap_aci.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>13</GroupNumber>
+ <FileNumber>86</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template/osal.c</PathWithFileName>
+ <FilenameWithoutPath>osal.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Middlewares/STM32_WPAN/interface/patterns/ble_thread/shci</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>14</GroupNumber>
+ <FileNumber>87</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci/shci.c</PathWithFileName>
+ <FilenameWithoutPath>shci.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Middlewares/STM32_WPAN/interface/patterns/ble_thread/tl</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>15</GroupNumber>
+ <FileNumber>88</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/hci_tl.c</PathWithFileName>
+ <FilenameWithoutPath>hci_tl.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>15</GroupNumber>
+ <FileNumber>89</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/hci_tl_if.c</PathWithFileName>
+ <FilenameWithoutPath>hci_tl_if.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>15</GroupNumber>
+ <FileNumber>90</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/shci_tl.c</PathWithFileName>
+ <FilenameWithoutPath>shci_tl.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>15</GroupNumber>
+ <FileNumber>91</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/shci_tl_if.c</PathWithFileName>
+ <FilenameWithoutPath>shci_tl_if.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>15</GroupNumber>
+ <FileNumber>92</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/tl_mbox.c</PathWithFileName>
+ <FilenameWithoutPath>tl_mbox.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Middlewares/STM32_WPAN/utilities</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>16</GroupNumber>
+ <FileNumber>93</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/utilities/dbg_trace.c</PathWithFileName>
+ <FilenameWithoutPath>dbg_trace.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>16</GroupNumber>
+ <FileNumber>94</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/utilities/otp.c</PathWithFileName>
+ <FilenameWithoutPath>otp.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>16</GroupNumber>
+ <FileNumber>95</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Utilities/lpm/tiny_lpm/stm32_lpm.c</PathWithFileName>
+ <FilenameWithoutPath>stm32_lpm.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>16</GroupNumber>
+ <FileNumber>96</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Utilities/sequencer/stm32_seq.c</PathWithFileName>
+ <FilenameWithoutPath>stm32_seq.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>16</GroupNumber>
+ <FileNumber>97</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/utilities/stm_list.c</PathWithFileName>
+ <FilenameWithoutPath>stm_list.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>16</GroupNumber>
+ <FileNumber>98</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/utilities/stm_queue.c</PathWithFileName>
+ <FilenameWithoutPath>stm_queue.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Utilities/LCD</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>17</GroupNumber>
+ <FileNumber>99</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Utilities/LCD/stm32_lcd.c</PathWithFileName>
+ <FilenameWithoutPath>stm32_lcd.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Middlewares/ST/STM32_WPAN/ble/mesh/Library</GroupName>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>18</GroupNumber>
+ <FileNumber>100</FileNumber>
+ <FileType>4</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\Library\libBle_Mesh_CM4_Keil.lib</PathWithFileName>
+ <FilenameWithoutPath>libBle_Mesh_CM4_Keil.lib</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>::CMSIS</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>1</RteFlg>
+ </Group>
+
+</ProjectOpt>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/BLE_Mesh_Model_Sensor.uvprojx b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/BLE_Mesh_Model_Sensor.uvprojx
new file mode 100644
index 000000000..de364403f
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/BLE_Mesh_Model_Sensor.uvprojx
@@ -0,0 +1,1005 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
+
+ <SchemaVersion>2.1</SchemaVersion>
+
+ <Header>### uVision Project, (C) Keil Software</Header>
+
+ <Targets>
+ <Target>
+ <TargetName>BLE_Mesh_Model_Sensor</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed>
+ <uAC6>0</uAC6>
+ <TargetOption>
+ <TargetCommonOption>
+ <Device>STM32WB5MMGHx</Device>
+ <Vendor>STMicroelectronics</Vendor>
+ <PackID>Keil.STM32WBxx_DFP.1.2.0</PackID>
+ <PackURL>http://www.keil.com/pack/</PackURL>
+ <Cpu>IROM(0x08000000-0x807FFFF) IRAM(0x20000008-0x2002FC07) IRAM2(0x20030000-0x200327FF) CLOCK(8000000) FPU2 CPUTYPE("Cortex-M4") TZ</Cpu>
+ <FlashUtilSpec></FlashUtilSpec>
+ <StartupFile></StartupFile>
+ <FlashDriverDll></FlashDriverDll>
+ <DeviceId>0</DeviceId>
+ <RegisterFile></RegisterFile>
+ <MemoryEnv></MemoryEnv>
+ <Cmp></Cmp>
+ <Asm></Asm>
+ <Linker></Linker>
+ <OHString></OHString>
+ <InfinionOptionDll></InfinionOptionDll>
+ <SLE66CMisc></SLE66CMisc>
+ <SLE66AMisc></SLE66AMisc>
+ <SLE66LinkerMisc></SLE66LinkerMisc>
+ <SFDFile>$$Device:STM32WB5MMGHx$CMSIS\SVD\STM32WB55_CM4.svd</SFDFile>
+ <bCustSvd>0</bCustSvd>
+ <UseEnv>0</UseEnv>
+ <BinPath></BinPath>
+ <IncludePath></IncludePath>
+ <LibPath></LibPath>
+ <RegisterFilePath></RegisterFilePath>
+ <DBRegisterFilePath></DBRegisterFilePath>
+ <TargetStatus>
+ <Error>0</Error>
+ <ExitCodeStop>0</ExitCodeStop>
+ <ButtonStop>0</ButtonStop>
+ <NotGenerated>0</NotGenerated>
+ <InvalidFlash>1</InvalidFlash>
+ </TargetStatus>
+ <OutputDirectory>BLE_Mesh_Model_Sensor\Exe\</OutputDirectory>
+ <OutputName>BLE_Mesh_Model_Sensor</OutputName>
+ <CreateExecutable>1</CreateExecutable>
+ <CreateLib>0</CreateLib>
+ <CreateHexFile>1</CreateHexFile>
+ <DebugInformation>1</DebugInformation>
+ <BrowseInformation>1</BrowseInformation>
+ <ListingPath></ListingPath>
+ <HexFormatSelection>1</HexFormatSelection>
+ <Merge32K>0</Merge32K>
+ <CreateBatchFile>0</CreateBatchFile>
+ <BeforeCompile>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopU1X>0</nStopU1X>
+ <nStopU2X>0</nStopU2X>
+ </BeforeCompile>
+ <BeforeMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopB1X>0</nStopB1X>
+ <nStopB2X>0</nStopB2X>
+ </BeforeMake>
+ <AfterMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
+ </AfterMake>
+ <SelectedForBatchBuild>1</SelectedForBatchBuild>
+ <SVCSIdString></SVCSIdString>
+ </TargetCommonOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>0</AlwaysBuild>
+ <GenerateAssemblyFile>0</GenerateAssemblyFile>
+ <AssembleAssemblyFile>0</AssembleAssemblyFile>
+ <PublicsOnly>0</PublicsOnly>
+ <StopOnExitCode>3</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>0</ComprImg>
+ </CommonProperty>
+ <DllOption>
+ <SimDllName>SARMCM3.DLL</SimDllName>
+ <SimDllArguments>-REMAP -MPU</SimDllArguments>
+ <SimDlgDll>DCM.DLL</SimDlgDll>
+ <SimDlgDllArguments>-pCM4</SimDlgDllArguments>
+ <TargetDllName>SARMCM3.DLL</TargetDllName>
+ <TargetDllArguments>-MPU</TargetDllArguments>
+ <TargetDlgDll>TCM.DLL</TargetDlgDll>
+ <TargetDlgDllArguments>-pCM4</TargetDlgDllArguments>
+ </DllOption>
+ <DebugOption>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ <Oh166RecLen>16</Oh166RecLen>
+ </OPTHX>
+ </DebugOption>
+ <Utilities>
+ <Flash1>
+ <UseTargetDll>1</UseTargetDll>
+ <UseExternalTool>0</UseExternalTool>
+ <RunIndependent>0</RunIndependent>
+ <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
+ <Capability>1</Capability>
+ <DriverSelection>4101</DriverSelection>
+ </Flash1>
+ <bUseTDR>1</bUseTDR>
+ <Flash2>BIN\UL2V8M.DLL</Flash2>
+ <Flash3></Flash3>
+ <Flash4></Flash4>
+ <pFcarmOut></pFcarmOut>
+ <pFcarmGrp></pFcarmGrp>
+ <pFcArmRoot></pFcArmRoot>
+ <FcArmLst>0</FcArmLst>
+ </Utilities>
+ <TargetArmAds>
+ <ArmAdsMisc>
+ <GenerateListings>0</GenerateListings>
+ <asHll>1</asHll>
+ <asAsm>1</asAsm>
+ <asMacX>1</asMacX>
+ <asSyms>1</asSyms>
+ <asFals>1</asFals>
+ <asDbgD>1</asDbgD>
+ <asForm>1</asForm>
+ <ldLst>0</ldLst>
+ <ldmm>1</ldmm>
+ <ldXref>1</ldXref>
+ <BigEnd>0</BigEnd>
+ <AdsALst>1</AdsALst>
+ <AdsACrf>1</AdsACrf>
+ <AdsANop>0</AdsANop>
+ <AdsANot>0</AdsANot>
+ <AdsLLst>1</AdsLLst>
+ <AdsLmap>1</AdsLmap>
+ <AdsLcgr>1</AdsLcgr>
+ <AdsLsym>1</AdsLsym>
+ <AdsLszi>1</AdsLszi>
+ <AdsLtoi>1</AdsLtoi>
+ <AdsLsun>1</AdsLsun>
+ <AdsLven>1</AdsLven>
+ <AdsLsxf>1</AdsLsxf>
+ <RvctClst>0</RvctClst>
+ <GenPPlst>0</GenPPlst>
+ <AdsCpuType>"Cortex-M4"</AdsCpuType>
+ <RvctDeviceName></RvctDeviceName>
+ <mOS>0</mOS>
+ <uocRom>0</uocRom>
+ <uocRam>0</uocRam>
+ <hadIROM>1</hadIROM>
+ <hadIRAM>1</hadIRAM>
+ <hadXRAM>0</hadXRAM>
+ <uocXRam>0</uocXRam>
+ <RvdsVP>2</RvdsVP>
+ <RvdsMve>0</RvdsMve>
+ <RvdsCdeCp>0</RvdsCdeCp>
+ <hadIRAM2>1</hadIRAM2>
+ <hadIROM2>0</hadIROM2>
+ <StupSel>8</StupSel>
+ <useUlib>1</useUlib>
+ <EndSel>0</EndSel>
+ <uLtcg>0</uLtcg>
+ <nSecure>0</nSecure>
+ <RoSelD>3</RoSelD>
+ <RwSelD>4</RwSelD>
+ <CodeSel>0</CodeSel>
+ <OptFeed>0</OptFeed>
+ <NoZi1>0</NoZi1>
+ <NoZi2>0</NoZi2>
+ <NoZi3>0</NoZi3>
+ <NoZi4>0</NoZi4>
+ <NoZi5>0</NoZi5>
+ <Ro1Chk>0</Ro1Chk>
+ <Ro2Chk>0</Ro2Chk>
+ <Ro3Chk>0</Ro3Chk>
+ <Ir1Chk>1</Ir1Chk>
+ <Ir2Chk>0</Ir2Chk>
+ <Ra1Chk>0</Ra1Chk>
+ <Ra2Chk>0</Ra2Chk>
+ <Ra3Chk>0</Ra3Chk>
+ <Im1Chk>1</Im1Chk>
+ <Im2Chk>1</Im2Chk>
+ <OnChipMemories>
+ <Ocm1>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm1>
+ <Ocm2>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm2>
+ <Ocm3>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm3>
+ <Ocm4>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm4>
+ <Ocm5>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm5>
+ <Ocm6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm6>
+ <IRAM>
+ <Type>0</Type>
+ <StartAddress>0x20000008</StartAddress>
+ <Size>0x2fc00</Size>
+ </IRAM>
+ <IROM>
+ <Type>1</Type>
+ <StartAddress>0x8000000</StartAddress>
+ <Size>0x80000</Size>
+ </IROM>
+ <XRAM>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </XRAM>
+ <OCR_RVCT1>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT1>
+ <OCR_RVCT2>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT2>
+ <OCR_RVCT3>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT3>
+ <OCR_RVCT4>
+ <Type>1</Type>
+ <StartAddress>0x8000000</StartAddress>
+ <Size>0x80000</Size>
+ </OCR_RVCT4>
+ <OCR_RVCT5>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT5>
+ <OCR_RVCT6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT6>
+ <OCR_RVCT7>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT7>
+ <OCR_RVCT8>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT8>
+ <OCR_RVCT9>
+ <Type>0</Type>
+ <StartAddress>0x20000008</StartAddress>
+ <Size>0x2fc00</Size>
+ </OCR_RVCT9>
+ <OCR_RVCT10>
+ <Type>0</Type>
+ <StartAddress>0x20030000</StartAddress>
+ <Size>0x2800</Size>
+ </OCR_RVCT10>
+ </OnChipMemories>
+ <RvctStartVector></RvctStartVector>
+ </ArmAdsMisc>
+ <Cads>
+ <interw>1</interw>
+ <Optim>4</Optim>
+ <oTime>0</oTime>
+ <SplitLS>0</SplitLS>
+ <OneElfS>1</OneElfS>
+ <Strict>0</Strict>
+ <EnumInt>0</EnumInt>
+ <PlainCh>0</PlainCh>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <wLevel>2</wLevel>
+ <uThumb>0</uThumb>
+ <uSurpInc>0</uSurpInc>
+ <uC99>1</uC99>
+ <uGnu>0</uGnu>
+ <useXO>0</useXO>
+ <v6Lang>5</v6Lang>
+ <v6LangP>3</v6LangP>
+ <vShortEn>1</vShortEn>
+ <vShortWch>1</vShortWch>
+ <v6Lto>0</v6Lto>
+ <v6WtE>0</v6WtE>
+ <v6Rtti>0</v6Rtti>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define>USE_STM32WB5M_DK,STM32WB55xx,USE_HAL_DRIVER,CORE_CM4,STM32,ENABLE_USART,TRACE_ENABLE_NO_FUNCTION,SERVER,THERMOMETER_NODE</Define>
+ <Undefine></Undefine>
+ <IncludePath>../../../../../../Drivers/CMSIS/Include;../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc;../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/Inc;../Core/Inc;../../../../../../Middlewares/ST/STM32_WPAN;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto;../../../../../../Middlewares/ST/STM32_WPAN/utilities;../../../../../../Utilities/lpm/tiny_lpm;../../../../../../Utilities/sequencer;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci;../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Inc;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread;../STM32_WPAN/app;../../../../../../Middlewares/ST/STM32_WPAN/ble;../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include;../../../../../../Drivers/BSP/Components/ssd1315;../Core/Src/vl53l0x;../../../../../../Drivers/BSP/Components/stts22h;../../../../../../Drivers/BSP/STM32WB5MM-DK;../../../../../../Drivers/BSP/Components/Common;../../../../../../Utilities/LCD;../../../../../../Utilities/Fonts;../../../../../../Drivers/BSP/Components/ism330dhcx</IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>1</interw>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <thumb>0</thumb>
+ <SplitLS>0</SplitLS>
+ <SwStkChk>0</SwStkChk>
+ <NoWarn>0</NoWarn>
+ <uSurpInc>0</uSurpInc>
+ <useXO>0</useXO>
+ <ClangAsOpt>4</ClangAsOpt>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ <LDads>
+ <umfTarg>0</umfTarg>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <noStLib>0</noStLib>
+ <RepFail>1</RepFail>
+ <useFile>0</useFile>
+ <TextAddressRange></TextAddressRange>
+ <DataAddressRange></DataAddressRange>
+ <pXoBase></pXoBase>
+ <ScatterFile>stm32wb5mxx_flash_cm4.sct</ScatterFile>
+ <IncludeLibs></IncludeLibs>
+ <IncludeLibsPath></IncludeLibsPath>
+ <Misc>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/Library/libBle_Mesh_CM4_IAR.a
+--diag_suppress L6314W
+--diag_suppress 1296</Misc>
+ <LinkerInputFile></LinkerInputFile>
+ <DisabledWarnings></DisabledWarnings>
+ </LDads>
+ </TargetArmAds>
+ </TargetOption>
+ <Groups>
+ <Group>
+ <GroupName>Application/Core</GroupName>
+ <Files>
+ <File>
+ <FileName>app_debug.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/app_debug.c</FilePath>
+ </File>
+ <File>
+ <FileName>app_entry.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/app_entry.c</FilePath>
+ </File>
+ <File>
+ <FileName>app_stts22h.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/app_stts22h.c</FilePath>
+ </File>
+ <File>
+ <FileName>app_vl53l0x.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/app_vl53l0x.c</FilePath>
+ </File>
+ <File>
+ <FileName>hw_flash.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/hw_flash.c</FilePath>
+ </File>
+ <File>
+ <FileName>hw_timerserver.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/hw_timerserver.c</FilePath>
+ </File>
+ <File>
+ <FileName>hw_uart.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/hw_uart.c</FilePath>
+ </File>
+ <File>
+ <FileName>lp_timer.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/lp_timer.c</FilePath>
+ </File>
+ <File>
+ <FileName>main.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/main.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32_lpm_if.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/stm32_lpm_if.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_it.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/stm32wbxx_it.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Application/MDK-ARM</GroupName>
+ <Files>
+ <File>
+ <FileName>startup_stm32wb5mxx_cm4.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>startup_stm32wb5mxx_cm4.s</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Application/STM32_WPAN/app</GroupName>
+ <Files>
+ <File>
+ <FileName>app_ble.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/app_ble.c</FilePath>
+ </File>
+ <File>
+ <FileName>appli_config.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/appli_config.c</FilePath>
+ </File>
+ <File>
+ <FileName>appli_config_client.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/appli_config_client.c</FilePath>
+ </File>
+ <File>
+ <FileName>appli_generic.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/appli_generic.c</FilePath>
+ </File>
+ <File>
+ <FileName>appli_generic_client.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/appli_generic_client.c</FilePath>
+ </File>
+ <File>
+ <FileName>appli_light.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/appli_light.c</FilePath>
+ </File>
+ <File>
+ <FileName>appli_light_client.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/appli_light_client.c</FilePath>
+ </File>
+ <File>
+ <FileName>appli_light_lc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/appli_light_lc.c</FilePath>
+ </File>
+ <File>
+ <FileName>appli_mesh.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/appli_mesh.c</FilePath>
+ </File>
+ <File>
+ <FileName>appli_nvm.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/appli_nvm.c</FilePath>
+ </File>
+ <File>
+ <FileName>appli_sensor.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/appli_sensor.c</FilePath>
+ </File>
+ <File>
+ <FileName>appli_sensors_client.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/appli_sensors_client.c</FilePath>
+ </File>
+ <File>
+ <FileName>appli_vendor.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/appli_vendor.c</FilePath>
+ </File>
+ <File>
+ <FileName>models_if.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/models_if.c</FilePath>
+ </File>
+ <File>
+ <FileName>pal_nvm.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/app/pal_nvm.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Application/STM32_WPAN/target</GroupName>
+ <Files>
+ <File>
+ <FileName>hw_ipcc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/target/hw_ipcc.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Application/vl5310x</GroupName>
+ <Files>
+ <File>
+ <FileName>vl53l0x_api.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/vl53l0x/vl53l0x_api.c</FilePath>
+ </File>
+ <File>
+ <FileName>vl53l0x_api_calibration.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/vl53l0x/vl53l0x_api_calibration.c</FilePath>
+ </File>
+ <File>
+ <FileName>vl53l0x_api_core.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/vl53l0x/vl53l0x_api_core.c</FilePath>
+ </File>
+ <File>
+ <FileName>vl53l0x_api_ranging.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/vl53l0x/vl53l0x_api_ranging.c</FilePath>
+ </File>
+ <File>
+ <FileName>vl53l0x_api_strings.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/vl53l0x/vl53l0x_api_strings.c</FilePath>
+ </File>
+ <File>
+ <FileName>vl53l0x_platform_log.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/vl53l0x/vl53l0x_platform_log.c</FilePath>
+ </File>
+ <File>
+ <FileName>vl53l0x_tof.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/vl53l0x/vl53l0x_tof.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Doc</GroupName>
+ <Files>
+ <File>
+ <FileName>readme.txt</FileName>
+ <FileType>5</FileType>
+ <FilePath>../readme.txt</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Drivers/BSP/Component/ssdl1315</GroupName>
+ <Files>
+ <File>
+ <FileName>ssd1315.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/BSP/Components/ssd1315/ssd1315.c</FilePath>
+ </File>
+ <File>
+ <FileName>ssd1315_reg.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/BSP/Components/ssd1315/ssd1315_reg.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Drivers/BSP/Component/stts22h</GroupName>
+ <Files>
+ <File>
+ <FileName>stts22h.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/BSP/Components/stts22h/stts22h.c</FilePath>
+ </File>
+ <File>
+ <FileName>stts22h_reg.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/BSP/Components/stts22h/stts22h_reg.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Drivers/BSP/STM32WB5MM-DK</GroupName>
+ <Files>
+ <File>
+ <FileName>stm32wb5mm_dk.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wb5mm_dk_bus.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wb5mm_dk_lcd.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_lcd.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Drivers/CMSIS</GroupName>
+ <Files>
+ <File>
+ <FileName>system_stm32wbxx.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/system_stm32wbxx.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Drivers/STM32WBxx_HAL_Driver</GroupName>
+ <Files>
+ <File>
+ <FileName>stm32wbxx_hal.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_adc_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_adc_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_cortex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_cortex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_dma.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_dma.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_exti.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_exti.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_flash.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_flash.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_flash_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_flash_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_gpio.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_gpio.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_i2c.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_i2c.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_i2c_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_i2c_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_pwr.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pwr.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_pwr_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pwr_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_rcc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rcc.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_rcc_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rcc_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_rtc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rtc.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_rtc_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rtc_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_spi.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_spi.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_spi_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_spi_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_tim.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_tim.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_tim_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_tim_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_uart.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_uart.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_uart_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_uart_ex.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Middlewares/STM32_WPAN/ble/blesvc</GroupName>
+ <Files>
+ <File>
+ <FileName>common.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/common.c</FilePath>
+ </File>
+ <File>
+ <FileName>config_client.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/config_client.c</FilePath>
+ </File>
+ <File>
+ <FileName>generic.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/generic.c</FilePath>
+ </File>
+ <File>
+ <FileName>generic_client.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/generic_client.c</FilePath>
+ </File>
+ <File>
+ <FileName>light.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/light.c</FilePath>
+ </File>
+ <File>
+ <FileName>light_client.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/light_client.c</FilePath>
+ </File>
+ <File>
+ <FileName>light_lc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/light_lc.c</FilePath>
+ </File>
+ <File>
+ <FileName>mesh.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src/mesh.c</FilePath>
+ </File>
+ <File>
+ <FileName>mesh_cfg.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/Src/mesh_cfg.c</FilePath>
+ </File>
+ <File>
+ <FileName>sensors.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/sensors.c</FilePath>
+ </File>
+ <File>
+ <FileName>sensors_client.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/sensors_client.c</FilePath>
+ </File>
+ <File>
+ <FileName>svc_ctl.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src/svc_ctl.c</FilePath>
+ </File>
+ <File>
+ <FileName>time_scene.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/time_scene.c</FilePath>
+ </File>
+ <File>
+ <FileName>vendor.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/vendor.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Middlewares/STM32_WPAN/ble/core</GroupName>
+ <Files>
+ <File>
+ <FileName>ble_gap_aci.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_gap_aci.c</FilePath>
+ </File>
+ <File>
+ <FileName>ble_gatt_aci.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_gatt_aci.c</FilePath>
+ </File>
+ <File>
+ <FileName>ble_hal_aci.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_hal_aci.c</FilePath>
+ </File>
+ <File>
+ <FileName>ble_hci_le.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_hci_le.c</FilePath>
+ </File>
+ <File>
+ <FileName>ble_l2cap_aci.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_l2cap_aci.c</FilePath>
+ </File>
+ <File>
+ <FileName>osal.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template/osal.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Middlewares/STM32_WPAN/interface/patterns/ble_thread/shci</GroupName>
+ <Files>
+ <File>
+ <FileName>shci.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci/shci.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Middlewares/STM32_WPAN/interface/patterns/ble_thread/tl</GroupName>
+ <Files>
+ <File>
+ <FileName>hci_tl.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/hci_tl.c</FilePath>
+ </File>
+ <File>
+ <FileName>hci_tl_if.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/hci_tl_if.c</FilePath>
+ </File>
+ <File>
+ <FileName>shci_tl.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/shci_tl.c</FilePath>
+ </File>
+ <File>
+ <FileName>shci_tl_if.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/shci_tl_if.c</FilePath>
+ </File>
+ <File>
+ <FileName>tl_mbox.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/tl_mbox.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Middlewares/STM32_WPAN/utilities</GroupName>
+ <Files>
+ <File>
+ <FileName>dbg_trace.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/utilities/dbg_trace.c</FilePath>
+ </File>
+ <File>
+ <FileName>otp.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/utilities/otp.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32_lpm.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Utilities/lpm/tiny_lpm/stm32_lpm.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32_seq.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Utilities/sequencer/stm32_seq.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm_list.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/utilities/stm_list.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm_queue.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/utilities/stm_queue.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Utilities/LCD</GroupName>
+ <Files>
+ <File>
+ <FileName>stm32_lcd.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Utilities/LCD/stm32_lcd.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Middlewares/ST/STM32_WPAN/ble/mesh/Library</GroupName>
+ <Files>
+ <File>
+ <FileName>libBle_Mesh_CM4_Keil.lib</FileName>
+ <FileType>4</FileType>
+ <FilePath>..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\Library\libBle_Mesh_CM4_Keil.lib</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>::CMSIS</GroupName>
+ </Group>
+ </Groups>
+ </Target>
+ </Targets>
+
+ <RTE>
+ <apis/>
+ <components>
+ <component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="4.3.0" condition="CMSIS Core">
+ <package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="4.5.0"/>
+ <targetInfos>
+ <targetInfo name="BLE_Mesh_Model_Sensor"/>
+ </targetInfos>
+ </component>
+ </components>
+ <files/>
+ </RTE>
+
+ <LayerInfo>
+ <Layers>
+ <Layer>
+ <LayName>&lt;Project Info&gt;</LayName>
+ <LayTarg>0</LayTarg>
+ <LayPrjMark>1</LayPrjMark>
+ </Layer>
+ </Layers>
+ </LayerInfo>
+
+</Project>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/startup_stm32wb5mxx_cm4.s
new file mode 100644
index 000000000..6a51d2123
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/startup_stm32wb5mxx_cm4.s
@@ -0,0 +1,367 @@
+;******************************************************************************
+;* File Name : startup_stm32wb5mxx_cm4.s
+;* Author : MCD Application Team
+;* Description : STM32WB5Mxx 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
+;* - Branches to __main in the C library (which eventually
+;* calls main()).
+;* After Reset the CortexM4 processor is in Thread mode,
+;* priority is Privileged, and the Stack is set to Main.
+;* <<< Use Configuration Wizard in Context Menu >>>
+;******************************************************************************
+;* @attention
+;*
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
+;*
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
+;*
+;******************************************************************************
+
+; 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 0x1000
+
+ 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 0x400
+
+ 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_PVM_IRQHandler ; PVD and PVM detector
+ DCD TAMP_STAMP_LSECSS_IRQHandler ; RTC Tamper and TimeStamp Interrupts and LSECSS Interrupts
+ DCD RTC_WKUP_IRQHandler ; RTC Wakeup Interrupt
+ DCD FLASH_IRQHandler ; FLASH global Interrupt
+ DCD RCC_IRQHandler ; RCC Interrupt
+ DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
+ DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
+ DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
+ DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
+ DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
+ DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
+ DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 Interrupt
+ DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 Interrupt
+ DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 Interrupt
+ DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 Interrupt
+ DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 Interrupt
+ DCD ADC1_IRQHandler ; ADC1 Interrupt
+ DCD USB_HP_IRQHandler ; USB High Priority Interrupt
+ DCD USB_LP_IRQHandler ; USB Low Priority Interrupt
+ DCD C2SEV_PWR_C2H_IRQHandler ; CPU M0+ SEV Interrupt
+ DCD COMP_IRQHandler ; COMP1 and COMP2 Interrupts
+ DCD EXTI9_5_IRQHandler ; EXTI Lines [9:5] Interrupt
+ DCD TIM1_BRK_IRQHandler ; TIM1 Break Interrupt
+ DCD TIM1_UP_TIM16_IRQHandler ; TIM1 Update and TIM16 global Interrupts
+ DCD TIM1_TRG_COM_TIM17_IRQHandler ; TIM1 Trigger and Communication and TIM17 global Interrupts
+ DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare Interrupt
+ DCD TIM2_IRQHandler ; TIM2 Global Interrupt
+ DCD PKA_IRQHandler ; PKA Interrupt
+ DCD I2C1_EV_IRQHandler ; I2C1 Event Interrupt
+ DCD I2C1_ER_IRQHandler ; I2C1 Error Interrupt
+ DCD I2C3_EV_IRQHandler ; I2C3 Event Interrupt
+ DCD I2C3_ER_IRQHandler ; I2C3 Error Interrupt
+ DCD SPI1_IRQHandler ; SPI1 Interrupt
+ DCD SPI2_IRQHandler ; SPI2 Interrupt
+ DCD USART1_IRQHandler ; USART1 Interrupt
+ DCD LPUART1_IRQHandler ; LPUART1 Interrupt
+ DCD SAI1_IRQHandler ; SAI Interrupt
+ DCD TSC_IRQHandler ; TSC Interrupt
+ DCD EXTI15_10_IRQHandler ; EXTI Lines1[15:10 ]Interrupts
+ DCD RTC_Alarm_IRQHandler ; RTC Alarms (A and B) Interrupt
+ DCD CRS_IRQHandler ; CRS interrupt
+ DCD PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler ; WKUP Interrupt from PWR
+ DCD IPCC_C1_RX_IRQHandler ; IPCC CPU1 RX occupied interrupt
+ DCD IPCC_C1_TX_IRQHandler ; IPCC CPU1 RX free interrupt
+ DCD HSEM_IRQHandler ; HSEM0 Interrupt
+ DCD LPTIM1_IRQHandler ; LPTIM1 Interrupt
+ DCD LPTIM2_IRQHandler ; LPTIM2 Interrupt
+ DCD LCD_IRQHandler ; LCD Interrupt
+ DCD QUADSPI_IRQHandler ; QUADSPI Interrupt
+ DCD AES1_IRQHandler ; AES1 Interrupt
+ DCD AES2_IRQHandler ; AES2 Interrupt
+ DCD RNG_IRQHandler ; RNG1 Interrupt
+ DCD FPU_IRQHandler ; FPU Interrupt
+ DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1 Interrupt
+ DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2 Interrupt
+ DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3 Interrupt
+ DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4 Interrupt
+ DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5 Interrupt
+ DCD DMA2_Channel6_IRQHandler ; DMA2 Channel 6 Interrupt
+ DCD DMA2_Channel7_IRQHandler ; DMA2 Channel 7 Interrupt
+ DCD DMAMUX1_OVR_IRQHandler ; DMAMUX overrun Interrupt
+
+__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_PVM_IRQHandler [WEAK]
+ EXPORT TAMP_STAMP_LSECSS_IRQHandler [WEAK]
+ EXPORT RTC_WKUP_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 USB_HP_IRQHandler [WEAK]
+ EXPORT USB_LP_IRQHandler [WEAK]
+ EXPORT C2SEV_PWR_C2H_IRQHandler [WEAK]
+ EXPORT COMP_IRQHandler [WEAK]
+ EXPORT EXTI9_5_IRQHandler [WEAK]
+ EXPORT TIM1_BRK_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 PKA_IRQHandler [WEAK]
+ EXPORT I2C1_EV_IRQHandler [WEAK]
+ EXPORT I2C1_ER_IRQHandler [WEAK]
+ EXPORT I2C3_EV_IRQHandler [WEAK]
+ EXPORT I2C3_ER_IRQHandler [WEAK]
+ EXPORT SPI1_IRQHandler [WEAK]
+ EXPORT SPI2_IRQHandler [WEAK]
+ EXPORT USART1_IRQHandler [WEAK]
+ EXPORT LPUART1_IRQHandler [WEAK]
+ EXPORT SAI1_IRQHandler [WEAK]
+ EXPORT TSC_IRQHandler [WEAK]
+ EXPORT EXTI15_10_IRQHandler [WEAK]
+ EXPORT RTC_Alarm_IRQHandler [WEAK]
+ EXPORT CRS_IRQHandler [WEAK]
+ EXPORT PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler [WEAK]
+ EXPORT IPCC_C1_RX_IRQHandler [WEAK]
+ EXPORT IPCC_C1_TX_IRQHandler [WEAK]
+ EXPORT HSEM_IRQHandler [WEAK]
+ EXPORT LPTIM1_IRQHandler [WEAK]
+ EXPORT LPTIM2_IRQHandler [WEAK]
+ EXPORT LCD_IRQHandler [WEAK]
+ EXPORT QUADSPI_IRQHandler [WEAK]
+ EXPORT AES1_IRQHandler [WEAK]
+ EXPORT AES2_IRQHandler [WEAK]
+ EXPORT RNG_IRQHandler [WEAK]
+ EXPORT FPU_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 DMA2_Channel6_IRQHandler [WEAK]
+ EXPORT DMA2_Channel7_IRQHandler [WEAK]
+ EXPORT DMAMUX1_OVR_IRQHandler [WEAK]
+
+WWDG_IRQHandler
+PVD_PVM_IRQHandler
+TAMP_STAMP_LSECSS_IRQHandler
+RTC_WKUP_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
+USB_HP_IRQHandler
+USB_LP_IRQHandler
+C2SEV_PWR_C2H_IRQHandler
+COMP_IRQHandler
+EXTI9_5_IRQHandler
+TIM1_BRK_IRQHandler
+TIM1_UP_TIM16_IRQHandler
+TIM1_TRG_COM_TIM17_IRQHandler
+TIM1_CC_IRQHandler
+TIM2_IRQHandler
+PKA_IRQHandler
+I2C1_EV_IRQHandler
+I2C1_ER_IRQHandler
+I2C3_EV_IRQHandler
+I2C3_ER_IRQHandler
+SPI1_IRQHandler
+SPI2_IRQHandler
+USART1_IRQHandler
+LPUART1_IRQHandler
+SAI1_IRQHandler
+TSC_IRQHandler
+EXTI15_10_IRQHandler
+RTC_Alarm_IRQHandler
+CRS_IRQHandler
+PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler
+IPCC_C1_RX_IRQHandler
+IPCC_C1_TX_IRQHandler
+HSEM_IRQHandler
+LPTIM1_IRQHandler
+LPTIM2_IRQHandler
+LCD_IRQHandler
+QUADSPI_IRQHandler
+AES1_IRQHandler
+AES2_IRQHandler
+RNG_IRQHandler
+FPU_IRQHandler
+DMA2_Channel1_IRQHandler
+DMA2_Channel2_IRQHandler
+DMA2_Channel3_IRQHandler
+DMA2_Channel4_IRQHandler
+DMA2_Channel5_IRQHandler
+DMA2_Channel6_IRQHandler
+DMA2_Channel7_IRQHandler
+DMAMUX1_OVR_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
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct
new file mode 100644
index 000000000..938d9f592
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct
@@ -0,0 +1,26 @@
+; *************************************************************
+; *** Scatter-Loading Description File generated by uVision ***
+; *************************************************************
+
+LR_IROM1 0x08000000 0x00080000 { ; load region size_region
+ ER_IROM1 0x08000000 0x00080000 { ; load address = execution address
+ *.o (RESET, +First)
+ *(InRoot$$Sections)
+ .ANY (+RO)
+ }
+ RW_IRAM1 0x20000008 0x2FFF8 { ; RW data
+ .ANY (+RW +ZI)
+ }
+
+ RW_RAM_SHARED1 0x20030000 0x28 { ; RW data
+ *(MAPPING_TABLE)
+ }
+ RW_RAM_SHARED2 0x20030028 0x27D8 { ; RW data
+ *(MB_MEM1)
+ *(MB_MEM2)
+ .ANY (+RW +ZI)
+ }
+
+ }
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/.cproject b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/.cproject
new file mode 100644
index 000000000..288a665cd
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/.cproject
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
+ <storageModule moduleId="org.eclipse.cdt.core.settings">
+ <cconfiguration id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.311831403">
+ <storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.311831403" moduleId="org.eclipse.cdt.core.settings" name="Release">
+ <externalSettings/>
+ <extensions>
+ <extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
+ <extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
+ <extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
+ </extensions>
+ </storageModule>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <configuration artifactExtension="elf" artifactName="${ProjName}" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe,org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release" cleanCommand="rm -rf" description="" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.311831403" name="Release" parent="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release">
+ <folderInfo id="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.311831403." name="/" resourcePath="">
+ <toolChain id="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release.16334955" name="MCU ARM GCC" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.toolchain.exe.release">
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu.21196251" name="Mcu" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_mcu" useByScannerDiscovery="true" value="STM32WB5MMGHx" valueType="string"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid.411848338" name="CpuId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_cpuid" useByScannerDiscovery="false" value="0" valueType="string"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid.990307921" name="CpuCoreId" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_coreid" useByScannerDiscovery="false" value="0" valueType="string"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.631734485" name="Floating-point unit" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.fpu.value.fpv4-sp-d16" valueType="enumerated"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.1564929612" name="Floating-point ABI" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi" useByScannerDiscovery="true" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.floatabi.value.softfp" valueType="enumerated"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1197451251" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="STM32WB5MM-DK" valueType="string"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1258185628" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../../../../../../Drivers/CMSIS/Include | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/Inc | ../../Core/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../STM32_WPAN/app | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../Core/Src/vl53l0x | ../../../../../../../Drivers/BSP/Components/stts22h | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/LCD | ../../../../../../../Utilities/Fonts | ../../../../../../../Drivers/BSP/Components/ism330dhcx || || || USE_HAL_DRIVER | STM32 | TRACE_ENABLE_NO_FUNCTION | SERVER | CORE_CM4 | ENABLE_USART | USE_STM32WB5M_DK | STM32WB55xx || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || Size || || || None" valueType="string"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat.1190863987" name="Use float with printf from newlib-nano (-u _printf_float)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoprintffloat" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoscanffloat.868948619" name="Use float with scanf from newlib-nano (-u _scanf_float)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.nanoscanffloat" useByScannerDiscovery="false" value="true" valueType="boolean"/>
+ <targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform.1087318488" isAbstract="false" osList="all" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.targetplatform"/>
+ <builder buildPath="${workspace_loc:/BLE_Mesh_Model_Sensor}/Release" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder.1762013946" keepEnvironmentInBuildfile="false" managedBuildOn="true" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.builder"/>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.941197265" name="MCU GCC Assembler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler">
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.617835138" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.option.debuglevel.value.g3" valueType="enumerated"/>
+ <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input.907105829" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.assembler.input"/>
+ </tool>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1608457470" name="MCU GCC Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler">
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.181689094" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.debuglevel.value.g3" valueType="enumerated"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.1065398754" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.optimization.level.value.os" valueType="enumerated"/>
+ <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1139211488" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
+ <listOptionValue builtIn="false" value="DEBUG"/>
+ <listOptionValue builtIn="false" value="USE_HAL_DRIVER"/>
+ <listOptionValue builtIn="false" value="STM32"/>
+ <listOptionValue builtIn="false" value="TRACE_ENABLE_NO_FUNCTION"/>
+ <listOptionValue builtIn="false" value="SERVER"/>
+ <listOptionValue builtIn="false" value="CORE_CM4"/>
+ <listOptionValue builtIn="false" value="ENABLE_USART"/>
+ <listOptionValue builtIn="false" value="USE_STM32WB5M_DK"/>
+ <listOptionValue builtIn="false" value="STM32WB55xx"/>
+ </option>
+ <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths.1457403873" name="Include paths (-I)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.includepaths" useByScannerDiscovery="false" valueType="includePath">
+ <listOptionValue builtIn="false" value="../../../../../../../Drivers/CMSIS/Include"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/Inc"/>
+ <listOptionValue builtIn="false" value="../../Core/Inc"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Middlewares/ST/STM32_WPAN"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Middlewares/ST/STM32_WPAN/utilities"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Utilities/lpm/tiny_lpm"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Utilities/sequencer"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Middlewares/ST/STM32_WPAN/ble/core"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Inc"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread"/>
+ <listOptionValue builtIn="false" value="../../STM32_WPAN/app"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Middlewares/ST/STM32_WPAN/ble"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Drivers/BSP/Components/ssd1315"/>
+ <listOptionValue builtIn="false" value="../../Core/Src/vl53l0x"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Drivers/BSP/Components/stts22h"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Drivers/BSP/STM32WB5MM-DK"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Drivers/BSP/Components/Common"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Utilities/LCD"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Utilities/Fonts"/>
+ <listOptionValue builtIn="false" value="../../../../../../../Drivers/BSP/Components/ism330dhcx"/>
+ </option>
+ <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.998880261" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c"/>
+ </tool>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.299733720" name="MCU G++ Compiler" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler">
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.1109000293" name="Debug level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.debuglevel.value.g0" valueType="enumerated"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.1169903069" name="Optimization level" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level" useByScannerDiscovery="false" value="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.compiler.option.optimization.level.value.os" valueType="enumerated"/>
+ </tool>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.774891528" name="MCU GCC Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker">
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script.1547568818" name="Linker Script (-T)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.script" value="${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld}" valueType="string"/>
+ <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.directories.1888911151" name="Library search path (-L)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.directories" useByScannerDiscovery="false" valueType="libPaths">
+ <listOptionValue builtIn="false" value="../../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/Library"/>
+ </option>
+ <option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.libraries.425833265" name="Libraries (-l)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.option.libraries" useByScannerDiscovery="false" valueType="libs">
+ <listOptionValue builtIn="false" value=":libBle_Mesh_CM4_GCC.a"/>
+ </option>
+ <inputType id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input.1432158664" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.linker.input">
+ <additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
+ <additionalInput kind="additionalinput" paths="$(LIBS)"/>
+ </inputType>
+ </tool>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker.2062925718" name="MCU G++ Linker" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.cpp.linker"/>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver.1945329252" name="MCU GCC Archiver" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.archiver"/>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size.1596140662" name="MCU Size" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.size"/>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile.1428165417" name="MCU Output Converter list file" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objdump.listfile"/>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex.446295711" name="MCU Output Converter Hex" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.hex"/>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary.15000678" name="MCU Output Converter Binary" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.binary"/>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog.1982155489" name="MCU Output Converter Verilog" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.verilog"/>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec.1032413123" name="MCU Output Converter Motorola S-rec" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.srec"/>
+ <tool id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec.1778488431" name="MCU Output Converter Motorola S-rec with symbols" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.objcopy.symbolsrec"/>
+ </toolChain>
+ </folderInfo>
+ </configuration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
+ </cconfiguration>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.pathentry"/>
+ <storageModule moduleId="cdtBuildSystem" version="4.0.0">
+ <project id="BLE_Mesh_Model_Sensor.null.1724182526" name="BLE_Mesh_Model_Sensor"/>
+ </storageModule>
+ <storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
+ <storageModule moduleId="scannerConfiguration">
+ <autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
+ <scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.311831403;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.release.311831403.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.1608457470;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.998880261">
+ <autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ <scannerConfigBuildInfo instanceId="com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1104028393;com.st.stm32cube.ide.mcu.gnu.managedbuild.config.exe.debug.1104028393.;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.944471271;com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.input.c.1036549322">
+ <autodiscovery enabled="false" problemReportingEnabled="true" selectedProfileId=""/>
+ </scannerConfigBuildInfo>
+ </storageModule>
+ <storageModule moduleId="refreshScope"/>
+ <storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
+</cproject>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/.project b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/.project
new file mode 100644
index 000000000..a642fe2a2
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/.project
@@ -0,0 +1,524 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>BLE_Mesh_Model_Sensor</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
+ <triggers>clean,full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
+ <triggers>full,incremental,</triggers>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>com.st.stm32cube.ide.mcu.MCUProjectNature</nature>
+ <nature>org.eclipse.cdt.core.cnature</nature>
+ <nature>com.st.stm32cube.ide.mcu.MCUCubeIdeServicesRevAev2ProjectNature</nature>
+ <nature>com.st.stm32cube.ide.mcu.MCUNonUnderRootProjectNature</nature>
+ <nature>com.st.stm32cube.ide.mcu.MCUCubeExampleProjectNature</nature>
+ <nature>com.st.stm32cube.ide.mcu.MCUSingleCpuProjectNature</nature>
+ <nature>com.st.stm32cube.ide.mcu.MCURootProjectNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
+ <nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
+ </natures>
+ <linkedResources>
+ <link>
+ <name>Doc/readme.txt</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/readme.txt</locationURI>
+ </link>
+ <link>
+ <name>Application/Core/app_debug.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/app_debug.c</locationURI>
+ </link>
+ <link>
+ <name>Application/Core/app_entry.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/app_entry.c</locationURI>
+ </link>
+ <link>
+ <name>Application/Core/app_stts22h.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/app_stts22h.c</locationURI>
+ </link>
+ <link>
+ <name>Application/Core/app_vl53l0x.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/app_vl53l0x.c</locationURI>
+ </link>
+ <link>
+ <name>Application/Core/hw_flash.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/hw_flash.c</locationURI>
+ </link>
+ <link>
+ <name>Application/Core/hw_timerserver.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/hw_timerserver.c</locationURI>
+ </link>
+ <link>
+ <name>Application/Core/hw_uart.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/hw_uart.c</locationURI>
+ </link>
+ <link>
+ <name>Application/Core/lp_timer.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/lp_timer.c</locationURI>
+ </link>
+ <link>
+ <name>Application/Core/main.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/main.c</locationURI>
+ </link>
+ <link>
+ <name>Application/Core/stm32_lpm_if.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/stm32_lpm_if.c</locationURI>
+ </link>
+ <link>
+ <name>Application/Core/stm32wbxx_it.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/stm32wbxx_it.c</locationURI>
+ </link>
+ <link>
+ <name>Application/vl5310x/vl53l0x_api.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/vl53l0x/vl53l0x_api.c</locationURI>
+ </link>
+ <link>
+ <name>Application/vl5310x/vl53l0x_api_calibration.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/vl53l0x/vl53l0x_api_calibration.c</locationURI>
+ </link>
+ <link>
+ <name>Application/vl5310x/vl53l0x_api_core.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/vl53l0x/vl53l0x_api_core.c</locationURI>
+ </link>
+ <link>
+ <name>Application/vl5310x/vl53l0x_api_ranging.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/vl53l0x/vl53l0x_api_ranging.c</locationURI>
+ </link>
+ <link>
+ <name>Application/vl5310x/vl53l0x_api_strings.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/vl53l0x/vl53l0x_api_strings.c</locationURI>
+ </link>
+ <link>
+ <name>Application/vl5310x/vl53l0x_platform_log.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/vl53l0x/vl53l0x_platform_log.c</locationURI>
+ </link>
+ <link>
+ <name>Application/vl5310x/vl53l0x_tof.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/vl53l0x/vl53l0x_tof.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/CMSIS/system_stm32wbxx.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/system_stm32wbxx.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_adc_ex.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_adc_ex.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_cortex.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_cortex.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_dma.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_dma.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_exti.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_exti.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_flash.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_flash.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_flash_ex.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_flash_ex.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_gpio.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_gpio.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_i2c.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_i2c.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_i2c_ex.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_i2c_ex.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_pwr.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pwr.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_pwr_ex.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pwr_ex.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_rcc.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rcc.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_rcc_ex.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rcc_ex.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_rtc.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rtc.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_rtc_ex.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rtc_ex.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_spi.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_spi.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_spi_ex.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_spi_ex.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_tim.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_tim.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_tim_ex.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_tim_ex.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_uart.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_uart.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_uart_ex.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_uart_ex.c</locationURI>
+ </link>
+ <link>
+ <name>Utilities/LCD/stm32_lcd.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Utilities/LCD/stm32_lcd.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/app_ble.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/app_ble.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/appli_config.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/appli_config.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/appli_config_client.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/appli_config_client.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/appli_generic.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/appli_generic.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/appli_generic_client.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/appli_generic_client.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/appli_light.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/appli_light.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/appli_light_client.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/appli_light_client.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/appli_light_lc.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/appli_light_lc.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/appli_mesh.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/appli_mesh.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/appli_nvm.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/appli_nvm.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/appli_sensor.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/appli_sensor.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/appli_sensors_client.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/appli_sensors_client.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/appli_vendor.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/appli_vendor.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/models_if.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/models_if.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/app/pal_nvm.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/app/pal_nvm.c</locationURI>
+ </link>
+ <link>
+ <name>Application/STM32_WPAN/target/hw_ipcc.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/STM32_WPAN/target/hw_ipcc.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_lcd.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_lcd.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/utilities/dbg_trace.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/utilities/dbg_trace.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/utilities/otp.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/utilities/otp.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/utilities/stm32_lpm.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Utilities/lpm/tiny_lpm/stm32_lpm.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/utilities/stm32_seq.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Utilities/sequencer/stm32_seq.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/utilities/stm_list.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/utilities/stm_list.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/utilities/stm_queue.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/utilities/stm_queue.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/BSP/Component/ssdl1315/ssd1315.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/Components/ssd1315/ssd1315.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/BSP/Component/ssdl1315/ssd1315_reg.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/Components/ssd1315/ssd1315_reg.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/BSP/Component/stts22h/stts22h.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/Components/stts22h/stts22h.c</locationURI>
+ </link>
+ <link>
+ <name>Drivers/BSP/Component/stts22h/stts22h_reg.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/Components/stts22h/stts22h_reg.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/common.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/common.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/config_client.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/config_client.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/generic.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/generic.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/generic_client.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/generic_client.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/light.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/light.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/light_client.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/light_client.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/light_lc.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/light_lc.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/mesh.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/svc/Src/mesh.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/mesh_cfg.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/mesh/Src/mesh_cfg.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/sensors.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/sensors.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/sensors_client.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/sensors_client.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/svc_ctl.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/svc/Src/svc_ctl.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/time_scene.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/time_scene.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/blesvc/vendor.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Src/vendor.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/core/ble_gap_aci.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/core/auto/ble_gap_aci.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/core/ble_gatt_aci.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/core/auto/ble_gatt_aci.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/core/ble_hal_aci.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/core/auto/ble_hal_aci.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/core/ble_hci_le.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/core/auto/ble_hci_le.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/core/ble_l2cap_aci.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/core/auto/ble_l2cap_aci.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/ble/core/osal.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/ble/core/template/osal.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/interface/patterns/ble_thread/shci/shci.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci/shci.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/interface/patterns/ble_thread/tl/hci_tl.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/hci_tl.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/interface/patterns/ble_thread/tl/hci_tl_if.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/hci_tl_if.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/interface/patterns/ble_thread/tl/shci_tl.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/shci_tl.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/interface/patterns/ble_thread/tl/shci_tl_if.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/shci_tl_if.c</locationURI>
+ </link>
+ <link>
+ <name>Middlewares/STM32_WPAN/interface/patterns/ble_thread/tl/tl_mbox.c</name>
+ <type>1</type>
+ <locationURI>PARENT-6-PROJECT_LOC/Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/tl_mbox.c</locationURI>
+ </link>
+ </linkedResources>
+</projectDescription>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/Application/Core/syscalls.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/Application/Core/syscalls.c
new file mode 100644
index 000000000..c921fd873
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/Application/Core/syscalls.c
@@ -0,0 +1,155 @@
+/**
+ ******************************************************************************
+ * @file syscalls.c
+ * @author Auto-generated by STM32CubeIDE
+ * @brief STM32CubeIDE Minimal System calls file
+ *
+ * For more information about which c-functions
+ * need which of these lowlevel functions
+ * please consult the Newlib libc-manual
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes */
+#include <sys/stat.h>
+#include <stdlib.h>
+#include <errno.h>
+#include <stdio.h>
+#include <signal.h>
+#include <time.h>
+#include <sys/time.h>
+#include <sys/times.h>
+
+
+/* Variables */
+extern int __io_putchar(int ch) __attribute__((weak));
+extern int __io_getchar(void) __attribute__((weak));
+
+
+char *__env[1] = { 0 };
+char **environ = __env;
+
+
+/* Functions */
+void initialise_monitor_handles()
+{
+}
+
+int _getpid(void)
+{
+ return 1;
+}
+
+int _kill(int pid, int sig)
+{
+ errno = EINVAL;
+ return -1;
+}
+
+void _exit (int status)
+{
+ _kill(status, -1);
+ while (1) {} /* Make sure we hang here */
+}
+
+__attribute__((weak)) int _read(int file, char *ptr, int len)
+{
+ int DataIdx;
+
+ for (DataIdx = 0; DataIdx < len; DataIdx++)
+ {
+ *ptr++ = __io_getchar();
+ }
+
+return len;
+}
+
+__attribute__((weak)) int _write(int file, char *ptr, int len)
+{
+ int DataIdx;
+
+ for (DataIdx = 0; DataIdx < len; DataIdx++)
+ {
+ __io_putchar(*ptr++);
+ }
+ return len;
+}
+
+int _close(int file)
+{
+ return -1;
+}
+
+
+int _fstat(int file, struct stat *st)
+{
+ st->st_mode = S_IFCHR;
+ return 0;
+}
+
+int _isatty(int file)
+{
+ return 1;
+}
+
+int _lseek(int file, int ptr, int dir)
+{
+ return 0;
+}
+
+int _open(char *path, int flags, ...)
+{
+ /* Pretend like we always fail */
+ return -1;
+}
+
+int _wait(int *status)
+{
+ errno = ECHILD;
+ return -1;
+}
+
+int _unlink(char *name)
+{
+ errno = ENOENT;
+ return -1;
+}
+
+int _times(struct tms *buf)
+{
+ return -1;
+}
+
+int _stat(char *file, struct stat *st)
+{
+ st->st_mode = S_IFCHR;
+ return 0;
+}
+
+int _link(char *old, char *new)
+{
+ errno = EMLINK;
+ return -1;
+}
+
+int _fork(void)
+{
+ errno = EAGAIN;
+ return -1;
+}
+
+int _execve(char *name, char **argv, char **env)
+{
+ errno = ENOMEM;
+ return -1;
+}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/Application/Core/sysmem.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/Application/Core/sysmem.c
new file mode 100644
index 000000000..dda5abe79
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/Application/Core/sysmem.c
@@ -0,0 +1,79 @@
+/**
+ ******************************************************************************
+ * @file sysmem.c
+ * @author Generated by STM32CubeIDE
+ * @brief STM32CubeIDE System Memory calls file
+ *
+ * For more information about which C functions
+ * need which of these lowlevel functions
+ * please consult the newlib libc manual
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes */
+#include <errno.h>
+#include <stdint.h>
+
+/**
+ * Pointer to the current high watermark of the heap usage
+ */
+static uint8_t *__sbrk_heap_end = NULL;
+
+/**
+ * @brief _sbrk() allocates memory to the newlib heap and is used by malloc
+ * and others from the C library
+ *
+ * @verbatim
+ * ############################################################################
+ * # .data # .bss # newlib heap # MSP stack #
+ * # # # # Reserved by _Min_Stack_Size #
+ * ############################################################################
+ * ^-- RAM start ^-- _end _estack, RAM end --^
+ * @endverbatim
+ *
+ * This implementation starts allocating at the '_end' linker symbol
+ * The '_Min_Stack_Size' linker symbol reserves a memory for the MSP stack
+ * The implementation considers '_estack' linker symbol to be RAM end
+ * NOTE: If the MSP stack, at any point during execution, grows larger than the
+ * reserved size, please increase the '_Min_Stack_Size'.
+ *
+ * @param incr Memory size
+ * @return Pointer to allocated memory
+ */
+void *_sbrk(ptrdiff_t incr)
+{
+ extern uint8_t _end; /* Symbol defined in the linker script */
+ extern uint8_t _estack; /* Symbol defined in the linker script */
+ extern uint32_t _Min_Stack_Size; /* Symbol defined in the linker script */
+ const uint32_t stack_limit = (uint32_t)&_estack - (uint32_t)&_Min_Stack_Size;
+ const uint8_t *max_heap = (uint8_t *)stack_limit;
+ uint8_t *prev_heap_end;
+
+ /* Initialize heap end at first call */
+ if (NULL == __sbrk_heap_end)
+ {
+ __sbrk_heap_end = &_end;
+ }
+
+ /* Protect heap from growing into the reserved MSP stack */
+ if (__sbrk_heap_end + incr > max_heap)
+ {
+ errno = ENOMEM;
+ return (void *)-1;
+ }
+
+ prev_heap_end = __sbrk_heap_end;
+ __sbrk_heap_end += incr;
+
+ return (void *)prev_heap_end;
+}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
new file mode 100644
index 000000000..18f06244f
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -0,0 +1,443 @@
+/**
+ ******************************************************************************
+ * @file startup_stm32wb5mxx_cm4.s
+ * @author MCD Application Team
+ * @brief STM32WB5Mxx devices vector table GCC toolchain.
+ * This module performs:
+ * - Set the initial SP
+ * - Set the initial PC == Reset_Handler,
+ * - Set the vector table entries with the exceptions ISR address
+ * - Branches to main in the C library (which eventually
+ * calls main()).
+ * After Reset the Cortex-M4 processor is in Thread mode,
+ * priority is Privileged, and the Stack is set to Main.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+ .syntax unified
+ .cpu cortex-m4
+ .fpu softvfp
+ .thumb
+
+.global g_pfnVectors
+.global Default_Handler
+
+/* start address for the initialization values of the .data section.
+defined in linker script */
+.word _sidata
+/* start address for the .data section. defined in linker script */
+.word _sdata
+/* end address for the .data section. defined in linker script */
+.word _edata
+/* start address for the .bss section. defined in linker script */
+.word _sbss
+/* end address for the .bss section. defined in linker script */
+.word _ebss
+/* start address for the .MB_MEM2 section. defined in linker script */
+.word _sMB_MEM2
+/* end address for the .MB_MEM2 section. defined in linker script */
+.word _eMB_MEM2
+
+/* INIT_BSS macro is used to fill the specified region [start : end] with zeros */
+.macro INIT_BSS start, end
+ ldr r0, =\start
+ ldr r1, =\end
+ movs r3, #0
+ bl LoopFillZerobss
+.endm
+
+/* INIT_DATA macro is used to copy data in the region [start : end] starting from 'src' */
+.macro INIT_DATA start, end, src
+ ldr r0, =\start
+ ldr r1, =\end
+ ldr r2, =\src
+ movs r3, #0
+ bl LoopCopyDataInit
+.endm
+
+.section .text.data_initializers
+CopyDataInit:
+ ldr r4, [r2, r3]
+ str r4, [r0, r3]
+ adds r3, r3, #4
+
+LoopCopyDataInit:
+ adds r4, r0, r3
+ cmp r4, r1
+ bcc CopyDataInit
+ bx lr
+
+FillZerobss:
+ str r3, [r0]
+ adds r0, r0, #4
+
+LoopFillZerobss:
+ cmp r0, r1
+ bcc FillZerobss
+ bx lr
+
+ .section .text.Reset_Handler
+ .weak Reset_Handler
+ .type Reset_Handler, %function
+Reset_Handler:
+ ldr r0, =_estack
+ mov sp, r0 /* set stack pointer */
+/* Call the clock system initialization function.*/
+ bl SystemInit
+
+/* Copy the data segment initializers from flash to SRAM */
+ INIT_DATA _sdata, _edata, _sidata
+
+/* Zero fill the bss segments. */
+ INIT_BSS _sbss, _ebss
+ INIT_BSS _sMB_MEM2, _eMB_MEM2
+
+/* Call static constructors */
+ bl __libc_init_array
+/* Call the application s entry point.*/
+ bl main
+
+LoopForever:
+ b LoopForever
+
+.size Reset_Handler, .-Reset_Handler
+
+/**
+ * @brief This is the code that gets called when the processor receives an
+ * unexpected interrupt. This simply enters an infinite loop, preserving
+ * the system state for examination by a debugger.
+ *
+ * @param None
+ * @retval None
+*/
+ .section .text.Default_Handler,"ax",%progbits
+Default_Handler:
+Infinite_Loop:
+ b Infinite_Loop
+ .size Default_Handler, .-Default_Handler
+/******************************************************************************
+*
+* The minimal vector table for a Cortex-M4. Note that the proper constructs
+* must be placed on this to ensure that it ends up at physical address
+* 0x0000.0000.
+*
+******************************************************************************/
+ .section .isr_vector,"a",%progbits
+ .type g_pfnVectors, %object
+ .size g_pfnVectors, .-g_pfnVectors
+
+
+g_pfnVectors:
+ .word _estack
+ .word Reset_Handler
+ .word NMI_Handler
+ .word HardFault_Handler
+ .word MemManage_Handler
+ .word BusFault_Handler
+ .word UsageFault_Handler
+ .word 0
+ .word 0
+ .word 0
+ .word 0
+ .word SVC_Handler
+ .word DebugMon_Handler
+ .word 0
+ .word PendSV_Handler
+ .word SysTick_Handler
+ .word WWDG_IRQHandler
+ .word PVD_PVM_IRQHandler
+ .word TAMP_STAMP_LSECSS_IRQHandler
+ .word RTC_WKUP_IRQHandler
+ .word FLASH_IRQHandler
+ .word RCC_IRQHandler
+ .word EXTI0_IRQHandler
+ .word EXTI1_IRQHandler
+ .word EXTI2_IRQHandler
+ .word EXTI3_IRQHandler
+ .word EXTI4_IRQHandler
+ .word DMA1_Channel1_IRQHandler
+ .word DMA1_Channel2_IRQHandler
+ .word DMA1_Channel3_IRQHandler
+ .word DMA1_Channel4_IRQHandler
+ .word DMA1_Channel5_IRQHandler
+ .word DMA1_Channel6_IRQHandler
+ .word DMA1_Channel7_IRQHandler
+ .word ADC1_IRQHandler
+ .word USB_HP_IRQHandler
+ .word USB_LP_IRQHandler
+ .word C2SEV_PWR_C2H_IRQHandler
+ .word COMP_IRQHandler
+ .word EXTI9_5_IRQHandler
+ .word TIM1_BRK_IRQHandler
+ .word TIM1_UP_TIM16_IRQHandler
+ .word TIM1_TRG_COM_TIM17_IRQHandler
+ .word TIM1_CC_IRQHandler
+ .word TIM2_IRQHandler
+ .word PKA_IRQHandler
+ .word I2C1_EV_IRQHandler
+ .word I2C1_ER_IRQHandler
+ .word I2C3_EV_IRQHandler
+ .word I2C3_ER_IRQHandler
+ .word SPI1_IRQHandler
+ .word SPI2_IRQHandler
+ .word USART1_IRQHandler
+ .word LPUART1_IRQHandler
+ .word SAI1_IRQHandler
+ .word TSC_IRQHandler
+ .word EXTI15_10_IRQHandler
+ .word RTC_Alarm_IRQHandler
+ .word CRS_IRQHandler
+ .word PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler
+ .word IPCC_C1_RX_IRQHandler
+ .word IPCC_C1_TX_IRQHandler
+ .word HSEM_IRQHandler
+ .word LPTIM1_IRQHandler
+ .word LPTIM2_IRQHandler
+ .word LCD_IRQHandler
+ .word QUADSPI_IRQHandler
+ .word AES1_IRQHandler
+ .word AES2_IRQHandler
+ .word RNG_IRQHandler
+ .word FPU_IRQHandler
+ .word DMA2_Channel1_IRQHandler
+ .word DMA2_Channel2_IRQHandler
+ .word DMA2_Channel3_IRQHandler
+ .word DMA2_Channel4_IRQHandler
+ .word DMA2_Channel5_IRQHandler
+ .word DMA2_Channel6_IRQHandler
+ .word DMA2_Channel7_IRQHandler
+ .word DMAMUX1_OVR_IRQHandler
+
+/*******************************************************************************
+*
+* Provide weak aliases for each Exception handler to the Default_Handler.
+* As they are weak aliases, any function with the same name will override
+* this definition.
+*
+*******************************************************************************/
+ .weak NMI_Handler
+ .thumb_set NMI_Handler,Default_Handler
+
+ .weak HardFault_Handler
+ .thumb_set HardFault_Handler,Default_Handler
+
+ .weak MemManage_Handler
+ .thumb_set MemManage_Handler,Default_Handler
+
+ .weak BusFault_Handler
+ .thumb_set BusFault_Handler,Default_Handler
+
+ .weak UsageFault_Handler
+ .thumb_set UsageFault_Handler,Default_Handler
+
+ .weak SVC_Handler
+ .thumb_set SVC_Handler,Default_Handler
+
+ .weak DebugMon_Handler
+ .thumb_set DebugMon_Handler,Default_Handler
+
+ .weak PendSV_Handler
+ .thumb_set PendSV_Handler,Default_Handler
+
+ .weak SysTick_Handler
+ .thumb_set SysTick_Handler,Default_Handler
+
+ .weak WWDG_IRQHandler
+ .thumb_set WWDG_IRQHandler,Default_Handler
+
+ .weak PVD_PVM_IRQHandler
+ .thumb_set PVD_PVM_IRQHandler,Default_Handler
+
+ .weak TAMP_STAMP_LSECSS_IRQHandler
+ .thumb_set TAMP_STAMP_LSECSS_IRQHandler,Default_Handler
+
+ .weak RTC_WKUP_IRQHandler
+ .thumb_set RTC_WKUP_IRQHandler,Default_Handler
+
+ .weak FLASH_IRQHandler
+ .thumb_set FLASH_IRQHandler,Default_Handler
+
+ .weak RCC_IRQHandler
+ .thumb_set RCC_IRQHandler,Default_Handler
+
+ .weak EXTI0_IRQHandler
+ .thumb_set EXTI0_IRQHandler,Default_Handler
+
+ .weak EXTI1_IRQHandler
+ .thumb_set EXTI1_IRQHandler,Default_Handler
+
+ .weak EXTI2_IRQHandler
+ .thumb_set EXTI2_IRQHandler,Default_Handler
+
+ .weak EXTI3_IRQHandler
+ .thumb_set EXTI3_IRQHandler,Default_Handler
+
+ .weak EXTI4_IRQHandler
+ .thumb_set EXTI4_IRQHandler,Default_Handler
+
+ .weak DMA1_Channel1_IRQHandler
+ .thumb_set DMA1_Channel1_IRQHandler,Default_Handler
+
+ .weak DMA1_Channel2_IRQHandler
+ .thumb_set DMA1_Channel2_IRQHandler,Default_Handler
+
+ .weak DMA1_Channel3_IRQHandler
+ .thumb_set DMA1_Channel3_IRQHandler,Default_Handler
+
+ .weak DMA1_Channel4_IRQHandler
+ .thumb_set DMA1_Channel4_IRQHandler,Default_Handler
+
+ .weak DMA1_Channel5_IRQHandler
+ .thumb_set DMA1_Channel5_IRQHandler,Default_Handler
+
+ .weak DMA1_Channel6_IRQHandler
+ .thumb_set DMA1_Channel6_IRQHandler,Default_Handler
+
+ .weak DMA1_Channel7_IRQHandler
+ .thumb_set DMA1_Channel7_IRQHandler,Default_Handler
+
+ .weak ADC1_IRQHandler
+ .thumb_set ADC1_IRQHandler,Default_Handler
+
+ .weak USB_HP_IRQHandler
+ .thumb_set USB_HP_IRQHandler,Default_Handler
+
+ .weak USB_LP_IRQHandler
+ .thumb_set USB_LP_IRQHandler,Default_Handler
+
+ .weak C2SEV_PWR_C2H_IRQHandler
+ .thumb_set C2SEV_PWR_C2H_IRQHandler,Default_Handler
+
+ .weak COMP_IRQHandler
+ .thumb_set COMP_IRQHandler,Default_Handler
+
+ .weak EXTI9_5_IRQHandler
+ .thumb_set EXTI9_5_IRQHandler,Default_Handler
+
+ .weak TIM1_BRK_IRQHandler
+ .thumb_set TIM1_BRK_IRQHandler,Default_Handler
+
+ .weak TIM1_UP_TIM16_IRQHandler
+ .thumb_set TIM1_UP_TIM16_IRQHandler,Default_Handler
+
+ .weak TIM1_TRG_COM_TIM17_IRQHandler
+ .thumb_set TIM1_TRG_COM_TIM17_IRQHandler,Default_Handler
+
+ .weak TIM1_CC_IRQHandler
+ .thumb_set TIM1_CC_IRQHandler,Default_Handler
+
+ .weak TIM2_IRQHandler
+ .thumb_set TIM2_IRQHandler,Default_Handler
+
+ .weak PKA_IRQHandler
+ .thumb_set PKA_IRQHandler,Default_Handler
+
+ .weak I2C1_EV_IRQHandler
+ .thumb_set I2C1_EV_IRQHandler,Default_Handler
+
+ .weak I2C1_ER_IRQHandler
+ .thumb_set I2C1_ER_IRQHandler,Default_Handler
+
+ .weak I2C3_EV_IRQHandler
+ .thumb_set I2C3_EV_IRQHandler,Default_Handler
+
+ .weak I2C3_ER_IRQHandler
+ .thumb_set I2C3_ER_IRQHandler,Default_Handler
+
+ .weak SPI1_IRQHandler
+ .thumb_set SPI1_IRQHandler,Default_Handler
+
+ .weak SPI2_IRQHandler
+ .thumb_set SPI2_IRQHandler,Default_Handler
+
+ .weak USART1_IRQHandler
+ .thumb_set USART1_IRQHandler,Default_Handler
+
+ .weak LPUART1_IRQHandler
+ .thumb_set LPUART1_IRQHandler,Default_Handler
+
+ .weak SAI1_IRQHandler
+ .thumb_set SAI1_IRQHandler,Default_Handler
+
+ .weak TSC_IRQHandler
+ .thumb_set TSC_IRQHandler,Default_Handler
+
+ .weak EXTI15_10_IRQHandler
+ .thumb_set EXTI15_10_IRQHandler,Default_Handler
+
+ .weak RTC_Alarm_IRQHandler
+ .thumb_set RTC_Alarm_IRQHandler,Default_Handler
+
+ .weak CRS_IRQHandler
+ .thumb_set CRS_IRQHandler,Default_Handler
+
+ .weak PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler
+ .thumb_set PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler,Default_Handler
+
+ .weak IPCC_C1_RX_IRQHandler
+ .thumb_set IPCC_C1_RX_IRQHandler,Default_Handler
+
+ .weak IPCC_C1_TX_IRQHandler
+ .thumb_set IPCC_C1_TX_IRQHandler,Default_Handler
+
+ .weak HSEM_IRQHandler
+ .thumb_set HSEM_IRQHandler,Default_Handler
+
+ .weak LPTIM1_IRQHandler
+ .thumb_set LPTIM1_IRQHandler,Default_Handler
+
+ .weak LPTIM2_IRQHandler
+ .thumb_set LPTIM2_IRQHandler,Default_Handler
+
+ .weak LCD_IRQHandler
+ .thumb_set LCD_IRQHandler,Default_Handler
+
+ .weak QUADSPI_IRQHandler
+ .thumb_set QUADSPI_IRQHandler,Default_Handler
+
+ .weak AES1_IRQHandler
+ .thumb_set AES1_IRQHandler,Default_Handler
+
+ .weak AES2_IRQHandler
+ .thumb_set AES2_IRQHandler,Default_Handler
+
+ .weak RNG_IRQHandler
+ .thumb_set RNG_IRQHandler,Default_Handler
+
+ .weak FPU_IRQHandler
+ .thumb_set FPU_IRQHandler,Default_Handler
+
+ .weak DMA2_Channel1_IRQHandler
+ .thumb_set DMA2_Channel1_IRQHandler,Default_Handler
+
+ .weak DMA2_Channel2_IRQHandler
+ .thumb_set DMA2_Channel2_IRQHandler,Default_Handler
+
+ .weak DMA2_Channel3_IRQHandler
+ .thumb_set DMA2_Channel3_IRQHandler,Default_Handler
+
+ .weak DMA2_Channel4_IRQHandler
+ .thumb_set DMA2_Channel4_IRQHandler,Default_Handler
+
+ .weak DMA2_Channel5_IRQHandler
+ .thumb_set DMA2_Channel5_IRQHandler,Default_Handler
+
+ .weak DMA2_Channel6_IRQHandler
+ .thumb_set DMA2_Channel6_IRQHandler,Default_Handler
+
+ .weak DMA2_Channel7_IRQHandler
+ .thumb_set DMA2_Channel7_IRQHandler,Default_Handler
+
+ .weak DMAMUX1_OVR_IRQHandler
+ .thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
new file mode 100644
index 000000000..04d57d8aa
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -0,0 +1,171 @@
+/**
+*****************************************************************************
+**
+** File : stm32wb5mxx_flash_cm4.ld
+**
+** Abstract : STM32CubeIDE Minimal System calls file
+**
+** For more information about which c-functions
+** need which of these lowlevel functions
+** please consult the Newlib libc-manual
+**
+** Environment : STM32CubeIDE for MCU
+**
+** Distribution: The file is distributed as is, without any warranty
+** of any kind.
+**
+*****************************************************************************
+** @attention
+**
+** Copyright (c) 2019 STMicroelectronics.
+** All rights reserved.
+**
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
+**
+*****************************************************************************
+*/
+
+/* Entry Point */
+ENTRY(Reset_Handler)
+
+/* Highest address of the user mode stack */
+_estack = 0x20030000; /* end of RAM */
+/* Generate a link error if heap and stack don't fit into RAM */
+_Min_Heap_Size = 0x400 ; /* required amount of heap */
+_Min_Stack_Size = 0x1000 ; /* required amount of stack */
+
+/* Specify the memory areas */
+MEMORY
+{
+FLASH (rx) : ORIGIN = 0x08000000, LENGTH = 512K
+RAM1 (xrw) : ORIGIN = 0x20000008, LENGTH = 0x2FFF8
+RAM_SHARED (xrw) : ORIGIN = 0x20030000, LENGTH = 10K
+}
+
+/* Define output sections */
+SECTIONS
+{
+ /* The startup code goes first into FLASH */
+ .isr_vector :
+ {
+ . = ALIGN(4);
+ KEEP(*(.isr_vector)) /* Startup code */
+ . = ALIGN(4);
+ } >FLASH
+
+ /* The program code and other data goes into FLASH */
+ .text :
+ {
+ . = ALIGN(4);
+ *(.text) /* .text sections (code) */
+ *(.text*) /* .text* sections (code) */
+ *(.glue_7) /* glue arm to thumb code */
+ *(.glue_7t) /* glue thumb to arm code */
+ *(.eh_frame)
+
+ KEEP (*(.init))
+ KEEP (*(.fini))
+
+ . = ALIGN(4);
+ _etext = .; /* define a global symbols at end of code */
+ } >FLASH
+
+ /* Constant data goes into FLASH */
+ .rodata :
+ {
+ . = ALIGN(4);
+ *(.rodata) /* .rodata sections (constants, strings, etc.) */
+ *(.rodata*) /* .rodata* sections (constants, strings, etc.) */
+ . = ALIGN(4);
+ } >FLASH
+
+ .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } >FLASH
+ .ARM : {
+ __exidx_start = .;
+ *(.ARM.exidx*)
+ __exidx_end = .;
+ } >FLASH
+
+ .preinit_array :
+ {
+ PROVIDE_HIDDEN (__preinit_array_start = .);
+ KEEP (*(.preinit_array*))
+ PROVIDE_HIDDEN (__preinit_array_end = .);
+ } >FLASH
+ .init_array :
+ {
+ PROVIDE_HIDDEN (__init_array_start = .);
+ KEEP (*(SORT(.init_array.*)))
+ KEEP (*(.init_array*))
+ PROVIDE_HIDDEN (__init_array_end = .);
+ } >FLASH
+ .fini_array :
+ {
+ PROVIDE_HIDDEN (__fini_array_start = .);
+ KEEP (*(SORT(.fini_array.*)))
+ KEEP (*(.fini_array*))
+ PROVIDE_HIDDEN (__fini_array_end = .);
+ } >FLASH
+
+ /* used by the startup to initialize data */
+ _sidata = LOADADDR(.data);
+
+ /* Initialized data sections goes into RAM, load LMA copy after code */
+ .data :
+ {
+ . = ALIGN(4);
+ _sdata = .; /* create a global symbol at data start */
+ *(.data) /* .data sections */
+ *(.data*) /* .data* sections */
+
+ . = ALIGN(4);
+ _edata = .; /* define a global symbol at data end */
+ } >RAM1 AT> FLASH
+
+
+ /* Uninitialized data section */
+ . = ALIGN(4);
+ .bss :
+ {
+ /* This is used by the startup in order to initialize the .bss section */
+ _sbss = .; /* define a global symbol at bss start */
+ __bss_start__ = _sbss;
+ *(.bss)
+ *(.bss*)
+ *(COMMON)
+
+ . = ALIGN(4);
+ _ebss = .; /* define a global symbol at bss end */
+ __bss_end__ = _ebss;
+ } >RAM1
+
+ /* User_heap_stack section, used to check that there is enough RAM left */
+ ._user_heap_stack :
+ {
+ . = ALIGN(8);
+ PROVIDE ( end = . );
+ PROVIDE ( _end = . );
+ . = . + _Min_Heap_Size;
+ . = . + _Min_Stack_Size;
+ . = ALIGN(8);
+ } >RAM1
+
+
+
+ /* Remove information from the standard libraries */
+ /DISCARD/ :
+ {
+ libc.a ( * )
+ libm.a ( * )
+ libgcc.a ( * )
+ }
+
+ .ARM.attributes 0 : { *(.ARM.attributes) }
+ MAPPING_TABLE (NOLOAD) : { *(MAPPING_TABLE) } >RAM_SHARED
+ MB_MEM1 (NOLOAD) : { *(MB_MEM1) } >RAM_SHARED
+ MB_MEM2 (NOLOAD) : { _sMB_MEM2 = . ; *(MB_MEM2) ; _eMB_MEM2 = . ; } >RAM_SHARED
+}
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_config.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_config.c
new file mode 100644
index 000000000..5365f0d06
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_config.c
@@ -0,0 +1,108 @@
+/**
+ ******************************************************************************
+ * @file PWM_config.c
+ * @author BLE Mesh Team
+ * @brief Configuration file for PWM.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "hal_common.h"
+#include "PWM_config.h"
+
+extern TIM_HandleTypeDef htim1;
+extern TIM_HandleTypeDef htim2;
+
+#define PRESCALER_VALUE (uint32_t)(((SystemCoreClock) / 1000000) - 1)
+
+/**
+ *@brief Configure PWM sources and GPIO
+ *@retval None
+ */
+void PWM_Init()
+{
+ TIM_OC_InitTypeDef sConfigOC = {0};
+ TIM_MasterConfigTypeDef sMasterConfig = {0};
+
+ /* GPIO Configuration */
+ GPIO_InitTypeDef GPIO_InitStructure = {0};
+
+
+ /* Configure PWM pins */
+ GPIO_InitStructure.Pin = PWM0_PIN | PWM1_PIN;
+ GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStructure.Pull = GPIO_PULLUP;
+ GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ GPIO_InitStructure.Alternate = GPIO_AF1_TIM1;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStructure);
+
+ /* Configure PWM pins */
+ GPIO_InitStructure.Pin = PWM2_PIN | PWM3_PIN | PWM4_PIN;
+ GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStructure.Pull = GPIO_PULLUP;
+ GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ GPIO_InitStructure.Alternate = GPIO_AF1_TIM2;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStructure);
+
+ /* MFT Configuration */
+ HAL_NVIC_SetPriority((IRQn_Type)(TIM1_CC_IRQn), 15, 0);
+ HAL_NVIC_EnableIRQ((IRQn_Type)(TIM1_CC_IRQn));
+ HAL_NVIC_SetPriority((IRQn_Type)(TIM2_IRQn), 15, 0);
+ HAL_NVIC_EnableIRQ((IRQn_Type)(TIM2_IRQn));
+
+ htim1.Instance = TIM1;
+ htim1.Init.Prescaler = 0/*PRESCALER_VALUE*/;
+ htim1.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim1.Init.Period = TIME_PERIOD;
+ htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ HAL_TIM_PWM_Init(&htim1);
+
+ htim2.Instance = TIM2;
+ htim2.Init.Prescaler = 0/*PRESCALER_VALUE*/;
+ htim2.Init.CounterMode = TIM_COUNTERMODE_UP;
+ htim2.Init.Period = TIME_PERIOD;
+ htim2.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1;
+ htim2.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE;
+ HAL_TIM_PWM_Init(&htim2);
+
+ sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
+ sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
+ HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig);
+ HAL_TIMEx_MasterConfigSynchronization(&htim2, &sMasterConfig);
+
+ sConfigOC.OCMode = TIM_OCMODE_PWM1;
+ sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH;
+ sConfigOC.OCFastMode = TIM_OCFAST_DISABLE;
+ sConfigOC.Pulse = MFT1_TON_1;
+ HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_1);
+ sConfigOC.Pulse = MFT2_TON_1;
+ HAL_TIM_PWM_ConfigChannel(&htim1, &sConfigOC, TIM_CHANNEL_2);
+ sConfigOC.Pulse = MFT1_TON_2;
+ HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_1);
+ sConfigOC.Pulse = MFT2_TON_2;
+ HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2);
+ sConfigOC.Pulse = MFT2_TON_3;
+ HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_3);
+
+ /* Start channel 1 */
+ HAL_TIM_PWM_Start_IT(&htim1, TIM_CHANNEL_1);
+ /* Start channel 2 */
+ HAL_TIM_PWM_Start_IT(&htim1, TIM_CHANNEL_2);
+ /* Start channel 1 */
+ HAL_TIM_PWM_Start_IT(&htim2, TIM_CHANNEL_1);
+ /* Start channel 2 */
+ HAL_TIM_PWM_Start_IT(&htim2, TIM_CHANNEL_2);
+ /* Start channel 3 */
+ HAL_TIM_PWM_Start_IT(&htim2, TIM_CHANNEL_3);
+}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_config.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_config.h
new file mode 100644
index 000000000..a229ec666
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_config.h
@@ -0,0 +1,69 @@
+/******************** (C) COPYRIGHT 2015 STMicroelectronics ********************
+* File Name : PWM/PWM_config.c
+* Author : SNM Application Team
+* Version : V1.0.0
+* Date : September-2015
+* Description : Configuration file for PWM
+********************************************************************************
+* 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.
+*******************************************************************************/
+
+#include "mesh_cfg_usr.h"
+
+/* Macros defined for the number of PWM Provided */
+#define PWM0 0
+#define PWM1 1
+#define PWM2 2
+#define PWM3 3
+#define PWM4 4
+
+/************************************************************************/
+
+/*STM32WB
+ * This configuration given below is for the STM32WB board.
+ * Here user has selected the PWM0 in SERIAL2_MODE and PWM1 in SERIAL1_MODE.
+ * User can configure software PWM to any of the GPIO which are not used for
+ * hardware PWM.
+*/
+/* PWM pins for MFT1 and MFT2 respectively */
+#if defined USE_STM32WBXX_NUCLEO || defined USE_STM32WBXX_USB_DONGLE
+
+#define PWM0_PIN GPIO_PIN_14 /* TIM1_CH1 AF1 */
+#define PWM1_PIN GPIO_PIN_15 /* TIM1_CH2 AF1 */
+
+/* GPIOs pins (SOFTWARE PWM) used to output a PWM signal */
+#define PWM2_PIN GPIO_PIN_0 /* TIM2_CH1 AF1 */
+#define PWM3_PIN GPIO_PIN_1 /* TIM2_CH2 AF1 */
+#define PWM4_PIN GPIO_PIN_2 /* TIM2_CH3 AF1 */
+#endif
+/************************************************************************/
+
+#define TIME_PERIOD 32000
+
+/* TIM1 Channel 1 Timer Ton and T0ff (ticks number) PWM0*/
+#define MFT1_TON_1 (12000 - 1)
+#define MFT1_TOFF_1 (20000 - 1)
+
+/* TIM1 Channel 2 Timer 1 Ton and T0ff (ticks number) PWM1*/
+#define MFT2_TON_1 (8000 - 1 )
+#define MFT2_TOFF_1 (24000 - 1)
+
+/* TIM2 Channel 1 Timer 2 Ton and T0ff (ticks number) PWM2*/
+#define MFT1_TON_2 (16000 - 1)
+#define MFT1_TOFF_2 (16000 -1)
+
+/* TIM2 Channel 2 Timer 2 Ton and T0ff (ticks number) PWM3*/
+#define MFT2_TON_2 (4000 - 1)
+#define MFT2_TOFF_2 (28000 - 1)
+
+/* TIM2 Channel 3 Timer 2 Ton and T0ff (ticks number) PWM4*/
+#define MFT2_TON_3 (4000 - 1)
+#define MFT2_TOFF_3 (28000 - 1)
+
+void PWM_Init(void);
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_handlers.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_handlers.c
new file mode 100644
index 000000000..4c3beedc2
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_handlers.c
@@ -0,0 +1,277 @@
+/**
+ ******************************************************************************
+* @file PWM_handlers.c
+* @author BLE Mesh Team
+* @brief Handlers for PWM and other support functions.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "hal_common.h"
+#include "app_conf.h"
+#include "PWM_handlers.h"
+#include "mesh_cfg_usr.h"
+
+extern TIM_HandleTypeDef htim1;
+extern TIM_HandleTypeDef htim2;
+
+/* Global Variables */
+uint16_t DUTY;
+int NonZeroPWM0=0;
+int NonZeroPWM1=0;
+uint8_t Duty_flag_A = 0;
+uint16_t PWM0_on,
+ PWM1_on,
+ PWM2_on = MFT1_TON_2, /* Timer2, MFT1 */
+ PWM3_on = MFT2_TON_2, /* Timer2, MFT2 */
+ PWM4_on = MFT2_TON_3; /* Timer2, MFT2 */
+
+uint32_t channel = PWM3_PIN; /* It is the channel with initial lowest duty-cycle */
+uint32_t period = TIME_PERIOD; /* Period in ticks of the PWM signal */
+uint8_t channel_number = 0;
+
+uint32_t PWM_channels[] = {PWM3_PIN, PWM4_PIN}; /* Channels managed by MFT2 Timer 2 */
+uint16_t Ton_values[] = {MFT2_TON_2, MFT2_TON_3}; /* Sorted array containing duty-cycle values
+ respectively for PWM3_PIN and PWM4_PIN */
+uint16_t delta_1 = MFT2_TON_3 - MFT2_TON_2; /* Delta between the first two duty-cycles */
+uint16_t delta = MFT2_TON_3 - MFT2_TON_2;
+
+int number_of_channels = 2; /* Number of channels managed by MFT2 Timer 2 */
+int max_duty = MFT2_TON_3; /* Maximum duty-cycle */
+
+/**
+ *@brief PWM2 handler
+ *@retval None
+ */
+void PWM2_handler()
+{
+ if(__HAL_TIM_GET_FLAG(&htim1, TIM_FLAG_CC1) > 0)
+ {
+ __HAL_TIM_CLEAR_FLAG(&htim1, TIM_FLAG_CC1);
+ if(Duty_flag_A == 1)
+ {
+ HAL_GPIO_WritePin(GPIOA, PWM2_PIN, GPIO_PIN_SET);
+ Duty_flag_A = 0;
+ htim1.Instance->CCR1 = PWM2_on;
+ }
+ else
+ {
+ HAL_GPIO_WritePin(GPIOA, PWM2_PIN, GPIO_PIN_RESET);
+ Duty_flag_A = 1;
+ htim1.Instance->CCR1 = TIME_PERIOD - PWM2_on;
+ }
+ }
+}
+
+/**
+ *@brief PWM3 and PWM4 handler
+ *@retval None
+ */
+void PWM3_PWM4_handler()
+{
+ /*STATE 0
+ if delta != 0, there is a channel with a duty lower than the other one.
+ So the channel with the lower duty is cleared. Delta is period - max_duty
+ (the duty of the other channel)
+ The machine passes to STATE 1.
+
+ if delta == 0, the two channel are cleared together.
+ The machine passes to STATE 2
+
+ The delta is computed for the next timer event*/
+
+ if (channel_number < number_of_channels - 1)
+ {
+ if (delta != 0)
+ {
+// HAL_GPIO_WritePin(GPIOA, channel, GPIO_PIN_RESET);
+ htim2.Instance->CCR2 = delta - 1;
+ htim2.Instance->CCR3 = delta - 1;
+ channel_number ++;
+ delta = period - max_duty; /*computed delta for the next reset of the counter*/
+ channel = PWM_channels[channel_number];
+ }
+ else
+ {
+// HAL_GPIO_WritePin(GPIOA, PWM3_PIN |PWM4_PIN, GPIO_PIN_RESET);
+ delta = period - max_duty;
+ htim2.Instance->CCR2 = delta - 1;
+ htim2.Instance->CCR3 = delta - 1;
+ channel_number = number_of_channels;
+ }
+ }
+ /*STATE 1
+ Here the channel with the max duty-cycle is cleared. The delta is that one
+ computed in STATE 0. The machine passes to STATE 2 */
+ else if (channel_number == number_of_channels - 1)
+ {
+// HAL_GPIO_WritePin(GPIOA, channel, GPIO_PIN_RESET);
+ htim2.Instance->CCR2 = delta - 1;
+ htim2.Instance->CCR3 = delta - 1;
+ channel_number ++;
+ }
+ /*STATE 2
+ All the channels have been cleared and now are set again. The machine passes to STATE 0 */
+ else
+ { /* channel_number > number_of_channels - 1 */
+ HAL_GPIO_WritePin(GPIOA, PWM3_PIN | PWM4_PIN, GPIO_PIN_SET);
+ htim2.Instance->CCR2 = Ton_values[0] - 1;
+ htim2.Instance->CCR3 = Ton_values[1] - 1;
+ Ton_sorting();
+ channel_number = 0;
+ delta = Ton_values[1] - Ton_values[0];
+ channel = PWM_channels[0];
+ }
+}
+
+/**
+ *@brief Sorting on basis of duty cycle
+ *@retval None
+ */
+
+void Ton_sorting(void)
+{
+ if (PWM3_on > PWM4_on)
+ {
+ max_duty = PWM3_on;
+ Ton_values[1] = PWM3_on;
+ Ton_values[0] = PWM4_on;
+ PWM_channels[1] = PWM3_PIN;
+ PWM_channels[0] = PWM4_PIN;
+ }
+ else
+ {
+ max_duty = PWM4_on;
+ Ton_values[0] = PWM3_on;
+ Ton_values[1] = PWM4_on;
+ PWM_channels[0] = PWM3_PIN;
+ PWM_channels[1] = PWM4_PIN;
+ }
+}
+
+
+/**
+ *@brief PWM modification
+ *@param PWM_ID: PWM number
+ *@param duty_cycle: Duty cycle at output
+ *@retval None
+ */
+void Modify_PWM(uint8_t PWM_ID, uint16_t duty_cycle)
+{
+#if (( CFG_LPM_SUPPORTED == 0) && (ENABLE_PWM_SUPPORT == 1))
+ GPIO_InitTypeDef GPIO_InitStructure1 = {0};
+
+ if (PWM_ID == 0) /* PD14 */
+ {
+ if (duty_cycle == 0 && NonZeroPWM0 == 0)
+ {
+ GPIO_InitStructure1.Pin = PWM0_PIN;
+ GPIO_InitStructure1.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStructure1.Pull = GPIO_NOPULL;
+ GPIO_InitStructure1.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStructure1);
+ HAL_GPIO_WritePin(GPIOD, PWM0_PIN, GPIO_PIN_RESET);
+
+ NonZeroPWM0=1;
+ }
+ else if ((duty_cycle != 0 && NonZeroPWM0 == 1))
+ {
+ GPIO_InitStructure1.Pin = PWM0_PIN;
+ GPIO_InitStructure1.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStructure1.Pull = GPIO_PULLUP;
+ GPIO_InitStructure1.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ GPIO_InitStructure1.Alternate = GPIO_AF1_TIM1;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStructure1);
+
+ NonZeroPWM0=0;
+ }
+ }
+ else if((PWM_ID == 1)) /* GPIO3 */
+ {
+ if (duty_cycle == 0 && NonZeroPWM1 == 0)
+ {
+ GPIO_InitStructure1.Pin = PWM1_PIN;
+ GPIO_InitStructure1.Mode = GPIO_MODE_OUTPUT_PP;
+ GPIO_InitStructure1.Pull = GPIO_NOPULL;
+ GPIO_InitStructure1.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStructure1);
+ HAL_GPIO_WritePin(GPIOD, PWM1_PIN, GPIO_PIN_RESET);
+
+ NonZeroPWM1=1;
+ }
+ else if ((duty_cycle != 0 && NonZeroPWM1 == 1))
+ {
+ GPIO_InitStructure1.Pin = PWM1_PIN;
+ GPIO_InitStructure1.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStructure1.Pull = GPIO_PULLUP;
+ GPIO_InitStructure1.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ GPIO_InitStructure1.Alternate = GPIO_AF1_TIM1;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStructure1);
+
+ NonZeroPWM1=0;
+ }
+ }
+ else
+ {
+ }
+
+ DUTY = duty_cycle;
+ switch (PWM_ID)
+ {
+ case 0: /* PWM0 */
+ {
+ htim1.Instance->CCR1 = DUTY;
+ }
+ break;
+ case 1: /* PWM1 */
+ {
+ htim1.Instance->CCR2 = DUTY;
+ }
+ break;
+ case 2: /* PWM2 */
+ {
+ PWM2_on = DUTY;
+ htim2.Instance->CCR1 = PWM2_on;
+ }
+ break;
+ case 3: /* PWM3 */
+ {
+ PWM3_on = DUTY;
+ htim2.Instance->CCR2 = PWM3_on;
+ }
+ break;
+ case 4: /* PWM4 */
+ {
+ PWM4_on = DUTY;
+ htim2.Instance->CCR3 = PWM4_on;
+ }
+ break;
+ }
+#endif
+}
+
+/**
+ * @brief Period elapsed callback in non blocking mode
+ * @param htim : TIM handle
+ * @retval None
+ */
+void HAL_TIM_PWM_PulseFinishedCallback(TIM_HandleTypeDef *htim)
+{
+#if 0
+ if(htim->Instance == TIM1)
+ PWM2_handler();
+ else
+ PWM3_PWM4_handler();
+#endif
+}
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_handlers.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_handlers.h
new file mode 100644
index 000000000..2d1346363
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/PWM_handlers.h
@@ -0,0 +1,33 @@
+/**
+ ******************************************************************************
+ * @file PWM/PWM_handlers.c
+* @author SNM Application Team
+ * @brief Handlers for PWM and other support functions.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) STMicroelectronics</center></h2>
+(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#include "PWM_config.h"
+//#include "SDK_EVAL_Config.h"
+
+/* PWM2 handler */
+void PWM2_handler(void);
+
+/* PWM3 and PWM4 handler */
+void PWM3_PWM4_handler(void);
+
+/* Here the channel with the lower duty-cycle is established*/
+void Ton_sorting(void);
+
+/* Handle modifications in duty cycle */
+void Modify_PWM(uint8_t PWM_ID, uint16_t duty_cycle);
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/app_ble.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/app_ble.c
new file mode 100644
index 000000000..34539527f
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/app_ble.c
@@ -0,0 +1,672 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file app_ble.c
+ * @author MCD Application Team
+ * @brief BLE Application
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "main.h"
+
+#include "app_common.h"
+
+#include "dbg_trace.h"
+#include "ble.h"
+#include "tl.h"
+#include "app_ble.h"
+
+#include "stm32_seq.h"
+#include "shci.h"
+#include "stm32_lpm.h"
+#include "otp.h"
+
+#include "types.h"
+#include "ble_mesh.h"
+//#include "appli_mesh.h"
+#include "mesh_cfg.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+#include "stm32_lcd.h"
+#include "stm32wb5mm_dk_lcd.h"
+/* USER CODE END Includes */
+
+/* Private typedef -----------------------------------------------------------*/
+
+/**
+ * security parameters structure
+ */
+typedef struct _tSecurityParams
+{
+ /**
+ * IO capability of the device
+ */
+ uint8_t ioCapability;
+
+ /**
+ * Authentication requirement of the device
+ * Man In the Middle protection required?
+ */
+ uint8_t mitm_mode;
+
+ /**
+ * bonding mode of the device
+ */
+ uint8_t bonding_mode;
+
+ /**
+ * Flag to tell whether OOB data has
+ * to be used during the pairing process
+ */
+ uint8_t OOB_Data_Present;
+
+ /**
+ * OOB data to be used in the pairing process if
+ * OOB_Data_Present is set to TRUE
+ */
+ uint8_t OOB_Data[16];
+
+ /**
+ * this variable indicates whether to use a fixed pin
+ * during the pairing process or a passkey has to be
+ * requested to the application during the pairing process
+ * 0 implies use fixed pin and 1 implies request for passkey
+ */
+ uint8_t Use_Fixed_Pin;
+
+ /**
+ * minimum encryption key size requirement
+ */
+ uint8_t encryptionKeySizeMin;
+
+ /**
+ * maximum encryption key size requirement
+ */
+ uint8_t encryptionKeySizeMax;
+
+ /**
+ * fixed pin to be used in the pairing process if
+ * Use_Fixed_Pin is set to 1
+ */
+ uint32_t Fixed_Pin;
+
+ /**
+ * this flag indicates whether the host has to initiate
+ * the security, wait for pairing or does not have any security
+ * requirements.\n
+ * 0x00 : no security required
+ * 0x01 : host should initiate security by sending the slave security
+ * request command
+ * 0x02 : host need not send the clave security request but it
+ * has to wait for paiirng to complete before doing any other
+ * processing
+ */
+ uint8_t initiateSecurity;
+}tSecurityParams;
+
+/**
+ * global context
+ * contains the variables common to all
+ * services
+ */
+typedef struct _tBLEProfileGlobalContext
+{
+
+ /**
+ * security requirements of the host
+ */
+ tSecurityParams bleSecurityParam;
+
+ /**
+ * gap service handle
+ */
+ uint16_t gapServiceHandle;
+
+ /**
+ * device name characteristic handle
+ */
+ uint16_t devNameCharHandle;
+
+ /**
+ * appearance characteristic handle
+ */
+ uint16_t appearanceCharHandle;
+
+ /**
+ * connection handle of the current active connection
+ * When not in connection, the handle is set to 0xFFFF
+ */
+ uint16_t connectionHandle;
+
+ /**
+ * length of the UUID list to be used while advertising
+ */
+ uint8_t advtServUUIDlen;
+
+ /**
+ * the UUID list to be used while advertising
+ */
+ uint8_t advtServUUID[100];
+
+}BleGlobalContext_t;
+
+typedef struct
+{
+ BleGlobalContext_t BleApplicationContext_legacy;
+ APP_BLE_ConnStatus_t Device_Connection_Status;
+ /**
+ * ID of the Advertising Timeout
+ */
+ uint8_t Advertising_mgr_timer_Id;
+
+} BleApplicationContext_t;
+/* USER CODE BEGIN PTD */
+
+/* USER CODE END PTD */
+
+/* Private defines -----------------------------------------------------------*/
+#define APPBLE_GAP_DEVICE_NAME_LENGTH 7
+#define FAST_ADV_TIMEOUT (30*1000*1000/CFG_TS_TICK_VAL) /**< 30s */
+#define INITIAL_ADV_TIMEOUT (60*1000*1000/CFG_TS_TICK_VAL) /**< 60s */
+
+#define BD_ADDR_SIZE_LOCAL 6
+
+/* USER CODE BEGIN PD */
+#define LED_ON_TIMEOUT (0.005*1000*1000/CFG_TS_TICK_VAL) /**< 5ms */
+/* USER CODE END PD */
+
+/* Private macro -------------------------------------------------------------*/
+/* USER CODE BEGIN PM */
+
+/* USER CODE END PM */
+
+/* Private variables ---------------------------------------------------------*/
+PLACE_IN_SECTION("MB_MEM1") ALIGN(4) static TL_CmdPacket_t BleCmdBuffer;
+
+uint8_t Test_Status =0x00;
+
+static const uint8_t M_bd_addr[BD_ADDR_SIZE_LOCAL] =
+{
+ (uint8_t)((CFG_ADV_BD_ADDRESS & 0x0000000000FF)),
+ (uint8_t)((CFG_ADV_BD_ADDRESS & 0x00000000FF00) >> 8),
+ (uint8_t)((CFG_ADV_BD_ADDRESS & 0x000000FF0000) >> 16),
+ (uint8_t)((CFG_ADV_BD_ADDRESS & 0x0000FF000000) >> 24),
+ (uint8_t)((CFG_ADV_BD_ADDRESS & 0x00FF00000000) >> 32),
+ (uint8_t)((CFG_ADV_BD_ADDRESS & 0xFF0000000000) >> 40)
+};
+
+static uint8_t bd_addr_udn[BD_ADDR_SIZE_LOCAL];
+
+/**
+* Identity root key used to derive LTK and CSRK
+*/
+static const uint8_t BLE_CFG_IR_VALUE[16] = CFG_BLE_IRK;
+
+/**
+* Encryption root key used to derive LTK and CSRK
+*/
+static const uint8_t BLE_CFG_ER_VALUE[16] = CFG_BLE_ERK;
+
+PLACE_IN_SECTION("BLE_APP_CONTEXT") static BleApplicationContext_t BleApplicationContext;
+
+/* USER CODE BEGIN PV */
+
+/* USER CODE END PV */
+
+/* Extern function prototypes -----------------------------------------------*/
+extern void HCI_Event_CB(void *pckt);
+
+/* Global variables ----------------------------------------------------------*/
+const uint8_t *bd_addr;
+
+/* Private function prototypes -----------------------------------------------*/
+static void BLE_UserEvtRx( void * pPayload );
+static void BLE_StatusNot( HCI_TL_CmdStatus_t status );
+static void Ble_Tl_Init( void );
+static void Ble_Hci_Gap_Gatt_Init(void);
+static const uint8_t* BleGetBdAddress( void );
+
+/* USER CODE BEGIN PFP */
+
+/* USER CODE END PFP */
+
+/* Functions Definition ------------------------------------------------------*/
+void APP_BLE_Init( void )
+{
+/* USER CODE BEGIN APP_BLE_Init_1 */
+ char BdAddress[20];
+ const uint8_t *bdaddr;
+/* USER CODE END APP_BLE_Init_1 */
+ SHCI_C2_Ble_Init_Cmd_Packet_t ble_init_cmd_packet =
+ {
+ {{0,0,0}}, /**< Header unused */
+ {0, /** pBleBufferAddress not used */
+ 0, /** BleBufferSize not used */
+ CFG_BLE_NUM_GATT_ATTRIBUTES,
+ CFG_BLE_NUM_GATT_SERVICES,
+ CFG_BLE_ATT_VALUE_ARRAY_SIZE,
+ CFG_BLE_NUM_LINK,
+ CFG_BLE_DATA_LENGTH_EXTENSION,
+ CFG_BLE_PREPARE_WRITE_LIST_SIZE,
+ CFG_BLE_MBLOCK_COUNT,
+ CFG_BLE_MAX_ATT_MTU,
+ CFG_BLE_SLAVE_SCA,
+ CFG_BLE_MASTER_SCA,
+ CFG_BLE_LSE_SOURCE,
+ CFG_BLE_MAX_CONN_EVENT_LENGTH,
+ CFG_BLE_HSE_STARTUP_TIME,
+ CFG_BLE_VITERBI_MODE,
+ CFG_BLE_OPTIONS,
+ 0,
+ CFG_BLE_MAX_COC_INITIATOR_NBR,
+ CFG_BLE_MIN_TX_POWER,
+ CFG_BLE_MAX_TX_POWER,
+ CFG_BLE_RX_MODEL_CONFIG}
+ };
+
+ /**
+ * Initialize Ble Transport Layer
+ */
+ Ble_Tl_Init( );
+
+ /**
+ * Do not allow standby in the application
+ */
+ UTIL_LPM_SetOffMode(1 << CFG_LPM_APP_BLE, UTIL_LPM_DISABLE);
+
+ /**
+ * Do not allow stop mode in the application
+ */
+#if (LOW_POWER_FEATURE == 0)
+ UTIL_LPM_SetStopMode(1 << CFG_LPM_APP_BLE, UTIL_LPM_DISABLE);
+#endif
+
+ /**
+ * Register the hci transport layer to handle BLE User Asynchronous Events
+ */
+ UTIL_SEQ_RegTask( 1<<CFG_TASK_HCI_ASYNCH_EVT_ID, UTIL_SEQ_RFU, hci_user_evt_proc);
+
+ /**
+ * Starts the BLE Stack on CPU2
+ */
+ if (SHCI_C2_BLE_Init( &ble_init_cmd_packet ) != SHCI_Success)
+ {
+ Error_Handler();
+ }
+
+ /**
+ * Initialization of HCI & GATT & GAP layer
+ */
+ Ble_Hci_Gap_Gatt_Init();
+
+ /**
+ * Initialization of the BLE Services
+ */
+ SVCCTL_Init();
+
+ /**
+ * Initialization of the BLE App Context
+ */
+ BleApplicationContext.Device_Connection_Status = APP_BLE_IDLE;
+ BleApplicationContext.BleApplicationContext_legacy.connectionHandle = 0xFFFF;
+
+ /*Radio mask Activity*/
+#if(RADIO_ACTIVITY_EVENT != 0)
+ aci_hal_set_radio_activity_mask(0x00FF);
+#endif
+
+ BleApplicationContext.Device_Connection_Status = APP_BLE_FAST_ADV;
+
+/* USER CODE BEGIN APP_BLE_Init_2 */
+ bdaddr= BleGetBdAddress();
+ sprintf(BdAddress, "BD_ad=%02x%02x%02x%02x%02x%02x", bdaddr[5],bdaddr[4],bdaddr[3],bdaddr[2],bdaddr[1],bdaddr[0]);
+ UTIL_LCD_DisplayStringAtLine(1, (uint8_t *)BdAddress);
+ BSP_LCD_Refresh(0);
+/* USER CODE END APP_BLE_Init_2 */
+ return;
+}
+
+SVCCTL_UserEvtFlowStatus_t SVCCTL_App_Notification( void *pckt )
+{
+ /* callback of mesh Library to receive all GAP/GATT events*/
+ HCI_Event_CB(pckt);
+
+#if (LOW_POWER_FEATURE == 1)
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_MESH_REQ_ID, CFG_SCH_PRIO_0);
+#endif
+
+ return (SVCCTL_UserEvtFlowEnable);
+}
+
+/*************************************************************
+ *
+ * LOCAL FUNCTIONS
+ *
+ *************************************************************/
+static void Ble_Tl_Init( void )
+{
+ HCI_TL_HciInitConf_t Hci_Tl_Init_Conf;
+
+ Hci_Tl_Init_Conf.p_cmdbuffer = (uint8_t*)&BleCmdBuffer;
+ Hci_Tl_Init_Conf.StatusNotCallBack = BLE_StatusNot;
+ hci_init(BLE_UserEvtRx, (void*) &Hci_Tl_Init_Conf);
+
+ return;
+}
+
+static void Ble_Hci_Gap_Gatt_Init(void){
+
+ uint8_t role;
+ uint8_t index;
+ uint16_t gap_service_handle, gap_dev_name_char_handle, gap_appearance_char_handle;
+ const uint8_t *bd_addr;
+ uint32_t srd_bd_addr[2];
+#ifndef BLE_CFG_MESH
+ const uint8_t mode = BLE_CFG_DATA_ROLE_MODE;
+#endif
+ uint16_t appearance[1] = { BLE_CFG_GAP_APPEARANCE };
+
+ /**
+ * Initialize HCI layer
+ */
+ /*HCI Reset to synchronise BLE Stack*/
+ hci_reset();
+
+ /**
+ * Write the BD Address
+ */
+
+ bd_addr = BleGetBdAddress();
+ aci_hal_write_config_data(CONFIG_DATA_PUBADDR_OFFSET,
+ CONFIG_DATA_PUBADDR_LEN,
+ (uint8_t*) bd_addr);
+
+ /**
+ * Static random Address
+ * The two upper bits shall be set to 1
+ * The lowest 32bits is read from the UDN to differentiate between devices
+ * The RNG may be used to provide a random number on each power on
+ */
+ srd_bd_addr[1] = 0x0000ED6E;
+ srd_bd_addr[0] = LL_FLASH_GetUDN( );
+ aci_hal_write_config_data( CONFIG_DATA_RANDOM_ADDRESS_OFFSET, CONFIG_DATA_RANDOM_ADDRESS_LEN, (uint8_t*)srd_bd_addr );
+
+ /**
+ * Write Identity root key used to derive LTK and CSRK
+ */
+ aci_hal_write_config_data( CONFIG_DATA_IR_OFFSET, CONFIG_DATA_IR_LEN, (uint8_t*)BLE_CFG_IR_VALUE );
+
+ /**
+ * Write Encryption root key used to derive LTK and CSRK
+ */
+ aci_hal_write_config_data( CONFIG_DATA_ER_OFFSET, CONFIG_DATA_ER_LEN, (uint8_t*)BLE_CFG_ER_VALUE );
+
+#ifndef BLE_CFG_MESH
+ /**
+ * Write the Role
+ */
+ aci_hal_write_config_data(CONFIG_DATA_ROLE,
+ CONFIG_DATA_ROLE_LEN,
+ (uint8_t*) &mode);
+#endif
+
+ /**
+ * Set TX Power to 0dBm.
+ */
+ aci_hal_set_tx_power_level(1, CFG_TX_POWER);
+
+ /**
+ * Initialize GATT interface
+ */
+ aci_gatt_init();
+
+ /**
+ * Initialize GAP interface
+ */
+ role = 0;
+
+#if (BLE_CFG_PERIPHERAL == 1)
+ role |= GAP_PERIPHERAL_ROLE;
+#endif
+
+#if (BLE_CFG_CENTRAL == 1)
+ role |= GAP_CENTRAL_ROLE;
+#endif
+
+#ifdef BLE_CFG_MESH
+#if (BLE_CFG_BROADCASTER == 1)
+ role |= GAP_BROADCASTER_ROLE;
+#endif
+
+#if (BLE_CFG_OBSERVER == 1)
+ role |= GAP_OBSERVER_ROLE;
+#endif
+#endif
+
+ if (role > 0)
+ {
+ const char *name = "STM32WB";
+ aci_gap_init(role, 0,
+ APPBLE_GAP_DEVICE_NAME_LENGTH,
+ &gap_service_handle, &gap_dev_name_char_handle, &gap_appearance_char_handle);
+
+ if (aci_gatt_update_char_value(gap_service_handle, gap_dev_name_char_handle, 0, strlen(name), (uint8_t *) name))
+ {
+ BLE_DBG_SVCCTL_MSG("Device Name aci_gatt_update_char_value failed.\n");
+ }
+ }
+
+ if(aci_gatt_update_char_value(gap_service_handle,
+ gap_appearance_char_handle,
+ 0,
+ 2,
+ (uint8_t *)&appearance))
+ {
+ BLE_DBG_SVCCTL_MSG("Appearance aci_gatt_update_char_value failed.\n");
+ }
+/**
+ * Initialize Default PHY
+ */
+ hci_le_set_default_phy(ALL_PHYS_PREFERENCE,TX_2M_PREFERRED,RX_2M_PREFERRED);
+
+ /**
+ * Initialize IO capability
+ */
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.ioCapability = CFG_IO_CAPABILITY;
+ aci_gap_set_io_capability(BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.ioCapability);
+
+ /**
+ * Initialize authentication
+ */
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.mitm_mode = CFG_MITM_PROTECTION;
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.OOB_Data_Present = 0;
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMin = CFG_ENCRYPTION_KEY_SIZE_MIN;
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMax = CFG_ENCRYPTION_KEY_SIZE_MAX;
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Use_Fixed_Pin = CFG_USED_FIXED_PIN;
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Fixed_Pin = CFG_FIXED_PIN;
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.bonding_mode = CFG_BONDING_MODE;
+ for (index = 0; index < 16; index++)
+ {
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.OOB_Data[index] = (uint8_t) index;
+ }
+
+ aci_gap_set_authentication_requirement(BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.bonding_mode,
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.mitm_mode,
+ CFG_SC_SUPPORT,
+ CFG_KEYPRESS_NOTIFICATION_SUPPORT,
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMin,
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMax,
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Use_Fixed_Pin,
+ BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Fixed_Pin,
+ PUBLIC_ADDR
+ );
+
+ /**
+ * Initialize whitelist
+ */
+ if (BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.bonding_mode)
+ {
+ aci_gap_configure_whitelist();
+ }
+}
+
+const uint8_t* BleGetBdAddress( void )
+{
+ uint8_t *otp_addr;
+ const uint8_t *bd_addr;
+ uint32_t udn;
+ uint32_t company_id;
+ uint32_t device_id;
+
+ udn = LL_FLASH_GetUDN();
+
+ if(udn != 0xFFFFFFFF)
+ {
+ company_id = LL_FLASH_GetSTCompanyID();
+ device_id = LL_FLASH_GetDeviceID();
+
+ bd_addr_udn[0] = (uint8_t)(udn & 0x000000FF);
+ bd_addr_udn[1] = (uint8_t)( (udn & 0x0000FF00) >> 8 );
+ bd_addr_udn[2] = (uint8_t)( (udn & 0x00FF0000) >> 16 );
+ bd_addr_udn[3] = (uint8_t)device_id;
+ bd_addr_udn[4] = (uint8_t)(company_id & 0x000000FF);;
+ bd_addr_udn[5] = (uint8_t)( (company_id & 0x0000FF00) >> 8 );
+
+ bd_addr = (const uint8_t *)bd_addr_udn;
+ }
+ else
+ {
+ otp_addr = OTP_Read(0);
+ if(otp_addr)
+ {
+ bd_addr = ((OTP_ID0_t*)otp_addr)->bd_address;
+ }
+ else
+ {
+ bd_addr = M_bd_addr;
+ }
+
+ }
+
+ return bd_addr;
+}
+
+/* USER CODE BEGIN FD_LOCAL_FUNCTION */
+
+/* USER CODE END FD_LOCAL_FUNCTION */
+
+/*************************************************************
+ *
+ *SPECIFIC FUNCTIONS
+ *
+ *************************************************************/
+/* USER CODE BEGIN FD_SPECIFIC_FUNCTIONS */
+
+/* USER CODE END FD_SPECIFIC_FUNCTIONS */
+/*************************************************************
+ *
+ * WRAP FUNCTIONS
+ *
+ *************************************************************/
+void hci_notify_asynch_evt(void* pdata)
+{
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_HCI_ASYNCH_EVT_ID, CFG_SCH_PRIO_0);
+ return;
+}
+
+#if (LOW_POWER_FEATURE == 1)
+static volatile uint8_t HciResponse = 0;
+#endif
+
+void hci_cmd_resp_release(uint32_t flag)
+{
+#if (LOW_POWER_FEATURE == 0)
+ UTIL_SEQ_SetEvt(1 << CFG_IDLEEVT_HCI_CMD_EVT_RSP_ID);
+#else
+ HciResponse = 1;
+#endif
+ return;
+}
+
+void hci_cmd_resp_wait(uint32_t timeout)
+{
+#if (LOW_POWER_FEATURE == 0)
+ UTIL_SEQ_WaitEvt(1 << CFG_IDLEEVT_HCI_CMD_EVT_RSP_ID);
+#else
+ while(HciResponse == 0);
+ HciResponse = 0;
+#endif
+ return;
+}
+
+static void BLE_UserEvtRx( void * pPayload )
+{
+ SVCCTL_UserEvtFlowStatus_t svctl_return_status;
+ tHCI_UserEvtRxParam *pParam;
+
+ pParam = (tHCI_UserEvtRxParam *)pPayload;
+
+ svctl_return_status = SVCCTL_UserEvtRx((void *)&(pParam->pckt->evtserial));
+ if (svctl_return_status != SVCCTL_UserEvtFlowDisable)
+ {
+ pParam->status = HCI_TL_UserEventFlow_Enable;
+ }
+ else
+ {
+ pParam->status = HCI_TL_UserEventFlow_Disable;
+ }
+}
+
+static void BLE_StatusNot( HCI_TL_CmdStatus_t status )
+{
+ uint32_t task_id_list;
+ switch (status)
+ {
+ case HCI_TL_CmdBusy:
+ /**
+ * All tasks that may send an aci/hci commands shall be listed here
+ * This is to prevent a new command is sent while one is already pending
+ */
+ task_id_list = (1 << CFG_LAST_TASK_ID_WITH_HCICMD) - 1;
+ UTIL_SEQ_PauseTask(task_id_list);
+
+ break;
+
+ case HCI_TL_CmdAvailable:
+ /**
+ * All tasks that may send an aci/hci commands shall be listed here
+ * This is to prevent a new command is sent while one is already pending
+ */
+ task_id_list = (1 << CFG_LAST_TASK_ID_WITH_HCICMD) - 1;
+ UTIL_SEQ_ResumeTask(task_id_list);
+
+ break;
+
+ default:
+ break;
+ }
+ return;
+}
+
+void SVCCTL_ResumeUserEventFlow( void )
+{
+ hci_resume_flow();
+ return;
+}
+
+/* USER CODE BEGIN FD_WRAP_FUNCTIONS */
+
+/* USER CODE END FD_WRAP_FUNCTIONS */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/app_ble.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/app_ble.h
new file mode 100644
index 000000000..629ef1bb7
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/app_ble.h
@@ -0,0 +1,76 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file app_ble.h
+ * @author MCD Application Team
+ * @brief Header for ble application
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef APP_BLE_H
+#define APP_BLE_H
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+#include "hci_tl.h"
+
+/* Private includes ----------------------------------------------------------*/
+/* USER CODE BEGIN Includes */
+
+/* USER CODE END Includes */
+
+/* Exported types ------------------------------------------------------------*/
+
+typedef enum
+{
+ APP_BLE_IDLE,
+ APP_BLE_FAST_ADV,
+ APP_BLE_LP_ADV,
+ APP_BLE_SCAN,
+ APP_BLE_LP_CONNECTING,
+ APP_BLE_CONNECTED_SERVER,
+ APP_BLE_CONNECTED_CLIENT
+} APP_BLE_ConnStatus_t;
+
+/* USER CODE BEGIN ET */
+
+/* USER CODE END ET */
+
+/* Exported constants --------------------------------------------------------*/
+/* USER CODE BEGIN EC */
+
+/* USER CODE END EC */
+
+/* External variables --------------------------------------------------------*/
+/* USER CODE BEGIN EV */
+
+/* USER CODE END EV */
+
+/* Exported macro ------------------------------------------------------------*/
+/* USER CODE BEGIN EM */
+
+/* USER CODE END EM */
+
+/* Exported functions ---------------------------------------------*/
+void APP_BLE_Init( void );
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*APP_BLE_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config.c
new file mode 100644
index 000000000..7440fb163
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config.c
@@ -0,0 +1,355 @@
+/**
+ ******************************************************************************
+* @file appli_config.c
+* @author BLE Mesh Team
+* @brief Config Model APIs callback from ST BLE Mesh Library
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* Includes ------------------------------------------------------------------*/
+#include <string.h>
+#include "hal_common.h"
+#include "ble_mesh.h"
+#include "appli_config.h"
+#include "mesh_cfg.h"
+
+/** @addtogroup ST_BLE_Mesh
+* @{
+*/
+
+/** @addtogroup Application_Mesh_Models
+* @{
+*/
+
+/* Private define ------------------------------------------------------------*/
+
+/* Private macro -------------------------------------------------------------*/
+
+/* Private variables ---------------------------------------------------------*/
+
+
+/*****************************Config Model Callbacks***************************/
+/**
+* @brief Callback from Config Model to receive the AppKey Add Command
+* @param Structure Pointer having parameters - netKeyIndex, appKeyIndex
+* appKey, keySize & status
+* @retval none
+*/
+void Appli_GetAppKeyAddParamsCb(model_securityKeyParams_t* appKeyAddParams)
+{
+ TRACE_I(TF_CONFIG_SERVER,"AppKey Add received for netKeyIndex %.2x, appKeyIndex %.2x \r\n",\
+ appKeyAddParams->netKeyIndex, appKeyAddParams->appKeyIndex);
+
+ TRACE_I(TF_CONFIG_SERVER,"Status is : %.2x \r\n", appKeyAddParams->status);
+ /*Success Command*/
+ if(appKeyAddParams->status == 0x00)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"AppKey is: ");
+ for (MOBLEUINT8 count=0 ; count<appKeyAddParams->keySize; count++)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"%.2x", *(appKeyAddParams->appKey));
+ appKeyAddParams->appKey++;
+ }
+ TRACE_I(TF_CONFIG_SERVER," \r\n");
+ }
+}
+
+/**
+* @brief Callback from Config Model to receive the AppKey Delete Command
+* @param Structure Pointer having parameters - netKeyIndex, appKeyIndex
+* appKey, keySize & status
+* @retval none
+*/
+void Appli_GetAppKeyDeleteParamsCb(model_securityKeyParams_t* appKeyDeleteParams)
+{
+ TRACE_I(TF_CONFIG_SERVER,"App Key Delete received for netKeyIndex %.2x, appKeyIndex %.2x \r\n",\
+ appKeyDeleteParams->netKeyIndex, appKeyDeleteParams->appKeyIndex);
+
+ TRACE_I(TF_CONFIG_SERVER,"Status is : %.2x \r\n", appKeyDeleteParams->status);
+}
+
+/**
+* @brief Callback from Config Model to receive the AppKey List
+* @param Structure Pointer having parameters - netKeyIndex, appKeyIndexes & appKeyListParams Size
+* @retval none
+*/
+void Appli_GetAppKeyListParamsCb(model_appKeyListParams_t* appKeyListParams)
+{
+ TRACE_I(TF_CONFIG_SERVER,"App Key List for netKeyIndex %.2x is \r\n", appKeyListParams->netKeyIndex);
+ TRACE_I(TF_CONFIG_SERVER,"Status is : %.2x \r\n", appKeyListParams->status);
+ /*Success*/
+ if(appKeyListParams->status == 0x00)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"AppKey Indexes are: \r\n");
+ for (MOBLEUINT8 count=0 ; count< appKeyListParams->appKeyIndexList_size; count++)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"%.2x", *(appKeyListParams->appKeyIndexList));
+ appKeyListParams->appKeyIndexList++;
+ }
+ TRACE_I(TF_CONFIG_SERVER," \r\n");
+ }
+}
+
+/**
+* @brief Callback from Config Model to receive the Updated App Key
+* @param Structure Pointer having parameters - netKeyIndex, appKeyIndex
+* appKey, keySize & status
+* @retval none
+*/
+void Appli_GetAppKeyUpdateParamsCb(model_securityKeyParams_t* appKeyUpdatedParams)
+{
+ TRACE_I(TF_CONFIG_SERVER,"App Key Update received for netKeyIndex %.2x, appKeyIndex %.2x \r\n",\
+ appKeyUpdatedParams->netKeyIndex, appKeyUpdatedParams->appKeyIndex);
+
+ TRACE_I(TF_CONFIG_SERVER,"Status is : %.2x \r\n", appKeyUpdatedParams->status);
+
+ /*Success Command*/
+ if(appKeyUpdatedParams->status == 0x00)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"Updated AppKey is: ");
+ for (MOBLEUINT8 count=0 ; count<appKeyUpdatedParams->keySize; count++)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"%.2x", *(appKeyUpdatedParams->appKey));
+ appKeyUpdatedParams->appKey++;
+ }
+ TRACE_I(TF_CONFIG_SERVER," \r\n");
+ TRACE_I(TF_CONFIG_SERVER,"It will be replaced by old appKey after Key Refresh \r\n");
+ }
+
+}
+
+/**
+* @brief Callback from Config Model to receive the NetKey Add Command
+* @param Structure Pointer having parameters - netKeyIndex & netKey
+* @retval none
+*/
+void Appli_GetNetKeyAddParamsCb(model_securityKeyParams_t* netKeyAddParams)
+{
+ TRACE_I(TF_CONFIG_SERVER,"Net Key Add received for netKeyIndex %.2x \r\n",\
+ netKeyAddParams->netKeyIndex);
+
+ TRACE_I(TF_CONFIG_SERVER,"Status is : %.2x \r\n", netKeyAddParams->status);
+
+ /*Success Command*/
+ if(netKeyAddParams->status == 0x00)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"NetKey is: ");
+ for (MOBLEUINT8 count=0 ; count < netKeyAddParams->keySize; count++)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"%.2x", *(netKeyAddParams->netKey));
+ netKeyAddParams->netKey++;
+ }
+ TRACE_I(TF_CONFIG_SERVER," \r\n");
+ }
+}
+
+/**
+* @brief Callback from Config Model to receive the NetKey Delete Command
+* @param Structure Pointer having parameters - netKeyIndex & netKey
+* @retval none
+*/
+void Appli_GetNetKeyDeleteParamsCb(model_securityKeyParams_t* netKeyDeleteParams)
+{
+ TRACE_I(TF_CONFIG_SERVER,"Net Key Delete received for netKeyIndex %d \r\n",\
+ netKeyDeleteParams->netKeyIndex);
+ TRACE_I(TF_CONFIG_SERVER,"Status is : %.2x \r\n", netKeyDeleteParams->status);
+}
+
+/**
+* @brief Callback from Config Model to receive the NetKey List
+* @param Structure Pointer having parameters - netKeyIndexes & netKeyListParams Size
+* @retval none
+*/
+void Appli_GetNetKeyListParamsCb(model_netKeyListParams_t* netKeyListParams)
+{
+ TRACE_I(TF_CONFIG_SERVER,"Status is : %.2x \r\n", netKeyListParams->status);
+ TRACE_I(TF_CONFIG_SERVER,"NetKey Indexes are: \r\n");
+ for (MOBLEUINT8 count=0 ; count< netKeyListParams->netKeyIndexList_size; count++)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"%.2x", *(netKeyListParams->netKeyIndexList));
+ netKeyListParams->netKeyIndexList++;
+ }
+ TRACE_I(TF_CONFIG_SERVER," \r\n");
+}
+
+
+/**
+* @brief Callback from Config Model to receive the Updated NetKey Command
+* @param Structure Pointer having parameters - netKeyIndex & netKey
+* @retval none
+*/
+void Appli_GetNetKeyUpdateParamsCb(model_securityKeyParams_t* netKeyUpdatedParams)
+{
+ TRACE_I(TF_CONFIG_SERVER,"Net Key Update received for netKeyIndex %d \r\n",\
+ netKeyUpdatedParams->netKeyIndex);
+
+ TRACE_I(TF_CONFIG_SERVER,"Status is : %.2x \r\n", netKeyUpdatedParams->status);
+ if(netKeyUpdatedParams->status == 0)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"Updated NetKey is:");
+ for (MOBLEUINT8 count=0; count<netKeyUpdatedParams->keySize; count++)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"%.2x", *(netKeyUpdatedParams->netKey));
+ netKeyUpdatedParams->netKey++;
+ }
+ TRACE_I(TF_CONFIG_SERVER," \r\n");
+ TRACE_I(TF_CONFIG_SERVER,"It will be replaced by old netKey after Key Refresh \r\n");
+ }
+}
+
+/**
+* @brief Callback from Config Model to receive the AppKey binding params
+* @param Structure Pointer having parameters - elementIndex, appKeyIndex & modelID
+* @retval none
+*/
+void Appli_GetAppKeyBindingParamsCb(model_appKeyBindingParams_t* appKeyBindParams)
+{
+ TRACE_I(TF_CONFIG_SERVER,"AppKey binding received for elementIndex %d, modelID %.2lx,\
+ appKeyIndex %.2x & status %.2x \r\n", appKeyBindParams->elementIndex,\
+ appKeyBindParams->modelID, appKeyBindParams->appKeyIndex, appKeyBindParams->status);
+}
+
+/**
+* @brief Callback from Config Model to receive the AppKey Unbinding params
+* @param Structure Pointer having parameters - elementIndex, appKeyIndex & modelID
+* @retval none
+*/
+void Appli_GetAppKeyUnBindingParamsCb(model_appKeyBindingParams_t* appKeyUnbindParams)
+{
+ TRACE_I(TF_CONFIG_SERVER,"AppKey unbinding received for elementIndex %d, modelID %.2lx,\
+ appKeyIndex %.2x & status %.2x \r\n",appKeyUnbindParams->elementIndex,\
+ appKeyUnbindParams->modelID, appKeyUnbindParams->appKeyIndex,\
+ appKeyUnbindParams->status);
+}
+
+/**
+* @brief Callback from Config Model to receive the Subscription Add params
+* @param Structure Pointer having parameters - elementIndex, appKeyIndex, modelID
+* subAddress, isVirtual & allSubDeleted
+* @retval none
+*/
+void Appli_GetSubAddParamsCb(model_subParams_t* subAddParams)
+{
+
+ TRACE_I(TF_CONFIG_SERVER,"Status is : %.2x \r\n", subAddParams->status);
+ if(subAddParams->isVirtual)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"Subscription Virtual Add received for elementIndex %d, modelID %.2lx & subAddress %.2x \r\n",\
+ subAddParams->elementIndex, subAddParams->modelID,\
+ subAddParams->subAddress);
+ }
+
+ else
+ {
+ TRACE_I(TF_CONFIG_SERVER,"Subscription Add received for elementIndex %d, modelID %.2lx & subAddress %.2x \r\n",\
+ subAddParams->elementIndex, subAddParams->modelID,\
+ subAddParams->subAddress);
+ }
+}
+
+/**
+* @brief Callback from Config Model to receive the Subscription Delete params
+* @param Structure Pointer having parameters - elementIndex, appKeyIndex, modelID
+* subAddress, isVirtual & allSubDeleted
+* @retval none
+*/
+void Appli_GetSubDeleteParamsCb(model_subParams_t* subDeleteParams)
+{
+ TRACE_I(TF_CONFIG_SERVER,"Status is : %.2x \r\n", subDeleteParams->status);
+ if(subDeleteParams->isVirtual)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"Subscription Virtual Add Delete received for elementIndex %d, modelID %.2lx & subAddress %.2x \r\n",\
+ subDeleteParams->elementIndex, subDeleteParams->modelID,\
+ subDeleteParams->subAddress);
+
+ }
+
+ else if(subDeleteParams->allSubDeleted)
+ {
+
+ TRACE_I(TF_CONFIG_SERVER,"Delete All Subscription received for elementIndex %d, modelID %.2lx \r\n",\
+ subDeleteParams->elementIndex, subDeleteParams->modelID);
+
+ }
+ else
+ {
+ TRACE_I(TF_CONFIG_SERVER,"Subscription Delete received for elementIndex %d, modelID %.2lx & subAddress %.2x \r\n",\
+ subDeleteParams->elementIndex, subDeleteParams->modelID,\
+ subDeleteParams->subAddress);
+ }
+}
+
+/**
+* @brief Callback from Config Model to receive the Subscription Overwrite params
+* @param Structure Pointer having parameters - elementIndex, appKeyIndex, modelID
+* subAddress, isVirtual & allSubDeleted
+* @retval none
+*/
+void Appli_GetSubOverwriteParamsCb(model_subParams_t* subOverwriteParams)
+{
+ TRACE_I(TF_CONFIG_SERVER,"Status is : %.2x \r\n", subOverwriteParams->status);
+ if(subOverwriteParams->isVirtual)
+ {
+ TRACE_I(TF_CONFIG_SERVER,"Subscription Virtual Overwrite received for elementIndex %d, modelID %.2lx & subAddress %.2x \r\n",\
+ subOverwriteParams->elementIndex, subOverwriteParams->modelID,\
+ subOverwriteParams->subAddress);
+
+ }
+
+ else
+ {
+ TRACE_I(TF_CONFIG_SERVER,"Subscription Overwrite received for elementIndex %d, modelID %.2lx & subAddress %.2x \r\n",\
+ subOverwriteParams->elementIndex, subOverwriteParams->modelID,\
+ subOverwriteParams->subAddress);
+ }
+}
+
+/**
+* @brief Callback from Config Model to receive the Publication Parameters
+* @param Structure Pointer having parameters - modelID, elementAddress,
+* Publish Address, PublishPeriod, PublishTTL, Credential Flag,
+* Publish AppKeyIndex, Retransmit Count, Restransmit Interval Steps & status
+* @retval none
+*/
+void Appli_GetPublicationSetParamsCb(model_publicationparams_t* pPubParameters)
+{
+ if(pPubParameters->modelID == SENSOR_SERVER_MODEL_ID)
+ {
+ Sensor_ModelPublishSet(pPubParameters);
+ }
+}
+
+/**
+* @brief Callback from Config Model to receive the Publication Parameters
+* @param Structure Pointer having parameters - modelID, elementAddress,
+* Publish Address, PublishPeriod, PublishTTL, Credential Flag,
+* Publish AppKeyIndex, Retransmit Count, Restransmit Interval Steps & status
+* @retval none
+*/
+void Appli_GetPublicationGetParamsCb(model_publicationparams_t* pPubParameters)
+{
+ TRACE_I(TF_CONFIG_SERVER,"Status is : %.2x \r\n", pPubParameters->status);
+ TRACE_I(TF_CONFIG_SERVER,"Received Publication parameters: credentialFlag = %.2x,\
+ elementAddress = %.2x, modelID = %.2lx, appKeyIndex = %.2x,\
+ publishPeriod = %.2x, publishRetransmitCount = %.2x, publishRetransmitIntervalSteps = %.2x,\
+ publishTTL = %.2x \r\n", pPubParameters->credentialFlag, pPubParameters->elementAddress, pPubParameters->modelID,\
+ pPubParameters->publishAppKeyIndex, pPubParameters->publishPeriod, pPubParameters->publishRetransmitCount,\
+ pPubParameters->publishRetransmitIntervalSteps, pPubParameters->publishTTL);
+}
+
+/**
+* @}
+*/
+
+/**
+* @}
+*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config.h
new file mode 100644
index 000000000..ac0fb660c
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config.h
@@ -0,0 +1,50 @@
+/**
+ ******************************************************************************
+* @file appli_config.h
+* @author BLE Mesh Team
+* @brief Header file for the application config file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APPLI_CONFIG_H
+#define __APPLI_CONFIG_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+#include "mesh_cfg.h"
+#include "mesh_cfg_usr.h"
+#include "sensors.h"
+#include "common.h"
+/* Exported macro ------------------------------------------------------------*/
+/* Exported variables ------------------------------------------------------- */
+
+/* Exported Functions Prototypes ---------------------------------------------*/
+void Appli_GetAppKeyAddParamsCb(model_securityKeyParams_t*);
+void Appli_GetAppKeyDeleteParamsCb(model_securityKeyParams_t*);
+void Appli_GetAppKeyListParamsCb(model_appKeyListParams_t*);
+void Appli_GetAppKeyUpdateParamsCb(model_securityKeyParams_t*);
+void Appli_GetNetKeyAddParamsCb(model_securityKeyParams_t*);
+void Appli_GetNetKeyDeleteParamsCb(model_securityKeyParams_t*);
+void Appli_GetNetKeyListParamsCb(model_netKeyListParams_t*);
+void Appli_GetNetKeyUpdateParamsCb(model_securityKeyParams_t*);
+void Appli_GetAppKeyBindingParamsCb(model_appKeyBindingParams_t*);
+void Appli_GetAppKeyUnBindingParamsCb(model_appKeyBindingParams_t*);
+void Appli_GetSubAddParamsCb(model_subParams_t*);
+void Appli_GetSubDeleteParamsCb(model_subParams_t*);
+void Appli_GetSubOverwriteParamsCb(model_subParams_t*);
+void Appli_GetPublicationSetParamsCb(model_publicationparams_t*);
+void Appli_GetPublicationGetParamsCb(model_publicationparams_t*);
+
+#endif /* __APPLI_CONFIG_H */
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config_client.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config_client.c
new file mode 100644
index 000000000..d0584e763
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config_client.c
@@ -0,0 +1,1915 @@
+/**
+ ******************************************************************************
+ * @file appli_config_client.c
+ * @author BLE Mesh Team
+ * @brief Application interface for Config CLient Mesh Model
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "hal_common.h"
+#include "types.h"
+#include "appli_generic.h"
+#include "appli_light.h"
+#include "common.h"
+#include "mesh_cfg.h"
+#include "mesh_cfg_usr.h"
+#include "appli_nvm.h"
+#include "config_client.h"
+#include "appli_config_client.h"
+#include "appli_mesh.h"
+#include "sensors.h"
+#include "light_lc.h"
+#include "vendor.h"
+
+/** @addtogroup ST_BLE_Mesh
+* @{
+*/
+
+/** @addtogroup Application_Mesh_Models
+* @{
+*/
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+
+#define DEFAULT_GROUP_ADDR 0xC000
+#define DEFAULT_PUBLISH_ADDR 0xC000
+#define DEFAULT_NETKEY_INDEX 0x0000
+#define DEFAULT_APPKEY_INDEX 0x0000
+#define DEFAULT_CREDENTIAL_FLAG 0x00
+#define DEFAULT_PUBLISH_TTL 0x08
+#define DEFAULT_PUBLISH_PERIOD 0x00
+#define DEFAULT_PUBLISH_RETRANSMIT_COUNT 0x00
+#define DEFAULT_PUBLISH_RETRANSMIT_INTERVAL_STEPS 0x00
+
+#define NUM_VENDOR_MODELS_TO_SUBSCRIBE 0
+#define NUM_VENDOR_MODELS_TO_PUBLISH 0
+#define NUM_VENDOR_MODELS_TO_BIND_APP 0
+
+/******************************************************************************/
+#if defined (ENABLE_PROVISIONER_FEATURE) || defined(DYNAMIC_PROVISIONER)
+/******************************************************************************/
+
+const MOBLEUINT8 aConfigAppKeyDefault[19]=
+ { /* NetKeyIndexAndAppKeyIndex : 3B
+ Index of the NetKey and index of the AppKey*/
+ (MOBLEUINT8)(DEFAULT_NETKEY_INDEX & 0x00ff),
+ (MOBLEUINT8)((DEFAULT_NETKEY_INDEX & 0x0f00) >> 8) | (MOBLEUINT8) ((DEFAULT_APPKEY_INDEX & 0x000f) << 4),
+ (MOBLEUINT8) ((DEFAULT_APPKEY_INDEX >>4) & 0xff),
+ /* AppKey is initialised as below = 16B */
+ 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+ 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10 };
+
+
+const MOBLEUINT8 aConfigAppKeyDeleteDefault[3]=
+ { /* NetKeyIndexAndAppKeyIndex : 3B
+ Index of the NetKey and index of the AppKey*/
+ (MOBLEUINT8)(DEFAULT_NETKEY_INDEX & 0x00ff),
+ (MOBLEUINT8)((DEFAULT_NETKEY_INDEX & 0x0f00) >> 8) | (MOBLEUINT8) ((DEFAULT_APPKEY_INDEX & 0x000f) << 4),
+ (MOBLEUINT8) ((DEFAULT_APPKEY_INDEX >>4) & 0xff)};
+
+
+const MOBLEUINT8 aConfigAppKeyGetDefault[2]=
+ { /* NetKeyIndex : 2B
+ Index of the NetKey */
+ (MOBLEUINT8)(DEFAULT_NETKEY_INDEX & 0x00ff),
+ (MOBLEUINT8)((DEFAULT_NETKEY_INDEX & 0x0f00) >> 8) };
+
+const MOBLEUINT8 aNoParamDefaultConfig;
+
+const MOBLEUINT8 aNoInitParamDefault[MAX_CONFIG_PARAM_SIZE]= {0};
+
+/* Private macro -------------------------------------------------------------*/
+
+const MODEL_CONFIG_CLIENT_OpcodeTableParam_t ConfigClient_MessageOpcodes_Table[] = {
+ /* MOBLEUINT16 opcode,
+ MOBLEUINT8 min_payload_size,
+ MOBLEUINT8 max_payload_size;
+ Here in this array, Handler is not defined; */
+
+ /* 4.3.2.37 Config AppKey Add, Opcode = 0x00
+ The Config AppKey Add is an acknowledged message used to add an AppKey
+ to the AppKey List on a node and bind it to the NetKey identified by
+ NetKeyIndex. The added AppKey can be used by the node only as a pair with
+ the specified NetKey.
+ The AppKey is used to authenticate and decrypt messages it receives, as well
+ as authenticate and encrypt messages it sends.
+ The response to a Config AppKey Add message is a Config AppKey Status message.
+
+ message parameters:
+ -------------------
+ NetKeyIndexAndAppKeyIndex: 3B : Index of the NetKey and index of the AppKey
+ AppKey 16B : AppKey value */
+ { OPCODE_CONFIG_APPKEY_ADD, 19, 19, aConfigAppKeyDefault },
+
+ /* 4.3.2.39 Config AppKey Delete, Opcode = 0x80 0x00
+ The Config AppKey Delete is an acknowledged message used to delete an
+ AppKey from the AppKey List on a node.
+ The response to a Config AppKey Delete message is a
+ Config AppKey Status message.
+
+ message parameters:
+ -------------------
+ NetKeyIndexAndAppKeyIndex : 3B : Index of the NetKey and index of the AppKey
+ */
+ { OPCODE_CONFIG_APPKEY_DELETE, 3, 3, aConfigAppKeyDeleteDefault },
+
+ /* 4.3.2.41 Config AppKey Get, Opcode = 0x80 0x01
+ The AppKey Get is an acknowledged message used to report all AppKeys bound
+ to the NetKey.
+ The response to a Config AppKey Get message is a Config AppKey List message */
+ { OPCODE_CONFIG_APPKEY_GET, 2, 2, aConfigAppKeyGetDefault },
+
+ /* 4.3.2.38 Config AppKey Update, Opcode = 0x01
+ The Config AppKey Update is an acknowledged message used to update an
+ AppKey value on the AppKey List on a node. The updated AppKey is used by
+ the node to authenticate and decrypt messages it receives, as well as
+ authenticate and encrypt messages it sends, as defined by the Key Refresh procedure (see Section 3.10.4).
+ The response to an Config AppKey Update message is an Config AppKey Status message.
+
+ message parameters:
+ -------------------
+ NetKeyIndexAndAppKeyIndex: 3B : Index of the NetKey and index of the AppKey
+ AppKey 16B : AppKey value */
+ { OPCODE_CONFIG_APPKEY_UPDATE, 19, 19, aConfigAppKeyDefault },
+
+ /* 4.3.2.1 Config Beacon Get, Opcode = 0x80 0x09
+ The Config Beacon Get is an acknowledged message used to get the current
+ Secure Network Beacon state of a node (see Section 4.2.10).
+ The response to a Config Beacon Get message is a Config Beacon Status message.
+ There are no Parameters for this message. */
+ { OPCODE_CONFIG_BEACON_GET, 0, 0, aNoInitParamDefault },
+
+ /* 4.3.2.2 Config Beacon Set, Opcode = 0x80 0x0A
+ The Config Beacon Set is an acknowledged message used to set the
+ Secure Network Beacon state of a node (see Section 4.2.10).
+ The response to a Config Beacon Set message is a Config Beacon Status message.
+ Beacon : 1B: New Secure Network Beacon state*/
+ { OPCODE_CONFIG_BEACON_SET, 1, 1, aNoInitParamDefault },
+
+ /* 4.3.2.4 Config Composition Data Get, Opcode = 0x80 0x08
+ The Config Composition Data Get is an acknowledged message used to read
+ one page of the Composition Data (see Section 4.2.1).
+ The response to a Config Composition Data Get message is a
+ Config Composition Data Status message.
+ Page : 1B : Page number of the Composition Data */
+ { OPCODE_CONFIG_COMPOSITION_DATA_GET, 1, 1, aNoInitParamDefault },
+
+ /* 4.3.2.16 Config Model Publication Set, Opcode = 0x03
+ The Config Model Publication Set is an acknowledged message used to set the
+ Model Publication state (see Section 4.2.2) of an outgoing message that
+ originates from a model.
+ The response to a Config Model Publication Set message is a
+ Config Model Publication Status message.
+ The Config Model Publication Set message uses a single octet opcode to
+ maximize the size of a payload.
+
+ ElementAddress : 16b : Address of the element
+ PublishAddress : 16b : Value of the publish address
+ AppKeyIndex : 12b : Index of the application key
+ CredentialFlag : 1b : Value of the Friendship Credential Flag
+ RFU : 3b : Reserved for Future Use
+ PublishTTL : 8b : Default TTL value for the outgoing messages
+ PublishPeriod : 8b : Period for periodic status publishing
+ PublishRetransmitCount : 3b : Number of retransmissions for each published message
+ PublishRetransmitIntervalSteps : 5b: Number of 50-millisecond steps between retransmissions
+ ModelIdentifier: 16 or 32b: SIG Model ID or Vendor Model ID
+ */
+
+ { OPCODE_CONFIG_CONFIG_MODEL_PUBLICATION_SET, 11, 13, },
+
+ /* 4.3.2.6 Config Default TTL Get, Opcode = 0x80 0x0C
+ The Config Default TTL Get is an acknowledged message used to get the
+ current Default TTL state of a node.
+ The response to a Config Default TTL Get message is a Config Default TTL Status message.
+ There are no Parameters for this message.
+ */
+ { OPCODE_CONFIG_DEFAULT_TTL_GET, 0, 0, aNoInitParamDefault },
+
+ /* 4.3.2.7 Config Default TTL Set, Opcode = 0x80 0x0D
+ The Config Default TTL Set is an acknowledged message used to set the
+ Default TTL state of a node (see Section 4.2.7).
+ The response to a Config Default TTL Set message is a
+ Config Default TTL Status message.
+ TTL : 1B : New Default TTL value*/
+ { OPCODE_CONFIG_DEFAULT_TTL_SET, 1, 1, aNoInitParamDefault },
+
+ /* 4.3.2.55 Config Friend Get, Opcode = 0x80 0x0F
+ The Config Friend Get is an acknowledged message used to get the current
+ Friend state of a node (see Section 4.2.13).
+ The response to a Config Friend Get message is a Config Friend Status message.
+ There are no Parameters for this message. */
+ { OPCODE_CONFIG_FRIEND_GET, 0, 0, aNoInitParamDefault },
+
+ /* 4.3.2.56 Config Friend Set, Opcode = 0x80 0x10
+ The Config Friend Set is an acknowledged message used to set the
+ Friend state of a node (see Section 4.2.13).
+ The response to a Config Friend Set message is a Config Friend Status message.
+ Friend : 1B : New Friend state */
+ { OPCODE_CONFIG_FRIEND_SET, 1, 1, aNoInitParamDefault },
+
+ /* 4.3.2.9 Config GATT Proxy Get, Opcode = 0x80 0x12
+ The Config GATT Proxy Get is an acknowledged message used to get the
+ current GATT Proxy state of a node (see Section 4.2.11).
+ The response to a Config GATT Proxy Get message is a
+ Config GATT Proxy Status message.
+ There are no Parameters for this message. */
+ { OPCODE_CONFIG_GATT_PROXY_GET, 0, 0, aNoInitParamDefault },
+
+ /* 4.3.2.10 Config GATT Proxy Set, Opcode = 0x80 0x12
+ The Config GATT Proxy Set is an acknowledged message used to set the
+ GATT Proxy state of a node (see Section 4.2.11).
+ The response to a Config GATT Proxy Set message is a Config GATT Proxy
+ Status message
+ GATTProxy : 1B : New GATT Proxy state */
+ { OPCODE_CONFIG_GATT_PROXY_SET, 1, 1, aNoInitParamDefault },
+
+ /* 4.3.2.61 Config Heartbeat Publication Get, Opcode = 0x80 0x38
+ The Config Heartbeat Publication Get is an acknowledged message used to get
+ the current Heartbeat Publication state of an element (see Section 4.2.17).
+ The response to a Config Heartbeat Publication Get message is a
+ Config Heartbeat Publication Status message.
+ The message has no parameters.*/
+ { OPCODE_CONFIG_HEARTBEAT_PUBLICATION_GET, 0, 0, aNoInitParamDefault },
+
+ /* 4.3.2.62 Config Heartbeat Publication Set, Opcode = 0x80 0x39
+ The Config Heartbeat Publication Set is an acknowledged message used to set
+ the current Heartbeat Publication state of an element (see Section 4.2.17).
+ The response to a Config Heartbeat Publication Set message is a
+ Config Heartbeat Publication Status message.
+
+ Destination : 2B : Destination address for Heartbeat messages
+ CountLog : 1B : Number of Heartbeat messages to be sent
+ PeriodLog : 1B : Period for sending Heartbeat messages
+ TTL : 1B : TTL to be used when sending Heartbeat messages
+ Features : 2B : Bit field indicating features that trigger Heartbeat messages when changed
+ NetKeyIndex : 2B : NetKey Index
+ */
+ { OPCODE_CONFIG_HEARTBEAT_PUBLICATION_SET, 9, 9, aNoInitParamDefault },
+
+ /* 4.3.2.64 Config Heartbeat Subscription Get, Opcode = 0x80 0x3A
+ The Config Heartbeat Subscription Get is an acknowledged message used to get
+ the current Heartbeat Subscription state of an element (see Section 4.2.18).
+ The response to a Config Heartbeat Subscription Get message is a
+ Config Heartbeat Subscription Status message.
+ The message has no parameters. */
+ { OPCODE_CONFIG_HEARTBEAT_SUBSCRIPTION_GET, 0, 0, aNoInitParamDefault },
+
+ /* 4.3.2.65 Config Heartbeat Subscription Set, Opcode = 0x80 0x3B
+ The Config Heartbeat Subscription Set is an acknowledged message used to
+ set the current Heartbeat Subscription state of an element (see Section 4.2.18).
+ The response to a Config Heartbeat Subscription Set message is a
+ Config Heartbeat Subscription Status message.
+
+ Source : 2B : Source address for Heartbeat messages
+ Destination : 2B : Destination address for Heartbeat messages
+ PeriodLog : 1B : Period for receiving Heartbeat messages */
+ { OPCODE_CONFIG_HEARTBEAT_SUBSCRIPTION_SET, 5, 5, aNoInitParamDefault },
+
+ /* 4.3.2.58 Config Key Refresh Phase Get, Opcode = 0x80 0x15
+ The Config Key Refresh Phase Get is an acknowledged message used to get the
+ current Key Refresh Phase state of the identified network key.
+ The response to a Config Key Refresh Phase Get message is a
+ Config Key Refresh Phase Status message.
+ NetKeyIndex : 2B : NetKey Index*/
+ { OPCODE_CONFIG_KEY_REFRESH_PHASE_GET, 2, 2, aNoInitParamDefault },
+
+ /* 4.3.2.59 Config Key Refresh Phase Set, Opcode = 0x80 0x16
+ The Config Key Refresh Phase Set is an acknowledged message used to set the
+ Key Refresh Phase state of the identified network key (see Section 4.2.14).
+ The response to a Config Key Refresh Phase Set message is a
+ Config Key Refresh Phase Status message.
+
+ NetKeyIndex : 2B : NetKey Index
+ Transition : 1B : New Key Refresh Phase Transition */
+ { OPCODE_CONFIG_KEY_REFRESH_PHASE_SET, 3, 3, aNoInitParamDefault },
+
+ /* 4.3.2.67 Config Low Power Node PollTimeout Get, Opcode = 0x80 0x2D
+ The Config Low Power Node PollTimeout Get is an acknowledged message used
+ to get the current value of PollTimeout timer of the Low Power node within
+ a Friend node (see Section 3.6.6.1). The message is sent to a Friend node
+ that has claimed to be handling messages by sending ACKs On Behalf Of (OBO)
+ the indicated Low Power node. This message should only be sent to a node
+ that has the Friend feature supported and enabled.
+ The response to a Config Low Power Node PollTimeout Get message is a
+ Config Low Power Node PollTimeout Status message.
+
+ LPNAddress : 2B : The unicast address of the Low Power node */
+ { OPCODE_CONFIG_LOW_POWER_NODE_POLLTIMEOUT_GET, 2, 2, aNoInitParamDefault },
+
+
+ /* 4.3.3.12 Health Attention Get
+ The Health Attention Get is an acknowledged message used to get the current
+ Attention Timer state of an element (see Section 4.2.9).
+ The response to a Health Attention Get message is an Attention Status message.
+ There are no Parameters for this message.*/
+ { OPCODE_HEALTH_ATTENTION_GET, 0, 0, aNoInitParamDefault },
+
+ /* 4.3.3.13 Health Attention Set
+ The Health Attention Set is an acknowledged message used to set the
+ Attention Timer state of an element (see Section 4.2.9).
+ The response to a Health Attention Set message is a
+ Health Attention Status message
+ Attention: 1B: Value of the Attention Timer state*/
+ { OPCODE_HEALTH_ATTENTION_SET, 1, 1, aNoInitParamDefault },
+
+ /* 4.3.3.14 Health Attention Set Unacknowledged
+ The Health Attention Set Unacknowledged is an unacknowledged message used
+ to set the Attention Timer state of an element (see Section 4.2.9). */
+ { OPCODE_HEALTH_ATTENTION_SET_UNACKNOWLEDGED, 1, 1, aNoInitParamDefault },
+
+
+
+
+
+
+ /* 4.3.2.15 Config Model Publication Get
+ The Config Model Publication Get is an acknowledged message used to get the
+ publish address and parameters of an outgoing message that originates
+ from a model.
+ The response to a Config Model Publication Get message is a
+ Config Model Publication Status message.
+
+ ElementAddress : 2B : Address of the element
+ ModelIdentifier : 2 or 4B : SIG Model ID or Vendor Model ID
+ */
+ { OPCODE_CONFIG_MODEL_PUBLICATION_GET, 4, 6, aNoInitParamDefault },
+
+ /* 4.3.2.17 Config Model Publication Virtual Address Set
+ The Config Model Publication Virtual Address Set is an acknowledged message
+ used to set the model Publication state (see Section 4.2.2) of an
+ outgoing message that originates from a model.
+ The response to a Config Model Publication Virtual Address Set message is
+ a Config Model Publication Status message.
+
+ ElementAddress : 16b : Address of the element
+ PublishAddress : 128b : Value of the Label UUID publish address
+ AppKeyIndex : 12b : Index of the application key
+ CredentialFlag : 1b : Value of the Friendship Credential Flag
+ RFU : 3b : Reserved for Future Use
+ PublishTTL : 8b : Default TTL value for the outgoing messages
+ PublishPeriod : 8b : Period for periodic status publishing
+ PublishRetransmitCount : 3b : Number of retransmissions for each published message
+ PublishRetransmitIntervalSteps : 5b: Number of 50-millisecond steps between retransmissions
+ ModelIdentifier: 16 or 32b: SIG Model ID or Vendor Model ID
+ */
+ { OPCODE_CONFIG_MODEL_PUBLICATION_VIRTUAL_ADDRESS_SET, 25, 27, aNoInitParamDefault },
+
+ /* 4.3.2.19 Config Model Subscription Add
+ The Config Model Subscription Add is an acknowledged message used to add an
+ address to a Subscription List of a model (see Section 4.2.3).
+
+ The response to a Config Model Subscription Add message is a
+ Config Model Subscription Status message.
+
+ ElementAddress : 2B : Address of the element
+ address : 2B : Value of the address
+ ModelIdentifier : 2B or 4B : SIG Model ID or Vendor Model ID
+*/
+ { OPCODE_CONFIG_MODEL_SUBSCRIPTION_ADD, 6, 8, aNoInitParamDefault },
+
+ /* 4.3.2.21 Config Model Subscription Delete
+ The Config Model Subscription Delete is an acknowledged message used to
+ delete a subscription address from the Subscription List of a model (see Section 4.2.3).
+ The response to a Config Model Subscription Delete message is a
+ Config Model Subscription Status message.
+
+ ElementAddress : 2B : Address of the element
+ address : 2B : Value of the address
+ ModelIdentifier : 2B or 4B : SIG Model ID or Vendor Model ID
+ */
+ { OPCODE_CONFIG_MODEL_SUBSCRIPTION_DELETE, 6, 8, aNoInitParamDefault },
+
+ /* 4.3.2.25 Config Model Subscription Delete All
+ The Config Model Subscription Delete All is an acknowledged message used to
+ discard the Subscription List of a model (see Section 4.2.3).
+ The response to a Config Model Subscription Delete All message is a
+ Config Model Subscription Status message.
+ ElementAddress : 2B : Address of the element
+ ModelIdentifier : 2B or 4B : SIG Model ID or Vendor Model ID */
+ { OPCODE_CONFIG_MODEL_SUBSCRIPTION_DELETE_ALL, 4, 6, aNoInitParamDefault },
+
+ /* 4.3.2.23 Config Model Subscription Overwrite
+ The Config Model Subscription Overwrite is an acknowledged message used to
+ discard the Subscription List and add an address to the
+ cleared Subscription List of a model (see Section 4.2.3).
+
+ The response to a Config Model Subscription Overwrite message is a
+ Config Model Subscription Status message.
+
+ ElementAddress : 2B : Address of the element
+ address : 2B : Value of the address
+ ModelIdentifier : 2B or 4B : SIG Model ID or Vendor Model ID */
+ { OPCODE_CONFIG_MODEL_SUBSCRIPTION_OVERWRITE, 6, 8, aNoInitParamDefault },
+
+ /* 4.3.2.20 Config Model Subscription Virtual Address Add
+ The Config Model Subscription Virtual Address Add is an acknowledged message
+ used to add an address to a Subscription List of a model (see Section 4.2.3).
+ The response to a Config Model Subscription Virtual Address Add message is a
+ Config Model Subscription Status message.
+
+ ElementAddress : 2B : Address of the element
+ Label : 16B : Value of the Label UUID
+ ModelIdentifier : 2B or 4B : SIG Model ID or Vendor Model ID */
+ { OPCODE_CONFIG_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_ADD, 20, 22, aNoInitParamDefault },
+
+ /* 4.3.2.22 Config Model Subscription Virtual Address Delete
+ The Config Model Subscription Virtual Address Delete is an acknowledged
+ message used to delete a subscription address from the
+ Subscription List of a model (see Section 4.2.3).
+ The response to a Config Model Subscription Virtual Address Delete message
+ is a Config Model Subscription Status message.
+ ElementAddress : 2B : Address of the element
+ Address : 16B : Value of the Label UUID
+ ModelIdentifier : 2B or 4B : SIG Model ID or Vendor Model ID */
+ { OPCODE_CONFIG_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_DELETE, 20, 22, aNoInitParamDefault },
+
+ /* 4.3.2.24 Config Model Subscription Virtual Address Overwrite
+ The Config Model Subscription Virtual Address Overwrite is an acknowledged
+ message used to discard the Subscription List and add an address to the
+ cleared Subscription List of a model (see Section 4.2.3).
+ The response to a Config Model Subscription Virtual Address Overwrite
+ message is a Config Model Subscription Status message.
+ Element Address : 2B : Address of the element
+ Address : 16B : Value of the Label UUID
+ ModelIdentifier : 2B or 4B : SIG Model ID or Vendor Model ID */
+
+ { OPCODE_CONFIG_MODEL_SUBSCRIPTION_VIRTUAL_ADDRESS_OVERWRITE, 20, 22, aNoInitParamDefault },
+
+ /* 4.3.2.69 Config Network Transmit Get
+ The Config Network Transmit Get is an acknowledged message used to get the
+ current Network Transmit state of a node (see Section 4.2.19).
+ The response to a Config Network Transmit Get message is a Config Network
+ Transmit Status message.
+ There are no Parameters for this message. */
+ { OPCODE_CONFIG_NETWORK_TRANSMIT_GET, 0, 0, aNoInitParamDefault },
+
+ /* 4.3.2.70 Config Network Transmit Set
+ The Config Network Transmit Set is an acknowledged message used to set the
+ Network Transmit state of a node (see Section 4.2.19).
+ The response to a Config Network Transmit Set message is a Config Network
+ Transmit Status message.
+
+ NetworkTransmitCount : 3b : Number of transmissions for each Network PDU originating from the node
+ NetworkTransmitIntervalSteps : 5b : Number of 10-millisecond steps between transmissions
+ */
+ { OPCODE_CONFIG_NETWORK_TRANSMIT_SET, 1, 1, aNoInitParamDefault },
+
+ /* 4.3.2.12 Config Relay Get
+ The Config Relay Get is an acknowledged message used to get the
+ current Relay (see Section 4.2.8) and Relay Retransmit (see Section 4.2.20)
+ states of a node.
+ The response to a Config Relay Get message is a Config Relay Status message.
+ There are no Parameters for this message.*/
+ { OPCODE_CONFIG_RELAY_GET, 0, 0, aNoInitParamDefault },
+
+ /* 4.3.2.13 Config Relay Set
+ The Config Relay Set is an acknowledged message used to set the Relay
+ (see Section 4.2.8) and Relay Retransmit (see Section 4.2.20) states of a node.
+ The response to a Config Relay Set message is a Config Relay Status message.
+ Relay : 8 bits : Relay
+ RelayRetransmitCount : 3b : Number of retransmissions on advertising bearer for each Network PDU relayed by the node
+ RelayRetransmitIntervalSteps : 5b : Number of 10-millisecond steps between retransmissions
+ */
+ { OPCODE_CONFIG_RELAY_SET, 2, 2, aNoInitParamDefault },
+
+ /* 4.3.2.27 Config SIG Model Subscription Get
+ The Config SIG Model Subscription Get is an acknowledged message used to
+ get the list of subscription addresses of a model within the element.
+ This message is only for SIG Models.
+ The response to a Config SIG Model Subscription Get message is a Config SIG
+ Model Subscription List message.
+ Element Address : 2B : Address of the element
+ ModelIdentifier : 2B : SIG Model ID */
+
+ { OPCODE_CONFIG_SIG_MODEL_SUBSCRIPTION_GET, 4, 4, aNoInitParamDefault },
+
+ /* 4.3.2.29 Config Vendor Model Subscription Get
+ The Config Vendor Model Subscription Get is an acknowledged message used to
+ get the list of subscription addresses of a model within the element.
+ This message is only for Vendor Models.
+ The response to a Config Vendor Model Subscription Get message is a
+ Config Vendor Model Subscription List message.
+ Element Address : 2B : Address of the element
+ ModelIdentifier : 4B : Vendor Model ID */
+
+ { OPCODE_CONFIG_VENDOR_MODEL_SUBSCRIPTION_GET, 6, 6, aNoInitParamDefault },
+
+
+ /* 4.3.3.4 Health Fault Clear
+ The Health Fault Clear is an acknowledged message used to clear the current
+ Registered Fault state identified by Company ID of an element
+ (see Section 4.2.15.2).
+ The response to a Health Fault Clear message is a Health Fault Status message */
+ { OPCODE_HEALTH_FAULT_CLEAR, 2, 2, aNoInitParamDefault },
+
+ /* 4.3.3.3 Health Fault Clear Unacknowledged
+ The Health Fault Clear Unacknowledged is an unacknowledged message used to
+ clear the current Registered Fault state identified by Company ID of an
+ element (see Section 4.2.15.2).
+ Company ID : 2B : 16-bit Bluetooth assigned Company Identifier */
+
+ { OPCODE_HEALTH_FAULT_CLEAR_UNACKNOWLEDGED, 2, 2, aNoInitParamDefault },
+
+ /* 4.3.3.2 Health Fault Get
+ The Health Fault Get is an acknowledged message used to get the current
+ Registered Fault state identified by Company ID of an element
+ (see Section 4.2.15.2).
+ The response to a Health Fault Get message is a Health Fault Status message
+ Company ID : 2B : 16-bit Bluetooth assigned Company Identifier */
+ { OPCODE_HEALTH_FAULT_GET, 2, 2, aNoInitParamDefault },
+
+ /* 4.3.3.5 Health Fault Test
+ The Health Fault Test is an acknowledged message used to invoke a
+ self-test procedure of an element.
+ The procedure is implementation specific and may result in changing the
+ Health Fault state of an element (see Section 4.2.15).
+ The response to a Health Fault Test message is a Health Fault Status message.
+
+ Test ID : 1B : Identifier of a specific test to be performed
+ Company ID : 2B : 16-bit Bluetooth assigned Company Identifier */
+ { OPCODE_HEALTH_FAULT_TEST, 3, 3, aNoInitParamDefault },
+
+ /* 4.3.3.6 Health Fault Test Unacknowledged
+ The Health Fault Test Unacknowledged is an unacknowledged message used to
+ invoke a self-test procedure of an element. The procedure is implementation
+ specific and may result in changing the Health Fault state of an element
+ (see Section 4.2.15).
+
+ Test ID : 1B : Identifier of a specific test to be performed
+ Company ID : 2B : 16-bit Bluetooth assigned Company Identifier */
+ { OPCODE_HEALTH_FAULT_TEST_UNACKNOWLEDGED, 3, 3, aNoInitParamDefault },
+
+ /* 4.3.3.8 Health Period Get
+ The Health Period Get is an acknowledged message used to get the
+ current Health Fast Period Divisor state of an element (see Section 4.2.16).
+ The response to a Health Period Get message is a Health Period Status message.
+ There are no parameters for this message. */
+ { OPCODE_HEALTH_PERIOD_GET, 0, 0, aNoInitParamDefault },
+
+ /* 4.3.3.10 Health Period Set
+ The Health Period Set is an acknowledged message used to set the current
+ Health Fast Period Divisor state of an element (see Section 4.2.16).
+ The response to a Health Period Set message is a Health Period Status message
+
+ FastPeriodDivisor : 1B: Divider for the Publish Period.
+ Modified Publish Period is used for sending Current */
+ { OPCODE_HEALTH_PERIOD_SET, 1, 1, aNoInitParamDefault },
+
+ /* 4.3.3.9 Health Period Set Unacknowledged
+ The Health Period Set Unacknowledged is an unacknowledged message used to
+ set the current Health Fast Period Divisor state of an element
+ (see Section 4.2.16).
+
+ FastPeriodDivisor : 1B: Divider for the Publish Period.
+ Modified Publish Period is used for sending Current
+ Health Status messages when there are active faults to communicate */
+ { OPCODE_HEALTH_PERIOD_SET_UNACKNOWLEDGED, 1, 1, aNoInitParamDefault },
+ /* { OPCODE_HEALTH_PERIOD_STATUS 0x8037 */
+
+
+
+ /* 4.3.2.46 Config Model App Bind
+ The Config Model App Bind is an acknowledged message used to bind an
+ AppKey to a model.
+ The response to a Config Model App Bind message is a
+ Config Model App Status message.
+
+ ElementAddress : 2B : Address of the element
+ AppKeyIndex : 2B : Index of the AppKey
+ ModelIdentifier : 2 or 4: SIG Model ID or Vendor Model ID */
+
+ { OPCODE_CONFIG_MODEL_APP_BIND, 6, 8, aNoInitParamDefault },
+
+ /* 4.3.2.47 Config Model App Unbind
+ The Config Model App Unbind is an acknowledged message used to remove the
+ binding between an AppKey and a model.
+ The response to a Config Model App Unbind message is a Config Model App Status message.
+
+
+ ElementAddress : 2B : Address of the element
+ AppKeyIndex : 2B : Index of the AppKey
+ ModelIdentifier : 2 or 4: SIG Model ID or Vendor Model ID */
+ { OPCODE_CONFIG_MODEL_APP_UNBIND, 6, 8, aNoInitParamDefault },
+
+ /* 4.3.2.31 Config NetKey Add
+ The Config NetKey Add is an acknowledged message used to add a NetKey
+ to a NetKey List (see Section 4.2.4) on a node.
+ The added NetKey is then used by the node to authenticate and decrypt messages it receives, as well as authenticate and encrypt messages it sends.
+ The response to a Config NetKey Add message is a Config NetKey Status message.
+ NetKeyIndex : 2B
+ NetKey : 16B NetKey */
+ { OPCODE_CONFIG_NETKEY_ADD, 18, 18, aNoInitParamDefault },
+
+ /* 4.3.2.33 Config NetKey Delete
+ The Config NetKey Delete is an acknowledged message used to delete a NetKey
+ on a NetKey List from a node.
+ The response to a Config NetKey Delete message is a
+ Config NetKey Status message.
+ NetKeyIndex : 2B */
+ { OPCODE_CONFIG_NETKEY_DELETE, 2, 2, aNoInitParamDefault },
+
+ /* 4.3.2.35 Config NetKey Get
+ The Config NetKey Get is an acknowledged message used to report all NetKeys
+ known to the node.
+ The response to a Config NetKey Get message is a Config NetKey List message.
+ There are no Parameters for this message. */
+ { OPCODE_CONFIG_NETKEY_GET, 0, 0, aNoInitParamDefault },
+
+ /* 4.3.2.32 Config NetKey Update
+ The Config NetKey Update is an acknowledged message used to update a NetKey
+ on a node. The updated NetKey is then used by the node to authenticate and
+ decrypt messages it receives, as well as authenticate and encrypt messages
+ it sends, as defined by the Key Refresh procedure (see Section 3.10.4).
+ The response to a Config NetKey Update message is a Config NetKey Status message.
+ NetKeyIndex : 2B : Index of the NetKey
+ NetKey : 16B : NetKey */
+ { OPCODE_CONFIG_NETKEY_UPDATE, 18, 18, aNoInitParamDefault},
+
+ /* 4.3.2.43 Config Node Identity Get
+ The Config Node Identity Get is an acknowledged message used to get the
+ current Node Identity state for a subnet (see Section 4.2.12).
+ The response to a Config Node Identity Get message is a
+ Config Node Identity Status message.
+
+ NetKeyIndex : 2B : Index of the NetKey */
+ { OPCODE_CONFIG_NODE_IDENTITY_GET, 2, 2, aNoInitParamDefault},
+
+ /* 4.3.2.44 Config Node Identity Set
+ The Config Node Identity Set is an acknowledged message used to set the
+ current Node Identity state for a subnet (see Section 4.2.12).
+ The response to a Config Node Identity Set message is a
+ Config Node Identity Status message.
+
+ NetKeyIndex : 2B : Index of the NetKey
+ Identity : 1B : New Node Identity state */
+ { OPCODE_CONFIG_NODE_IDENTITY_SET, 3, 3, aNoInitParamDefault},
+
+ /* 4.3.2.53 Config Node Reset
+ The Config Node Reset is an acknowledged message used to reset a node
+ (other than a Provisioner) and remove it from the network.
+ The response to a Config Node Reset message is a Config Node Reset
+ Status message.
+ There are no Parameters for this message. */
+ { OPCODE_CONFIG_NODE_RESET, 0, 0, aNoInitParamDefault },
+
+ /* 4.3.2.49 Config SIG Model App Get
+ The Config SIG Model App Get is an acknowledged message used to request
+ report of all AppKeys bound to the SIG Model.
+ The response to a Config SIG Model App Get message is a Config SIG Model
+ App List message.
+
+ ElementAddress : 2B : Address of the element
+ ModelIdentifier : 2B : SIG Model ID */
+ { OPCODE_CONFIG_SIG_MODEL_APP_GET, 4, 4, aNoInitParamDefault },
+
+ /* 4.3.2.51 Config Vendor Model App Get
+ The Config Vendor Model App Get is an acknowledged message used to request
+ report of all AppKeys bound to the model. This message is only for Vendor Models.
+ The response to a Config Vendor Model App Get message is a Config Vendor Model App List message
+
+ ElementAddress : 2B : Address of the element
+ ModelIdentifier : 4B : Vendor Model ID */
+ { OPCODE_CONFIG_VENDOR_MODEL_APP_GET, 6, 6, aNoInitParamDefault },
+
+};
+/* Private variables ---------------------------------------------------------*/
+
+eClientSendMsgState_t eClientSendMsgState; /* Keeps the state of Sent Message */
+eServerRespRecdState_t eServerRespRecdState; /* Keeps the state of Received Message */
+
+/* Private function prototypes -----------------------------------------------*/
+MOBLEUINT8 AppliConfigClient_SendMessageDefault(MOBLEUINT8 elementIdx);
+
+/* Private functions ---------------------------------------------------------*/
+
+/**
+* @brief This function is callback from library after the Provisioning is
+ completed by embedded Provisioner
+* @param prvState: Provisioning State of the Node. Expecting "1" when the
+ provisioning is completed
+* @retval None
+*/
+void Appli_ConfigClientStartNodeConfiguration(MOBLEUINT8 prvState)
+{
+ if (prvState==1 )
+ {
+ Appli_ConfigClient_Init();
+ eClientSendMsgState = ProvisioningDone_State;
+ NodeInfo.nodePrimaryAddress = GetAddressToConfigure();
+ }
+}
+
+
+/**
+* @brief This function is Init function for the state machine of the
+ Configuration Client. The Function shall be called every time a new
+ node is provisioned
+* @param None
+* @retval None
+*/
+MOBLE_RESULT Appli_ConfigClient_Init(void)
+{
+ eClientSendMsgState = ClientIdle_State; /* Init the value of state machine */
+ eServerRespRecdState = NodeIdle_State; /* Init the value of state machine */
+ ConfigClient_ResetTrials();
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_ConfigClient_Process: This function is Process function and
+ shall be called from while(1) loop
+* @param None
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_ConfigClient_Process(void)
+{
+
+ Appli_ConfigClient_ConfigureNode();
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief This function is used to configure the Node after provisioning
+* @param None
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_ConfigClient_ConfigureNode(void)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ MOBLEUINT32 nowClockTime;
+
+ /*
+ State response called function
+ --------------------------------------------------------------------------------
+ ClientIdle_State X None
+ ProvisioningDone_State X Start the configuration
+ CompositionGet_State ConfigRespInit_State GetComposition
+ CompositionGet_State CompositionRecd_State ChangeThe State to next
+ AppKeyAdd_State X Issue AppKey
+ AppKeyAdd_State AppkeyAck_State ChangeThe State to next
+ AppBindModel_State X Issue AppKetBind
+ AppBindModel_State AppBindModelAck_State ChangeThe State to next
+ AddSubscription_State X Issue the Subscription
+ AddSubscription_State SubscriptionAck_State ChangeThe State to next
+ SetPublication_State PublicationStatus_State Issue the Subscription
+ SetPublication_State PublicationStatus_State ChangeThe State to next
+
+ */
+
+ /* If the Node is already configured, return from here */
+ if (eClientSendMsgState == ConfigurationDone_State)
+ return result;
+
+ if (eClientSendMsgState == ClientIdle_State)
+ {
+ /* Waiting for the Provisioning to be done before to Start the
+ node configuration procedure */
+ return result;
+ }
+
+ if (eServerRespRecdState == NodeNoResponse_State)
+ {
+ /* No Response received from Node under Provisioning for some config
+ messages. So, no need to do the trials */
+ return MOBLE_RESULT_FAIL;
+ }
+
+ if (eClientSendMsgState == ProvisioningDone_State)
+ {
+ /* Start the node configuration procedure */
+ eClientSendMsgState = CompositionGet_State;
+ ConfigClient_SaveMsgSendingTime();
+ }
+
+ else if (eClientSendMsgState == CompositionGet_State)
+ {
+ nowClockTime = Clock_Time();
+ if( (nowClockTime - NodeInfo.Initial_time) < CONFIGURATION_START_DELAY)
+ {
+ return result;
+ }
+ /*------------- Add the delay before to start the configuration messages */
+
+ if (eServerRespRecdState == CompositionRecdCompleted_State)
+ {
+ eClientSendMsgState = AppKeyAdd_State; /* Change the state to Next */
+ eServerRespRecdState = NodeIdle_State;
+ }
+ else
+ {
+ /* Continue the GetComposition servicing */
+ Appli_ConfigClient_GetCompositionData();
+ }
+ }
+
+ else if (eClientSendMsgState == AppKeyAdd_State)
+ {
+ if (eServerRespRecdState == AppkeyAckCompleted_State)
+ {
+ eClientSendMsgState = AppBindModel_State; /* Change the send state */
+ eServerRespRecdState = NodeIdle_State;
+ }
+ else
+ {
+ /* Continue the AppKeyAdd servicing */
+ Appli_ConfigClient_DefaultAppKeyAdd();
+ }
+ }
+
+ else if (eClientSendMsgState == AppBindModel_State)
+ {
+ if (eServerRespRecdState == AppBindModelAckCompleted_State)
+ {
+ eClientSendMsgState = AddSubscription_State; /* Change the send state */
+ eServerRespRecdState = NodeIdle_State;
+ }
+ else
+ {
+ /* Continue the AppKeyBIND servicing */
+ Appli_ConfigClient_DefaultAppKeyBind();
+ }
+ }
+
+ else if (eClientSendMsgState == AddSubscription_State)
+ {
+ if (eServerRespRecdState == SubscriptionAckCompleted_State)
+ {
+ eClientSendMsgState = SetPublication_State; /* Change the send state */
+ eServerRespRecdState = NodeIdle_State;
+ }
+ else
+ {
+ /* Continue the Subscription add servicing */
+ AppliConfigClient_SubscriptionAddDefault();
+ }
+ }
+
+ else if (eClientSendMsgState == SetPublication_State)
+ {
+ if (eServerRespRecdState == PublicationStatusCompleted_State)
+ {
+ eClientSendMsgState = ConfigurationDone_State; /* Change the send state */
+ eServerRespRecdState = NodeIdle_State;
+ TRACE_M(TF_CONFIG_CLIENT,"**Node is configured** \r\n");
+ }
+ else
+ {
+ /* Continue the Publication add servicing */
+ AppliConfigClient_PublicationSetDefault();
+ }
+ }
+
+ return result;
+}
+
+
+/**
+* @brief This function is called to Get the Composition data from the
+* a node under configuration
+* @param None
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_ConfigClient_GetCompositionData (void)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ MOBLEUINT8 retry;
+ MOBLEUINT16 dst_peer;
+
+ switch(eServerRespRecdState)
+ {
+ case NodeIdle_State:
+
+ ConfigClient_SaveMsgSendingTime();
+
+ dst_peer = GetAddressToConfigure();
+
+ /* Start the Get Composition Message */
+ ConfigClient_CompositionDataGet(dst_peer);
+
+ /* Switch to InProgress_State */
+ eServerRespRecdState = InProgress_State;
+ break;
+
+ case CompositionRecd_State:
+ /* Switch the state to next state AddAppKey_State */
+ ConfigClient_ResetTrials();
+ eServerRespRecdState = CompositionRecdCompleted_State;
+ break;
+
+ case InProgress_State:
+ /* Just wait and let the messages be completed
+ or look for timeout */
+
+ retry = ConfigClient_ChkRetries();
+
+ if (retry == CLIENT_TX_RETRY_ENDS)
+ {
+ eServerRespRecdState = NodeNoResponse_State;
+ }
+ else if (retry == CLIENT_TX_TIMEOUT)
+ {
+ eServerRespRecdState = NodeIdle_State; /* Run next re-trial cycle again */
+ }
+
+ break;
+
+ default:
+ /* Error State */
+ break;
+ }
+
+ return result;
+}
+
+
+/**
+* @brief Appli_ConfigClient_DefaultAppKeyAdd: This function is called to
+ add the default AppKeys and NetKeys to a node under configuration
+* @param None
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_ConfigClient_DefaultAppKeyAdd (void)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ MOBLEUINT8 retry;
+ MOBLEUINT8 *pAppKey;
+ MOBLEUINT16 netKeyIndex = DEFAULT_NETKEY_INDEX;
+ MOBLEUINT16 appKeyIndex = DEFAULT_APPKEY_INDEX;
+ MOBLE_ADDRESS dst_addr;
+
+ pAppKey = GetNewProvNodeAppKey();
+
+ switch(eServerRespRecdState)
+ {
+ case NodeIdle_State:
+ ConfigClient_SaveMsgSendingTime();
+
+ dst_addr = GetAddressToConfigure();
+
+ /* Start the Set Appkey message */
+ ConfigClient_AppKeyAdd ( dst_addr,
+ netKeyIndex,
+ appKeyIndex,
+ pAppKey);
+
+ /* Switch to InProgress_State */
+ eServerRespRecdState = InProgress_State;
+ break;
+
+ case AppkeyAck_State:
+ ConfigClient_ResetTrials();
+ eServerRespRecdState = AppkeyAckCompleted_State;
+ break;
+
+ case InProgress_State:
+ /* Just wait and let the messages be completed
+ or look for timeout */
+
+ retry = ConfigClient_ChkRetries();
+
+ if (retry == CLIENT_TX_RETRY_ENDS)
+ {
+ eServerRespRecdState = NodeNoResponse_State;
+ }
+ else if (retry == CLIENT_TX_TIMEOUT)
+ {
+ eServerRespRecdState = NodeIdle_State; /* Run next re-trial cycle again */
+ }
+
+ break;
+
+ default:
+ /* Error State */
+ break;
+}
+
+ return result;
+}
+
+
+/**
+* @brief Appli_ConfigClient_DefaultAppKeyBind: This function is application used for
+ function to Bind the element(node) with AppKeyIndex and Models
+* @param None
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_ConfigClient_DefaultAppKeyBind (void)
+{
+ static MOBLEUINT32 modelIdentifier;
+ static MOBLEUINT8 elementIndex;
+ static MOBLEUINT8 indexSIGmodels;
+ static MOBLEUINT8 indexVendormodels;
+ MOBLEUINT16 elementAddress;
+ MOBLEUINT16 appKeyIndex = DEFAULT_APPKEY_INDEX;
+
+ MOBLEUINT8 numSIGmodels;
+ MOBLEUINT8 numVendorModels;
+ MOBLEUINT8 numofElements;
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ MOBLEUINT8 retry;
+
+ switch(eServerRespRecdState)
+ {
+ case NodeIdle_State:
+ /* Start the AppBindModel_State message */
+ elementIndex = 0; /* Initialize it for the complete loop */
+ indexSIGmodels = 0; /* Initialize it for the complete loop */
+ indexVendormodels = 0;
+
+ case NodeNextSigModel_State:
+ numSIGmodels = GetCountSIGModelToBindApp(elementIndex);
+ modelIdentifier = GetSIGModelToBindApp(elementIndex,
+ &indexSIGmodels,
+ numSIGmodels);
+
+ /* Switch to NodeSendMessage_State */
+ eServerRespRecdState = NodeSendMessage_State;
+ break;
+
+ case NodeNextVendorModel_State:
+ modelIdentifier = GetVendorModelToBindApp(elementIndex,indexVendormodels );
+ /* Switch to NodeSendMessage_State */
+ eServerRespRecdState = NodeSendMessage_State;
+ break;
+
+ case NodeSendMessage_State:
+ /* Start the AppBindModel_State message */
+ elementAddress = GetServerElementAddress(elementIndex);
+
+ /* Switch to InProgress_State */
+ eServerRespRecdState = InProgress_State;
+
+ ConfigClient_SaveMsgSendingTime();
+
+ /* Send the Message to the server */
+ ConfigClient_ModelAppBind (elementAddress, appKeyIndex, modelIdentifier);
+ break;
+
+ case AppBindModelAck_State:
+ /* Need to check if all SIG Models are binded ? */
+
+ ConfigClient_ResetTrials();
+
+ numSIGmodels = GetCountSIGModelToBindApp(elementIndex);
+ numVendorModels = GetCountVendorModelToBindApp(elementIndex);
+
+ if (indexSIGmodels < numSIGmodels )
+ { /* Even when all SIG Models are serviced, we need to start for Vendor Models */
+ indexSIGmodels++;
+ indexVendormodels =0; /* Reset back, bcoz, we are still process the SIG Models */
+ }
+ else if (indexVendormodels < numVendorModels)
+ {
+ indexVendormodels++; /* When SIG Models and Vendor Models are processed
+ the loop condition will become true */
+ }
+
+ if (indexSIGmodels < numSIGmodels )
+ {/* if index is still less, then we have scope of reading 1 more index */
+
+ eServerRespRecdState = NodeNextSigModel_State;
+ /* Switch to InProgress_State */
+ }
+ else if (indexVendormodels < numVendorModels)
+ {
+ /*Now, do binding for Vendor Model */
+ eServerRespRecdState = NodeNextVendorModel_State;
+ }
+ else
+ {
+ /* Now, the element index is handled, change the element index */
+ elementIndex++;
+ numofElements = ConfigClient_GetNodeElements();
+ if (elementIndex >= numofElements)
+ {/* we are comparing Index whose counting started from 0, becomes equal,
+ then exit the loop */
+
+ eServerRespRecdState = AppBindModelAckCompleted_State;
+ }
+ else if (elementIndex < numofElements)
+ { /* When the Element Index is still less than the total number of
+ elements in the Node: So, Restart the cycle */
+ indexSIGmodels = 0; /* Initialize it for the complete loop */
+ indexVendormodels = 0;
+
+ eServerRespRecdState = NodeNextSigModel_State;
+ }
+ }
+ break;
+
+ case InProgress_State:
+ /* Just wait and let the messages be completed
+ or look for timeout */
+ retry = ConfigClient_ChkRetries();
+
+ if (retry == CLIENT_TX_RETRY_ENDS)
+ {
+ eServerRespRecdState = NodeNoResponse_State;
+ }
+ else if (retry == CLIENT_TX_TIMEOUT)
+ {
+ eServerRespRecdState = NodeSendMessage_State; /* Run next re-trial cycle again */;
+ }
+ break;
+
+ default:
+ /* Error State */
+ break;
+ }
+
+ return result;
+}
+
+
+/**
+* @brief AppliConfigClient_SubscriptionAddDefault: This function is application
+ used for adding subscription to the element(node) for default settings
+* @param None
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT AppliConfigClient_SubscriptionAddDefault (void)
+{
+ static MOBLEUINT32 modelIdentifier;
+ static MOBLEUINT16 elementAddress;
+ static MOBLEUINT8 elementIndex;
+ static MOBLEUINT8 indexSIGmodels;
+ static MOBLEUINT8 indexVendormodels;
+ MOBLEUINT8 numSIGmodels;
+ MOBLEUINT8 numVendorModels;
+ MOBLEUINT8 numofElements;
+ MOBLEUINT16 address = DEFAULT_GROUP_ADDR;
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ MOBLEUINT8 retry;
+
+ switch(eServerRespRecdState)
+ {
+ case NodeIdle_State:
+ /* Start the SubscriptionAdd message */
+
+ elementIndex = 0; /* Initialize it for the complete loop */
+ indexSIGmodels = 0; /* Initialize it for the complete loop */
+ indexVendormodels = 0;
+
+ case NodeNextSigModel_State:
+ numSIGmodels = GetCountSIGModelToSubscribe(elementIndex);
+ modelIdentifier = GetSIGModelToSubscribe(elementIndex,
+ &indexSIGmodels,
+ numSIGmodels);
+
+ /* Switch to NodeSendMessage_State */
+ eServerRespRecdState = NodeSendMessage_State;
+ break;
+
+ case NodeNextVendorModel_State:
+ modelIdentifier = GetVendorModelToSubscribe(elementIndex,indexVendormodels );
+ /* Switch to NodeSendMessage_State */
+ eServerRespRecdState = NodeSendMessage_State;
+ break;
+
+ case NodeSendMessage_State:
+ elementAddress = GetServerElementAddress(elementIndex);
+ ConfigClient_SaveMsgSendingTime();
+
+ /* Switch to InProgress_State */
+ eServerRespRecdState = InProgress_State;
+ ConfigClient_SubscriptionAdd (elementAddress, address, modelIdentifier);
+
+ break;
+
+
+ case SubscriptionAck_State:
+ /* Need to check if all SIG Models are subscribed ? */
+ ConfigClient_ResetTrials();
+
+ numSIGmodels = GetCountSIGModelToSubscribe(elementIndex);
+ numVendorModels = GetCountVendorModelToSubscribe(elementIndex);
+ elementAddress = GetServerElementAddress(elementIndex);
+
+ if (indexSIGmodels < numSIGmodels )
+ { /* Even when all SIG Models are serviced, we need to start for Vendor Models */
+ indexSIGmodels++;
+ indexVendormodels =0; /* Reset back, bcoz, we are still process the SIG Models */
+ }
+ else if (indexVendormodels < numVendorModels)
+ {
+ indexVendormodels++; /* When SIG Models and Vendor Models are processed
+ the loop condition will become true */
+ }
+
+ if (indexSIGmodels < numSIGmodels )
+ {/* if index is still less, then we have scope of reading 1 more index */
+
+ /* Get the Next Model and Bind it again till all SIG Models are binded */
+ eServerRespRecdState = NodeNextSigModel_State;
+
+ }
+ else if (indexVendormodels < numVendorModels)
+{
+ eServerRespRecdState = NodeNextVendorModel_State;
+ }
+ else
+ {
+ /* Now, the element index is handled, change the element index */
+ elementIndex++;
+ numofElements = ConfigClient_GetNodeElements();
+ if (elementIndex == numofElements)
+ {/* we are comparing Index whose counting started from 0, becomes equal,
+ then exit the loop */
+ eServerRespRecdState = SubscriptionAckCompleted_State;
+ }
+ else if (elementIndex < numofElements)
+ { /* When the Element Index is still less than the total number of
+ elements in the Node: So, Restart the cycle */
+
+ eServerRespRecdState = NodeNextSigModel_State;
+ indexSIGmodels =0; /* Reset the variable again for the next element */
+ indexVendormodels = 0;
+ }
+ }
+ break;
+
+ case InProgress_State:
+ /* Just wait and let the messages be completed
+ or look for timeout */
+ retry = ConfigClient_ChkRetries();
+
+ if (retry == CLIENT_TX_RETRY_ENDS)
+ {
+ eServerRespRecdState = NodeNoResponse_State;
+ }
+ else if (retry == CLIENT_TX_TIMEOUT)
+ {
+ eServerRespRecdState = NodeSendMessage_State; /* Run next re-trial cycle again */;
+ }
+ break;
+
+ default:
+ /* Error State */
+ break;
+ }
+
+ return result;
+}
+
+
+/**
+* @brief AppliConfigClient_PublicationSetDefault: This function is application
+ used for adding publication settings to the element(node)
+ for default settings
+* @param None
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT AppliConfigClient_PublicationSetDefault (void)
+{
+ MOBLEUINT16 publishAddress = DEFAULT_PUBLISH_ADDR;
+ MOBLEUINT16 appKeyIndex = DEFAULT_APPKEY_INDEX;
+ MOBLEUINT8 credentialFlag = DEFAULT_CREDENTIAL_FLAG;
+ MOBLEUINT8 publishTTL = DEFAULT_PUBLISH_TTL;
+ MOBLEUINT8 publishPeriod = DEFAULT_PUBLISH_PERIOD;
+ MOBLEUINT8 publishRetransmitCount = DEFAULT_PUBLISH_RETRANSMIT_COUNT;
+ MOBLEUINT8 publishRetransmitIntervalSteps= DEFAULT_PUBLISH_RETRANSMIT_INTERVAL_STEPS;
+
+ static MOBLEUINT16 elementAddress;
+ static MOBLEUINT32 modelIdentifier;
+ static MOBLEUINT8 elementIndex;
+ static MOBLEUINT8 indexSIGmodels;
+ static MOBLEUINT8 indexVendormodels;
+ MOBLEUINT8 numSIGmodels;
+ MOBLEUINT8 numVendorModels;
+ MOBLEUINT8 numofElements;
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ MOBLEUINT8 retry;
+
+ switch(eServerRespRecdState)
+ {
+ case NodeIdle_State:
+ /* Start the Publication Add message */
+
+ elementIndex = 0; /* Initialize it for the complete loop */
+ indexSIGmodels = 0; /* Initialize it for the complete loop */
+ indexVendormodels = 0;
+
+ case NodeNextSigModel_State:
+ numSIGmodels = GetCountSIGModelToPublish(elementIndex);
+ modelIdentifier = GetSIGModelToPublish(elementIndex,
+ &indexSIGmodels,
+ numSIGmodels);
+
+ /* Switch to NodeSendMessage_State */
+ eServerRespRecdState = NodeSendMessage_State;
+ break;
+
+ case NodeNextVendorModel_State:
+ modelIdentifier = GetVendorModelToPublish(elementIndex,indexVendormodels);
+ /* Switch to NodeSendMessage_State */
+ eServerRespRecdState = NodeSendMessage_State;
+ break;
+
+
+ case NodeSendMessage_State:
+ elementAddress = GetServerElementAddress(elementIndex);
+
+ ConfigClient_SaveMsgSendingTime();
+
+ /* Switch to InProgress_State */
+ eServerRespRecdState = InProgress_State;
+ ConfigClient_PublicationSet(elementAddress,
+ publishAddress,
+ appKeyIndex,
+ credentialFlag,
+ publishTTL,
+ publishPeriod,
+ publishRetransmitCount,
+ publishRetransmitIntervalSteps,
+ modelIdentifier);
+
+ break;
+
+
+ case PublicationStatus_State:
+ /* Need to check if all SIG Models are subscribed ? */
+ ConfigClient_ResetTrials();
+
+ numSIGmodels = GetCountSIGModelToPublish(elementIndex);
+ numVendorModels = GetCountVendorModelToPublish(elementIndex);
+ elementAddress = GetServerElementAddress(elementIndex);
+
+ if (indexSIGmodels < numSIGmodels )
+ { /* Even when all SIG Models are serviced, we need to start for Vendor Models */
+ indexSIGmodels++;
+ indexVendormodels =0; /* Reset back, bcoz, we are still process the SIG Models */
+ }
+ else if (indexVendormodels < numVendorModels)
+ {
+ indexVendormodels++; /* When SIG Models and Vendor Models are processed
+ the loop condition will become true */
+ }
+
+
+ if (indexSIGmodels < numSIGmodels )
+ {/* if index is still less, then we have scope of reading 1 more index */
+ eServerRespRecdState = NodeNextSigModel_State;
+ }
+ else if (indexVendormodels < numVendorModels)
+ {
+ eServerRespRecdState = NodeNextVendorModel_State;
+ }
+ else
+ {
+ /* Now, the element index is handled, change the element index */
+ elementIndex++;
+ numofElements = ConfigClient_GetNodeElements();
+
+ if (elementIndex == numofElements)
+ {/* we are comparing Index whose counting started from 0, becomes equal,
+ then exit the loop */
+ eServerRespRecdState = PublicationStatusCompleted_State;
+ }
+ else if (elementIndex < numofElements)
+ { /* When the Element Index is still less than the total number of
+ elements in the Node: So, Restart the cycle */
+
+ eServerRespRecdState = NodeNextSigModel_State;
+ indexSIGmodels =0; /* Reset the variable again for the next element */
+ indexVendormodels = 0;
+ }
+ }
+ break;
+
+ case InProgress_State:
+ /* Just wait and let the messages be completed
+ or look for timeout */
+ retry = ConfigClient_ChkRetries();
+
+ if (retry == CLIENT_TX_RETRY_ENDS)
+ {
+ eServerRespRecdState = NodeNoResponse_State;
+ }
+ else if (retry == CLIENT_TX_TIMEOUT)
+ {
+ eServerRespRecdState = NodeSendMessage_State; /* Run next re-trial cycle again */;
+ }
+ break;
+
+ default:
+ /* Error State */
+ break;
+ }
+
+ return result;
+}
+
+
+/**
+* @brief AppliConfigClient_SelfPublicationSetDefault: This function is application
+ used for adding publication settings to the element(node)
+ for default settings
+* @param None
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT AppliConfigClient_SelfPublicationSetDefault (void)
+{
+ MOBLEUINT16 publishAddress = DEFAULT_PUBLISH_ADDR;
+ MOBLEUINT16 appKeyIndex = DEFAULT_APPKEY_INDEX;
+ MOBLEUINT8 credentialFlag = DEFAULT_CREDENTIAL_FLAG;
+ MOBLEUINT8 publishTTL = DEFAULT_PUBLISH_TTL;
+ MOBLEUINT8 publishPeriod = DEFAULT_PUBLISH_PERIOD;
+ MOBLEUINT8 publishRetransmitCount = DEFAULT_PUBLISH_RETRANSMIT_COUNT;
+ MOBLEUINT8 publishRetransmitIntervalSteps= DEFAULT_PUBLISH_RETRANSMIT_INTERVAL_STEPS;
+
+ MOBLEUINT16 elementAddress;
+ MOBLEUINT32 modelIdentifier=0;
+ MOBLEUINT8 elementIndex;
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+
+ for (elementIndex=0; elementIndex < APPLICATION_NUMBER_OF_ELEMENTS; elementIndex++ )
+ {
+ /*Checking for SIG Models*/
+ for (MOBLEUINT8 index=0; index < APPLICATION_SIG_MODELS_MAX_COUNT; index++)
+ {
+ elementAddress = BLEMesh_GetAddress();
+ elementAddress += elementIndex;
+
+ modelIdentifier = (MOBLEUINT16) Appli_SIG_Models[elementIndex][index];
+
+ if(modelIdentifier == NO_MODEL_AVLBL)
+ {
+ break;
+ }
+ else if (MODEL_IS_FOUNDATION_MODEL(modelIdentifier))
+ {
+ /* If Model is Foundation Model, then it does not need to be
+ added for Publishing */
+
+ /* Do NOTHING, let the next Model be picked */
+ }
+
+ else
+ {
+ ConfigClient_PublicationSet(elementAddress,
+ publishAddress,
+ appKeyIndex,
+ credentialFlag,
+ publishTTL,
+ publishPeriod,
+ publishRetransmitCount,
+ publishRetransmitIntervalSteps,
+ modelIdentifier);
+ }
+ }
+
+ /*Checking for VENDOR Models*/
+ for (MOBLEUINT8 index=0; index < APPLICATION_VENDOR_MODELS_MAX_COUNT; index++)
+ {
+ elementAddress = BLEMesh_GetAddress();
+ elementAddress += elementIndex;
+
+ modelIdentifier = (MOBLEUINT32) Appli_Vendor_Models[elementIndex][index];
+
+ if(modelIdentifier == NO_MODEL_AVLBL)
+ {
+ break;
+ }
+ else
+ {
+ ConfigClient_PublicationSet(elementAddress,
+ publishAddress,
+ appKeyIndex,
+ credentialFlag,
+ publishTTL,
+ publishPeriod,
+ publishRetransmitCount,
+ publishRetransmitIntervalSteps,
+ modelIdentifier);
+ }
+ }
+ }
+ return result;
+}
+
+
+/**
+* @brief AppliConfigClient_SelfSubscriptionSetDefault: This function is application
+ used for adding Subscription settings to the element(node)
+ for default settings
+* @param None
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT AppliConfigClient_SelfSubscriptionSetDefault (void)
+{
+ MOBLEUINT32 modelIdentifier=0;
+ MOBLEUINT16 elementAddress;
+ MOBLEUINT8 elementIndex;
+ MOBLEUINT16 address = DEFAULT_GROUP_ADDR;
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+
+ for (elementIndex=0; elementIndex < APPLICATION_NUMBER_OF_ELEMENTS; elementIndex++ )
+ {
+ /*Checking for SIG Models*/
+ for (MOBLEUINT8 index=0; index < APPLICATION_SIG_MODELS_MAX_COUNT; index++)
+ {
+ elementAddress = BLEMesh_GetAddress();
+ elementAddress += elementIndex;
+
+ modelIdentifier = (MOBLEUINT16) Appli_SIG_Models[elementIndex][index];
+
+ /*If limit is reaching to no models*/
+ if(modelIdentifier == NO_MODEL_AVLBL)
+ {
+ break;
+ }
+ else if (MODEL_IS_FOUNDATION_MODEL(modelIdentifier))
+ {
+ /* If Model is Foundation Model, then it does not need to be
+ Subscribed */
+
+ /* Do NOTHING, let the next Model be picked */
+ }
+ else
+ {
+ ConfigClient_SubscriptionAdd (elementAddress, address, modelIdentifier);
+ }
+ }
+
+ /*Checking for Vendor Models*/
+ for (MOBLEUINT8 index=0; index < APPLICATION_VENDOR_MODELS_MAX_COUNT; index++)
+ {
+ elementAddress = BLEMesh_GetAddress();
+ elementAddress += elementIndex;
+
+ modelIdentifier = (MOBLEUINT32) Appli_Vendor_Models[elementIndex][index];
+ if(modelIdentifier == NO_MODEL_AVLBL)
+ {
+ break;
+ }
+ else
+ {
+ ConfigClient_SubscriptionAdd (elementAddress, address, modelIdentifier);
+ }
+ }
+
+ }
+ return result;
+}
+
+
+/**
+* @brief Appli_ConfigClient_DefaultAppKeyBind: This function is application used for
+ function to Bind the element(node) with AppKeyIndex and Models
+* @param None
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_ConfigClient_SelfDefaultAppKeyBind (void)
+{
+
+ MOBLEUINT32 modelIdentifier=0;
+ MOBLEUINT16 appKeyIndex = DEFAULT_APPKEY_INDEX;
+ MOBLEUINT16 elementAddress;
+ MOBLEUINT8 elementIndex;
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ appKeyIndex = DEFAULT_APPKEY_INDEX;
+
+ for (elementIndex=0; elementIndex < APPLICATION_NUMBER_OF_ELEMENTS; elementIndex++ )
+ {
+ /*Checking for SIG Models*/
+ for (MOBLEUINT8 index=0; index < APPLICATION_SIG_MODELS_MAX_COUNT; index++)
+ {
+ elementAddress = BLEMesh_GetAddress();
+ elementAddress += elementIndex;
+
+ modelIdentifier = (MOBLEUINT16) Appli_SIG_Models[elementIndex][index];
+
+ if(modelIdentifier == NO_MODEL_AVLBL)
+ {
+ break;
+ }
+ else if (MODEL_IS_FOUNDATION_MODEL(modelIdentifier))
+ {
+ /* If Model is Foundation Model, then it does not need to be binded
+ with AppKey */
+
+ /* Do NOTHING, let the next Model be picked */
+ }
+ else
+ {
+ ConfigClient_ModelAppBind (elementAddress, appKeyIndex, modelIdentifier);
+ }
+ }
+
+ /*Checking for VENDOR Models*/
+ for (MOBLEUINT8 index=0; index < APPLICATION_VENDOR_MODELS_MAX_COUNT; index++)
+ {
+ elementAddress = BLEMesh_GetAddress();
+ elementAddress += elementIndex;
+
+ modelIdentifier = (MOBLEUINT32) Appli_Vendor_Models[elementIndex][index];
+
+ if(modelIdentifier == NO_MODEL_AVLBL)
+ {
+ break;
+ }
+ else
+ {
+ ConfigClient_ModelAppBind (elementAddress, appKeyIndex, modelIdentifier);
+ }
+ }
+
+ }
+ return result;
+}
+
+/**
+* @brief Appli_CompositionDataStatusCb: This function is callback from config
+ client middleware on reception of the response
+* @param None
+* @retval MOBLE_RESULT
+*/
+void Appli_CompositionDataStatusCb(MOBLE_RESULT status)
+{
+ eServerRespRecdState = CompositionRecd_State;
+}
+
+
+/**
+* @brief Appli_AppKeyStatusCb: This function is callback from config
+ client middleware on reception of the response
+* @param None
+* @retval MOBLE_RESULT
+*/
+void Appli_AppKeyStatusCb(MOBLEUINT8 status)
+{
+ /* Change the received state for application */
+ eServerRespRecdState = AppkeyAck_State;
+}
+
+
+/**
+* @brief Appli_AppBindModelStatusCb: This function is callback from config
+ client middleware on reception of the response
+* @param None
+* @retval MOBLE_RESULT
+*/
+void Appli_AppBindModelStatusCb(MOBLEUINT8 status)
+{
+ /* Change the received state for application */
+ eServerRespRecdState = AppBindModelAck_State;
+}
+
+
+/**
+* @brief Appli_SubscriptionAddStatusCb: This function is callback from config
+ client middleware on reception of the response
+* @param None
+* @retval MOBLE_RESULT
+*/
+void Appli_SubscriptionAddStatusCb(MOBLEUINT8 status)
+{
+ /* Change the received state for application */
+ eServerRespRecdState = SubscriptionAck_State;
+}
+
+
+/**
+* @brief Appli_PublicationStatusCb: This function is callback from config
+ client middleware on reception of the response
+* @param None
+* @retval MOBLE_RESULT
+*/
+void Appli_PublicationStatusCb(MOBLEUINT8 status)
+{
+ /* Change the received state for application */
+ eServerRespRecdState = PublicationStatus_State;
+}
+
+
+/**
+* @brief Appli_NodeResetStatusCb: This function is callback from config
+ client middleware on reception of the Node Reset response
+* @param None
+* @retval None
+*/
+void Appli_NodeResetStatusCb(void)
+{
+ /* Change the received state for application */
+ eServerRespRecdState = NodeResetStatus_State;
+}
+
+
+/**
+* @brief GetSIGModelToBindApp: This function gets the SIG Model to Bind
+* @param elementIndex Index of the Element
+* @param pModelIndex Pointer to Index of the Element to be updated
+* @param numberOfModels Total number of Models to be scanned
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT16 GetSIGModelToBindApp(MOBLEUINT8 elementIndex,
+ MOBLEUINT8 *pModelIndex,
+ MOBLEUINT8 numberOfModels)
+{
+
+ MOBLEUINT16 model_id;
+ MOBLEUINT8 index;
+ MOBLEUINT8 idxSIG = *pModelIndex;
+
+ for (index = idxSIG; index < numberOfModels ; index++ )
+ {
+ model_id = aNodeElements[elementIndex].aSIGModels[index];
+ if (MODEL_IS_FOUNDATION_MODEL(model_id))
+ {
+ /* Do nothing, let the next model_if be scanned */
+ model_id = 0xffff; /* Invalid Model ID */
+ }
+ else
+ {
+ break;
+ }
+ }
+
+ *pModelIndex = index;
+ return model_id;
+
+}
+
+
+/**
+* @brief GetVendorModelToBindApp: This function gets the Vendor Model to Bind
+* @param elementIndex Index of the Element
+* @param pModelIndex Pointer to Index of the Element to be updated
+* @param numberOfModels Total number of Models to be scanned
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT32 GetVendorModelToBindApp(MOBLEUINT8 elementIndex, MOBLEUINT8 indexModels)
+{
+ return aNodeElements[elementIndex].aVendorModels[indexModels];
+}
+
+/**
+* @brief GetCountSIGModelToBindApp: This function gets the NUMBER of SIG Model
+ to Bind
+* @param elementIndex Index of the Element for which the Count is needed
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT8 GetCountSIGModelToBindApp(MOBLEUINT8 elementIndex)
+{
+ return aNodeElements[elementIndex].NumSIGmodels;
+}
+
+
+/**
+* @brief GetCountVendorModelToBindApp: This function gets the Vendor Model to Bind
+* @param elementIndex Index of the Element for which the Count is needed
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT8 GetCountVendorModelToBindApp(MOBLEUINT8 elementIndex)
+{
+ return aNodeElements[elementIndex].NumVendorModels;
+}
+
+
+/**
+* @brief GetSIGModelToPublish: This function gets the SIG Model to Publish
+* @param elementIndex Index of the Element
+* @param pModelIndex Pointer to Index of the Element to be updated
+* @param numberOfModels Total number of Models to be scanned
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT16 GetSIGModelToPublish(MOBLEUINT8 elementIndex,
+ MOBLEUINT8 *pModelIndex,
+ MOBLEUINT8 numberOfModels)
+
+{
+ return GetSIGModelToBindApp(elementIndex,
+ pModelIndex,
+ numberOfModels);
+}
+
+
+/**
+* @brief GetVendorModelToPublish: This function gets the Vendor Model to Publish
+* @param elementIndex Index of the Element
+* @param idxSIG Pointer to Index of the Model
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT32 GetVendorModelToPublish(MOBLEUINT8 elementIndex, MOBLEUINT8 idxSIG)
+{
+ return aNodeElements[elementIndex].aVendorModels[idxSIG];
+}
+
+
+/**
+* @brief GetCountSIGModelToPublish: This function gets the SIG Model to Bind
+* @param elementIndex Index of the Element
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT8 GetCountSIGModelToPublish(MOBLEUINT8 elementIndex)
+{
+ return aNodeElements[elementIndex].NumSIGmodels;
+}
+
+
+/**
+* @brief GetCountVendorModelToPublish: This function gets the Vendor Model to Publish
+* @param elementIndex Index of the Element
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT8 GetCountVendorModelToPublish(MOBLEUINT8 elementIndex)
+{
+ return aNodeElements[elementIndex].NumVendorModels;
+}
+
+
+/**
+* @brief GetSIGModelToSubscribe: This function gets the SIG Model to Bind
+* @param elementIndex Index of the Element
+* @param pModelIndex Pointer to Index of the Element to be updated
+* @param numberOfModels Total number of Models to be scanned
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT16 GetSIGModelToSubscribe(MOBLEUINT8 elementIndex,
+ MOBLEUINT8 *pModelIndex,
+ MOBLEUINT8 numberOfModels)
+{
+ return GetSIGModelToBindApp(elementIndex,
+ pModelIndex,
+ numberOfModels);
+}
+
+
+/**
+* @brief GetVendorModelToSubscribe: This function Gets the Vendor Model ID for
+ Subscription
+* @param elementIndex Index of the Element
+* @param idxSIG Index to the Model ID to Subscribe
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT32 GetVendorModelToSubscribe(MOBLEUINT8 elementIndex,
+ MOBLEUINT8 idxSIG)
+{
+ return aNodeElements[elementIndex].aVendorModels[idxSIG];
+}
+
+
+/**
+* @brief GetCountSIGModelToSubscribe: This function gets the SIG Model to Subscribe
+* @param elementIndex Index of the Element
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT8 GetCountSIGModelToSubscribe(MOBLEUINT8 elementIndex)
+{
+ return aNodeElements[elementIndex].NumSIGmodels;
+}
+
+
+/**
+* @brief GetCountVendorModelToPublish: This function gets the Count of the
+ Vendor Model to Subscribe
+* @param elementIndex Index of the Element
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT8 GetCountVendorModelToSubscribe(MOBLEUINT8 elementIndex)
+{
+ return aNodeElements[elementIndex].NumVendorModels;
+}
+
+
+/**
+* @brief AppliConfigClient_SendMessageDefault: This function is used for sending
+ a message.
+ ** The Function is not yet written fully
+* @param None
+* @retval MOBLE_RESULT
+*/
+MOBLEUINT8 AppliConfigClient_SendMessageDefault(MOBLEUINT8 elementIdx)
+{
+ return NUM_VENDOR_MODELS_TO_SUBSCRIBE;
+}
+
+/******************************************************************************/
+#endif /* defined (ENABLE_PROVISIONER_FEATURE) || defined(DYNAMIC_PROVISIONER) */
+/******************************************************************************/
+
+/**
+* @}
+*/
+
+/**
+* @}
+*/
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config_client.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config_client.h
new file mode 100644
index 000000000..52462b86f
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_config_client.h
@@ -0,0 +1,91 @@
+/**
+ ******************************************************************************
+* @file appli_config_client.h
+* @author BLE Mesh Team
+* @brief Application interface for Generic Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APPLI_CONFIG_CLIENT_H
+#define __APPLI_CONFIG_CLIENT_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+#include "generic.h"
+#include "mesh_cfg.h"
+#include "config_client.h"
+#include "mesh_cfg_usr.h"
+
+/* Exported macro ------------------------------------------------------------*/
+#define MAX_CONFIG_PARAM_SIZE 22
+#define CONFIGURE_AS_PER_COMPOSITION_DATA
+
+/* Exported variables ------------------------------------------------------- */
+/* Application Variable-------------------------------------------------------*/
+/* Exported Functions Prototypes ---------------------------------------------*/
+
+#if defined (ENABLE_PROVISIONER_FEATURE) || defined(DYNAMIC_PROVISIONER)
+
+MOBLE_RESULT Appli_ConfigClient_Init(void);
+MOBLE_RESULT Appli_ConfigClient_Process(void);
+MOBLE_RESULT Appli_ConfigClient_ConfigureNode(void);
+void Appli_CompositionDataStatusCb(MOBLE_RESULT);
+void Appli_AppKeyStatusCb(MOBLEUINT8 status);
+void Appli_AppBindModelStatusCb(MOBLEUINT8 status);
+void Appli_PublicationStatusCb(MOBLEUINT8 status);
+void Appli_SubscriptionAddStatusCb(MOBLEUINT8 status);
+void Appli_NodeResetStatusCb(void);
+
+void Appli_ConfigClientStartNodeConfiguration(MOBLEUINT8 prvState);
+MOBLE_RESULT Appli_ConfigClient_GetCompositionData (void);
+MOBLE_RESULT Appli_ConfigClient_DefaultAppKeyAdd (void);
+MOBLE_RESULT Appli_ConfigClient_DefaultAppKeyBind (void);
+MOBLE_RESULT AppliConfigClient_SubscriptionAddDefault (void);
+MOBLE_RESULT AppliConfigClient_PublicationSetDefault (void);
+MOBLE_RESULT AppliConfigClient_SelfPublicationSetDefault (void);
+MOBLE_RESULT AppliConfigClient_SelfSubscriptionSetDefault (void);
+MOBLE_RESULT Appli_ConfigClient_SelfDefaultAppKeyBind (void);
+Composition_Data_Page0_t* Appli_GetNodeCompositionBuff (void);
+
+MOBLEUINT16 GetSIGModelToBindApp(MOBLEUINT8 elementIndex,
+ MOBLEUINT8 *pModelIndex,
+ MOBLEUINT8 numberOfModels);
+
+MOBLEUINT32 GetVendorModelToBindApp(MOBLEUINT8 elementIdx, MOBLEUINT8 idxSIG);
+MOBLEUINT8 GetCountSIGModelToBindApp(MOBLEUINT8 elementIdx);
+MOBLEUINT8 GetCountVendorModelToBindApp(MOBLEUINT8 elementIdx);
+
+MOBLEUINT16 GetSIGModelToSubscribe(MOBLEUINT8 elementIndex,
+ MOBLEUINT8 *pModelIndex,
+ MOBLEUINT8 numberOfModels);
+
+
+MOBLEUINT32 GetVendorModelToSubscribe(MOBLEUINT8 elementIdx, MOBLEUINT8 idxSIG);
+MOBLEUINT8 GetCountSIGModelToSubscribe(MOBLEUINT8);
+MOBLEUINT8 GetCountVendorModelToSubscribe(MOBLEUINT8);
+
+MOBLEUINT16 GetSIGModelToPublish(MOBLEUINT8 elementIndex,
+ MOBLEUINT8 *pModelIndex,
+ MOBLEUINT8 numberOfModels);
+
+MOBLEUINT32 GetVendorModelToPublish(MOBLEUINT8 elementIdx, MOBLEUINT8 idxSIG);
+MOBLEUINT8 GetCountSIGModelToPublish(MOBLEUINT8 elementIdx);
+
+MOBLEUINT8 GetCountVendorModelToPublish(MOBLEUINT8 elementIdx);
+
+#endif /*defined (ENABLE_PROVISIONER_FEATURE) || defined(DYNAMIC_PROVISIONER) */
+
+#endif /* __APPLI_CONFIG_CLIENT_H */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic.c
new file mode 100644
index 000000000..a71587de6
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic.c
@@ -0,0 +1,481 @@
+/**
+ ******************************************************************************
+ * @file appli_generic.c
+ * @author BLE Mesh Team
+ * @brief Application interface for Generic Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_conf.h"
+#include "hal_common.h"
+#include "types.h"
+#include "ble_mesh.h"
+#include "appli_mesh.h"
+#include "mesh_cfg.h"
+#include "generic.h"
+#include "light.h"
+#include "appli_generic.h"
+#include "appli_light.h"
+#include "common.h"
+#include "mesh_cfg_usr.h"
+#include "appli_nvm.h"
+
+/** @addtogroup ST_BLE_Mesh
+ * @{
+ */
+
+/** @addtogroup Application_Mesh_Models
+ * @{
+ */
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+
+extern MOBLEUINT8 RestoreFlag;
+extern MOBLEUINT16 IntensityValue;
+extern MOBLEUINT8 IntensityFlag;
+extern MOBLEUINT8 PowerOnOff_flag;
+extern Appli_LightPwmValue_t Appli_LightPwmValue[APPLICATION_NUMBER_OF_ELEMENTS];
+
+Appli_Generic_OnOffSet AppliOnOffSet[APPLICATION_NUMBER_OF_ELEMENTS];
+Appli_Generic_LevelSet AppliLevelSet[APPLICATION_NUMBER_OF_ELEMENTS];
+Appli_Generic_PowerOnOffSet AppliPowerOnSet[APPLICATION_NUMBER_OF_ELEMENTS];
+Appli_Generic_DefaultTransitionSet AppliDefaultTransitionSet[APPLICATION_NUMBER_OF_ELEMENTS];
+
+aPwmLedGsData_TypeDef aPwmLedGsData_generic = {PWM_LED_GSDATA_OFF, PWM_LED_GSDATA_OFF, PWM_LED_GSDATA_0_7};
+
+/* Private function prototypes -----------------------------------------------*/
+MOBLE_RESULT Appli_Generic_LevelDelta_Set(Generic_LevelStatus_t* pdeltalevelParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_LevelMove_Set(Generic_LevelStatus_t* pdeltaMoveParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+/* Private functions ---------------------------------------------------------*/
+
+/******************************************************************************/
+#ifdef ENABLE_GENERIC_MODEL_SERVER_ONOFF
+/******************************************************************************/
+
+/**
+* @brief Appli_Generic_OnOff_Set: This function is callback for Application
+* when Generic OnOff message is received
+* @param pGeneric_OnOffParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_OnOff_Set(Generic_OnOffStatus_t* pGeneric_OnOffParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ /* LED control only for main element */
+ if(elementIndex == GENERIC_SERVER_MAIN_ELEMENT_INDEX)
+ {
+ /*User need to modify the parameters as per the number of elements per node*/
+ AppliOnOffSet[elementIndex].Present_OnOff = pGeneric_OnOffParam->Present_OnOff_State;
+ AppliOnOffSet[elementIndex].Present_OnOffValue = pGeneric_OnOffParam->Present_OnOff_Value;
+
+ //Manage Default Color
+ if((Appli_LightPwmValue[elementIndex].PwmRedValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmGreenValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmBlueValue == 0))
+ {
+ Appli_LightPwmValue[elementIndex].PwmBlueValue=0xFF;
+ }
+
+ //Manage Default intensity
+ if(Appli_LightPwmValue[elementIndex].IntensityValue == 0)
+ {
+ /* Intensity of 25% by default */
+ Appli_LightPwmValue[elementIndex].IntensityValue=0x2000;
+ }
+
+ /* This condition is applicable when user want to on off the light with some
+ default transition value, or optionalValid =IN_TRANSITION ,
+ transition is in progress.
+ */
+ if((OptionalValid == DEFAULT_TRANSITION) || (OptionalValid == IN_TRANSITION))
+ {
+ Appli_LightPwmValue[elementIndex].IntensityValue = AppliOnOffSet[elementIndex].Present_OnOffValue;
+ AppliOnOffSet[elementIndex].TargetValue = pGeneric_OnOffParam->Target_OnOff;
+
+ if(AppliOnOffSet[elementIndex].Present_OnOffValue == AppliOnOffSet[elementIndex].TargetValue)
+ {
+ if(AppliOnOffSet[elementIndex].Present_OnOffValue > 0)
+ {
+ aPwmLedGsData_generic[PWM_LED_RED] = (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_generic[PWM_LED_GREEN] = (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_generic[PWM_LED_BLUE] = (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ LED_On(aPwmLedGsData_generic);
+ }
+ else
+ {
+ LED_Off();
+ }
+ }
+ }
+ else
+ {
+ if((AppliOnOffSet[elementIndex].Present_OnOff == APPLI_LED_ON) && (OptionalValid == NO_TRANSITION))
+ {
+ aPwmLedGsData_generic[PWM_LED_RED] = (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_generic[PWM_LED_GREEN] = (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_generic[PWM_LED_BLUE] = (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ LED_On(aPwmLedGsData_generic);
+ }
+ else
+ {
+ LED_Off();
+ }
+ }
+ }
+
+ TRACE_M(TF_GENERIC, "Appli_Generic_OnOff_Set callback received for elementIndex %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL, "#8202!for elementIndex %d \r\n", elementIndex);
+
+ NvmStatePowerFlag_Set(GENERIC_ON_OFF_NVM_FLAG, elementIndex);
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_GENERIC_MODEL_SERVER_ONOFF */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_GENERIC_MODEL_SERVER_LEVEL
+/******************************************************************************/
+
+/**
+* @brief Appli_Generic_Level_Set: This function is callback for Application
+* when Generic Level message is received
+* @param plevelParam: Pointer to the parameters message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_Level_Set(Generic_LevelStatus_t* plevelParam,
+ MOBLEUINT8 OptionalValid,MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ static MOBLEUINT16 previousIntensity = 0;
+
+ AppliLevelSet[elementIndex].Present_Level16= plevelParam->Present_Level16;
+ if(AppliLevelSet[elementIndex].Present_Level16 <= 0)
+ {
+ AppliLevelSet[elementIndex].Present_Level16 = 0;
+ }
+
+ IntensityValue = AppliLevelSet[elementIndex].Present_Level16;
+
+ if(((IntensityValue > previousIntensity) && (IntensityValue <PWM_TIME_PERIOD)) ||
+ IntensityValue == INTENSITY_LEVEL_ZERO)
+ {
+ IntensityFlag = MOBLE_FALSE;
+ }
+ else
+ {
+ IntensityFlag = MOBLE_TRUE;
+ }
+ previousIntensity = IntensityValue;
+
+ //Manage Default Color
+ if((Appli_LightPwmValue[elementIndex].PwmRedValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmGreenValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmBlueValue == 0))
+ {
+ Appli_LightPwmValue[elementIndex].PwmBlueValue=0xFF;
+ }
+
+ //Manage intensity
+ Appli_LightPwmValue[elementIndex].IntensityValue = (AppliLevelSet[elementIndex].Present_Level16 * 0xFFFF)/0x7FFF; //Convert generic Level into Intensity
+
+ aPwmLedGsData_generic[PWM_LED_RED] = (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF;
+ aPwmLedGsData_generic[PWM_LED_GREEN] = (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF;
+ aPwmLedGsData_generic[PWM_LED_BLUE] = (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF;
+ LED_On(aPwmLedGsData_generic);
+
+ TRACE_M(TF_GENERIC,"Appli_Generic_Level_Set callback received for elementIndex %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8206!for elementIndex %d \r\n", elementIndex);
+
+ NvmStatePowerFlag_Set(GENERIC_LEVEL_NVM_FLAG, elementIndex);
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Generic_Delta_Set: This function is callback for Application
+* when Generic Level Delta message is received
+* @param pdeltalevelParam: Pointer to the parameters message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_Delta_Set(Generic_LevelStatus_t* pdeltalevelParam,
+ MOBLEUINT8 OptionalValid,MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ AppliLevelSet[elementIndex].Present_Level16 = pdeltalevelParam->Present_Level16;
+ Appli_LightPwmValue[elementIndex].IntensityValue = (AppliLevelSet[elementIndex].Present_Level16 * 0xFFFF)/0x7FFF; //Convert generic Level into Intensity
+
+ //Manage Default Color
+ if((Appli_LightPwmValue[elementIndex].PwmRedValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmGreenValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmBlueValue == 0))
+ {
+ Appli_LightPwmValue[elementIndex].PwmBlueValue=0xFF;
+ }
+
+ aPwmLedGsData_generic[PWM_LED_RED] = (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF;
+ aPwmLedGsData_generic[PWM_LED_GREEN] = (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF;
+ aPwmLedGsData_generic[PWM_LED_BLUE] = (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF;
+ LED_On(aPwmLedGsData_generic);
+
+ TRACE_M(TF_GENERIC,"Generic_LevelDelta_Set callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8209!\r\n");
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Generic_Move_Set: This function is callback for Application
+* when Generic Level Move message is received
+* @param pdeltaMoveParam: Pointer to the parameters message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_Move_Set(Generic_LevelStatus_t* pdeltaMoveParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+// if(OptionalValid == 1)
+// {
+ AppliLevelSet[elementIndex].Last_delta_level = pdeltaMoveParam->Last_delta_level;
+ AppliLevelSet[elementIndex].Last_Level_TID = pdeltaMoveParam->Last_Level_TID;
+ AppliLevelSet[elementIndex].Last_Present_Level16 = pdeltaMoveParam->Last_Present_Level16;
+ AppliLevelSet[elementIndex].Present_Level16 = pdeltaMoveParam->Present_Level16;
+ AppliLevelSet[elementIndex].RemainingTime = pdeltaMoveParam->RemainingTime;
+ AppliLevelSet[elementIndex].Target_Level16 = pdeltaMoveParam->Target_Level16;
+// }
+
+ TRACE_M(TF_GENERIC,"Generic_LevelMove_Set callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#820B! \r\n");
+ return MOBLE_RESULT_SUCCESS;
+
+}
+
+/******************************************************************************/
+#endif /* ENABLE_GENERIC_MODEL_SERVER_LEVEL */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_GENERIC_MODEL_SERVER_POWER_ONOFF
+/******************************************************************************/
+
+/**
+* @brief Appli_Generic_PowerOnOff_Set: This function is callback for Application
+* when Generic Power on off set message is received
+* @param pPowerOnOffParam: Pointer to the parameters message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_PowerOnOff_Set(Generic_PowerOnOffParam_t* pPowerOnOffParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+
+ AppliPowerOnSet[elementIndex].PowerOnState = pPowerOnOffParam->PowerOnOffState;
+ TRACE_M(TF_SERIAL_CTRL,"#8213! for elementIndex %d \r\n", elementIndex);
+ TRACE_M(TF_GENERIC,"Appli_Generic_PowerOnOff_Set callback received for elementIndex %d \r\n", elementIndex);
+
+ if(AppliPowerOnSet[elementIndex].PowerOnState == GENERIC_POWER_ON_STATE)
+ {
+ /* set the flag value for NVM store */
+ RestoreFlag = GENERIC_ON_OFF_NVM_FLAG;
+ }
+
+ AppliNvm_SaveMessageParam();
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* ENABLE_GENERIC_MODEL_SERVER_POWER_ONOFF */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_GENERIC_MODEL_SERVER_DEFAULT_TRANSITION_TIME
+/******************************************************************************/
+
+/**
+* @brief Appli_Generic_DefaultTransitionTime_Set: This function is callback for Application
+* when Generic Power on off set message is received
+* @param pDefaultTimeParam: Pointer to the parameters message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_DefaultTransitionTime_Set(Generic_DefaultTransitionParam_t* pDefaultTimeParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
+{
+
+ AppliDefaultTransitionSet[elementIndex].DefaultTransitionTime = pDefaultTimeParam->DefaultTransitionTime;
+
+ TRACE_M(TF_GENERIC,"Generic_DefaultTransitionTime_Set callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#820E!\r\n");
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+
+/******************************************************************************/
+#endif /* ENABLE_GENERIC_MODEL_SERVER_DEFAULT_TRANSITION_TIME */
+/******************************************************************************/
+
+
+/**
+* @brief Appli_Generic_GetOnOffState: This function is callback for Application
+* when Generic on off status message is to be provided
+* @param pOnOff_status: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_GetOnOffStatus(MOBLEUINT8* pOnOff_Status,MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
+{
+
+ *pOnOff_Status = AppliOnOffSet[elementIndex].Present_OnOff;
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Generic_GetOnOffValue: This function is callback for Application
+ to get the PWM value for the generic on off
+* @param pOnOff_Value: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_GetOnOffValue(MOBLEUINT8* pOnOff_Value, MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
+{
+
+ *pOnOff_Value = AppliOnOffSet[elementIndex].Present_OnOffValue;
+ *(pOnOff_Value+1) = AppliOnOffSet[elementIndex].Present_OnOffValue >> 8;
+ *(pOnOff_Value+2) = AppliOnOffSet[elementIndex].TargetValue;
+ *(pOnOff_Value+3) = AppliOnOffSet[elementIndex].TargetValue >> 8;
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Generic_GetLevelStatus: This function is callback for Application
+ when Generic Level status message is to be provided
+* @param pLevel_status: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_GetLevelStatus(MOBLEUINT8* pLevel_Status, MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
+{
+
+ *pLevel_Status = AppliLevelSet[elementIndex].Present_Level16;
+ *(pLevel_Status+1) = AppliLevelSet[elementIndex].Present_Level16 >> 8;
+ *(pLevel_Status+2) = AppliLevelSet[elementIndex].Target_Level16;
+ *(pLevel_Status+3) = AppliLevelSet[elementIndex].Target_Level16 >> 8;
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Generic_GetPowerOnOffStatus: This function is callback for Application
+* when Generic Get Power status message is to be provided
+* @param pLevel_status: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_GetPowerOnOffStatus(MOBLEUINT8* pPower_Status, MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
+{
+
+ *pPower_Status = AppliPowerOnSet[elementIndex].PowerOnState;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Generic_GetDefaultTransitionStatus: This function is callback for
+* Application when Generic Level status message is to be provided
+* @param pTransition_Status: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_GetDefaultTransitionStatus(MOBLEUINT8* pTransition_Status,MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
+{
+
+ *pTransition_Status = AppliDefaultTransitionSet[elementIndex].DefaultTransitionTime;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic.h
new file mode 100644
index 000000000..a98425cbc
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic.h
@@ -0,0 +1,156 @@
+/**
+ ******************************************************************************
+ * @file appli_generic.h
+ * @author BLE Mesh Team
+ * @brief Application interface for Generic Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APPLI_GENERIC_H
+#define __APPLI_GENERIC_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+#include "generic.h"
+#include "mesh_cfg.h"
+
+
+/* Exported macro ------------------------------------------------------------*/
+/* user configuration for Battery status */
+#define BATTERY_ABSENT 0X00
+#define BATTERY_PRESENT_REMOVABLE 0X01
+#define BATTERY_PRESENT_NON_REMOVABLE 0X02
+#define BATTERY_UNKNOWN 0X03
+#define BATTERY_CRITICAL_LOW_LEVEL 0X00
+#define BATTERY_LOW_LEVEL 0X01
+#define BATTERY_GOOD_LEVEL 0X02
+#define BATTERY_LEVEL_UNKNOWN 0X03
+#define BATTERY_NOT_CHARGEABLE 0X00
+#define BATTERY_NOT_CHARGING 0X01
+#define BATTERY_IS_CHARGING 0X02
+#define BATTERY_CHARGING_UNKNOWN 0X03
+#define BATTERY_SERVICE_RFU 0X00
+#define BATTERY_REQUIRE_NO_SERVICE 0X01
+#define BATTERY_REQUIRE_SERVICE 0X02
+#define BATTERY_SERVICE_UNKNOWN 0X03
+
+/* Exported variables ------------------------------------------------------- */
+/* Application Variable-------------------------------------------------------*/
+
+#pragma pack(push, 1)
+
+typedef struct
+{
+ MOBLEUINT8 Present_OnOff;
+ MOBLEUINT16 Present_OnOffValue;
+ MOBLEUINT16 TargetValue;
+}Appli_Generic_OnOffSet;
+
+typedef struct
+{
+ MOBLEINT16 Present_Level16;
+ MOBLEINT16 Target_Level16;
+ MOBLEUINT8 RemainingTime;
+ MOBLEUINT8 Last_Level_TID;
+ MOBLEINT16 Last_Present_Level16;
+ MOBLEINT32 Last_delta_level;
+}Appli_Generic_LevelSet;
+
+typedef struct
+{
+ MOBLEINT16 PowerOnState;
+}Appli_Generic_PowerOnOffSet;
+
+typedef struct
+{
+ MOBLEUINT8 DefaultTransitionTime;
+}Appli_Generic_DefaultTransitionSet;
+
+typedef struct
+{
+ MOBLEUINT8 Is_BatteryPresent;
+ MOBLEUINT8 Is_Chargeable;
+ MOBLEUINT8 Is_Serviceable;
+}Appli_BatteryUserflag_param_t;
+
+#pragma pack(pop)
+
+/* Exported Functions Prototypes ---------------------------------------------*/
+
+MOBLE_RESULT Appli_Generic_OnOff_Set(Generic_OnOffStatus_t*,
+ MOBLEUINT8,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_OnOff_Status(MOBLEUINT8 const *pOnOff_status,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_Level_Set(Generic_LevelStatus_t*,
+ MOBLEUINT8,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_Delta_Set(Generic_LevelStatus_t*,
+ MOBLEUINT8,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_Move_Set(Generic_LevelStatus_t* pdeltaMoveParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_Level_Status(MOBLEUINT8 const *plevel_status,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_PowerOnOff_Set(Generic_PowerOnOffParam_t* pPowerOnOffParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_PowerOnOff_Status(MOBLEUINT8 const *powerOnOff_status ,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_DefaultTransitionTime_Set(Generic_DefaultTransitionParam_t* pDefaultTimeParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Generic_DefaultTransitionTime_Status(MOBLEUINT8 const *pTransition_status ,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Generic_GetOnOffStatus(MOBLEUINT8* pOnOff_Status,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_GetOnOffValue(MOBLEUINT8* pOnOff_Value,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_GetLevelStatus(MOBLEUINT8* pLevel_Status,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_GetPowerOnOffStatus(MOBLEUINT8* pLevel_Status,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Generic_Restore_PowerOn_Value(MOBLEUINT8 restoreValue,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Generic_GetDefaultTransitionStatus(MOBLEUINT8* pTransition_Status,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+
+
+#endif /* __APPLI_GENERIC_H */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic_client.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic_client.c
new file mode 100644
index 000000000..22bd7e99a
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic_client.c
@@ -0,0 +1,343 @@
+/**
+ ******************************************************************************
+* @file appli_generic_client.c
+* @author BLE Mesh Team
+* @brief Application interface for Generic Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "hal_common.h"
+#include "types.h"
+#include "appli_generic.h"
+#include "appli_light.h"
+#include "common.h"
+#include "mesh_cfg_usr.h"
+#include "appli_nvm.h"
+#include "appli_mesh.h"
+#include "generic_client.h"
+#include "appli_generic_client.h"
+
+/** @addtogroup ST_BLE_Mesh
+* @{
+*/
+
+/** @addtogroup Application_Mesh_Models
+* @{
+*/
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+/**
+* @brief Appli_Generic_OnOff_Status: This function is callback for Application
+* when Generic OnOff message is received
+* @param pOnOff_status: Pointer to the parameters received for message
+* @param plength: length of the data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_OnOff_Status(MOBLEUINT8 const *pOnOff_status, MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
+{
+ MOBLEUINT8 i;
+
+ TRACE_M(TF_GENERIC,"Generic_OnOff_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8204!\r\n");
+
+ for(i = 0; i < plength; i++)
+ {
+ if(i == 0)
+ TRACE_M(TF_SERIAL_CTRL,"Present OnOff value: %d\n\r", pOnOff_status[i]);
+ else if(i == 1)
+ TRACE_M(TF_SERIAL_CTRL,"Target OnOff value: %d\n\r", pOnOff_status[i]);
+ else if(i == 2)
+ TRACE_M(TF_SERIAL_CTRL,"Remaining Time value: %d\n\r", pOnOff_status[i]);
+ }
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#ifdef ENABLE_GENERIC_MODEL_CLIENT_LEVEL
+/******************************************************************************/
+
+/**
+* @brief Appli_Generic_Level_Status: This function is callback for Application
+* when Generic Level Move message is received
+* @param plevel_status: Pointer to the parameters message
+* @param plength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_Level_Status(MOBLEUINT8 const *plevel_status,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT8 i;
+ MOBLEUINT8 level = 0;
+#endif
+
+ TRACE_M(TF_GENERIC,"Generic_Level_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8208! \r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < plength; i++)
+ {
+ if((i == 0) || (i == 2))
+ level = plevel_status[i];
+ else if(i == 1)
+ TRACE_M(TF_SERIAL_CTRL,"Present Level value: %d%\n\r",
+ (((plevel_status[i]<<8)|level)*100/LEVEL_MAX_VALID_RANGE));
+ else if(i == 3)
+ TRACE_M(TF_SERIAL_CTRL,"Target Level value: %d%\n\r",
+ (((plevel_status[i]<<8)|level)*100/LEVEL_MAX_VALID_RANGE));
+ else if(i == 4)
+ TRACE_M(TF_SERIAL_CTRL,"Remaining Time value: %d\n\r", plevel_status[i]);
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_GENERIC_MODEL_CLIENT_LEVEL */
+/******************************************************************************/
+
+/**
+* @brief Appli_Generic_DefaultTransitionTime_Status: This function is callback for Application
+* when Generic Power on off set message is received
+* @param pTransition_status: Pointer to the parameters message
+* @param plength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_DefaultTransitionTime_Status(MOBLEUINT8 const *pTransition_status , MOBLEUINT32 plength,MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
+{
+
+ TRACE_M(TF_GENERIC,"Generic_DefaultTransitionTime_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8210!\r\n");
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Generic_PowerOnOff_Set: This function is callback for Application
+* when Generic Power on off set message is received
+* @param powerOnOff_status: Pointer to the parameters message
+* @param plength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Generic_PowerOnOff_Status(MOBLEUINT8 const *powerOnOff_status,\
+ MOBLEUINT32 plength, MOBLEUINT16 dstPeer, MOBLEUINT8 elementIndex)
+{
+ MOBLEUINT8 i;
+
+ TRACE_M(TF_GENERIC,"Generic_PowerOnOff_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8212!\r\n");
+
+ for(i = 0; i < plength; i++)
+ {
+ if(i == 0)
+ TRACE_M(TF_SERIAL_CTRL,"On Power up value: %d\n\r",
+ powerOnOff_status[i]);
+ }
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_GenericClient_API: This function is a Wrapper to call Generic Client API depending on opcode received in input
+* @param elementIndex: Index of the element
+* @param msg_opcode: opcode of the desired API
+* @param msg_params: buffer containing the desired API parameters
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_GenericClient_API(MOBLEUINT8 elementIndex, MOBLEUINT16 msg_opcode, MOBLEUINT8 *msg_params)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_FAIL;
+ switch(msg_opcode){
+/******************************************************************************/
+#ifdef ENABLE_GENERIC_MODEL_CLIENT_ONOFF
+/******************************************************************************/
+ case GENERIC_ON_OFF_GET:
+ {
+ result = GenericClient_OnOff_Get(elementIndex);
+ break;
+ }
+ case GENERIC_ON_OFF_SET_ACK:
+ {
+ result = GenericClient_OnOff_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Generic_OnOffParam_t) );
+ break;
+ }
+ case GENERIC_ON_OFF_SET_UNACK:
+ {
+ result = GenericClient_OnOff_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Generic_OnOffParam_t) );
+ break;
+ }
+/******************************************************************************/
+#endif /* #ifdef ENABLE_GENERIC_MODEL_CLIENT_ONOFF */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_GENERIC_MODEL_CLIENT_LEVEL
+/******************************************************************************/
+ case GENERIC_LEVEL_GET:
+ {
+ result = GenericClient_Level_Get(elementIndex);
+ break;
+ }
+ case GENERIC_LEVEL_SET_ACK:
+ {
+ result = GenericClient_Level_Set_Ack(elementIndex,
+ msg_params,
+ (sizeof(Generic_LevelParam_t)-2));
+ break;
+ }
+ case GENERIC_LEVEL_SET_UNACK:
+ {
+ result = GenericClient_Level_Set_Unack(elementIndex,
+ msg_params,
+ (sizeof(Generic_LevelParam_t)-2));
+ break;
+ }
+ case GENERIC_DELTA_SET:
+ {
+
+ result = GenericClient_Delta_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Generic_DeltaLevelParam_t));
+ break;
+ }
+ case GENERIC_DELTA_SET_UNACK:
+ {
+ result = GenericClient_Delta_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Generic_DeltaLevelParam_t));
+ break;
+ }
+ case GENERIC_MOVE_SET:
+ {
+ result = GenericClient_Move_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Generic_LevelMoveParam_t));
+ break;
+ }
+ case GENERIC_MOVE_SET_UNACK:
+ {
+ result = GenericClient_Move_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Generic_LevelMoveParam_t));
+ break;
+ }
+/******************************************************************************/
+#endif /* #ifdef ENABLE_GENERIC_MODEL_CLIENT_LEVEL */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_GENERIC_MODEL_CLIENT_POWER_ONOFF
+/******************************************************************************/
+ case GENERIC_POWER_ON_OFF_GET:
+ {
+ GenericClient_PowerOnOff_Get(elementIndex);
+ break;
+ }
+ case GENERIC_POWER_ON_OFF_SET:
+ {
+ result = GenericClient_PowerOnOff_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Generic_PowerOnOffParam_t));
+ break;
+ }
+ case GENERIC_POWER_ON_OFF_SET_UNACK:
+ {
+ result = GenericClient_PowerOnOff_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Generic_PowerOnOffParam_t));
+ break;
+ }
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_GENERIC_MODEL_CLIENT_POWER_ONOFF */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_GENERIC_MODEL_CLIENT_DEFAULT_TRANSITION_TIME
+/******************************************************************************/
+ case GENERIC_DEFAULT_TRANSITION_TIME_GET:
+ {
+ result = GenericClient_DefaultTransitionTime_Get(elementIndex);
+ break;
+ }
+
+ case GENERIC_DEFAULT_TRANSITION_TIME_SET:
+ {
+ result = GenericClient_DefaultTransitionTime_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Generic_DefaultTransitionParam_t));
+ break;
+ }
+
+ case GENERIC_DEFAULT_TRANSITION_TIME_SET_UNACK:
+ {
+ result = GenericClient_DefaultTransitionTime_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Generic_DefaultTransitionParam_t));
+ break;
+ }
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_GENERIC_MODEL_CLIENT_DEFAULT_TRANSITION_TIME */
+/******************************************************************************/
+
+ default:
+ {
+ TRACE_M(TF_GENERIC, "OpCode value invalid %d \r\n", msg_opcode);
+ result = MOBLE_RESULT_FAIL;
+ }
+ }
+ return result;
+}
+
+/**
+* @}
+*/
+
+/**
+* @}
+*/
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic_client.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic_client.h
new file mode 100644
index 000000000..f6c569564
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_generic_client.h
@@ -0,0 +1,38 @@
+/**
+ ******************************************************************************
+* @file appli_generic_client.h
+* @author BLE Mesh Team
+* @brief Application interface for Generic Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APPLI_GENERIC_CLIENT_H
+#define __APPLI_GENERIC_CLIENT_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+#include "generic.h"
+#include "mesh_cfg.h"
+
+
+/* Exported macro ------------------------------------------------------------*/
+/* Exported variables ------------------------------------------------------- */
+/* Application Variable-------------------------------------------------------*/
+/* Exported Functions Prototypes ---------------------------------------------*/
+MOBLE_RESULT Appli_ConfigClient_Set(void);
+MOBLE_RESULT Appli_GenericClient_API(MOBLEUINT8 elementIndex, MOBLEUINT16 msg_opcode, MOBLEUINT8 *msg_params);
+
+#endif /* __APPLI_GENERIC_CLIENT_H */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light.c
new file mode 100644
index 000000000..4da26e260
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light.c
@@ -0,0 +1,1357 @@
+/**
+ ******************************************************************************
+ * @file appli_light.c
+ * @author BLE Mesh Team
+ * @brief Application interface for Lighting Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_conf.h"
+#include "hal_common.h"
+#include "types.h"
+#include "ble_mesh.h"
+#include "appli_mesh.h"
+#include "light.h"
+#include "appli_light.h"
+#include "appli_generic.h"
+#include "common.h"
+#include "mesh_cfg.h"
+#include "appli_nvm.h"
+#include "math.h"
+
+/** @addtogroup ST_BLE_Mesh
+* @{
+*/
+
+/** @addtogroup Application_Mesh_Models
+* @{
+*/
+
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+aPwmLedGsData_TypeDef aPwmLedGsData_light = {PWM_LED_GSDATA_OFF, PWM_LED_GSDATA_OFF, PWM_LED_GSDATA_0_7};
+
+/*******************************************************************************
+Following Variables are used for the LIGHTING Lightness MODEL
+*******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS
+/******************************************************************************/
+Appli_Light_lightnessSet ApplilightnessSet[APPLICATION_NUMBER_OF_ELEMENTS] = {{1,0,0,0,0,0}};
+Appli_Light_lightnessLinearSet ApplilightnessLinearSet[APPLICATION_NUMBER_OF_ELEMENTS];
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS */
+/******************************************************************************/
+
+/*******************************************************************************
+Following Variables are used for the LIGHTING CTL MODEL
+*******************************************************************************/
+
+/******************************************************************************/
+#if defined (ENABLE_LIGHT_MODEL_SERVER_CTL) || defined (ENABLE_LIGHT_MODEL_SERVER_CTL_SETUP) \
+ || defined (ENABLE_LIGHT_MODEL_SERVER_CTL_TEMPERATURE)
+/******************************************************************************/
+ Appli_Light_CtlSet AppliCtlSet[APPLICATION_NUMBER_OF_ELEMENTS];
+ Appli_Light_CtlTemperatureRangeSet AppliCtlTemperatureRangeSet[APPLICATION_NUMBER_OF_ELEMENTS];
+ Appli_Light_CtlDefaultSet AppliCtlDefaultSet[APPLICATION_NUMBER_OF_ELEMENTS];
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_CTL */
+/******************************************************************************/
+
+/*******************************************************************************
+Following Variables are used for the LIGHTING HSL MODEL
+*******************************************************************************/
+
+#if defined (ENABLE_LIGHT_MODEL_SERVER_HSL) || defined (ENABLE_LIGHT_MODEL_SERVER_HSL_SETUP) \
+ || defined (ENABLE_LIGHT_MODEL_SERVER_HSL_HUE) || defined (ENABLE_LIGHT_MODEL_SERVER_HSL_SATURATION)
+/******************************************************************************/
+ Appli_Light_HslSet AppliHslSet[APPLICATION_NUMBER_OF_ELEMENTS];
+ Appli_Light_HslDefaultSet Appli_HslDefaultSet[APPLICATION_NUMBER_OF_ELEMENTS] = {{0x7FFF,0x7FFF,0x7FFF}};
+ Appli_Light_RGBSet Appli_RGBParam[APPLICATION_NUMBER_OF_ELEMENTS];
+ Appli_Light_HslRangeSet AppliHslRangeSet[APPLICATION_NUMBER_OF_ELEMENTS];
+
+/*******************************************************************************/
+#endif /*End of the LIGHTING HSL MODEL variables */
+/*******************************************************************************/
+
+/*******************************************************************************
+Following Variables are used for the RGB board.
+*******************************************************************************/
+
+Appli_LightPwmValue_t Appli_LightPwmValue[APPLICATION_NUMBER_OF_ELEMENTS];
+extern MOBLEUINT8 RestoreFlag;
+extern MOBLEUINT8 PowerOnOff_flag;
+extern MOBLEUINT8 IntensityFlag;
+extern MOBLEUINT16 IntensityValue;
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_Lightness_Set: This function is callback for Application
+* when Light Lightness Set message is received
+* @param pLight_LightnessParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Lightness_Set(Light_LightnessStatus_t* pLight_LightnessParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+
+ static MOBLEUINT16 previousIntensity = 0;
+
+ TRACE_M(TF_SERIAL_CTRL, "#824C!\n\r");
+ TRACE_M(TF_LIGHT, "Element index %d present 0x%.2x last 0x%.2x\r\n",
+ elementIndex,
+ pLight_LightnessParam->LightnessPresentValue16,
+ pLight_LightnessParam->LightnessLastStatus);
+
+ ApplilightnessSet[elementIndex].PresentState16 = pLight_LightnessParam->LightnessPresentValue16;
+ ApplilightnessSet[elementIndex].LastLightness16 = pLight_LightnessParam->LightnessLastStatus;
+
+ if(pLight_LightnessParam->LightnessPresentValue16 != 0x00)
+ {
+ ApplilightnessSet[elementIndex].LastLightness16 = pLight_LightnessParam->LightnessPresentValue16;
+ }
+
+ if(((IntensityValue > previousIntensity) && (IntensityValue <PWM_TIME_PERIOD)) ||
+ IntensityValue == INTENSITY_LEVEL_ZERO)
+ {
+ IntensityFlag = MOBLE_FALSE;
+ }
+ else
+ {
+ IntensityFlag = MOBLE_TRUE;
+ }
+ previousIntensity = IntensityValue;
+
+ //Manage Default Color
+ if((Appli_LightPwmValue[elementIndex].PwmRedValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmGreenValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmBlueValue == 0))
+ {
+ Appli_LightPwmValue[elementIndex].PwmBlueValue=0xFF;
+ }
+
+ //Manage intensity
+ Appli_LightPwmValue[elementIndex].IntensityValue = ApplilightnessSet[elementIndex].PresentState16;
+ TRACE_M(TF_LIGHT, "IntensityValue= 0x%.4x \r\n", Appli_LightPwmValue[elementIndex].IntensityValue);
+
+ aPwmLedGsData_light[PWM_LED_RED] = (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_GREEN] = (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_BLUE] = (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ LED_On(aPwmLedGsData_light);
+
+ /* set the flag value for NVM store */
+ NvmStatePowerFlag_Set(LIGHT_LIGHTNESS_NVM_FLAG, elementIndex);
+
+ return MOBLE_RESULT_SUCCESS;
+
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_Lightness_Linear_Set: This function is callback for Application
+* when Light Lightness Linear Set message is received
+* @param pLight_LightnessLinearParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Lightness_Linear_Set(Light_LightnessStatus_t* pLight_LightnessLinearParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ ApplilightnessLinearSet[elementIndex].PresentState16 = pLight_LightnessLinearParam->LinearPresentValue16;
+
+ TRACE_M(TF_LIGHT,"Light_LightnessLinear_Set callback received for elementIndex %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8250!\n\r");
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS_SETUP
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_Lightness_Default_Set: This function is callback for Application
+* when Light Lightness Default Set message is received
+* @param pLight_LightnessDefaultParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Lightness_Default_Set(Light_LightnessDefaultParam_t* pLight_LightnessDefaultParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ //Manage Default Color
+ if((Appli_LightPwmValue[elementIndex].PwmRedValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmGreenValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmBlueValue == 0))
+ {
+ Appli_LightPwmValue[elementIndex].PwmBlueValue=0xFF;
+ }
+
+ //Manage Default intensity
+ if(Appli_LightPwmValue[elementIndex].IntensityValue == 0)
+ {
+ /* Intensity of 25% by default */
+ Appli_LightPwmValue[elementIndex].IntensityValue=0x2000;
+ }
+
+ if(pLight_LightnessDefaultParam->LightnessDefaultStatus > 0)
+ {
+ aPwmLedGsData_light[PWM_LED_RED] = (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_GREEN] = (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_BLUE] = (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ LED_On(aPwmLedGsData_light);
+ }
+
+ else
+ {
+ LED_Off();
+ }
+
+ ApplilightnessSet[elementIndex].LightnessDefault = pLight_LightnessDefaultParam->LightnessDefaultStatus;
+
+ TRACE_M(TF_SERIAL_CTRL,"#8259! \r\n");
+ TRACE_M(TF_LIGHT,"Appli_Light_Lightness_Default_Set callback received for elementIndex %d \r\n", elementIndex);
+
+ NvmStatePowerFlag_Set(LIGHT_LIGHTNESS_NVM_FLAG,elementIndex);
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_Lightness_Last_Set: This function is callback for Application
+* when Light Lightness Default Set message is received
+* @param pLight_LightnessDefaultParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Lightness_Last_Set(Light_LightnessStatus_t* pLight_LightnessParam,
+ MOBLEUINT8 elementIndex)
+{
+ ApplilightnessSet[elementIndex].LastLightness16 = pLight_LightnessParam->LightnessLastStatus;
+
+ TRACE_M(TF_SERIAL_CTRL,"#8259!\n\r");
+ TRACE_M(TF_LIGHT,
+ "Appli_Light_Lightness_Last_Set Light Last Value 0x%.2x \r\n",
+ ApplilightnessSet[elementIndex].LastLightness16);
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS_SETUP */
+/******************************************************************************/
+
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS_SETUP
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_Lightness_Range_Set: This function is callback for Application
+* when Light Lightness Range Set message is received
+* @param pLight_LightnessRangeParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Lightness_Range_Set(Light_LightnessRangeParam_t* pLight_LightnessRangeParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ ApplilightnessSet[elementIndex].StatusCode = pLight_LightnessRangeParam->StatusCode;
+ ApplilightnessSet[elementIndex].RangeMin = pLight_LightnessRangeParam->MinRangeStatus;
+ ApplilightnessSet[elementIndex].RangeMax = pLight_LightnessRangeParam->MaxRangeStatus;
+
+ TRACE_M(TF_SERIAL_CTRL,"#825B! \n\r");
+ TRACE_M(TF_LIGHT,"Appli_Light_Lightness_Range_Set callback received for elementIndex %d \r\n", elementIndex);
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS_SETUP */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_CTL
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_Ctl_Set: This function is callback for Application
+* when Light Ctl Set message is received
+* @param pLight_CtlParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Ctl_Set(Light_CtlStatus_t* pLight_CtlParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ float colourRatio;
+ float brightRatio;
+
+ TRACE_M(TF_SERIAL_CTRL,"#825E! \n\r");
+
+ AppliCtlSet[elementIndex].PresentLightness16 = pLight_CtlParam->PresentCtlLightness16;
+ AppliCtlSet[elementIndex].PresentTemperature16 = pLight_CtlParam->PresentCtlTemperature16;
+ AppliCtlSet[elementIndex].PresentCtlDelta16 = pLight_CtlParam->PresentCtlDelta16;
+
+ /* Save target parameters if transition is available */
+ AppliCtlSet[elementIndex].TargetLightness16 = pLight_CtlParam->TargetCtlLightness16;
+ AppliCtlSet[elementIndex].TargetTemperature16 = pLight_CtlParam->TargetCtlTemperature16;
+ AppliCtlSet[elementIndex].TargetCtlDelta16 = pLight_CtlParam->TargetCtlDeltaUv16;
+
+ colourRatio = Ratio_CalculateValue(AppliCtlSet[elementIndex].PresentTemperature16 ,MAX_CTL_TEMP_RANGE ,MIN_CTL_TEMP_RANGE);
+
+ brightRatio = Ratio_CalculateValue(AppliCtlSet[elementIndex].PresentLightness16 ,0XFFFF ,0);
+
+ Appli_LightPwmValue[elementIndex].PwmCoolValue = PWM_CoolValue(colourRatio , brightRatio);
+ Appli_LightPwmValue[elementIndex].PwmWarmValue = PWM_WarmValue(colourRatio , brightRatio);
+
+ //Manage Default Color
+ if((Appli_LightPwmValue[elementIndex].PwmRedValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmGreenValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmBlueValue == 0))
+ {
+ Appli_LightPwmValue[elementIndex].PwmBlueValue=0xFF;
+ }
+
+ //Manage Default intensity
+ if(Appli_LightPwmValue[elementIndex].IntensityValue == 0)
+ {
+ /* Intensity of 25% by default */
+ Appli_LightPwmValue[elementIndex].IntensityValue=0x2000;
+ }
+
+ //Apply Temperature Ratio to colors
+ Appli_LightPwmValue[elementIndex].PwmRedValue = (0xFF * (MOBLEUINT16) (colourRatio*100))/100;
+ Appli_LightPwmValue[elementIndex].PwmBlueValue = (0xFF * (MOBLEUINT16) ((1-colourRatio)*100))/100;
+
+ aPwmLedGsData_light[PWM_LED_RED] = (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_GREEN] = (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_BLUE] = (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ LED_On(aPwmLedGsData_light);
+
+ NvmStatePowerFlag_Set(LIGHT_CTL_NVM_FLAG, elementIndex);
+
+ TRACE_M(TF_LIGHT,"Appli_Light_Ctl_Set callback received for elementIndex %d \r\n", elementIndex);
+
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_CTL */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_CTL_TEMPERATURE
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_CtlTemperature_Set: This function is callback for Application
+* when Light Ctl Temperature Set message is received
+* @param pLight_CtltempParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_CtlTemperature_Set(Light_CtlStatus_t* pLight_CtltempParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ float colourRatio;
+ float brightRatio;
+ TRACE_M(TF_SERIAL_CTRL,"#8264!\n\r");
+
+ AppliCtlSet[elementIndex].PresentTemperature16 = pLight_CtltempParam->PresentCtlTemperature16;
+ AppliCtlSet[elementIndex].PresentCtlDelta16 = pLight_CtltempParam->PresentCtlDelta16;
+
+ /* Made a copy of target in case of transition values change */
+ AppliCtlSet[elementIndex].TargetTemperature16 = pLight_CtltempParam->TargetCtlTemperature16;
+ AppliCtlSet[elementIndex].TargetCtlDelta16 = pLight_CtltempParam->TargetCtlDeltaUv16;
+
+ colourRatio = Ratio_CalculateValue(AppliCtlSet[elementIndex].PresentTemperature16 ,MAX_CTL_TEMP_RANGE ,MIN_CTL_TEMP_RANGE);
+
+ brightRatio = Ratio_CalculateValue(AppliCtlSet[elementIndex].PresentLightness16 ,0XFFFF ,0);
+
+ Appli_LightPwmValue[elementIndex].PwmCoolValue = PWM_CoolValue(colourRatio , brightRatio);
+ Appli_LightPwmValue[elementIndex].PwmWarmValue = PWM_WarmValue(colourRatio , brightRatio);
+
+ //Manage Default Color
+ if((Appli_LightPwmValue[elementIndex].PwmRedValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmGreenValue == 0) &&
+ (Appli_LightPwmValue[elementIndex].PwmBlueValue == 0))
+ {
+ Appli_LightPwmValue[elementIndex].PwmBlueValue=0xFF;
+ }
+
+ //Manage Default intensity
+ if(Appli_LightPwmValue[elementIndex].IntensityValue == 0)
+ {
+ /* Intensity of 25% by default */
+ Appli_LightPwmValue[elementIndex].IntensityValue=0x2000;
+ }
+
+ //Apply Temperature Ratio to colors
+ Appli_LightPwmValue[elementIndex].PwmRedValue = (0xFF * (MOBLEUINT16) (colourRatio*100))/100;
+ Appli_LightPwmValue[elementIndex].PwmBlueValue = (0xFF * (MOBLEUINT16) ((1-colourRatio)*100))/100;
+
+ aPwmLedGsData_light[PWM_LED_RED] = (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_GREEN] = (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_BLUE] = (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ LED_On(aPwmLedGsData_light);
+
+ NvmStatePowerFlag_Set(LIGHT_CTL_NVM_FLAG, elementIndex);
+
+ TRACE_M(TF_LIGHT,"Appli_Light_CtlTemperature_Set callback received for elementIndex %d \r\n", elementIndex);
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_CTL_TEMPERATURE */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_CTL_SETUP
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_CtlTemperature_Range_Set: This function is callback for Application
+* when Light Ctl Temperature range Set message is received
+* @param pLight_CtlTempRangeParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_CtlTemperature_Range_Set(Light_CtlTemperatureRangeParam_t* pLight_CtlTempRangeParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ AppliCtlTemperatureRangeSet[elementIndex].RangeMin = pLight_CtlTempRangeParam->MinRangeStatus;
+ AppliCtlTemperatureRangeSet[elementIndex].RangeMax = pLight_CtlTempRangeParam->MaxRangeStatus;
+ AppliCtlTemperatureRangeSet[elementIndex].StatusCode = pLight_CtlTempRangeParam->StatusCode;
+
+ TRACE_M(TF_SERIAL_CTRL,"#826B!\n\r");
+ TRACE_M(TF_LIGHT,"Light_CtlTemperature_Range_Set callback received for elementIndex %d \r\n", elementIndex);
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_CTL_SETUP */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_CTL_SETUP
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_CtlDefault_Set: This function is callback for Application
+* when Light Ctl Default Set message is received
+* @param pLight_CtlDefaultParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_CtlDefault_Set(Light_CtlDefaultParam_t* pLight_CtlDefaultParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ AppliCtlDefaultSet[elementIndex].CtlDefaultLightness16 = pLight_CtlDefaultParam->CtlDefaultLightness16;
+ AppliCtlDefaultSet[elementIndex].CtlDefaultTemperature16 = pLight_CtlDefaultParam->CtlDefaultTemperature16;
+ AppliCtlDefaultSet[elementIndex].CtlDefaultDeltaUv = pLight_CtlDefaultParam->CtlDefaultDeltaUv;
+
+ TRACE_M(TF_SERIAL_CTRL,"#8269!\n\r");
+ TRACE_M(TF_LIGHT,"Light_CtlDefault_Set callback received for elementIndex %d \r\n", elementIndex);
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_CTL_SETUP */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_HSL
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_Hsl_Set: This function is callback for Application
+* when Light Hsl Set message is received
+* @param pLight_HslParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Hsl_Set(Light_HslStatus_t* pLight_HslParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SERIAL_CTRL,"#8276!\n\r");
+
+ AppliHslSet[elementIndex].HslLightness16 = pLight_HslParam->PresentHslLightness16;
+ AppliHslSet[elementIndex].HslHueLightness16 = pLight_HslParam->PresentHslHueLightness16;
+ AppliHslSet[elementIndex].HslSaturation16 = pLight_HslParam->PresentHslSaturation16;
+
+ /* Save target parameters if transition is available */
+ AppliHslSet[elementIndex].TargetHslLightness16 = pLight_HslParam->TargetHslLightness16;
+ AppliHslSet[elementIndex].TargetHslHueLightness16 = pLight_HslParam->TargetHslHueLightness16;
+ AppliHslSet[elementIndex].TargetHslSaturation16 = pLight_HslParam->TargetHslSaturation16;
+
+ /* Function to convert HSL values in RGB values */
+ HSL2RGB_Conversion(elementIndex);
+
+ //Manage Default intensity
+ if(Appli_LightPwmValue[elementIndex].IntensityValue == 0)
+ {
+ /* Intensity of 25% by default */
+ Appli_LightPwmValue[elementIndex].IntensityValue=0x2000;
+ }
+
+ Appli_LightPwmValue[elementIndex].PwmRedValue = (Appli_RGBParam[elementIndex].Red_Value*0xFF)/0xFFFF;
+ Appli_LightPwmValue[elementIndex].PwmGreenValue = (Appli_RGBParam[elementIndex].Green_Value*0xFF)/0xFFFF;
+ Appli_LightPwmValue[elementIndex].PwmBlueValue = (Appli_RGBParam[elementIndex].Blue_Value*0xFF)/0xFFFF;
+
+ /** For PIR Sensor demonstration the light should not be switched on when HSL is set **/
+ TRACE_M(TF_SERIAL_CTRL,"Red Value: (%04hx * %04hx)/0xFFFF = %04hx \n\r",
+ Appli_LightPwmValue[elementIndex].PwmRedValue,
+ Appli_LightPwmValue[elementIndex].IntensityValue,
+ (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF);
+ TRACE_M(TF_SERIAL_CTRL,"Green Value: (%04hx * %04hx)/0xFFFF = %04hx \n\r",
+ Appli_LightPwmValue[elementIndex].PwmGreenValue,
+ Appli_LightPwmValue[elementIndex].IntensityValue,
+ (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF);
+ TRACE_M(TF_SERIAL_CTRL,"Blue Value: (%04hx * %04hx)/0xFFFF = %04hx \n\r",
+ Appli_LightPwmValue[elementIndex].PwmBlueValue,
+ Appli_LightPwmValue[elementIndex].IntensityValue,
+ (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF);
+
+ aPwmLedGsData_light[PWM_LED_RED] = (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_GREEN] = (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_BLUE] = (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ LED_On(aPwmLedGsData_light);
+
+ NvmStatePowerFlag_Set(LIGHT_HSL_NVM_FLAG, elementIndex);
+
+ TRACE_M(TF_LIGHT,"Appli_Light_Hsl_Set callback received for elementIndex %d \r\n", elementIndex);
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_HSL */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_HSL_HUE
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_HslHue_Set: This function is callback for Application
+* when Light Hsl Hue Set message is received
+* @param pLight_HslHueParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_HslHue_Set(Light_HslStatus_t* pLight_HslHueParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SERIAL_CTRL, "#826F! \n\r");
+
+ AppliHslSet[elementIndex].HslHueLightness16 = pLight_HslHueParam->PresentHslHueLightness16;
+
+ HSL2RGB_Conversion(elementIndex);
+
+ //Manage Default intensity
+ if(Appli_LightPwmValue[elementIndex].IntensityValue == 0)
+ {
+ /* Intensity of 25% by default */
+ Appli_LightPwmValue[elementIndex].IntensityValue=0x2000;
+ }
+
+
+ Appli_LightPwmValue[elementIndex].PwmRedValue = (Appli_RGBParam[elementIndex].Red_Value*0xFF)/0xFFFF;
+ Appli_LightPwmValue[elementIndex].PwmGreenValue = (Appli_RGBParam[elementIndex].Green_Value*0xFF)/0xFFFF;
+ Appli_LightPwmValue[elementIndex].PwmBlueValue = (Appli_RGBParam[elementIndex].Blue_Value*0xFF)/0xFFFF;
+
+ /** For PIR Sensor demonstration the light should not be switched on when HSL is set **/
+ TRACE_M(TF_SERIAL_CTRL,"Red Value: (%04hx * %04hx)/0xFFFF = %04hx \n\r",
+ Appli_LightPwmValue[elementIndex].PwmRedValue,
+ Appli_LightPwmValue[elementIndex].IntensityValue,
+ (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF);
+ TRACE_M(TF_SERIAL_CTRL,"Green Value: (%04hx * %04hx)/0xFFFF = %04hx \n\r",
+ Appli_LightPwmValue[elementIndex].PwmGreenValue,
+ Appli_LightPwmValue[elementIndex].IntensityValue,
+ (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF);
+ TRACE_M(TF_SERIAL_CTRL,"Blue Value: (%04hx * %04hx)/0xFFFF = %04hx \n\r",
+ Appli_LightPwmValue[elementIndex].PwmBlueValue,
+ Appli_LightPwmValue[elementIndex].IntensityValue,
+ (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF);
+
+ aPwmLedGsData_light[PWM_LED_RED] = (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_GREEN] = (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_BLUE] = (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+
+ LED_On(aPwmLedGsData_light);
+
+
+ NvmStatePowerFlag_Set(LIGHT_HSL_NVM_FLAG, elementIndex);
+
+ TRACE_M(TF_LIGHT,"Appli_Light_HslHue_Set callback received for elementIndex %d \r\n", elementIndex);
+
+ return MOBLE_RESULT_SUCCESS;
+
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_HSL_HUE */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_HSL_SATURATION
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_HslSaturation_Set: This function is callback for Application
+* when Light Hsl Saturation Set message is received
+* @param pLight_HslSaturationParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_HslSaturation_Set(Light_HslStatus_t* pLight_HslSaturationParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SERIAL_CTRL,"#8273! \n\r");
+
+ AppliHslSet[elementIndex].HslSaturation16 = pLight_HslSaturationParam->PresentHslSaturation16;
+
+ HSL2RGB_Conversion(elementIndex);
+
+ //Manage Default intensity
+ if(Appli_LightPwmValue[elementIndex].IntensityValue == 0)
+ {
+ /* Intensity of 25% by default */
+ Appli_LightPwmValue[elementIndex].IntensityValue=0x2000;
+ }
+
+ Appli_LightPwmValue[elementIndex].PwmRedValue = (Appli_RGBParam[elementIndex].Red_Value*0xFF)/0xFFFF;
+ Appli_LightPwmValue[elementIndex].PwmGreenValue = (Appli_RGBParam[elementIndex].Green_Value*0xFF)/0xFFFF;
+ Appli_LightPwmValue[elementIndex].PwmBlueValue = (Appli_RGBParam[elementIndex].Blue_Value*0xFF)/0xFFFF;
+
+ /** For PIR Sensor demonstration the light should not be switched on when HSL is set **/
+ TRACE_M(TF_SERIAL_CTRL,"Red Value: (%04hx * %04hx)/0xFFFF = %04hx \n\r",
+ Appli_LightPwmValue[elementIndex].PwmRedValue,
+ Appli_LightPwmValue[elementIndex].IntensityValue,
+ (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF);
+ TRACE_M(TF_SERIAL_CTRL,"Green Value: (%04hx * %04hx)/0xFFFF = %04hx \n\r",
+ Appli_LightPwmValue[elementIndex].PwmGreenValue,
+ Appli_LightPwmValue[elementIndex].IntensityValue,
+ (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF);
+ TRACE_M(TF_SERIAL_CTRL,"Blue Value: (%04hx * %04hx)/0xFFFF = %04hx \n\r",
+ Appli_LightPwmValue[elementIndex].PwmBlueValue,
+ Appli_LightPwmValue[elementIndex].IntensityValue,
+ (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF);
+
+ aPwmLedGsData_light[PWM_LED_RED] = (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_GREEN] = (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_BLUE] = (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ LED_On(aPwmLedGsData_light);
+
+ NvmStatePowerFlag_Set(LIGHT_HSL_NVM_FLAG, elementIndex);
+
+ TRACE_M(TF_LIGHT,"Appli_Light_HslSaturation_Set callback received for elementIndex %d \r\n", elementIndex);
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_HSL_SATURATION */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_HSL_SETUP
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_HslDefault_Set: This function is callback for Application
+* when Light Hsl Default Set message is received
+* @param pLight_HslDefaultParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_HslDefault_Set(Light_HslDefaultParam_t* pLight_HslDefaultParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SERIAL_CTRL,"#827F! \n\r");
+
+ Appli_HslDefaultSet[elementIndex].HslDefaultLightness16 = pLight_HslDefaultParam->HslLightnessDefault16;
+ Appli_HslDefaultSet[elementIndex].HslDefaultHueLightness16 = pLight_HslDefaultParam->HslHueDefault16;
+ Appli_HslDefaultSet[elementIndex].HslDefaultSaturation16 = pLight_HslDefaultParam->HslSaturationDefault16;
+
+ AppliHslSet[elementIndex].HslLightness16 = (Appli_HslDefaultSet[elementIndex].HslDefaultLightness16;
+ AppliHslSet[elementIndex].HslHueLightness16 = (Appli_HslDefaultSet[elementIndex].HslDefaultHueLightness16;
+ AppliHslSet[elementIndex].HslSaturation16 = (Appli_HslDefaultSet[elementIndex].HslDefaultSaturation16;
+
+ HSL2RGB_Conversion(elementIndex);
+
+ //Manage Default intensity
+ if(Appli_LightPwmValue[elementIndex].IntensityValue == 0)
+ {
+ /* Intensity of 25% by default */
+ Appli_LightPwmValue[elementIndex].IntensityValue=0x2000;
+ }
+
+ Appli_LightPwmValue[elementIndex].PwmRedValue = (Appli_RGBParam[elementIndex].Red_Value*0xFF)/0xFFFF;
+ Appli_LightPwmValue[elementIndex].PwmGreenValue = (Appli_RGBParam[elementIndex].Green_Value*0xFF)/0xFFFF;
+ Appli_LightPwmValue[elementIndex].PwmBlueValue = (Appli_RGBParam[elementIndex].Blue_Value*0xFF)/0xFFFF;
+
+ /** For PIR Sensor demonstration the light should not be switched on when HSL is set **/
+ TRACE_M(TF_SERIAL_CTRL,"Red Value: (%04hx * %04hx)/0xFFFF = %04hx \n\r",
+ Appli_LightPwmValue[elementIndex].PwmRedValue,
+ Appli_LightPwmValue[elementIndex].IntensityValue,
+ (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF);
+ TRACE_M(TF_SERIAL_CTRL,"Green Value: (%04hx * %04hx)/0xFFFF = %04hx \n\r",
+ Appli_LightPwmValue[elementIndex].PwmGreenValue,
+ Appli_LightPwmValue[elementIndex].IntensityValue,
+ (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF);
+ TRACE_M(TF_SERIAL_CTRL,"Blue Value: (%04hx * %04hx)/0xFFFF = %04hx \n\r",
+ Appli_LightPwmValue[elementIndex].PwmBlueValue,
+ Appli_LightPwmValue[elementIndex].IntensityValue,
+ (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF);
+
+ aPwmLedGsData_light[PWM_LED_RED] = (Appli_LightPwmValue[elementIndex].PwmRedValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_GREEN] = (Appli_LightPwmValue[elementIndex].PwmGreenValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_light[PWM_LED_BLUE] = (Appli_LightPwmValue[elementIndex].PwmBlueValue * Appli_LightPwmValue[elementIndex].IntensityValue)/0xFFFF; //PWM_LED_GSDATA_7_0;
+ LED_On(aPwmLedGsData_light);
+
+ NvmStatePowerFlag_Set(LIGHT_HSL_NVM_FLAG, elementIndex);
+
+ TRACE_M(TF_LIGHT,"Appli_Light_HslDefault_Set callback received for elementIndex %d \r\n", elementIndex);
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_HSL_SETUP */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_HSL_SETUP
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_HslRange_Set: This function is callback for Application
+* when Light Hsl Range Set message is received
+* @param pLight_HslRangeParam: Pointer to the parameters received for message
+* @param OptionalValid: Flag to inform about the validity of optional parameters
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_HslRange_Set(Light_HslRangeParam_t* pLight_HslRangeParam,
+ MOBLEUINT8 OptionalValid, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SERIAL_CTRL,"#8281! \n\r");
+
+ AppliHslRangeSet[elementIndex].HslHueMinRange16 = pLight_HslRangeParam->HslHueMinRange16;
+ AppliHslRangeSet[elementIndex].HslHueMaxRange16 = pLight_HslRangeParam->HslHueMaxRange16;
+ AppliHslRangeSet[elementIndex].HslMinSaturation16 = pLight_HslRangeParam->HslMinSaturation16;
+ AppliHslRangeSet[elementIndex].HslMaxSaturation16 = pLight_HslRangeParam->HslMaxSaturation16;
+
+ TRACE_M(TF_LIGHT,"Appli_Light_HslRange_Set callback received for elementIndex %d \r\n", elementIndex);
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_HSL_SETUP */
+/******************************************************************************/
+
+
+/*******************************************************************************
+Following Functions are used for the LIGHTING Lightness MODEL
+*******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_GetLightnessStatus: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lLightnessState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetLightnessStatus(MOBLEUINT8* lLightnessState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lLightnessState) = ApplilightnessSet[elementIndex].PresentState16;
+ *(lLightnessState+1) = ApplilightnessSet[elementIndex].PresentState16 >> 8;
+ *(lLightnessState+2) = ApplilightnessSet[elementIndex].LastLightness16 ;
+ *(lLightnessState+3) = ApplilightnessSet[elementIndex].LastLightness16 >> 8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Light_GetLightnessLinearStatus: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lLightnessState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetLightnessLinearStatus(MOBLEUINT8* lLightnessState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lLightnessState) = ApplilightnessLinearSet[elementIndex].PresentState16;
+ *(lLightnessState+1) = ApplilightnessLinearSet[elementIndex].PresentState16 >> 8;
+ *(lLightnessState+2) = ApplilightnessSet[elementIndex].LastLightness16 ;
+ *(lLightnessState+3) = ApplilightnessSet[elementIndex].LastLightness16 >> 8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Light_GetLightnessDefaultStatus: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lDefaultState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetLightnessDefaultStatus(MOBLEUINT8* lDefaultState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lDefaultState) = ApplilightnessSet[elementIndex].LightnessDefault;
+ *(lDefaultState+1) = ApplilightnessSet[elementIndex].LightnessDefault >> 8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Light_GetLightnessLastStatus: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lLastState: Pointer to the status message
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetLightnessLastStatus(MOBLEUINT8* lLastState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lLastState) = ApplilightnessSet[elementIndex].LastLightness16;
+ *(lLastState+1) = ApplilightnessSet[elementIndex].LastLightness16 >> 8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_GetLightnessRangeStatus: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lRangeState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetLightnessRangeStatus(MOBLEUINT8* lRangeState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lRangeState) = ApplilightnessSet[elementIndex].StatusCode;
+ *(lRangeState+1) = ApplilightnessSet[elementIndex].RangeMin;
+ *(lRangeState+2) = ApplilightnessSet[elementIndex].RangeMin >> 8;
+ *(lRangeState+3) = ApplilightnessSet[elementIndex].RangeMax;
+ *(lRangeState+4) = ApplilightnessSet[elementIndex].RangeMax >> 8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS */
+/******************************************************************************/
+
+/*******************************************************************************
+Following Functions are used for the LIGHTING CTL MODEL
+*******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_CTL
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_GetCtlLightStatus: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lCtlLightState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetCtlLightStatus(MOBLEUINT8* lCtlLightState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lCtlLightState) = AppliCtlSet[elementIndex].PresentLightness16;
+ *(lCtlLightState+1) = AppliCtlSet[elementIndex].PresentLightness16 >> 8;
+ *(lCtlLightState+2) = AppliCtlSet[elementIndex].PresentTemperature16;
+ *(lCtlLightState+3) = AppliCtlSet[elementIndex].PresentTemperature16 >>8;
+ *(lCtlLightState+4) = AppliCtlSet[elementIndex].PresentCtlDelta16;
+ *(lCtlLightState+5) = AppliCtlSet[elementIndex].PresentCtlDelta16 >>8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_GetCtlTargetStatus: This function is callback for Application
+* to get the application values in middleware used for target state.
+* @param lCtlLightState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetCtlTargetStatus(MOBLEUINT8* lCtlLightState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lCtlLightState) = AppliCtlSet[elementIndex].TargetLightness16;
+ *(lCtlLightState+1) = AppliCtlSet[elementIndex].TargetLightness16 >> 8;
+ *(lCtlLightState+2) = AppliCtlSet[elementIndex].TargetTemperature16;
+ *(lCtlLightState+3) = AppliCtlSet[elementIndex].TargetTemperature16 >>8;
+ *(lCtlLightState+4) = AppliCtlSet[elementIndex].TargetCtlDelta16;
+ *(lCtlLightState+5) = AppliCtlSet[elementIndex].TargetCtlDelta16 >>8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+/**
+* @brief Appli_Light_GetCtlTeperatureStatus: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lCtlTempState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetCtlTemperatureStatus(MOBLEUINT8* lCtlTempState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lCtlTempState) = AppliCtlSet[elementIndex].PresentTemperature16;
+ *(lCtlTempState+1) = AppliCtlSet[elementIndex].PresentTemperature16 >> 8;
+ *(lCtlTempState+2) = AppliCtlSet[elementIndex].PresentCtlDelta16;
+ *(lCtlTempState+3) = AppliCtlSet[elementIndex].PresentCtlDelta16 >>8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Light_GetCtlTemperatureRange: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lCtlTempRange: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetCtlTemperatureRange(MOBLEUINT8* lCtlTempRange, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lCtlTempRange) = AppliCtlTemperatureRangeSet[elementIndex].StatusCode;
+ *(lCtlTempRange+1) = AppliCtlTemperatureRangeSet[elementIndex].RangeMin;
+ *(lCtlTempRange+2) = AppliCtlTemperatureRangeSet[elementIndex].RangeMin >> 8;
+ *(lCtlTempRange+3) = AppliCtlTemperatureRangeSet[elementIndex].RangeMax;
+ *(lCtlTempRange+4) = AppliCtlTemperatureRangeSet[elementIndex].RangeMax >>8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Light_GetCtlDefaultStatus: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lCtlDefaultState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetCtlDefaultStatus(MOBLEUINT8* lCtlDefaultState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lCtlDefaultState) = AppliCtlDefaultSet[elementIndex].CtlDefaultLightness16;
+ *(lCtlDefaultState+1) = AppliCtlDefaultSet[elementIndex].CtlDefaultLightness16 >> 8;
+ *(lCtlDefaultState+2) = AppliCtlDefaultSet[elementIndex].CtlDefaultTemperature16;
+ *(lCtlDefaultState+3) = AppliCtlDefaultSet[elementIndex].CtlDefaultTemperature16 >>8;
+ *(lCtlDefaultState+4) = AppliCtlDefaultSet[elementIndex].CtlDefaultDeltaUv;
+ *(lCtlDefaultState+5) = AppliCtlDefaultSet[elementIndex].CtlDefaultDeltaUv >> 8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_CTL */
+/******************************************************************************/
+
+/*******************************************************************************
+Following Functions are used for the LIGHTING HSL MODEL
+*******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_HSL
+/******************************************************************************/
+
+/**
+* @brief Appli_Light_GetHslStatus: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lHslState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetHslStatus(MOBLEUINT8* lHslState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lHslState) = AppliHslSet[elementIndex].HslLightness16;
+ *(lHslState+1) = AppliHslSet[elementIndex].HslLightness16 >> 8;
+ *(lHslState+2) = AppliHslSet[elementIndex].HslHueLightness16;
+ *(lHslState+3) = AppliHslSet[elementIndex].HslHueLightness16 >>8;
+ *(lHslState+4) = AppliHslSet[elementIndex].HslSaturation16;
+ *(lHslState+5) = AppliHslSet[elementIndex].HslSaturation16 >>8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+/**
+* @brief Appli_Light_GetHslTargetStatus: This function is callback for Application
+* to get the application values in middleware used for target state.
+* @param lHslState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetHslTargetStatus(MOBLEUINT8* lHslState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lHslState) = AppliHslSet[elementIndex].TargetHslLightness16;
+ *(lHslState+1) = AppliHslSet[elementIndex].TargetHslLightness16 >> 8;
+ *(lHslState+2) = AppliHslSet[elementIndex].TargetHslHueLightness16;
+ *(lHslState+3) = AppliHslSet[elementIndex].TargetHslHueLightness16 >>8;
+ *(lHslState+4) = AppliHslSet[elementIndex].TargetHslSaturation16;
+ *(lHslState+5) = AppliHslSet[elementIndex].TargetHslSaturation16 >>8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+/**
+* @brief Appli_Light_GetHslHueStatus: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lHslHueState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetHslHueStatus(MOBLEUINT8* lHslHueState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lHslHueState) = AppliHslSet[elementIndex].HslHueLightness16;
+ *(lHslHueState+1) = AppliHslSet[elementIndex].HslHueLightness16 >>8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Light_GetHslSaturationStatus: This function is callback for Application
+* to get the application values in middleware used for transition change
+* @param lHslSaturationState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetHslSaturationStatus(MOBLEUINT8* lHslSaturationState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lHslSaturationState) = AppliHslSet[elementIndex].HslSaturation16;
+ *(lHslSaturationState+1) = AppliHslSet[elementIndex].HslSaturation16 >>8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_GetHslDefaultStatus: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lHslDefaultState: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetHslDefaultStatus(MOBLEUINT8* lHslDefaultState, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lHslDefaultState) = Appli_HslDefaultSet[elementIndex].HslDefaultLightness16;
+ *(lHslDefaultState+1) = Appli_HslDefaultSet[elementIndex].HslDefaultLightness16 >> 8;
+ *(lHslDefaultState+2) = Appli_HslDefaultSet[elementIndex].HslDefaultHueLightness16;
+ *(lHslDefaultState+3) = Appli_HslDefaultSet[elementIndex].HslDefaultHueLightness16 >>8;
+ *(lHslDefaultState+4) = Appli_HslDefaultSet[elementIndex].HslDefaultSaturation16;
+ *(lHslDefaultState+5) = Appli_HslDefaultSet[elementIndex].HslDefaultSaturation16 >>8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_GetHslSatRange: This function is callback for Application
+* to get the application values in middleware used for transition change
+* @param lHslSatRange: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetHslSatRange(MOBLEUINT8* lHslSatRange, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lHslSatRange) = AppliHslRangeSet[elementIndex].StatusCode;
+ *(lHslSatRange+1) = AppliHslRangeSet[elementIndex].HslMinSaturation16;
+ *(lHslSatRange+2) = AppliHslRangeSet[elementIndex].HslMinSaturation16 >> 8;
+ *(lHslSatRange+3) = AppliHslRangeSet[elementIndex].HslMaxSaturation16;
+ *(lHslSatRange+4) = AppliHslRangeSet[elementIndex].HslMaxSaturation16 >>8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_GetHslHueRange: This function is callback for Application
+* to get the application values in middleware used for transition change.
+* @param lHslHueRange: Pointer to the status message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_GetHslHueRange(MOBLEUINT8* lHslHueRange, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ *(lHslHueRange) = AppliHslRangeSet[elementIndex].StatusCode;
+ *(lHslHueRange+1) = AppliHslRangeSet[elementIndex].HslHueMinRange16;
+ *(lHslHueRange+2) = AppliHslRangeSet[elementIndex].HslHueMinRange16 >> 8;
+ *(lHslHueRange+3) = AppliHslRangeSet[elementIndex].HslHueMaxRange16;
+ *(lHslHueRange+4) = AppliHslRangeSet[elementIndex].HslHueMaxRange16 >>8;
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/******************************************************************************/
+#endif /* ENABLE_LIGHT_MODEL_SERVER_HSL */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_SERVER_HSL
+/******************************************************************************/
+
+/**
+* @brief Function to convert the map the RGB values in real values.
+* @param value1: This value corresponds to red led.
+* @param value2: This value corresponds to green led .
+* @param value3: This value corresponds to blue led .
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval void
+*/
+void RgbF_Create(MOBLEUINT16 value1, MOBLEUINT16 value2, MOBLEUINT16 value3, MOBLEUINT8 elementIndex)
+{
+ Appli_RGBParam[elementIndex].Red_Value = (MOBLEUINT16)(65535 * value1/1000);
+ Appli_RGBParam[elementIndex].Green_Value = (MOBLEUINT16)(65535 * value2/1000);
+ Appli_RGBParam[elementIndex].Blue_Value = (MOBLEUINT16)(65535 * value3/1000);
+}
+
+/**
+* @brief Function to convert the HSL values in RGB values.
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval void
+*/
+void HSL2RGB_Conversion(MOBLEUINT8 elementIndex)
+{
+
+ MOBLEUINT16 hueValue;
+ float lightnessvalue;
+ float saturationValue;
+ MOBLEUINT16 cValue; /* chroma */
+ MOBLEUINT16 mValue; /* intermediate value used for creating the r,g,b baseline */
+ MOBLEUINT16 xValue; /* intermediate value used for computing r,g,b */
+
+ if(AppliHslSet[elementIndex].HslSaturation16 == 0)
+ {
+ Appli_RGBParam[elementIndex].Red_Value = AppliHslSet[elementIndex].HslLightness16 ;
+ Appli_RGBParam[elementIndex].Green_Value = AppliHslSet[elementIndex].HslLightness16 ;
+ Appli_RGBParam[elementIndex].Blue_Value = AppliHslSet[elementIndex].HslLightness16 ;
+ }
+ else if((AppliHslSet[elementIndex].HslLightness16 == 0xFFFF) || (AppliHslSet[elementIndex].HslLightness16 == 0x00))
+ {
+ Appli_RGBParam[elementIndex].Red_Value = AppliHslSet[elementIndex].HslLightness16 ;
+ Appli_RGBParam[elementIndex].Green_Value = AppliHslSet[elementIndex].HslLightness16 ;
+ Appli_RGBParam[elementIndex].Blue_Value = AppliHslSet[elementIndex].HslLightness16 ;
+ }
+ else
+ {
+ /* Hue is calculated for angular value. so converting in between 0 to 360 degree */
+ hueValue = (MOBLEUINT16)(360 * (float)AppliHslSet[elementIndex].HslHueLightness16/65535);
+ lightnessvalue = (float)AppliHslSet[elementIndex].HslLightness16/65535;
+ saturationValue = (float)AppliHslSet[elementIndex].HslSaturation16/65535;
+
+ /* Formula to get the values used for RGB conversion */
+ cValue = (MOBLEUINT16)(((1- fabs(2 * lightnessvalue-1))*saturationValue) * 1000);
+ mValue = (MOBLEUINT16)((lightnessvalue * 1000) - (cValue/2));
+ xValue = (MOBLEUINT16)(cValue * (1 - fabs(fmod(hueValue / 60.0, 2.0) - 1)));
+
+ /* Conditions applied for the different angle of hue value */
+ if (hueValue > 0 && hueValue < (HUE_UPPER_LIMIT / 6))
+ {
+ RgbF_Create(cValue + mValue, xValue + mValue, mValue, elementIndex);
+ }
+ else if (hueValue >= (HUE_UPPER_LIMIT / 6) && hueValue < (HUE_UPPER_LIMIT / 3))
+ {
+ RgbF_Create(xValue + mValue, cValue + mValue, mValue, elementIndex);
+ }
+ else if (hueValue >= (HUE_UPPER_LIMIT / 3) && hueValue < (HUE_UPPER_LIMIT / 2))
+ {
+ RgbF_Create(mValue, cValue + mValue, xValue + mValue, elementIndex);
+ }
+ else if (hueValue >= (HUE_UPPER_LIMIT / 2)
+ && hueValue < (2 * HUE_UPPER_LIMIT / 3))
+ {
+ RgbF_Create(mValue, xValue + mValue, cValue + mValue, elementIndex);
+ }
+ else if (hueValue >= (2 * HUE_UPPER_LIMIT / 3)
+ && hueValue < (5 * HUE_UPPER_LIMIT / 6))
+ {
+ RgbF_Create(xValue + mValue, mValue, cValue + mValue, elementIndex);
+ }
+ else if ((hueValue >= (5 * HUE_UPPER_LIMIT / 6) && hueValue <= HUE_UPPER_LIMIT) || (hueValue == 0))
+ {
+ RgbF_Create(cValue + mValue, mValue, xValue + mValue, elementIndex);
+ }
+ else
+ {
+ RgbF_Create(mValue, mValue, mValue, elementIndex);
+ }
+ }
+}
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_SERVER_HSL */
+/******************************************************************************/
+/**
+* @}
+*/
+
+/**
+* @}
+*/
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light.h
new file mode 100644
index 000000000..c8400e080
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light.h
@@ -0,0 +1,275 @@
+/**
+ ******************************************************************************
+ * @file appli_light.h
+ * @author BLE Mesh Team
+ * @brief Application interface for Light Mesh Model
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APPLI_LIGHT_H
+#define __APPLI_LIGHT_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+#include "light.h"
+
+/* Exported macro ------------------------------------------------------------*/
+#define HUE_UPPER_LIMIT 360
+/* Exported variables -------------------------------------------------------*/
+
+/* Light Lightness set */
+
+#pragma pack(push, 1)
+
+typedef struct
+{
+ MOBLEUINT16 PresentState16;
+ MOBLEUINT16 LastLightness16;
+ MOBLEUINT16 LightnessDefault;
+ MOBLEUINT8 StatusCode;
+ MOBLEUINT16 RangeMin;
+ MOBLEUINT16 RangeMax;
+}Appli_Light_lightnessSet;
+
+
+/* Light Lightness Linear set */
+typedef struct
+{
+ MOBLEUINT16 PresentState16;
+}Appli_Light_lightnessLinearSet;
+
+/* Light Ctl Set */
+typedef struct
+{
+ MOBLEUINT16 PresentLightness16;
+ MOBLEUINT16 PresentTemperature16;
+ MOBLEINT16 PresentCtlDelta16;
+ MOBLEUINT16 TargetLightness16;
+ MOBLEUINT16 TargetTemperature16;
+ MOBLEINT16 TargetCtlDelta16;
+}Appli_Light_CtlSet;
+
+/* Light Ctl Temperature Range Set */
+typedef struct
+{
+ MOBLEUINT8 StatusCode;
+ MOBLEUINT16 RangeMin;
+ MOBLEUINT16 RangeMax;
+}Appli_Light_CtlTemperatureRangeSet;
+
+/* Light Ctl Default set */
+typedef struct
+{
+ MOBLEUINT16 CtlDefaultLightness16;
+ MOBLEUINT16 CtlDefaultTemperature16;
+ MOBLEINT16 CtlDefaultDeltaUv;
+}Appli_Light_CtlDefaultSet;
+
+/* Light Hsl Hue set */
+typedef struct
+{
+ MOBLEUINT16 HslLightness16;
+ MOBLEUINT16 HslHueLightness16;
+ MOBLEUINT16 HslSaturation16;
+ MOBLEUINT16 TargetHslLightness16;
+ MOBLEUINT16 TargetHslHueLightness16;
+ MOBLEUINT16 TargetHslSaturation16;
+}Appli_Light_HslSet;
+
+/* Light Hsl Hue set */
+typedef struct
+{
+ MOBLEUINT16 HslDefaultLightness16;
+ MOBLEUINT16 HslDefaultHueLightness16;
+ MOBLEUINT16 HslDefaultSaturation16;
+}Appli_Light_HslDefaultSet;
+
+typedef struct
+{
+ MOBLEUINT16 Red_Value;
+ MOBLEUINT16 Green_Value;
+ MOBLEUINT16 Blue_Value;
+}Appli_Light_RGBSet;
+
+typedef struct
+{
+ MOBLEUINT8 StatusCode;
+ MOBLEUINT16 HslHueMinRange16;
+ MOBLEUINT16 HslHueMaxRange16;
+ MOBLEUINT16 HslMinSaturation16;
+ MOBLEUINT16 HslMaxSaturation16;
+}Appli_Light_HslRangeSet;
+
+typedef struct
+{
+ MOBLEUINT16 IntensityValue;
+ MOBLEUINT16 PwmRedValue;
+ MOBLEUINT16 PwmGreenValue;
+ MOBLEUINT16 PwmBlueValue;
+ MOBLEUINT16 PwmWarmValue;
+ MOBLEUINT16 PwmCoolValue;
+}Appli_LightPwmValue_t;
+
+#pragma pack(pop)
+
+/* Exported Functions Prototypes ---------------------------------------------*/
+
+MOBLE_RESULT Appli_Light_Lightness_Set(Light_LightnessStatus_t*,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_Lightness_Linear_Set(Light_LightnessStatus_t* pLight_LightnessLinearParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_Lightness_Default_Set(Light_LightnessDefaultParam_t* pLight_LightnessDefaultParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_Lightness_Last_Set(Light_LightnessStatus_t* pLight_LightnessParam,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_Lightness_Range_Set(Light_LightnessRangeParam_t* pLight_LightnessRangeParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_Ctl_Set(Light_CtlStatus_t* pLight_CtlParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_CtlTemperature_Set(Light_CtlStatus_t* pLight_CtltempParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_CtlTemperature_Range_Set(Light_CtlTemperatureRangeParam_t* pLight_CtlTempRangeParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_CtlDefault_Set(Light_CtlDefaultParam_t* pLight_CtlDefaultParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_Hsl_Set(Light_HslStatus_t* pLight_HslParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_HslHue_Set(Light_HslStatus_t* pLight_HslHueParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_HslSaturation_Set(Light_HslStatus_t* pLight_HslSaturationParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_HslDefault_Set(Light_HslDefaultParam_t* pLight_HslDefaultParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_HslRange_Set(Light_HslRangeParam_t* pLight_HslDefaultParam,
+ MOBLEUINT8 OptionalValid,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetLightnessStatus(MOBLEUINT8* lLightnessState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetLightnessLinearStatus(MOBLEUINT8* lLightnessState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetLightnessDefaultStatus(MOBLEUINT8* lDefaultState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetLightnessLastStatus(MOBLEUINT8* lLastState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetLightnessRangeStatus(MOBLEUINT8* lRangeState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetCtlLightStatus(MOBLEUINT8* lCtlLightState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetCtlTargetStatus(MOBLEUINT8* lCtlLightState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetCtlTemperatureStatus(MOBLEUINT8* lCtlTempState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetCtlTemperatureRange(MOBLEUINT8* lCtlTempRange,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetCtlDefaultStatus(MOBLEUINT8* lCtlDefaultState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetHslStatus(MOBLEUINT8* lHslState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetHslTargetStatus(MOBLEUINT8* lHslState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetHslHueStatus(MOBLEUINT8* lHslHueState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetHslSaturationStatus(MOBLEUINT8* lHslSaturationState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetHslHueRange(MOBLEUINT8* lHslHueRange,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetHslSatRange(MOBLEUINT8* lHslSatRange,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_GetHslDefaultStatus(MOBLEUINT8* lHslDefaultState,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+void HSL2RGB_Conversion(MOBLEUINT8 elementIndex);
+
+void RgbF_Create(MOBLEUINT16 value1,
+ MOBLEUINT16 value2,
+ MOBLEUINT16 value3,
+ MOBLEUINT8 elementIndex);
+
+/******************************************************************************/
+#endif /* __APPLI_LIGHT_H */
+/******************************************************************************/
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_client.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_client.c
new file mode 100644
index 000000000..8d7dda2f7
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_client.c
@@ -0,0 +1,1204 @@
+/**
+ ******************************************************************************
+* @file appli_light_client.c
+* @author BLE Mesh Team
+* @brief Application interface for Generic Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "hal_common.h"
+#include "types.h"
+#include "appli_generic.h"
+#include "appli_light.h"
+#include "appli_light_lc.h"
+#include "common.h"
+#include "mesh_cfg_usr.h"
+#include "appli_nvm.h"
+#include "appli_mesh.h"
+#include "generic_client.h"
+#include "appli_light_client.h"
+#include "light_lc.h"
+#include "light_client.h"
+
+
+/** @addtogroup ST_BLE_Mesh
+* @{
+*/
+
+/** @addtogroup Application_Mesh_Models
+* @{
+*/
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+
+extern MOBLEUINT8 Tid_Client;
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+/**
+* @brief Appli_LightClient_API: This function is a Wrapper to call Light Client API depending on opcode received in input
+* @param elementIndex: Index of the element
+* @param msg_opcode: opcode of the desired API
+* @param msg_params: buffer containing the desired API parameters
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_LightClient_API(MOBLEUINT8 elementIndex, MOBLEUINT16 msg_opcode, MOBLEUINT8 *msg_params)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_FAIL;
+
+ switch(msg_opcode){
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_CLIENT_LIGHTNESS
+/******************************************************************************/
+ case LIGHT_LIGHTNESS_GET:
+ {
+ result = LightClient_Lightness_Get(elementIndex);
+ break;
+ }
+ case LIGHT_LIGHTNESS_SET:
+ {
+ result = LightClient_Lightness_Set_Ack(elementIndex,
+ msg_params,
+ (sizeof(Light_LightnessParam_t)-4)); //Remove the size of Linear Lightness params, Transition Time and Delay
+ break;
+ }
+ case LIGHT_LIGHTNESS_SET_UNACK:
+ {
+ result = LightClient_Lightness_Set_Unack(elementIndex,
+ msg_params,
+ (sizeof(Light_LightnessParam_t)-4)); //Remove the size of Linear Lightness params, Transition Time and Delay
+ break;
+ }
+
+ case LIGHT_LIGHTNESS_LINEAR_GET:
+ {
+ result = LightClient_Lightness_Linear_Get(elementIndex);
+ break;
+ }
+ case LIGHT_LIGHTNESS_LINEAR_SET:
+ {
+ result = LightClient_Lightness_Linear_Set_Ack(elementIndex,
+ msg_params,
+ (sizeof(Light_LightnessParam_t)-4)); //Remove the size of Lightness params, Transition Time and Delay
+ break;
+ }
+ case LIGHT_LIGHTNESS_LINEAR_SET_UNACK:
+ {
+ result = LightClient_Lightness_Linear_Set_Unack(elementIndex,
+ msg_params,
+ (sizeof(Light_LightnessParam_t)-4)); //Remove the size of Lightness params, Transition Time and Delay
+ break;
+ }
+
+ case LIGHT_LIGHTNESS_DEFAULT_GET:
+ {
+ result = LightClient_Lightness_Default_Get(elementIndex);
+ break;
+ }
+ case LIGHT_LIGHTNESS_DEFAULT_SET:
+ {
+ result = LightClient_Lightness_Default_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_LightnessDefaultParam_t));
+ break;
+ }
+ case LIGHT_LIGHTNESS_DEFAULT_SET_UNACK:
+ {
+ result = LightClient_Lightness_Default_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_LightnessDefaultParam_t));
+ break;
+ }
+
+
+ case LIGHT_LIGHTNESS_RANGE_GET:
+ {
+ result = LightClient_Lightness_Range_Get(elementIndex);
+ break;
+ }
+ case LIGHT_LIGHTNESS_RANGE_SET:
+ {
+ result = LightClient_Lightness_Range_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_LightnessRangeParam_t)-1); //Remove the size of StatusCode
+ break;
+ }
+ case LIGHT_LIGHTNESS_RANGE_SET_UNACK:
+ {
+ result = LightClient_Lightness_Range_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_LightnessRangeParam_t)-1); //Remove the size of StatusCode
+ break;
+ }
+
+
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_CLIENT_LIGHTNESS */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_CLIENT_CTL
+/******************************************************************************/
+ case LIGHT_CTL_GET:
+ {
+ result = LightClient_Ctl_Get(elementIndex);
+ break;
+ }
+ case LIGHT_CTL_SET:
+ {
+ result = LightClient_Ctl_Set_Ack(elementIndex,
+ msg_params,
+ (sizeof(Light_CtlParam_t)-4) ); //Remove the size of Last_Lightness and Last_Temperature
+ break;
+ }
+ case LIGHT_CTL_SET_UNACK:
+ {
+ result = LightClient_Ctl_Set_Unack(elementIndex,
+ msg_params,
+ (sizeof(Light_CtlParam_t)-4) ); //Remove the size of Last_Lightness and Last_Temperature
+ break;
+ }
+
+ case LIGHT_CTL_TEMPERATURE_GET:
+ {
+ result = LightClient_Ctl_Temperature_Get(elementIndex);
+ break;
+ }
+ case LIGHT_CTL_TEMPERATURE_SET:
+ {
+ result = LightClient_Ctl_Temperature_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_CtlTemperatureParam_t)-2); //Remove the size of Transition Time and Delay
+ break;
+ }
+ case LIGHT_CTL_TEMPERATURE_SET_UNACK:
+ {
+ result = LightClient_Ctl_Temperature_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_CtlTemperatureParam_t)-2); //Remove the size of Transition Time and Delay
+ break;
+ }
+
+ case LIGHT_CTL_TEMPERATURE_RANGE_GET:
+ {
+ result = LightClient_Ctl_Temperature_Range_Get(elementIndex);
+ break;
+ }
+ case LIGHT_CTL_TEMPERATURE_RANGE_SET:
+ {
+ result = LightClient_Ctl_Temperature_Range_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_CtlTemperatureRangeParam_t)-1); //Remove the size of StatusCode
+ break;
+ }
+ case LIGHT_CTL_TEMPERATURE_RANGE_SET_UNACK:
+ {
+ result = LightClient_Ctl_Temperature_Range_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_CtlTemperatureRangeParam_t)-1); //Remove the size of StatusCode
+ break;
+ }
+
+ case LIGHT_CTL_DEFAULT_GET:
+ {
+ result = LightClient_Ctl_Default_Get(elementIndex);
+ break;
+ }
+ case LIGHT_CTL_DEFAULT_SET:
+ {
+ result = LightClient_Ctl_Default_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_CtlDefaultParam_t));
+ break;
+ }
+ case LIGHT_CTL_DEFAULT_SET_UNACK:
+ {
+ result = LightClient_Ctl_Default_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_CtlDefaultParam_t));
+ break;
+ }
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_CLIENT_CTL */
+/******************************************************************************/
+
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_CLIENT_HSL
+/******************************************************************************/
+ case LIGHT_HSL_GET:
+ {
+ result = LightClient_Hsl_Get(elementIndex);
+ break;
+ }
+ case LIGHT_HSL_SET:
+ {
+ result = LightClient_Hsl_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_HslParam_t) );
+ break;
+ }
+ case LIGHT_HSL_SET_UNACK:
+ {
+ result = LightClient_Hsl_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_HslParam_t) );
+ break;
+ }
+
+ case LIGHT_HSL_DEFAULT_GET:
+ {
+ result = LightClient_Hsl_Default_Get(elementIndex);
+ break;
+ }
+ case LIGHT_HSL_DEFAULT_SET:
+ {
+ result = LightClient_Hsl_Default_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_HslDefaultParam_t) );
+ break;
+ }
+ case LIGHT_HSL_DEFAULT_SET_UNACK:
+ {
+ result = LightClient_Hsl_Default_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_HslDefaultParam_t) );
+ break;
+ }
+
+ case LIGHT_HSL_RANGE_GET:
+ {
+ result = LightClient_Hsl_Range_Get(elementIndex);
+ break;
+ }
+ case LIGHT_HSL_RANGE_SET:
+ {
+ result = LightClient_Hsl_Range_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_HslRangeParam_t)-1); //Remove the size of StatusCode
+ break;
+ }
+ case LIGHT_HSL_RANGE_SET_UNACK:
+ {
+ result = LightClient_Hsl_Range_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_HslRangeParam_t)-1); //Remove the size of StatusCode
+ break;
+ }
+
+ case LIGHT_HSL_HUE_GET:
+ {
+ result = LightClient_Hsl_Hue_Get(elementIndex);
+ break;
+ }
+ case LIGHT_HSL_HUE_SET:
+ {
+ result = LightClient_Hsl_Hue_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_HslHueParam_t)-2); //Remove the size of Transition Time and Delay
+ break;
+ }
+ case LIGHT_HSL_HUE_SET_UNACK:
+ {
+ result = LightClient_Hsl_Hue_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_HslHueParam_t)-2); //Remove the size of Transition Time and Delay
+ break;
+ }
+
+ case LIGHT_HSL_SATURATION_GET:
+ {
+ result = LightClient_Hsl_Saturation_Get(elementIndex);
+ break;
+ }
+ case LIGHT_HSL_SATURATION_SET:
+ {
+ result = LightClient_Hsl_Saturation_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_HslSaturationParam_t)-2); //Remove the size of Transition Time and Delay
+ break;
+ }
+ case LIGHT_HSL_SATURATION_SET_UNACK:
+ {
+ result = LightClient_Hsl_Saturation_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_HslSaturationParam_t)-2); //Remove the size of Transition Time and Delay
+ break;
+ }
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_CLIENT_HSL */
+/******************************************************************************/
+/******************************************************************************/
+#ifdef ENABLE_LIGHT_MODEL_CLIENT_LC
+/******************************************************************************/
+ case LIGHT_LC_MODE_GET:
+ {
+ result = LightClient_LC_Mode_Get(elementIndex);
+ break;
+ }
+ case LIGHT_LC_MODE_SET:
+ {
+ result = LightClient_LC_Mode_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_LC_ModeParam_t));
+ break;
+ }
+ case LIGHT_LC_MODE_SET_UNACK:
+ {
+ result = LightClient_LC_Mode_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_LC_ModeParam_t));
+ break;
+ }
+ case LIGHT_LC_OM_GET:
+ {
+ result = LightClient_LC_OM_Get(elementIndex);
+ break;
+ }
+ case LIGHT_LC_OM_SET:
+ {
+ result = LightClient_LC_OM_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_LC_OccupancyModeParam_t));
+ break;
+ }
+ case LIGHT_LC_OM_SET_UNACK:
+ {
+ result = LightClient_LC_OM_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_LC_OccupancyModeParam_t));
+ break;
+ }
+ case LIGHT_LC_ON_OFF_GET:
+ {
+ result = LightClient_LC_OnOff_Get(elementIndex);
+ break;
+ }
+ case LIGHT_LC_ON_OFF_SET:
+ {
+ result = LightClient_LC_OnOff_Set_Ack(elementIndex,
+ msg_params,
+ sizeof(Light_LC_OnOffParam_t));
+ break;
+ }
+ case LIGHT_LC_ON_OFF_SET_UNACK:
+ {
+ result = LightClient_LC_OnOff_Set_Unack(elementIndex,
+ msg_params,
+ sizeof(Light_LC_OnOffParam_t));
+ break;
+ }
+
+ case LIGHT_LC_PROPERTY_GET:
+ {
+ result = LightClient_LC_Property_Get(elementIndex, msg_params);
+ break;
+ }
+ case LIGHT_LC_PROPERTY_SET:
+ {
+
+ result = LightClient_LC_Property_Set_Ack(elementIndex,
+ msg_params,
+ 5);
+ break;
+ }
+ case LIGHT_LC_PROPERTY_SET_UNACK:
+ {
+
+ result = LightClient_LC_Property_Set_Unack(elementIndex,
+ msg_params,
+ 5);
+ break;
+ }
+/******************************************************************************/
+#endif /* #ifdef ENABLE_LIGHT_MODEL_CLIENT_LC */
+/******************************************************************************/
+ default:
+ {
+ TRACE_M(TF_LIGHT, "OpCode value invalid %d \r\n", msg_opcode);
+ result = MOBLE_RESULT_FAIL;
+ }
+ }
+ return result;
+}
+
+/**
+* @brief Appli_Light_Lightness_Status: This function is callback for Application
+* when Light Lightness status message is received
+* @param pLightness_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Lightness_Status(MOBLEUINT8 const *pLightness_status, MOBLEUINT32 pLength, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value = 0;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_Lightness_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#824E!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if((i == 0) || (i == 2))
+ {
+ value = pLightness_status[i];
+ }
+ else if(i == 1)
+ {
+ TRACE_M(TF_LIGHT,"Present Lightness: 0x%x (%d)\r\n",
+ value | pLightness_status[i] << 8,
+ value | pLightness_status[i] << 8);
+ }
+ else if(i == 3)
+ {
+ TRACE_M(TF_LIGHT,"Target Lightness: 0x%x (%d)\r\n",
+ value | pLightness_status[i] << 8,
+ value | pLightness_status[i] << 8);
+ }
+ else if(i == 4)
+ {
+ TRACE_M(TF_LIGHT,"Remaining Time: 0x%x (%d)\r\n",
+ pLightness_status[i],
+ pLightness_status[i]);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_Lightness_Linear_Status: This function is callback for Application
+* when Light Lightness Linear status message is received
+* @param pLightnessLinear_status: Pointer to the parameters received for message
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @param pLength: length of data
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Lightness_Linear_Status(MOBLEUINT8 const *pLightnessLinear_status, MOBLEUINT32 pLength, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value = 0;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_Lightness_Linear_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8252!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if((i == 0) || (i == 2))
+ {
+ value = pLightnessLinear_status[i];
+ }
+ else if(i == 1)
+ {
+ TRACE_M(TF_LIGHT,"Present Lightness: 0x%x (%d)\r\n",
+ value | pLightnessLinear_status[i] << 8,
+ value | pLightnessLinear_status[i] << 8);
+ }
+ else if(i == 3)
+ {
+ TRACE_M(TF_LIGHT,"Target Lightness: 0x%x (%d)\r\n",
+ value | pLightnessLinear_status[i] << 8,
+ value | pLightnessLinear_status[i] << 8);
+ }
+ else if(i == 4)
+ {
+ TRACE_M(TF_LIGHT,"Remaining Time: 0x%x (%d)\r\n",
+ pLightnessLinear_status[i],
+ pLightnessLinear_status[i]);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_Lightness_Last_Status: This function is callback for Application
+* when Light Lightness Last status message is received
+* @param pLightnessDefault_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Lightness_Last_Status(MOBLEUINT8 const *pLightnessLast_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_Lightness_Last_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8256!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if(i == 0)
+ {
+ value = pLightnessLast_status[i];
+ }
+ else if(i == 1)
+ {
+ TRACE_M(TF_LIGHT,"Lightness Last: 0x%x (%d)\r\n",
+ value | pLightnessLast_status[i] << 8,
+ value | pLightnessLast_status[i] << 8);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_Lightness_Default_Status: This function is callback for Application
+* when Light Lightness Default status message is received
+* @param pLightnessDefault_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Lightness_Default_Status(MOBLEUINT8 const *pLightnessDefault_status, MOBLEUINT32 pLength
+ , MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_Lightness_Default_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8256!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if(i == 0)
+ {
+ value = pLightnessDefault_status[i];
+ }
+ else if(i == 1)
+ {
+ TRACE_M(TF_LIGHT,"Lightness Default: 0x%x (%d)\r\n",
+ value | pLightnessDefault_status[i] << 8,
+ value | pLightnessDefault_status[i] << 8);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_Lightness_Range_Status: This function is callback for Application
+* when Light Lightness range ststus message is received
+* @param pLightnessRange_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Lightness_Range_Status(MOBLEUINT8 const *pLightnessRange_status, MOBLEUINT32 pLength
+ , MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_Lightness_Range_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8258!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if(i == 0)
+ {
+ TRACE_M(TF_LIGHT,"Status Code: 0x%x (%d)\r\n",
+ pLightnessRange_status[i],
+ pLightnessRange_status[i]);
+ }
+ else if((i == 1) || (i == 3))
+ {
+ value = pLightnessRange_status[i];
+ }
+ else if(i == 2)
+ {
+ TRACE_M(TF_LIGHT,"Range Min: 0x%x (%d)\r\n",
+ value | pLightnessRange_status[i] << 8,
+ value | pLightnessRange_status[i] << 8);
+ }
+ else if(i == 4)
+ {
+ TRACE_M(TF_LIGHT,"Range Max: 0x%x (%d)\r\n",
+ value | pLightnessRange_status[i] << 8,
+ value | pLightnessRange_status[i] << 8);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_Ctl_Status: This function is callback for Application
+* when Light CTL status message is received
+* @param pLightCtl_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Ctl_Status(MOBLEUINT8 const *pLightCtl_status, MOBLEUINT32 pLength, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value = 0;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_Ctl_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8260!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if((i == 0) || (i == 2) || (i == 4) || (i == 6))
+ {
+ value = pLightCtl_status[i];
+ }
+ else if(i == 1)
+ {
+ TRACE_M(TF_LIGHT,"Present CTL Lightness: 0x%x (%d)\r\n",
+ value | pLightCtl_status[i] << 8,
+ value | pLightCtl_status[i] << 8);
+ }
+ else if(i == 3)
+ {
+ TRACE_M(TF_LIGHT,"Present CTL Temperature: 0x%x (%d)\r\n",
+ value | pLightCtl_status[i] << 8,
+ value | pLightCtl_status[i] << 8);
+ }
+ else if(i == 5)
+ {
+ TRACE_M(TF_LIGHT,"Target CTL Lightness: 0x%x (%d)\r\n",
+ value | pLightCtl_status[i] << 8,
+ value | pLightCtl_status[i] << 8);
+ }
+ else if(i == 7)
+ {
+ TRACE_M(TF_LIGHT,"Target CTL Temperature: 0x%x (%d)\r\n",
+ value | pLightCtl_status[i] << 8,
+ value | pLightCtl_status[i] << 8);
+ }
+ else if(i == 8)
+ {
+ TRACE_M(TF_LIGHT,"Remaining Time:0x%x (%d)\r\n",
+ pLightCtl_status[i],
+ pLightCtl_status[i]);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_CtlTemperature_Status: This function is callback for Application
+* when Light CTL temperature status message is received
+* @param pLightCtlTemp_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_CtlTemperature_Status(MOBLEUINT8 const *pLightCtlTemp_status, MOBLEUINT32 pLength
+ , MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value = 0;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_CtlTemperature_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8266!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if((i == 0) || (i == 2) || (i == 4) || (i == 6))
+ {
+ value = pLightCtlTemp_status[i];
+ }
+ else if(i == 1)
+ {
+ TRACE_M(TF_LIGHT,"Present CTL Temperature: 0x%x (%d)\r\n",
+ value | pLightCtlTemp_status[i] << 8,
+ value | pLightCtlTemp_status[i] << 8);
+ }
+ else if(i == 3)
+ {
+ TRACE_M(TF_LIGHT,"Present CTL Delta UV: 0x%x (%d)\r\n",
+ value | pLightCtlTemp_status[i] << 8,
+ value | pLightCtlTemp_status[i] << 8);
+ }
+ else if(i == 5)
+ {
+ TRACE_M(TF_LIGHT,"Target CTL Temperature: 0x%x (%d)\r\n",
+ value | pLightCtlTemp_status[i] << 8,
+ value | pLightCtlTemp_status[i] << 8);
+ }
+ else if(i == 7)
+ {
+ TRACE_M(TF_LIGHT,"Target CTL Delta UV: 0x%x (%d)\r\n",
+ value | pLightCtlTemp_status[i] << 8,
+ value | pLightCtlTemp_status[i] << 8);
+ }
+ else if(i == 8)
+ {
+ TRACE_M(TF_LIGHT,"Remaining Time: 0x%x (%d)\r\n",
+ pLightCtlTemp_status[i],
+ pLightCtlTemp_status[i]);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Appli_Light_CtlTemperature_Range_Set: This function is callback for Application
+* when Light CTL temperature range status message is received
+* @param pCtlTempRange_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_CtlTemperature_Range_Status(MOBLEUINT8 const *pCtlTempRange_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_CtlTemperature_Range_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8263!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if(i == 0)
+ {
+ TRACE_M(TF_LIGHT,"Status Code: 0x%x (%d)\r\n",
+ pCtlTempRange_status[i],
+ pCtlTempRange_status[i]);
+ }
+ else if((i == 1) || (i == 3))
+ {
+ value = pCtlTempRange_status[i];
+ }
+ else if(i == 2)
+ {
+ TRACE_M(TF_LIGHT,"Range Min: 0x%x (%d)\r\n",
+ value | pCtlTempRange_status[i] << 8,
+ value | pCtlTempRange_status[i] << 8 );
+ }
+ else if(i == 4)
+ {
+ TRACE_M(TF_LIGHT,"Range Max: 0x%x (%d)\r\n",
+ value | pCtlTempRange_status[i] << 8,
+ value | pCtlTempRange_status[i] << 8 );
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_CtlDefault_Status: This function is callback for Application
+* when Light CTL Default status message is received
+* @param pCtlDefault_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_CtlDefault_Status(MOBLEUINT8 const *pCtlDefault_status, MOBLEUINT32 pLength, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value = 0;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_Ctl_DefaultStatus callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8268!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if((i == 0) || (i == 2) || (i == 4))
+ {
+ value = pCtlDefault_status[i];
+ }
+ else if(i == 1)
+ {
+ TRACE_M(TF_LIGHT,"Lightness: 0x%x (%d)\n\r",
+ value | pCtlDefault_status[i] << 8,
+ value | pCtlDefault_status[i] << 8);
+ }
+ else if(i == 3)
+ {
+ TRACE_M(TF_LIGHT,"Temperature: 0x%x (%d)\n\r",
+ value | pCtlDefault_status[i] << 8,
+ value | pCtlDefault_status[i] << 8);
+ }
+ else if(i == 5)
+ {
+ TRACE_M(TF_LIGHT,"Delta UV: 0x%x (%d)\n\r",
+ value | pCtlDefault_status[i] << 8,
+ value | pCtlDefault_status[i] << 8);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_Hsl_Status: This function is callback for Application
+* when Light HSL status message is received
+* @param pHsl_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_Hsl_Status(MOBLEUINT8 const *pHsl_status, MOBLEUINT32 pLength, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value = 0;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_Hsl_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8278!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if((i == 0) || (i == 2) || (i == 4))
+ {
+ value = pHsl_status[i];
+ }
+ else if(i == 1)
+ {
+ TRACE_M(TF_LIGHT,"HSL Lightness: 0x%x (%d)\n\r",
+ value | pHsl_status[i] << 8,
+ value | pHsl_status[i] << 8);
+ }
+ else if(i == 3)
+ {
+ TRACE_M(TF_LIGHT,"HSL Hue: 0x%x (%d)\n\r",
+ value | pHsl_status[i] << 8,
+ value | pHsl_status[i] << 8);
+ }
+ else if(i == 5)
+ {
+ TRACE_M(TF_LIGHT,"HSL Saturation: 0x%x (%d)\n\r",
+ value | pHsl_status[i] << 8,
+ value | pHsl_status[i] << 8);
+ }
+ else if(i == 6)
+ {
+ TRACE_M(TF_LIGHT,"Remaining Time: 0x%x (%d)\n\r",
+ pHsl_status[i],
+ pHsl_status[i]);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_HslHue_Status: This function is callback for Application
+* when Light HSL HUE status message is received
+* @param pHslHue_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_HslHue_Status(MOBLEUINT8 const *pHslHue_status, MOBLEUINT32 pLength, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value = 0;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_HslHue_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8271!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if((i == 0) || (i == 2))
+ {
+ value = pHslHue_status[i];
+ }
+ else if(i == 1)
+ {
+ TRACE_M(TF_LIGHT,"Present Hue: 0x%x (%d)\n\r",
+ value | pHslHue_status[i] << 8,
+ value | pHslHue_status[i] << 8);
+ }
+ else if(i == 3)
+ {
+ TRACE_M(TF_LIGHT,"Target Hue: 0x%x (%d)\n\r",
+ value | pHslHue_status[i] << 8,
+ value | pHslHue_status[i] << 8);
+ }
+ else if(i == 4)
+ {
+ TRACE_M(TF_LIGHT,"Remaining Time: 0x%x (%d)\n\r",
+ pHslHue_status[i],
+ pHslHue_status[i]);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_HslSaturation_Status: This function is callback for Application
+* when Light HSL Saturation status message is received
+* @param pHslSaturation_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_HslSaturation_Status(MOBLEUINT8 const *pHslSaturation_status, MOBLEUINT32 pLength, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value = 0;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_HslSaturation_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8275!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if((i == 0) || (i == 2))
+ {
+ value = pHslSaturation_status[i];
+ }
+ else if(i == 1)
+ {
+ TRACE_M(TF_LIGHT,"Present Saturation: 0x%x (%d)\n\r",
+ value | pHslSaturation_status[i] << 8,
+ value | pHslSaturation_status[i] << 8);
+ }
+ else if(i == 3)
+ {
+ TRACE_M(TF_LIGHT,"Target Saturation: 0x%x (%d)\n\r",
+ value | pHslSaturation_status[i] << 8,
+ value | pHslSaturation_status[i] << 8);
+ }
+ else if(i == 4)
+ {
+ TRACE_M(TF_LIGHT,"Remaining Time: 0x%x (%d)\n\r",
+ pHslSaturation_status[i],
+ pHslSaturation_status[i]);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_HslDefault_Status: This function is callback for Application
+* when Light HSL Default status message is received
+* @param pHslDefault_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_HslDefault_Status(MOBLEUINT8 const *pHslDefault_status, MOBLEUINT32 pLength, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value = 0;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_HslDefault_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#827C!\r\n");
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if((i == 0) || (i == 2) || (i == 4))
+ {
+ value = pHslDefault_status[i];
+ }
+ else if(i == 1)
+ {
+ TRACE_M(TF_LIGHT,"Lightness: 0x%x (%d)\n\r",
+ value | pHslDefault_status[i] << 8,
+ value | pHslDefault_status[i] << 8);
+ }
+ else if(i == 3)
+ {
+ TRACE_M(TF_LIGHT,"Hue: 0x%x (%d)\n\r",
+ value | pHslDefault_status[i] << 8,
+ value | pHslDefault_status[i] << 8);
+ }
+ else if(i == 5)
+ {
+ TRACE_M(TF_LIGHT,"Saturation: 0x%x (%d)\n\r",
+ value | pHslDefault_status[i] << 8,
+ value | pHslDefault_status[i] << 8);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Appli_Light_HslRange_Status: This function is callback for Application
+* when Light HSL range status message is received
+* @param pHslRange_status: Pointer to the parameters received for message
+* @param pLength: length of data
+* @param dstPeer: destination send by peer for this node. It can be a
+* unicast or group address
+* @param elementIndex: index of the element received from peer for this node which
+* is elementNumber-1
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_Light_HslRange_Status(MOBLEUINT8 const *pHslRange_status, MOBLEUINT32 pLength, MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+#if ( CFG_DEBUG_TRACE != 0 )
+ MOBLEUINT32 i;
+ MOBLEUINT16 value = 0;
+#endif
+
+ TRACE_M(TF_LIGHT,"Light_HslRange_Status callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#827E!\r\n");
+
+
+#if ( CFG_DEBUG_TRACE != 0 )
+ for(i = 0; i < pLength; i++)
+ {
+ if(i == 0)
+ {
+ TRACE_M(TF_LIGHT,"Status Code: 0x%x (%d)\n\r",
+ pHslRange_status[i],
+ pHslRange_status[i]);
+ }
+ else if((i == 1) || (i == 3) || (i == 5) || (i == 7))
+ {
+ value = pHslRange_status[i];
+ }
+ else if(i == 2)
+ {
+ TRACE_M(TF_LIGHT,"Hue Range Min: 0x%x (%d)\n\r",
+ value | pHslRange_status[i] << 8,
+ value | pHslRange_status[i] << 8);
+ }
+ else if(i == 4)
+ {
+ TRACE_M(TF_LIGHT,"Hue Range Max: 0x%x (%d)\n\r",
+ value | pHslRange_status[i] << 8,
+ value | pHslRange_status[i] << 8);
+ }
+ else if(i == 6)
+ {
+ TRACE_M(TF_LIGHT,"Saturation Range Min: 0x%x (%d)\n\r",
+ value | pHslRange_status[i] << 8,
+ value | pHslRange_status[i] << 8);
+ }
+ else if(i == 8)
+ {
+ TRACE_M(TF_LIGHT,"Saturation Range Max: 0x%x (%d)\n\r",
+ value | pHslRange_status[i] << 8,
+ value | pHslRange_status[i] << 8);
+ }
+ }
+#endif
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @}
+*/
+
+/**
+* @}
+*/
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_client.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_client.h
new file mode 100644
index 000000000..530d0964b
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_client.h
@@ -0,0 +1,109 @@
+/**
+ ******************************************************************************
+* @file appli_light_client.h
+* @author BLE Mesh Team
+* @brief Application interface for Generic Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APPLI_LIGHT_CLIENT_H
+#define __APPLI_LIGHT_CLIENT_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+#include "generic.h"
+#include "mesh_cfg.h"
+
+
+/* Exported macro ------------------------------------------------------------*/
+/* Exported variables ------------------------------------------------------- */
+/* Application Variable-------------------------------------------------------*/
+/* Exported Functions Prototypes ---------------------------------------------*/
+MOBLE_RESULT Appli_Light_Lightness_Status(MOBLEUINT8 const *pLightness_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_Lightness_Linear_Status(MOBLEUINT8 const *pLightnessLinear_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_Lightness_Last_Status(MOBLEUINT8 const *pLightnessLast_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_Lightness_Default_Status(MOBLEUINT8 const *pLightnessDefault_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_Lightness_Range_Status(MOBLEUINT8 const *pLightnessRange_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_Ctl_Status(MOBLEUINT8 const *pLightCtl_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_CtlTemperature_Status(MOBLEUINT8 const *pLightCtlTemp_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_CtlTemperature_Range_Status(MOBLEUINT8 const *pCtlTempRange_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_CtlDefault_Status(MOBLEUINT8 const *pCtlDefault_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_Hsl_Status(MOBLEUINT8 const *pHsl_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_HslSaturation_Status(MOBLEUINT8 const *pHslSaturation_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_HslHue_Status(MOBLEUINT8 const *pHslHue_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_HslRange_Status(MOBLEUINT8 const *pHslRange_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_Light_HslDefault_Status(MOBLEUINT8 const *pHslDefault_status,
+ MOBLEUINT32 pLength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+MOBLE_RESULT Appli_LightClient_API(MOBLEUINT8 elementIndex,
+ MOBLEUINT16 msg_opcode,
+ MOBLEUINT8* msg_params);
+
+#endif /* __APPLI_LIGHT_CLIENT_H */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_lc.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_lc.c
new file mode 100644
index 000000000..b1d53e1ec
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_lc.c
@@ -0,0 +1,452 @@
+/**
+ ******************************************************************************
+ * @file appli_light_lc.c
+ * @author BLE Mesh Team
+ * @brief Application interface for light LC Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "hal_common.h"
+#include "types.h"
+#include "appli_generic.h"
+#include "appli_light.h"
+#include "common.h"
+#include "mesh_cfg_usr.h"
+#include "appli_light_lc.h"
+
+/** @addtogroup ST_BLE_Mesh
+* @{
+*/
+
+/** @addtogroup Application_Mesh_Models
+* @{
+*/
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variable ----------------------------------------------------------*/
+
+__attribute__((aligned(4)))const light_lc_cb_t AppliLightLc_cb =
+{
+ Appli_LightLCs_ModeGet,
+ Appli_LightLCs_ModeSet,
+ Appli_LightLCs_ModeSetUnack,
+ Appli_LightLCs_ModeStatus,
+ Appli_LightLCs_OmGet,
+ Appli_LightLCs_OmSet,
+ Appli_LightLCs_OmSetUnack,
+ Appli_LightLCs_OmStatus,
+ Appli_LightLCs_OnOffGet,
+ Appli_LightLCs_OnOffSet,
+ Appli_LightLCs_OnOffSetUnack,
+ Appli_LightLCs_OnOffStatus,
+ Appli_LightLCs_PropertyGet,
+ Appli_LightLCs_PropertySet,
+ Appli_LightLCs_PropertySetUnack,
+ Appli_LightLCs_PropertyStatus
+};
+
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+/**
+ * @brief Callback corresponding to LightLCs_ModeGet_cb
+ * @param Message parameters
+ * @retval None
+*/
+void Appli_LightLCs_ModeGet(MODEL_MessageHeader_t *pmsgParam)
+{
+ TRACE_M(TF_LIGHT_LC, "Element index %d peer addr %X dst peer %X\r\n",
+ pmsgParam->elementIndex, pmsgParam->peer_addr, pmsgParam->dst_peer);
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_ModeSet_cb
+ * @param Data
+ * @param Message parameters
+ * @retval None
+*/
+void Appli_LightLCs_ModeSet(MOBLEUINT8 const* pRxData, MODEL_MessageHeader_t *pmsgParam)
+{
+ TRACE_M(TF_LIGHT_LC, "Element index %d peer addr %X dst peer %X\r\n",
+ pmsgParam->elementIndex, pmsgParam->peer_addr, pmsgParam->dst_peer);
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_ModeSetUnack_cb
+ * @param Data
+ * @param Message parameters
+ * @retval None
+*/
+void Appli_LightLCs_ModeSetUnack(MOBLEUINT8 const* pRxData, MODEL_MessageHeader_t *pmsgParam)
+{
+ TRACE_M(TF_LIGHT_LC, "Element index %d peer addr %X dst peer %X\r\n",
+ pmsgParam->elementIndex, pmsgParam->peer_addr, pmsgParam->dst_peer);
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_ModeSatus_cb
+ * @param Message parameters
+ * @retval None
+*/
+void Appli_LightLCs_ModeStatus(MOBLEUINT8 const* pLightLCMode_status,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ MOBLEUINT8 i;
+ TRACE_M(TF_LIGHT_LC,"LightLCs_ModeStatus callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8294!\r\n");
+
+ for(i = 0; i < plength; i++)
+ {
+ if(i == 0)
+ TRACE_M(TF_SERIAL_CTRL,"Light LC Mode value: %d\n\r",
+ pLightLCMode_status[i]);
+ }
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_OmGet_cb
+ * @param Message parameters
+ * @retval None
+ */
+void Appli_LightLCs_OmGet(MODEL_MessageHeader_t *pmsgParam)
+{
+ TRACE_M(TF_LIGHT_LC, "Element index %d peer addr %X dst peer %X\r\n",
+ pmsgParam->elementIndex, pmsgParam->peer_addr, pmsgParam->dst_peer);
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_OmSet_cb
+ * @param Data
+ * @param Message parameters
+ * @retval None
+ */
+void Appli_LightLCs_OmSet(MOBLEUINT8 const* pRxData, MODEL_MessageHeader_t *pmsgParam)
+{
+ TRACE_M(TF_LIGHT_LC, "Element index %d peer addr %X dst peer %X\r\n",
+ pmsgParam->elementIndex, pmsgParam->peer_addr, pmsgParam->dst_peer);
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_OmSetUnack_cb
+ * @param Data
+ * @param Message parameters
+ * @retval None
+ */
+void Appli_LightLCs_OmSetUnack(MOBLEUINT8 const* pRxData, MODEL_MessageHeader_t *pmsgParam)
+{
+ TRACE_M(TF_LIGHT_LC, "Element index %d peer addr %X dst peer %X\r\n",
+ pmsgParam->elementIndex, pmsgParam->peer_addr, pmsgParam->dst_peer);
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_OmStatus_cb
+ * @param Message parameters
+ * @retval None
+ */
+void Appli_LightLCs_OmStatus(MOBLEUINT8 const* pLightLCOccupancyMode_status,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ MOBLEUINT8 i;
+ TRACE_M(TF_LIGHT_LC,"LightLCs_OmStatus callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#8298!\r\n");
+
+ for(i = 0; i < plength; i++)
+ {
+ if(i == 0)
+ TRACE_M(TF_SERIAL_CTRL,"Light LC OM value: %d\n\r",
+ pLightLCOccupancyMode_status[i]);
+ }
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_OnOffGet_cb
+ * @param Message parameters
+ * @retval None
+ */
+void Appli_LightLCs_OnOffGet(MODEL_MessageHeader_t *pmsgParam)
+{
+ TRACE_M(TF_LIGHT_LC, "Element index %d peer addr %X dst peer %X\r\n",
+ pmsgParam->elementIndex, pmsgParam->peer_addr, pmsgParam->dst_peer);
+}
+
+
+/**
+ * @brief Callback corresponding to LightLC_OnOffSet_cb
+ * @param Data
+ * @param Message parameters
+ * @retval None
+*/
+void Appli_LightLCs_OnOffSet(MOBLEUINT8 const* pRxData, MODEL_MessageHeader_t *pmsgParam)
+{
+ TRACE_M(TF_LIGHT_LC, "Element index %d peer addr %X dst peer %X\r\n",
+ pmsgParam->elementIndex, pmsgParam->peer_addr, pmsgParam->dst_peer);
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_OnOffSetUnack_cb
+ * @param Data
+ * @param Message parameters
+ * @retval None
+*/
+void Appli_LightLCs_OnOffSetUnack(MOBLEUINT8 const* pRxData, MODEL_MessageHeader_t *pmsgParam)
+{
+ TRACE_M(TF_LIGHT_LC, "Element index %d peer addr %X dst peer %X\r\n",
+ pmsgParam->elementIndex, pmsgParam->peer_addr, pmsgParam->dst_peer);
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_OnOffStatus_cb
+ * @param Data
+ * @param Message parameters
+ * @retval None
+*/
+void Appli_LightLCs_OnOffStatus(MOBLEUINT8 const* pLightLCOnOff_status,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ MOBLEUINT8 i;
+ TRACE_M(TF_LIGHT_LC,"LightLCs_OnOffStatus callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#829C!\r\n");
+
+ for(i = 0; i < plength; i++)
+ {
+ if(i == 0)
+ TRACE_M(TF_SERIAL_CTRL,"Light LC OnOff status: %d\n\r",
+ pLightLCOnOff_status[i]);
+ }
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_PropertyGet_cb
+ * @param Data
+ * @param Message parameters
+ * @retval None
+*/
+void Appli_LightLCs_PropertyGet(MOBLEUINT8 const* pRxData, MODEL_MessageHeader_t *pmsgParam)
+{
+ TRACE_M(TF_LIGHT_LC, "Element index %d peer addr %X dst peer %X\r\n",
+ pmsgParam->elementIndex, pmsgParam->peer_addr, pmsgParam->dst_peer);
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_PropertySet_cb
+ * @param Data
+ * @param Message parameters
+ * @retval None
+ */
+void Appli_LightLCs_PropertySet(MOBLEUINT8 const* pRxData, MODEL_MessageHeader_t *pmsgParam)
+{
+ TRACE_M(TF_LIGHT_LC, "Element index %d peer addr %X dst peer %X\r\n",
+ pmsgParam->elementIndex, pmsgParam->peer_addr, pmsgParam->dst_peer);
+}
+
+
+/**
+ * @brief Callback corresponding to LightLCs_PropertySetUnack_cb
+ * @param Data
+ * @param Message parameters
+ * @retval None
+ */
+void Appli_LightLCs_PropertySetUnack(MOBLEUINT8 const* pRxData, MODEL_MessageHeader_t *pmsgParam)
+ {
+ TRACE_M(TF_LIGHT_LC, "Element index %d peer addr %X dst peer %X\r\n",
+ pmsgParam->elementIndex, pmsgParam->peer_addr, pmsgParam->dst_peer);
+ }
+
+
+/**
+ * @brief Callback corresponding to LightLCs_PropertyStatus_cb
+ * @param Data
+ * @param Message parameters
+ * @retval None
+*/
+void Appli_LightLCs_PropertyStatus(MOBLEUINT8 const* pLightLCProperty_status,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ MOBLEUINT8 i;
+ TRACE_M(TF_LIGHT_LC,"LightLCs_PropertyStatus callback received for element %d \r\n", elementIndex);
+ TRACE_M(TF_SERIAL_CTRL,"#64!\r\n");
+
+ for(i = 0; i < plength; i++)
+ {
+ if(i == 0)
+ TRACE_M(TF_SERIAL_CTRL,"Light LC Property status: %d\n\r",
+ pLightLCProperty_status[i]);
+ }
+}
+
+
+/**
+ * @brief
+ * @param
+ * @retval
+ */
+__weak MOBLE_RESULT Appli_Light_LCs_Init(void)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_FAIL;
+ MOBLEUINT8 lcsElementIndex = 0;
+
+ /* Extract element index of LC server */
+ result = ExtractLcServerElementIndex(&lcsElementIndex,
+#ifdef APPLICATION_NUMBER_OF_ELEMENTS
+ APPLICATION_NUMBER_OF_ELEMENTS,
+#else
+ 0,
+#endif
+#ifdef ENABLE_LIGHT_MODEL_SERVER_LC
+ ENABLE_LIGHT_MODEL_SERVER_LC,
+ ENABLE_LIGHT_MODEL_SERVER_LC_SETUP,
+#else
+ 0,
+ 0,
+#endif
+#ifdef ENABLE_GENERIC_MODEL_SERVER_ONOFF
+ ENABLE_GENERIC_MODEL_SERVER_ONOFF,
+#else
+ 0,
+#endif
+#ifdef ENABLE_GENERIC_MODEL_SERVER_POWER_ONOFF
+ ENABLE_GENERIC_MODEL_SERVER_POWER_ONOFF,
+#else
+ 0,
+#endif
+#ifdef ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS
+ ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS);
+#else
+ 0);
+#endif
+
+ if(MOBLE_SUCCEEDED(result))
+ {
+ result = Light_LCs_Init(&BufferLcServer, lcsElementIndex, &AppliLightLc_cb, SIZE_OF_LC_SERVER_T);
+ }
+
+ if(MOBLE_FAILED(result))
+ {
+ TRACE_M(TF_LIGHT_LC, "Light LC Server init failed\r\n");
+ }
+
+ return result;
+}
+
+
+/**
+ * @brief
+ * @param
+ * @retval
+ */
+__weak MOBLE_RESULT Appli_Light_LC_SensorPropertyUpdate(MOBLEUINT8 elementIndex,
+ MOBLEUINT16 propertyId,
+ MOBLEUINT32 value)
+{
+ return Light_LC_SensorPropertyUpdate(elementIndex,
+ propertyId,
+ value);
+}
+
+#ifdef ENABLE_LIGHT_MODEL_SERVER_LC
+/**
+ * @brief Handling of serial inputs to LC model
+ * @param serial string
+ * @param serial string size
+ * @retval void
+ */
+void Appli_Light_LC_SerialCmd(char *rcvdStringBuff, uint16_t rcvdStringSize)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_INVALIDARG;
+
+ if (!strncmp(rcvdStringBuff+6, "TR0", 3))
+ {
+ if (rcvdStringSize == 9)
+ {
+ /* call to function corresponding MMDL/SR/LLC/BV-03-C */
+ result = Light_LC_SetTransitionTimeZero(1);
+ }
+ else
+ {
+ result = MOBLE_RESULT_FAIL;
+ BLEMesh_PrintStringCb("Invalid size of string\r\n");
+ }
+ }
+ else if (!strncmp(rcvdStringBuff+6, "OCCUPANCY", 9)) /* occupancy detect */
+ {
+ if (rcvdStringSize == 15)
+ {
+ /* occupancy detected for element index 0 */
+ Appli_Light_LC_SensorPropertyUpdate(0,
+ PRESENCE_DETECTED_PID,
+ 1);
+ result = MOBLE_RESULT_SUCCESS;
+ }
+ else
+ {
+ result = MOBLE_RESULT_FAIL;
+ BLEMesh_PrintStringCb("Invalid size of string\r\n");
+ }
+ }
+ else
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+
+ /* Check the result of command processing */
+ if(result == MOBLE_RESULT_SUCCESS)
+ {
+ BLEMesh_PrintStringCb("Success\r\n");
+ }
+ else if(result == MOBLE_RESULT_OUTOFMEMORY)
+ {
+ BLEMesh_PrintStringCb("Fail Out of memory\r\n");
+ }
+ else if(result == MOBLE_RESULT_INVALIDARG)
+ {
+ BLEMesh_PrintStringCb("Fail Invalid Argument\r\n");
+ }
+ else
+ {
+ BLEMesh_PrintStringCb("Fail\r\n");
+ }
+}
+#endif
+
+
+/**
+* @}
+*/
+
+/**
+* @}
+*/
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_lc.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_lc.h
new file mode 100644
index 000000000..42c59766e
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_light_lc.h
@@ -0,0 +1,79 @@
+/**
+ ******************************************************************************
+* @file appli_light_lc.h
+* @author BLE Mesh Team
+* @brief Application interface for Light Control Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APPLI_LIGHT_LC_H
+#define __APPLI_LIGHT_LC_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+#include "light_lc.h"
+
+/* Exported macro ------------------------------------------------------------*/
+/* Exported Functions Prototypes ---------------------------------------------*/
+/*******************************************************************************
+Following Variables are used for the Light LC Mode MODEL
+*******************************************************************************/
+void Appli_LightLCs_ModeGet(MODEL_MessageHeader_t *pmsgParam);
+void Appli_LightLCs_ModeSet(MOBLEUINT8 const* pRxData,
+ MODEL_MessageHeader_t *pmsgParam);
+void Appli_LightLCs_ModeSetUnack(MOBLEUINT8 const* pRxData,
+ MODEL_MessageHeader_t *pmsgParam);
+void Appli_LightLCs_ModeStatus(MOBLEUINT8 const* pLightLCMode_status,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+
+void Appli_LightLCs_OmGet(MODEL_MessageHeader_t *pmsgParam);
+void Appli_LightLCs_OmSet(MOBLEUINT8 const* pRxData,
+ MODEL_MessageHeader_t *pmsgParam);
+void Appli_LightLCs_OmSetUnack(MOBLEUINT8 const* pRxData,
+ MODEL_MessageHeader_t *pmsgParam);
+void Appli_LightLCs_OmStatus(MOBLEUINT8 const* pLightLCOccupancyMode_status,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_LightLCs_OnOffGet(MODEL_MessageHeader_t *pmsgParam);
+void Appli_LightLCs_OnOffSet(MOBLEUINT8 const* pRxData,
+
+ MODEL_MessageHeader_t *pmsgParam);
+void Appli_LightLCs_OnOffSetUnack(MOBLEUINT8 const* pRxData,
+ MODEL_MessageHeader_t *pmsgParam);
+void Appli_LightLCs_OnOffStatus(MOBLEUINT8 const* pLightLCOnOff_status,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_LightLCs_PropertyGet(MOBLEUINT8 const* pRxData,
+ MODEL_MessageHeader_t *pmsgParam);
+void Appli_LightLCs_PropertySet(MOBLEUINT8 const* pRxData,
+ MODEL_MessageHeader_t *pmsgParam);
+void Appli_LightLCs_PropertySetUnack(MOBLEUINT8 const* pRxData,
+ MODEL_MessageHeader_t *pmsgParam);
+void Appli_LightLCs_PropertyStatus(MOBLEUINT8 const* pLightLCOccupancyMode_status,
+ MOBLEUINT32 plength,
+ MOBLEUINT16 dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Light_LCs_Init(void);
+MOBLE_RESULT Appli_Light_LC_SensorPropertyUpdate(MOBLEUINT8 elementIndex,
+ MOBLEUINT16 propertyId,
+ MOBLEUINT32 value);
+void Appli_Light_LC_SerialCmd(char *rcvdStringBuff,
+ uint16_t rcvdStringSize);
+#endif /* __APPLI_LIGHT_LC_H */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_mesh.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_mesh.c
new file mode 100644
index 000000000..9fe5f187d
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_mesh.c
@@ -0,0 +1,1810 @@
+/**
+ ******************************************************************************
+ * @file appli_mesh.c
+ * @author BLE Mesh Team
+ * @brief User Application file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* Includes ------------------------------------------------------------------*/
+#include "ble_common.h"
+#include "app_conf.h"
+#include "hal_common.h"
+#include "ble_mesh.h"
+#include "appli_mesh.h"
+#include "types.h"
+#include "ble_hal_aci.h"
+#include "ble_hci_le.h"
+#include <string.h>
+#include "models_if.h"
+#include "mesh_cfg.h"
+#include "generic.h"
+#include "light.h"
+#include "light_lc.h"
+#include "sensors.h"
+#include "common.h"
+#include "serial_if.h"
+#include "appli_nvm.h"
+#include "pal_nvm.h"
+#include "appli_config_client.h"
+#include "appli_generic_client.h"
+#include "appli_light_client.h"
+#include "appli_sensor.h"
+#include "appli_sensors_client.h"
+
+#include "appli_vendor.h"
+#include "app_stts22h.h"
+
+#include "stm32_seq.h"
+#include "mesh_cfg_usr.h"
+
+/** @addtogroup ST_BLE_Mesh
+* @{
+*/
+
+/** @addtogroup Application_Mesh_Models
+* @{
+*/
+
+/* Private define ------------------------------------------------------------*/
+#define APPLI_OPTIM 0
+
+/*********** Macros to be modified according to the requirement *************/
+#define BOUNCE_THRESHOLD 20U
+#define LONG_PRESS_THRESHOLD 1000U
+#define MANUAL_UNPROVISION_TIMER 3000U
+#define FLASH_ERASE_TIME 100U
+//#define DISCOVER_TIMER 10*60*1000 /* 10 minutes */
+#define DISCOVER_TIMER_INTERVAL 10*60*(1000000/CFG_TS_TICK_VAL) /* 10 minutes */
+#if (APPLI_OPTIM == 1)
+#define APPLI_MESH_TIMER_INTERVAL 1*(1000/CFG_TS_TICK_VAL) /* 1 ms */
+#endif
+#define TEMP_PUBLICATION_PERIOD 500*(1000/CFG_TS_TICK_VAL) /* 500 ms */
+#define DEFAULT_DELAY_PACKET_FROM 500U
+#define DEFAULT_DELAY_PACKET_RANDOM_TIME 500U
+#define USER_OUTPUT_OOB_APPLI_PROCESS 0U
+#define INPUT_OOB_TIMEOUT 300U /* input Oob30 Sec timeout*/
+#define PBADV_UNPROV_DEV_BEACON_INTERVAL 100U /* 100 ms */
+
+#define DEVICE_KEY_SIZE 16U
+#define APP_KEY_SIZE 16U
+#if (LOW_POWER_FEATURE == 1)
+#define LPN_API_TIMER_INTERVAL 5*(1000000/CFG_TS_TICK_VAL) /* 5 secondes */
+#endif
+/* Private macro -------------------------------------------------------------*/
+#define MAX_APPLI_BUFF_SIZE 8
+#define MAX_PENDING_PACKETS_QUE_SIZE 2
+#define DATA_BUFFER_LENGTH 8
+#define MAX_NUMB_ELEMENTS APPLICATION_NUMBER_OF_ELEMENTS
+#define CUSTOM_BEACON_AD_TYPE 0x00
+#define ENABLE_CUSTOM_BEACON 0
+#define CUSTOM_BEACON_INTERVAL 2000U
+
+/**********************Friendship callbacks macros ****************************/
+#define FN_CLEARED_REPEAT_REQUEST 1
+#define FN_CLEARED_POLL_TIMEOUT 2
+#define FN_CLEARED_FRIEND_CLEAR 3
+#define LPN_CLEARED_NO_RESPONSE 1
+
+/* Private variables ---------------------------------------------------------*/
+
+
+enum ButtonState
+{
+ BS_OFF,
+ BS_DEBOUNCE,
+ BS_SHORT_PRESS,
+ BS_LONG_PRESS
+};
+
+enum ButtonState buttonState = BS_OFF;
+tClockTime tBounce = 0;
+/*Will be an array aligned with number of elements*/
+MOBLEUINT8 Appli_LedState = 0;
+MOBLEUINT16 IntensityValue = INTENSITY_LEVEL_ZERO;
+MOBLEUINT8 IntensityFlag = FALSE;
+MOBLEUINT8 ProxyFlag = 0;
+MOBLEUINT8 ProvisionFlag = 0;
+MOBLEUINT8 UnprovisionInProgress = 0;
+
+#ifdef ENABLE_AUTH_TYPE_OUTPUT_OOB
+static MOBLEUINT8 PrvngInProcess = 0;
+static MOBLEUINT32 OutputOobData = 0;
+static MOBLEUINT32 OutputOobBlinkCount = 0;
+#endif
+
+#ifdef ENABLE_AUTH_TYPE_INPUT_OOB
+MOBLEUINT8 InputOobData[8] = {0};
+MOBLEUINT8 inputOOBDataReady = 0;
+#endif
+
+/*Number Of Elements selected per Node. Maximum Elements supported = 3*/
+MOBLEUINT8 NumberOfElements = APPLICATION_NUMBER_OF_ELEMENTS;
+
+#ifdef ENABLE_AUTH_TYPE_STATIC_OOB
+/* 16 octets Static OOB information to be input here. Used during provisioning by Library */
+const MOBLEUINT8 StaticOobBuff[SIZE_STATIC_OOB] = {0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01};
+#else
+const MOBLEUINT8 StaticOobBuff[] = {0};
+#endif
+
+#ifdef PUB_KEY_TYPE_OOB
+/* 64 octets Public Key information to be input here. It is only required for Public Key OOB case.
+Used during provisioning by Library */
+const MOBLEUINT8 PubKeyBuff[64] = {0xF4, 0x65, 0xE4, 0x3F, 0xF2, 0x3D, 0x3F, 0x1B, 0x9D, 0xC7,
+0xDF, 0xC0, 0x4D, 0xA8, 0x75, 0x81, 0x84, 0xDB, 0xC9, 0x66, 0x20, 0x47, 0x96, 0xEC, 0xCF,
+0x0D, 0x6C, 0xF5, 0xE1, 0x65, 0x00, 0xCC, 0x02, 0x01, 0xD0, 0x48, 0xBC, 0xBB, 0xD8, 0x99,
+0xEE, 0xEF, 0xC4, 0x24, 0x16, 0x4E, 0x33, 0xC2, 0x01, 0xC2, 0xB0, 0x10, 0xCA, 0x6B, 0x4D,
+0x43, 0xA8, 0xA1, 0x55, 0xCA, 0xD8, 0xEC, 0xB2, 0x79};
+
+/* 32 octets Private Key information to be input here. It is only required for Public Key OOB case.
+Used during provisioning by Library */
+const MOBLEUINT8 PrivKeyBuff[32] = {0x52, 0x9A, 0xA0, 0x67, 0x0D, 0x72, 0xCD, 0x64, 0x97, 0x50,
+0x2E, 0xD4, 0x73, 0x50, 0x2B, 0x03, 0x7E, 0x88, 0x03, 0xB5, 0xC6, 0x08, 0x29, 0xA5, 0xA3,
+0xCA, 0xA2, 0x19, 0x50, 0x55, 0x30, 0xBA};
+#else
+const MOBLEUINT8 PubKeyBuff[] = NULL;
+const MOBLEUINT8 PrivKeyBuff[] = NULL;
+#endif
+
+
+
+/* Select Node as Sniffer, Means able to sniff all the packets
+* 0 - Filters are enabled and packets not targeted to node are filtered
+* 1 - Filters are disabled and packets not targeted to node are not filtered
+*/
+MOBLEUINT8 DisableFilter = 0;
+
+#if LOW_POWER_FEATURE
+MOBLEINT32 BLEMesh_sleepTime;
+MOBLEUINT32 SysRefCount;
+MOBLEBOOL LPN_scan_enabled;
+#endif
+
+MOBLEUINT8 nvm_operation;
+MOBLEUINT8 nvm_flash_page;
+MOBLEUINT8 provisioning_completion;
+
+/* Timer to control unprovisioned device beacons */
+#if PB_ADV_SUPPORTED
+MOBLEUINT8 discoverTimer_Id;
+tClockTime discoverTimerinterval = DISCOVER_TIMER_INTERVAL;
+#endif
+
+#if (APPLI_OPTIM == 1)
+MOBLEUINT8 appliTaskTimer_Id;
+#endif
+#if LOW_POWER_FEATURE
+volatile uint8_t BleProcessInit = 0;
+#endif
+#if (LOW_POWER_FEATURE == 1)
+MOBLEUINT8 lowPowerNodeApiTimer_Id;
+#endif
+
+MOBLEUINT8 tempPublicationTaskTimer_Id;
+MOBLEUINT8 pPropertyId[4];
+
+MOBLEUINT8 prev_temp = 0;
+MOBLEUINT8 actual_temp = 0;
+
+/********************* Application configuration **************************/
+#if defined(__GNUC__) || defined(__IAR_SYSTEMS_ICC__) || defined(__CC_ARM)
+MOBLEUINT8 bdaddr[8];
+
+#ifdef INTERNAL_UNIQUE_NUMBER_MAC
+static void Appli_GetMACfromUniqueNumber(void);
+#endif /* INTERNAL_UNIQUE_NUMBER_MAC */
+
+const void *mobleNvmBase;
+const void *appNvmBase;
+const void *prvsnr_data;
+#else
+#error "Unknown compiler"
+#endif /* __GNUC__ || defined(__IAR_SYSTEMS_ICC__) || defined(__CC_ARM) */
+
+/* Private function prototypes -----------------------------------------------*/
+static void Appli_LongButtonPress(void);
+static void Appli_ShortButtonPress(void);
+#if USER_OUTPUT_OOB_APPLI_PROCESS
+void Appli_OobAuthenticationProcess(void);
+#endif
+void BLEMesh_UnprovisionCallback(MOBLEUINT8 reason);
+void Appli_LowPowerProcess(void);
+#if (APPLI_OPTIM == 1)
+static void AppliMeshTask(void);
+#endif
+void Appli_GetPublicationParamsCb(model_publicationparams_t* pPubParameters);
+WEAK_FUNCTION (void SerialPrvn_ProvisioningStatusUpdateCb(uint8_t flagPrvningInProcess,
+ MOBLEUINT16 nodeAddress));
+
+/* Private functions ---------------------------------------------------------*/
+void LED_Deinit(void)
+{
+ GPIO_InitTypeDef GPIO_InitStructure = {0};
+
+ /* RGB Led de-init */
+ BSP_PWM_LED_DeInit();
+
+ /* configure SPIx MOSI for LCD */
+ GPIO_InitStructure.Pin = BUS_SPI1_MOSI_PIN;
+ GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStructure.Pull = GPIO_PULLDOWN;
+ GPIO_InitStructure.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStructure.Alternate = BUS_SPI1_AF;
+ HAL_GPIO_Init(BUS_SPI1_GPIO_PORTA, &GPIO_InitStructure);
+}
+
+
+void LED_On(aPwmLedGsData_TypeDef aPwmLedGsData)
+{
+ BSP_PWM_LED_Init();
+ BSP_PWM_LED_On(aPwmLedGsData);
+ LED_Deinit();
+}
+
+void LED_Off(void)
+{
+ BSP_PWM_LED_Init();
+ BSP_PWM_LED_Off();
+ LED_Deinit();
+}
+
+
+/************************* Button Control functions ********************/
+/**
+* @brief Function calls when a button is pressed for short duration
+* @param void
+* @retval void
+*/
+static void Appli_ShortButtonPress(void)
+{
+ //MESH_MODEL_SENSOR_APP_CODE: Begin
+#ifdef ENABLE_SENSOR_MODEL_CLIENT
+ /* PRESENT_AMBIENT_TEMPERATURE_PID */
+ pPropertyId[0]= 0x4F; // Property ID byte 0 : Property ID for the sensor
+ pPropertyId[1]= 0x00; // Property ID byte 1 : Property ID for the sensor
+ /* Sensor Client Send SENSOR_GET request with PRESENT_AMBIENT_TEMPERATURE_PID */
+ Appli_SensorsClient_API(0, SENSOR_GET, pPropertyId);
+#endif
+ //MESH_MODEL_SENSOR_APP_CODE: End
+}
+
+
+/**
+* @brief Function calls when a button is pressed for Long duration
+* @param void
+* @retval void
+*/
+static void Appli_LongButtonPress(void)
+{
+ //MESH_MODEL_SENSOR_APP_CODE: Begin
+#ifdef ENABLE_SENSOR_MODEL_CLIENT
+ /* TIME_OF_FLIGHT_PID */
+ pPropertyId[0]= 0x7F; // Property ID byte 0 : Property ID for the sensor
+ pPropertyId[1]= 0x2A; // Property ID byte 1 : Property ID for the sensor
+ /* Sensor Client Send SENSOR_GET request with TIME_OF_FLIGHT_PID */
+ Appli_SensorsClient_API(0, SENSOR_GET, pPropertyId);
+#endif
+ //MESH_MODEL_SENSOR_APP_CODE: End
+}
+
+/**
+* @brief Updates the button status
+* @param int isPressed
+* @retval void
+*/
+static void Appli_UpdateButtonState(int isPressed)
+{
+ uint32_t t0 = 0,t1 = 1;
+
+ t0 = Clock_Time(); /* SW1 press timing */
+
+ while(BSP_PB_GetState(BUTTON_USER1) == BUTTON_PRESSED);
+ t1 = Clock_Time(); /* SW1 release timing */
+
+ if((t1 - t0) > LONG_PRESS_THRESHOLD)
+ {
+ Appli_LongButtonPress();
+ }
+ else if((t1 - t0) > BOUNCE_THRESHOLD)
+ {
+ /* Button 1 short press action */
+ Appli_ShortButtonPress();
+ }
+}
+
+/**
+* @brief task for the BLE MESH, the MESH Models and the Appli processes
+* @param void
+* @retval void
+*/
+static void Mesh_Task()
+{
+ BLEMesh_Process();
+ BLEMesh_ModelsProcess(); /* Models Processing */
+
+ if((UnprovisionInProgress > 0) &&
+ (!LL_FLASH_IsActiveFlag_OperationSuspended()))
+ {
+ UnprovisionInProgress = 0;
+ AppliNvm_ClearModelState();
+ PalNvmErase(NVM_BASE, 0);
+ PalNvmErase(NVM_BASE, 0x1000);
+ PalNvmErase(APP_NVM_BASE, 0);
+ PalNvmErase(PRVN_NVM_BASE_OFFSET, 0);
+ TRACE_M(TF_PROVISION,"NVM erased\r\n");
+ TRACE_M(TF_PROVISION,"Device is unprovisioned by application \r\n");
+ }
+
+#if (APPLI_OPTIM == 0)
+ /* Set the task in the scheduler for the next execution */
+#if (LOW_POWER_FEATURE == 0)
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_MESH_REQ_ID, CFG_SCH_PRIO_0);
+#endif
+#endif
+}
+
+/**
+* @brief task for the BLE MESH, the MESH Models and the Appli processes
+* @param void
+* @retval void
+*/
+static void Appli_Task()
+{
+ Appli_Process();
+
+#if (APPLI_OPTIM == 0)
+ /* Set the task in the scheduler for the next execution */
+#if (LOW_POWER_FEATURE == 0)
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_APPLI_REQ_ID, CFG_SCH_PRIO_0);
+#endif
+#endif
+}
+
+/************************* LED Control functions ********************/
+/**
+* @brief Controls the state of on board LED
+* @param void
+* @retval void
+*/
+void Appli_LedCtrl(void)
+{
+ aPwmLedGsData_TypeDef aPwmLedGsData_app;
+ if(Appli_LedState)
+ {
+ aPwmLedGsData_app[PWM_LED_RED] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_app[PWM_LED_GREEN] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_app[PWM_LED_BLUE] = PWM_LED_GSDATA_7_0;
+ LED_On(aPwmLedGsData_app);
+ }
+ else
+ {
+ LED_Off();
+ }
+}
+
+/************* BLE-Mesh library callback functions ***************/
+
+/**
+* @brief Blinks the on board LED
+* @param none
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_LedBlink(void)
+{
+ /* Switch On the LED */
+ Appli_LedState = 1;
+ Appli_LedCtrl();
+ Clock_Wait(500);
+
+ /* Switch Off the LED */
+ Appli_LedState = 0;
+ Appli_LedCtrl();
+ Clock_Wait(500);
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Callback function Sets the state of the bulb
+* @param MOBLEUINT16 ctrl which sets the lighting state of LED
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_LedStateCtrlCb(MOBLEUINT16 ctrl)
+{
+ /* Switch On the LED */
+ if(ctrl > 0)
+ {
+ Appli_LedState = 1;
+ }
+ /* Switch Off the LED */
+ else
+ {
+ Appli_LedState = 0;
+ }
+
+ Appli_LedCtrl();
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief initializes BLE Stack
+* @param none
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_BleStackInitCb()
+{
+ /* BLE Stack initialization */
+ /* Not Required in BLE */
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief Sets transmission power of RF
+* @param none
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_BleSetTxPowerCb(void)
+{
+ tBleStatus status;
+ /* API to change the Transmission power of BLE Device */
+ /* uint8_t en_high_power, uint8_t pa_level
+ en_high_power Can be only 0 or 1. Set high power bit on or off.
+ pa_level Can be from 0 to 7. Set the PA level value
+ */
+ status = aci_hal_set_tx_power_level(1, CFG_TX_POWER);
+ if (status)
+ return MOBLE_RESULT_FAIL;
+ else
+ return MOBLE_RESULT_SUCCESS;
+}
+
+/**
+* @brief SET UUID value
+* @param uuid_prefix_data : Pointer of UUID buffer data
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_BleSetUUIDCb(MOBLEUINT8 *uuid_prefix_data)
+{
+ /* UUID is 128 bits (16 bytes) and can guarantee uniqueness across space and time.
+ It can be “Time-based “ UUID or “truly-random or pseudo-random numbers”
+
+ In this buffer user need to fill 10 bytes of UUID data.
+ Remaining 6 bytes, library fill this data with BDaddress.
+
+ For example :
+ F81D4FAE-7DEC-XBC4-Y12F-17D1AD07A961 (16 bytes)
+ <any number> |_| |_| <BDAddress>
+
+ X = 1 i.e. “Time Base UUID”
+ X = 4 i.e. “Random Number“
+ Y = 4 i.e. Conforming to the current spec
+ For UUID information refer RFC4122
+ */
+
+ /* copy UUID prefix data*/
+ uint8_t uuid_buff[10] = {0xF8,0x1D,0x4F,0xAE,0x7D,0xEC};/*random value by user */
+
+ uuid_buff[6] = 0x4B; /* 0x4B => 4 : Random */
+ uuid_buff[7] = 'S' ; /* User define value */
+ uuid_buff[8] = 0xA1; /* 0xA1 => A : Conforming to the current Spec */
+ uuid_buff[9] = 'T' ; /* User define value */
+
+ memcpy(uuid_prefix_data,uuid_buff,sizeof(uuid_buff));
+ memcpy(&uuid_prefix_data[10],bdaddr,6); /* Copy bdaddr to last 6 bytes of UUID */
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief SET CID , PID and VID values
+* @param company_product_info : vendor fill product information in this buffer
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_BleSetProductInfoCB(MOBLEUINT8 *company_product_info)
+{
+ /* CID : provide 16-bit company identifier assigned by the Bluetooth SIG */
+ uint16_t company_id = COMPANY_ID;
+
+ /* PID : Provide 16-bit vendor-assigned product identifier */
+ uint16_t product_id = PRODUCT_ID;
+
+ /* VID : Provide 16-bit vendor-assigned product version identifier*/
+ uint16_t product_version_id = PRODUCT_VERSION_ID;
+
+ memcpy(company_product_info + 0,(void *)&company_id,sizeof(company_id));
+ memcpy(company_product_info + 2 ,(void *)&product_id,sizeof(product_id));
+ memcpy(company_product_info + 4 ,(void *)&product_version_id,sizeof(product_version_id));
+
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Call back function called when GATT Connection Created
+* @param none
+* @retval none
+*/
+void Appli_BleGattConnectionCompleteCb(void)
+{
+ aPwmLedGsData_TypeDef aPwmLedGsData_app;
+
+ ProvisionFlag = 1;
+ /* Proxy Node, will be called whenever Gatt connection is established */
+ /* Turn ON Red LED*/
+ ProxyFlag = 1;
+ aPwmLedGsData_app[PWM_LED_RED] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_app[PWM_LED_GREEN] = PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_app[PWM_LED_BLUE] = PWM_LED_GSDATA_OFF;
+ LED_On(aPwmLedGsData_app);
+}
+
+/**
+* @brief Call back function called when GATT Disconnection Complete
+* @param none
+* @retval none
+*/
+void Appli_BleGattDisconnectionCompleteCb(void)
+{
+ ProvisionFlag = 0;
+ /* Proxy Node, will be called whenever Gatt disconnected */
+ /* Turn Off Red LED*/
+ ProxyFlag = 0;
+ LED_Off();
+
+}
+
+/**
+* @brief Unprovisioned Node Identification
+* @param MOBLEUINT8 data
+* @retval none
+*/
+void Appli_BleUnprovisionedIdentifyCb(MOBLEUINT8 data)
+{
+#ifdef ENABLE_AUTH_TYPE_OUTPUT_OOB
+ PrvngInProcess = 1;
+#endif
+ TRACE_M(TF_PROVISION,"Unprovisioned Node Identifier received: %02x\n\r", data);
+}
+
+/**
+* @brief Set Number of Elements in a Node
+* @param none
+* @retval Sending the value to BLE Mesh Library
+*/
+MOBLEUINT8 Appli_BleSetNumberOfElementsCb(void)
+{
+ if(NumberOfElements > BLEMesh_GetNumberOfElements())
+ {
+ TRACE_M(TF_MISC, "Number of Elements enabled in application exceeding from Library Capability!\r\n");
+ return BLEMesh_GetNumberOfElements();
+ }
+
+ else if(NumberOfElements == 0)
+ {
+ TRACE_M(TF_MISC,"Number Of Elements must be 1 or greater than 1!\r\n");
+ return 1;
+ }
+
+ else
+ {
+ return NumberOfElements;
+ }
+}
+
+/**
+* @brief Sets the Attention Timer Callback function
+* @param none
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_BleAttentionTimerCb(void)
+{
+/* avoid printf, if low power feature is supported */
+#if (LOW_POWER_FEATURE == 0)
+ TRACE_M(TF_MISC, " \r\n");
+#endif /* LOW_POWER_FEATURE == 0 */
+ return MOBLE_RESULT_SUCCESS;
+}
+
+
+/**
+* @brief Call back function to give Output OOB information
+* @param MOBLEUINT8* output_oob
+* @param MOBLEUINT8 size
+* @retval void
+*/
+void Appli_BleOutputOOBAuthCb(MOBLEUINT8* output_oob, MOBLEUINT8 size)
+{
+#ifdef ENABLE_AUTH_TYPE_OUTPUT_OOB
+ uint32_t ooBData = 0;
+ for (MOBLEUINT8 i = 0; i < size; i++)
+ {
+ ooBData |= (output_oob[i] << 8*i);
+ }
+ OutputOobData = ooBData;
+ TRACE_M(TF_PROVISION,"Output OOB information for provisioner: %ld\n\r", ooBData);
+ #endif
+}
+
+
+#ifdef ENABLE_AUTH_TYPE_OUTPUT_OOB
+/**
+* @brief Process for both output and Input OOB handling
+* @param void
+* @retval void
+*/
+void Appli_OobAuthenticationProcess(void)
+{
+ if(OutputOobBlinkCount < OutputOobData)
+ {
+ OutputOobBlinkCount++;
+ Appli_LedBlink();
+ }
+ else
+ {
+ OutputOobBlinkCount++;
+ Clock_Wait(1000);
+ if(OutputOobBlinkCount > OutputOobData+3)
+ {
+ OutputOobBlinkCount = 0;
+ }
+ }
+}
+#endif
+
+
+/**
+* @brief Call back function to provide Input OOB information
+* @param MOBLEUINT8 size
+* @retval MOBLEUINT8*
+*/
+MOBLEUINT8* Appli_BleInputOOBAuthCb(MOBLEUINT8 size)
+{
+#if defined (ENABLE_AUTH_TYPE_INPUT_OOB) && (ENABLE_SERIAL_INTERFACE)
+ MOBLEUINT16 inputTimer = 0;
+ TRACE_M(TF_PROVISION,"Input OOB information for provisioner-Size: %d\n\r", size);
+ while(1)
+ {
+ Serial_InterfaceProcess();
+ /* Enable Mesh process working in while loop */
+ BTLE_StackTick();
+ /* Check if input is completed or timeout */
+ if((inputOOBDataReady != 0x00) | (inputTimer > INPUT_OOB_TIMEOUT))
+ {
+ inputOOBDataReady = 0;
+ break;
+ }
+ Clock_Wait(100);
+ inputTimer++;
+ }
+ return InputOobData;
+#else
+ return NULL;
+#endif
+}
+
+
+/**
+* @brief Call back function to provide Input OOB information
+* @param rcvdStringBuff: buffer to store input string
+* @param rcvdStringSize: length of the input string
+* @retval void
+*/
+void Appli_BleSerialInputOOBValue(char *rcvdStringBuff, uint16_t rcvdStringSize)
+{
+#ifdef ENABLE_AUTH_TYPE_INPUT_OOB
+ unsigned long long InputOobDatatemp;
+ sscanf(rcvdStringBuff + 5, "%lld", &InputOobDatatemp);
+ memmove(&InputOobData, &InputOobDatatemp, sizeof(InputOobDatatemp));
+ inputOOBDataReady = 1;
+#endif
+}
+
+
+/**
+* @brief Application BLE Disable Filter
+* @param none
+* @retval Status is replied
+*/
+MOBLEUINT8 Appli_BleDisableFilterCb(void)
+{
+ return DisableFilter;
+}
+
+/**
+* @brief Checks and do Manual Unprovision of board
+* @param void
+* @retval void
+*/
+void Appli_CheckForUnprovision(void)
+{
+ aPwmLedGsData_TypeDef aPwmLedGsData_app;
+ /* Checks if the User button is pressed or not at the startup */
+ if (BSP_PB_GetState(BUTTON_USER1) == BUTTON_PRESSED)
+ {
+ aPwmLedGsData_app[PWM_LED_RED] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_app[PWM_LED_GREEN] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_app[PWM_LED_BLUE] = PWM_LED_GSDATA_7_0;
+ LED_On(aPwmLedGsData_app);
+
+ tClockTime t = Clock_Time();
+ int interrupted = 0;
+
+ /*Wait to check if user is pressing the button persistently*/
+ while ((Clock_Time() - t) < MANUAL_UNPROVISION_TIMER)
+ {
+ if (BSP_PB_GetState(BUTTON_USER1) != BUTTON_PRESSED)
+ {
+ interrupted = 1;
+ break;
+ }
+ }
+ /* Unprovision, show that unprovisioning is completed, and
+ wait until user releases button*/
+ if (!interrupted)
+ {
+ PalNvmErase(NVM_BASE, 0);
+ PalNvmErase(NVM_BASE, 0x1000);
+ PalNvmErase(APP_NVM_BASE, 0);
+ PalNvmErase(PRVN_NVM_BASE_OFFSET, 0);
+ TRACE_M(TF_PROVISION,"NVM erased\r\n");
+
+ BLEMesh_Unprovision();
+ AppliNvm_ClearModelState();
+ TRACE_M(TF_PROVISION,"Device is unprovisioned by application \r\n");
+ t = Clock_Time();
+ while ((Clock_Time() - t) < FLASH_ERASE_TIME)
+ {
+ BLEMesh_Process();
+ }
+
+ while (BSP_PB_GetState(BUTTON_USER1) == BUTTON_PRESSED)
+ {
+ Appli_LedBlink();
+ }
+ }
+ LED_Off();
+ NVIC_SystemReset();
+ }
+
+ /* Register the task for all MESH dedicated processes */
+ UTIL_SEQ_RegTask( 1<< CFG_TASK_MESH_REQ_ID, UTIL_SEQ_RFU, Mesh_Task );
+ /* Set the task in the scheduler for the next scheduling */
+#if (LOW_POWER_FEATURE == 0)
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_MESH_REQ_ID, CFG_SCH_PRIO_0);
+#else
+ BleProcessInit = 1;
+#endif
+
+ /* Register the task for all MESH dedicated processes */
+ UTIL_SEQ_RegTask( 1<< CFG_TASK_APPLI_REQ_ID, UTIL_SEQ_RFU, Appli_Task );
+ /* Set the task in the scheduler for the next scheduling */
+#if (LOW_POWER_FEATURE == 0)
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_APPLI_REQ_ID, CFG_SCH_PRIO_0);
+#endif
+
+#if (APPLI_OPTIM == 1)
+ HW_TS_Create(CFG_TIM_PROC_ID_ISR, &appliTaskTimer_Id, hw_ts_Repeated, AppliMeshTask);
+
+ HW_TS_Start(appliTaskTimer_Id, APPLI_MESH_TIMER_INTERVAL);
+#endif
+}
+
+void Appli_Unprovision(void)
+{
+ if(!ProxyFlag)
+ {
+ /* No GATT connection */
+ BLEMesh_StopAdvScan();
+
+ PalNvmErase(NVM_BASE, 0);
+ PalNvmErase(NVM_BASE, 0x1000);
+ PalNvmErase(APP_NVM_BASE, 0);
+ PalNvmErase(PRVN_NVM_BASE_OFFSET, 0);
+ TRACE_M(TF_PROVISION,"NVM erased\r\n");
+
+ BLEMesh_Unprovision();
+ AppliNvm_ClearModelState();
+ TRACE_M(TF_PROVISION,"Device is unprovisioned by application \r\n");
+
+ BLEMesh_Process();
+
+ NVIC_SystemReset();
+ }
+}
+
+
+/**
+* @brief Checks and updates Mac address to generate MAC Address
+* @param void
+* @retval MOBLEUINT8 sum return the sum calculated mac
+*/
+int Appli_CheckBdMacAddr(void)
+{
+ MOBLEUINT8 sum = 239;
+ MOBLEUINT8 result = 0;
+
+#ifdef EXTERNAL_MAC_ADDR_MGMT
+ memcpy(bdaddr, (MOBLEUINT8 *)CFG_ADV_BD_ADDRESS, 7);
+ bdaddr[7] = (EXTERNAL_MAC_ADDR_MGMT | EXTERNAL_MAC_TYPE);
+#endif
+
+#ifdef INTERNAL_UNIQUE_NUMBER_MAC
+ aci_hal_read_config_data(0x00, &bdaddr[7], bdaddr);
+ Appli_GetMACfromUniqueNumber();
+ bdaddr[7] = INTERNAL_UNIQUE_NUMBER_MAC;
+#endif
+
+ for (int i = 0; i < 6; ++i)
+ {
+ sum = (sum << 1) + bdaddr[i];
+ }
+
+ if (sum == bdaddr[6])
+ {
+ result = 1;
+ }
+
+#if defined(EXTERNAL_MAC_ADDR_MGMT) && defined(EXTERNAL_MAC_IS_PUBLIC_ADDR)
+ /* Do nothing for modification of 2 MSb */
+#else
+ bdaddr[5] |= 0xC0; /* 2 Msb bits shall be 11b for Static Random Address */
+#endif
+
+#ifdef GENERATE_STATIC_RANDOM_MAC
+ bdaddr[7] = GENERATE_STATIC_RANDOM_MAC;
+ /* Do nothing for bdaddr, just pass the identification */
+ result = 1; /* This will overwrite the above for loop result,
+ which is redundant for this case */
+#endif
+
+ return result;
+}
+
+
+/**
+* @brief Reads the unique serial number of the device
+* @param void
+* @retval void
+*/
+#ifdef INTERNAL_UNIQUE_NUMBER_MAC
+static void Appli_GetMACfromUniqueNumber(void)
+{
+#ifdef STM32L152xE
+ /************************STM32L152RE 96 bit Unique ID addresses***************/
+#define DEVICE_ID_REG0 (0x1FF800D0)
+#define DEVICE_ID_REG1 (0x1FF800D4)
+#define DEVICE_ID_REG2 (0x1FF800E4)
+#endif
+
+ /*
+ The unique serial number is a six bytes value generated from STM32 UID
+ stored at DEVICE_ID_REG0, DEVICE_ID_REG1 and DEVICE_ID_REG2. It is generated
+ cancating 4bytes from DEVICE_ID_REG2 and first bytes of DEVICE_ID_REG0 and
+ DEVICE_ID_REG1. Since the UID at DEVICE_ID_REG0 and
+ DEVICE_ID_REG1 could be identical for same batch samples,
+ 4 bytes have been taken from DEVICE_ID_REG2
+ */
+
+ uint8_t i;
+ uint8_t sum = 239;
+#if 0
+ uint8_t *ls_addr;
+
+ ls_addr = (uint8_t*)DEVICE_ID_REG2;
+
+ for(i = 0; i < 4; i += 1)
+ {
+ bdaddr[i] = *ls_addr;
+ ls_addr++;
+ }
+
+ bdaddr[4] = *(uint8_t*)(DEVICE_ID_REG0);
+ bdaddr[5] = (*(uint8_t*)(DEVICE_ID_REG1)) | 0xC0;
+#endif
+ /* Static Device Address:
+ The two most significant bits
+ of the address shall be equal to 1,
+ hence ORed with 0xC0)*/
+
+ for (i = 0; i < 6; ++i)
+ {
+ sum = (sum << 1) + bdaddr[i];
+ }
+ bdaddr[6] = sum;
+}
+#endif
+
+
+#if 0
+/**
+* @brief provides the information of the power saving mode
+* @param sleepMode curently unused, to be used in future
+* @retval SleepModes returns the mode of the controller
+*/
+SleepModes App_SleepMode_Check(SleepModes sleepMode)
+{
+ if (buttonState == BS_OFF)
+ {
+ return SLEEPMODE_WAKETIMER;
+ }
+ else
+ {
+ return SLEEPMODE_RUNNING;
+ }
+}
+#endif
+
+/**
+* @brief callback for unprovision the node by provisioner.
+* @param status reserved for future
+* @retval void
+*/
+void BLEMesh_UnprovisionCallback(MOBLEUINT8 reason)
+{
+ ProvisionFlag = 0;
+
+ TRACE_I(TF_PROVISION,"Device is unprovisioned by provisioner \n\r");
+#if PB_ADV_SUPPORTED
+ BLEMesh_SetUnprovisionedDevBeaconInterval(PBADV_UNPROV_DEV_BEACON_INTERVAL);
+#endif
+ AppliNvm_ClearModelState();
+}
+
+/**
+* @brief This function scans and prints unprovisioned devices
+* @param unprovDeviceArray: Pointer of an array for filling unprovisioned device UUIDs
+* @param noOfUnprovDevices: Pointer to take total count of nearby unprovisioned devices
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT BLEMesh_ScanDevices(neighbor_params_t *unprovDeviceArray, MOBLEUINT8 *noOfUnprovDevices)
+{
+ MOBLE_RESULT result;
+
+ result = BLEMesh_GetNeighborState(unprovDeviceArray,noOfUnprovDevices);
+ /* Array print for testing */
+ /* Check if any unprovisioned device is available */
+ if(!(*noOfUnprovDevices))
+ {
+ TRACE_I(TF_PROVISION,"No Unprovisioned Device Nearby\r\n");
+ }
+ else
+ {
+ for(MOBLEINT8 count=0; count < *noOfUnprovDevices; count++)
+ {
+ BLEMesh_PrintStringCb("");
+ TRACE_I(TF_PROVISION,"Device-%d -> ", count);
+ BLEMesh_PrintDataCb(unprovDeviceArray[count].uuid, 16);
+ }
+ }
+ return result;
+}
+/**
+* @brief This function returns starts the provisioning of one of the devices
+* @param unprovDeviceArray: Pointer of an array having unprovisioned device UUIDs
+* @param index: Index of the device to be provisioned
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT BLEMesh_ProvisionDevice(neighbor_params_t *unprovDeviceArray, MOBLEUINT16 index)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+
+ result = BLEMesh_ProvisionRemote((unprovDeviceArray+index)->uuid);
+
+ return result;
+}
+
+/* Customized implementation for provisioning a device from mesh node - End */
+
+/**
+* @brief Call back function called when PB-ADV link Opened
+* @param none
+* @retval none
+*/
+void BLEMesh_PbAdvLinkOpenCb(void)
+{
+ aPwmLedGsData_TypeDef aPwmLedGsData_app;
+ ProvisionFlag = 0;
+ TRACE_M(TF_PROVISION,"PB-ADV Link opened successfully \n\r");
+
+ /* Turn ON Red LED*/
+#if LOW_POWER_FEATURE
+ /* do nothing */
+#else
+ aPwmLedGsData_app[PWM_LED_RED] = PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_app[PWM_LED_GREEN] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_app[PWM_LED_BLUE] = PWM_LED_GSDATA_OFF;
+
+ LED_On(aPwmLedGsData_app);
+#endif
+}
+
+
+/**
+* @brief Call back function called when PB-ADV link Closed
+* @param none
+* @retval none
+*/
+void BLEMesh_PbAdvLinkCloseCb(void)
+{
+ TRACE_M(TF_PROVISION,"PB-ADV Link Closed successfully \n\r");
+ /* Turn Off Red LED*/
+#if LOW_POWER_FEATURE
+ /* do nothing */
+#else
+ LED_Off();
+#endif
+}
+
+
+/**
+* @brief callback for provision the node by provisioner.
+* @param void
+* @retval void
+*/
+void BLEMesh_ProvisionCallback(void)
+{
+ ProvisionFlag = 1;
+#ifdef ENABLE_AUTH_TYPE_OUTPUT_OOB
+ PrvngInProcess = 0;
+#endif
+ TRACE_I(TF_PROVISION,"Device is provisioned by provisioner \r\n");
+
+#if (LOW_POWER_FEATURE == 1)
+ /* Call API LPN_API_TIMER_INTERVAL after LPN provisioning */
+// HW_TS_Start(lowPowerNodeApiTimer_Id, LPN_API_TIMER_INTERVAL);
+#endif
+}
+
+
+/**
+* @brief callback for configuration the node by provisioner.
+* @param void
+* @retval void
+*/
+void BLEMesh_ConfigurationCallback(void)
+{
+#if (LOW_POWER_FEATURE == 1)
+// /* Set the task in the scheduler for the next execution */
+// UTIL_SEQ_SetTask( 1<<CFG_TASK_MESH_LPN_REQ_ID, CFG_SCH_PRIO_0);
+ /* Call API LPN_API_TIMER_INTERVAL after LPN provisioning */
+ if(LPN_scan_enabled == MOBLE_FALSE)
+ {
+ HW_TS_Start(lowPowerNodeApiTimer_Id, LPN_API_TIMER_INTERVAL);
+ LPN_scan_enabled = MOBLE_TRUE;
+ }
+#endif
+}
+
+
+/**
+* @brief callback for friendship established by friend node
+* @param address of corresponding low power node
+* @param receive delay of low power node (unit ms)
+* @param poll timeout of low power node (unit 100ms)
+* @param number of elements of low power node
+* @param previous friend address of low power node (can be invalid address)
+* @retval void
+*/
+void BLEMesh_FnFriendshipEstablishedCallback(MOBLE_ADDRESS lpnAddress,
+ MOBLEUINT8 lpnReceiveDelay,
+ MOBLEUINT32 lpnPollTimeout,
+ MOBLEUINT8 lpnNumElements,
+ MOBLE_ADDRESS lpnPrevFriendAddress)
+{
+ TRACE_M(TF_LPN_FRND,"Friendship established. Low power node address 0x%.4X \r\n", lpnAddress);
+ TRACE_M(TF_LPN_FRND,"Low power node receive delay %dms \r\n", lpnReceiveDelay);
+ TRACE_M(TF_LPN_FRND,"Low power node poll timeout %ldms \r\n", lpnPollTimeout*100);
+ TRACE_M(TF_LPN_FRND,"Low power node number of elements %d \r\n", lpnNumElements);
+ if (lpnPrevFriendAddress != MOBLE_ADDRESS_UNASSIGNED)
+ {
+ TRACE_M(TF_LPN_FRND,"Low power node previous friend address 0x%.4X \r\n", lpnPrevFriendAddress);
+ }
+}
+
+/**
+* @brief callback for friendship clear by friend node
+* @param reason of friendship clear
+* 0: reserved,
+* 1: friend request received from existing low power node (friend)
+* 2: low power node poll timeout occurred
+* 3: friend clear received
+* @param previous friend address of low power node (can be invalid address)
+* @retval void
+*/
+void BLEMesh_FnFriendshipClearedCallback(MOBLEUINT8 reason, MOBLE_ADDRESS lpnAddress)
+{
+ TRACE_M(TF_LPN_FRND,"Friendship cleared. Low power node address 0x%.4X \r\n", lpnAddress);
+
+ switch(reason)
+ {
+ case FN_CLEARED_REPEAT_REQUEST:
+ TRACE_M(TF_LPN_FRND,"Reason: New friend request received from existing low power node \r\n");
+ break;
+ case FN_CLEARED_POLL_TIMEOUT:
+ TRACE_M(TF_LPN_FRND,"Reason: Low power node poll timeout occurred \r\n");
+ break;
+ case FN_CLEARED_FRIEND_CLEAR:
+ TRACE_M(TF_LPN_FRND,"Reason: Friend clear received \r\n");
+ break;
+ default:
+ TRACE_M(TF_LPN_FRND,"Reason: Invalid \r\n");
+ break;
+ }
+}
+
+/**
+* @brief callback for friendship established by low power node
+* @param address of corresponding friend node
+* @retval void
+*/
+void BLEMesh_LpnFriendshipEstablishedCallback(MOBLE_ADDRESS fnAddress)
+{
+ /* Friendship established */
+ TRACE_M(TF_LPN_FRND,"Friend node responding, friendship established.\r\n");
+}
+
+/**
+* @brief callback for friendship cleare by low power node
+* @param reason of friendship clear.
+* 0: reserved
+* 1: No response received from friend node
+* @retval void
+*/
+void BLEMesh_LpnFriendshipClearedCallback(MOBLEUINT8 reason, MOBLE_ADDRESS fnAddress)
+{
+ TRACE_M(TF_LPN_FRND,"Friendship cleared. Friend node address 0x%.4x \r\n", fnAddress);
+
+ if (reason == LPN_CLEARED_NO_RESPONSE)
+ {
+ TRACE_M(TF_LPN_FRND,"Reason: Friend node not responding \r\n");
+ }
+ else
+ {
+ TRACE_M(TF_LPN_FRND,"Reason: Invalid \r\n");
+ }
+}
+
+/**
+* @brief New neighbor appeared callback in neighbor table.
+ If MAC address of neighbor changes it appears as new neighbor.
+* @param MAC address of neighbor.
+* is neighbor provisioned or unprovisioned device.
+* uuid of neighbor. NULL if not available
+* network address of neighbor. MOBLE_ADDRESS_UNASSIGNED if not available
+* last updated rssi value.
+* @retval void
+*/
+void BLEMesh_NeighborAppearedCallback(const MOBLEUINT8* bdAddr,
+ MOBLEBOOL provisioned,
+ const MOBLEUINT8* uuid,
+ MOBLE_ADDRESS networkAddress,
+ MOBLEINT8 rssi)
+{
+ TRACE_M(TF_NEIGHBOUR,"New neighbor appeared. Neighbor MAC address:");
+
+ for (MOBLEUINT8 count=0 ; count<6; count++)
+ {
+ TRACE_M(TF_NEIGHBOUR,"%.2x ", bdAddr[count]);
+ }
+
+ if (provisioned == MOBLE_TRUE)
+ {
+ TRACE_M(TF_NEIGHBOUR,"-> Provisioned node. \n\r");
+ }
+ else
+ {
+ TRACE_M(TF_NEIGHBOUR,"-> Unprovisioned device. \n\r");
+ }
+
+ TRACE_M(TF_NEIGHBOUR,"rssi: %d. ", rssi);
+
+ if (networkAddress != MOBLE_ADDRESS_UNASSIGNED)
+ {
+ TRACE_M(TF_NEIGHBOUR,"Network address: 0x%.4x\n\r", networkAddress);
+ }
+ else
+ {
+ TRACE_M(TF_NEIGHBOUR,"Network address not available\n\r");
+ }
+
+ for (MOBLEUINT8 i=0; i<16; i++)
+ {
+ if (uuid[i] == 0x00)
+ {
+ continue;
+ }
+ else
+ {
+ TRACE_M(TF_NEIGHBOUR,"UUID: ");
+
+ for (MOBLEUINT8 count=0 ; count<16; count++)
+ {
+ TRACE_M(TF_NEIGHBOUR,"%.2x ", uuid[count]);
+ }
+
+ break;
+ }
+ }
+
+ TRACE_M(TF_NEIGHBOUR,"\n\r");
+}
+
+/**
+* @brief Existing neighbor refreshed callback in neighbor table.
+ If MAC address of neighbor changes it appears as new neighbor.
+* @param MAC address of neighbor.
+* is neighbor provisioned or unprovisioned device.
+* uuid of neighbor. NULL if not available
+* network address of neighbor. MOBLE_ADDRESS_UNASSIGNED if not available
+* last updated rssi value.
+* @retval void
+*/
+void BLEMesh_NeighborRefreshedCallback(const MOBLEUINT8* bdAddr,
+ MOBLEBOOL provisioned,
+ const MOBLEUINT8* uuid,
+ MOBLE_ADDRESS networkAddress,
+ MOBLEINT8 rssi)
+{
+ TRACE_M(TF_NEIGHBOUR,"Existing neighbor refreshed. Neighbor MAC address:");
+
+ for (MOBLEUINT8 count=0 ; count<6; count++)
+ {
+ TRACE_M(TF_NEIGHBOUR,"%.2x ", bdAddr[count]);
+ }
+
+ if (provisioned == MOBLE_TRUE)
+ {
+ TRACE_M(TF_NEIGHBOUR,"-> Provisioned node. \n\r");
+ }
+ else
+ {
+ TRACE_M(TF_NEIGHBOUR,"-> Unprovisioned device. \n\r");
+ }
+
+ TRACE_M(TF_NEIGHBOUR,"rssi: %d. ", rssi);
+
+ if (networkAddress != MOBLE_ADDRESS_UNASSIGNED)
+ {
+ TRACE_M(TF_NEIGHBOUR,"Network address: 0x%.4x\n\r", networkAddress);
+ }
+ else
+ {
+ TRACE_M(TF_NEIGHBOUR,"Network address not available\n\r");
+ }
+
+ for (MOBLEUINT8 i=0; i<16; i++)
+ {
+ if (uuid[i] == 0x00)
+ {
+ continue;
+ }
+ else
+ {
+ TRACE_M(TF_NEIGHBOUR,"UUID: ");
+
+ for (MOBLEUINT8 count=0 ; count<16; count++)
+ {
+ TRACE_M(TF_NEIGHBOUR,"%.2x ", uuid[count]);
+ }
+
+ break;
+ }
+ }
+
+ TRACE_M(TF_NEIGHBOUR,"\n\r");
+}
+
+/**
+* @brief Beacon received callback
+* Beacons are received only if received beacon ad type is not
+* Mesh Message, Mesh Beacon or PB-ADV
+* @param MAC address
+* data
+* length of beacon
+* rssi value of beacon
+* @retval void
+*/
+#if (ENABLE_CUSTOM_BEACON == 1)
+/* BLEMesh_CustomBeaconReceivedCallback high frequency callback */
+void BLEMesh_CustomBeaconReceivedCallback(const MOBLEUINT8* bdAddr,
+ const MOBLEUINT8* data,
+ MOBLEUINT8 length,
+ MOBLEINT8 rssi)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+
+ if (length < 2)
+ {
+ result = MOBLE_RESULT_FAIL;
+ TRACE_M(TF_BEACON, "Message is too small \r\n");
+ }
+
+ if (result == MOBLE_RESULT_SUCCESS)
+ {
+ if (data[1] == CUSTOM_BEACON_AD_TYPE)
+ {
+ TRACE_M(TF_BEACON, "Message length(%d), rssi(%d) \r\n", length, rssi);
+
+ if (TF_BEACON == 1)
+ {
+ TRACE_I(TF_BEACON, "Data: ");
+ for (MOBLEUINT8 count=0; count<length; count++)
+ {
+ TRACE_I(TF_BEACON, "%.2x ", data[count]);
+ }
+ TRACE_I(TF_BEACON, " \r\n");
+ }
+ }
+ }
+}
+#endif /* BLEMesh_CustomBeaconReceivedCallback high frequency callback */
+
+/**
+* @brief Custom beacon generator
+* If size set to > 31 bytes, beacon is rejected
+* BLEMesh_SetCustomBeaconInterval should be set to get this callback
+* @param beacon data buffer. It includes length and AD type fields
+* buffer size
+* @retval void
+*/
+void BLEMesh_CustomBeaconGeneratorCallback(void* buffer, MOBLEUINT8* size)
+{
+ MOBLEUINT8 adType = CUSTOM_BEACON_AD_TYPE;
+ MOBLEUINT8 dataLength = 5;
+ MOBLEUINT8 data[5] = {0x00,0x01,0x02,0x03,0x04};
+ MOBLEUINT8* buf = (MOBLEUINT8*)buffer;
+
+ buf[0] = dataLength+1;
+ buf[1] = adType;
+ memcpy(buf+2, data, dataLength);
+
+ *size = dataLength+2;
+}
+
+/**
+* @brief Low Power mode process
+* If low power feature is supported, device enables low power mode
+* @param void
+* @retval void
+*/
+void Appli_LowPowerProcess(void)
+{
+#if 0
+#if LOW_POWER_FEATURE
+ BluenrgMesh_sleepTime = (MOBLEINT32)BluenrgMesh_GetSleepDuration();
+
+ if (BluenrgMesh_sleepTime > 0)
+ {
+ /* Timer 0 used for low power */
+ HAL_VTimerStart_ms(0, BluenrgMesh_sleepTime);
+
+ /* To start virtual timer */
+ BTLE_StackTick();
+
+ /* save virtual timer current count */
+ SysRefCount = HAL_VTimerGetCurrentTime_sysT32();
+
+ /* wakeup either from io or virtual timer */
+ BlueNRG_Sleep(SLEEPMODE_WAKETIMER, WAKEUP_IO13, WAKEUP_IOx_LOW);
+
+ /* update systick count based on updated virtual timer count */
+ Set_Clock_Time(Clock_Time() +
+ HAL_VTimerDiff_ms_sysT32(HAL_VTimerGetCurrentTime_sysT32(), SysRefCount));
+
+ /* Stop Timer 0 */
+ HAL_VTimer_Stop(0);
+ }
+#endif /* LOW_POWER_FEATURE */
+#endif
+}
+
+/**
+* @brief Appli_IntensityControlPublishing:Function is used to set the intensity value.
+* Publishing the value.
+* @param void
+* @retval void
+*/
+void Appli_IntensityControlPublishing(MOBLEUINT8* value)
+{
+
+ if(IntensityFlag == FALSE)
+ {
+
+ IntensityValue = IntensityValue + (INTENSITY_LEVEL_FULL/5);
+ value[0] = (MOBLEUINT8)IntensityValue;
+ value[1] = (MOBLEUINT8)(IntensityValue >> 8) ;
+
+ if(IntensityValue >= INTENSITY_LEVEL_FULL)
+ {
+ IntensityFlag = TRUE;
+ }
+
+ }
+ else
+ {
+
+ IntensityValue = IntensityValue - (INTENSITY_LEVEL_FULL/5);
+ value[0] = (MOBLEUINT8)IntensityValue;
+ value[1] = (MOBLEUINT8)(IntensityValue >> 8) ;
+
+ if(IntensityValue <= INTENSITY_LEVEL_ZERO)
+ {
+ IntensityFlag = FALSE;
+ }
+
+ }
+}
+
+
+/**
+* @brief Publish the intensity value for generic level or light lightness
+* This function should be called in main loop
+* @param void
+* @retval void
+*/
+void IntensityPublish(void)
+{
+
+#ifdef LIGHT_CLIENT_MODEL_PUBLISH
+#ifdef ENABLE_LIGHT_MODEL_CLIENT_LIGHTNESS
+ MOBLEUINT8 elementIndex = 0;
+ MOBLEUINT8 pLightnessParam[3];
+ Appli_IntensityControlPublishing(pLightnessParam);
+ Appli_LightClient_API(elementIndex, LIGHT_LIGHTNESS_SET, pLightnessParam);
+#endif
+
+#else
+#ifdef GENERIC_CLIENT_MODEL_PUBLISH
+ MOBLEUINT8 elementIndex = 0;
+ MOBLEUINT8 pGeneric_LevelParam[3];
+
+ Appli_IntensityControlPublishing(pGeneric_LevelParam);
+ Appli_GenericClient_API(elementIndex, GENERIC_LEVEL_SET_ACK, pGeneric_LevelParam);
+#endif
+#endif
+}
+
+/**
+* @brief Application processing
+* This function should be called in main loop
+* @param void
+* @retval void
+*/
+void Appli_Process(void)
+{
+#ifdef ENABLE_SAVE_MODEL_STATE_NVM
+ AppliNvm_Process();
+#endif
+
+#ifdef ENABLE_AUTH_TYPE_OUTPUT_OOB
+ if(PrvngInProcess)
+ {
+#if USER_OUTPUT_OOB_APPLI_PROCESS
+ Appli_OobAuthenticationProcess();
+#endif
+ }
+#endif
+
+#ifdef TPT_LAYER_BUSY_TEST
+ if(BLEMesh_TrsptIsBusyState())
+ {
+ //SdkEvalLedOn(LED1);
+ }
+ else
+ {
+ //SdkEvalLedOff(LED1);
+ }
+#endif
+
+}
+
+#if PB_ADV_SUPPORTED
+static void UnprovisionedDeviceBeaconApp(void)
+{
+ BLEMesh_SetUnprovisionedDevBeaconInterval(0);
+}
+
+static void UnprovisionedDeviceBeaconTask(void)
+{
+ /**
+ * The code shall be executed in the background as aci command may be sent
+ * The background is the only place where the application can make sure a new aci command
+ * is not sent if there is a pending one
+ */
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_MESH_BEACON_REQ_ID, CFG_SCH_PRIO_0);
+
+ return;
+}
+#endif
+
+#if (APPLI_OPTIM == 1)
+static void AppliMeshTask(void)
+{
+ /* Set the task in the scheduler for the next execution */
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_MESH_REQ_ID, CFG_SCH_PRIO_0);
+
+ return;
+}
+#endif
+
+static void AppliMeshSW1Task(void)
+{
+ Appli_UpdateButtonState(BSP_PB_GetState(BUTTON_USER1) == BUTTON_PRESSED);
+
+ return;
+}
+
+#if (ENABLE_SENSOR_MODEL_SERVER != 0)
+static void AppliMeshSW3Task(void)
+{
+ Sensor_UpdatePublishState(0, 1);
+
+ Appli_Sensor_Update(0, 1);
+
+ return;
+}
+#endif
+
+#if (LOW_POWER_FEATURE == 1)
+static void LowPowerNodeApiApp(void)
+{
+ TRACE_I(TF_PROVISION,"Scan disabled \r\n");
+ BLEMesh_LpnDisableScan();
+
+ return;
+}
+
+static void LowPowerNodeApiTask(void)
+{
+ /* Set the task in the scheduler for the next execution */
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_MESH_LPN_REQ_ID, CFG_SCH_PRIO_0);
+
+ return;
+}
+#endif
+
+#ifdef SAVE_MODEL_STATE_POWER_FAILURE_DETECTION
+/**
+* @brief function to inintiallise the GPIO interrupt fot Power down
+* @param void
+* @retval void
+*/
+static void GPIO_InitNVICPowerOff(void)
+{
+ GPIO_InitTypeDef gpioinitstruct = {0};
+
+ /* Enable the PowerOff GPIO Clock */
+ POWEROFF_GPIO_CLK_ENABLE();
+
+ /* Configure PowerOff pin as input with External interrupt */
+ gpioinitstruct.Pin = POWEROFF_PIN;
+ gpioinitstruct.Pull = GPIO_PULLUP;
+ gpioinitstruct.Mode = GPIO_MODE_IT_FALLING;
+ HAL_GPIO_Init(POWEROFF_GPIO_PORT, &gpioinitstruct);
+
+ /* Enable and set PowerOff EXTI Interrupt to the lowest priority */
+ HAL_NVIC_SetPriority((IRQn_Type)(POWEROFF_EXTI_IRQn), 0x0F, 0x00);
+ HAL_NVIC_EnableIRQ((IRQn_Type)(POWEROFF_EXTI_IRQn));
+}
+#endif
+
+/**
+* @brief Initializes the Application
+* @param void
+* @retval void
+*/
+void Appli_Init(MOBLEUINT8 *flag)
+{
+#if 0
+#ifdef ENABLE_UNPROVISIONING_BY_POWER_ONOFF_CYCLE
+/* Hardware Factory Restore implementation */
+ AppliNvm_FactorySettingReset();
+#endif
+#endif
+
+#if PB_ADV_SUPPORTED
+ UTIL_SEQ_RegTask( 1<< CFG_TASK_MESH_BEACON_REQ_ID, UTIL_SEQ_RFU, UnprovisionedDeviceBeaconApp );
+ /**
+ * Create Timer to control unprovisioned device beacons
+ */
+ HW_TS_Create(CFG_TIM_PROC_ID_ISR, &discoverTimer_Id, hw_ts_SingleShot, UnprovisionedDeviceBeaconTask);
+
+ HW_TS_Start(discoverTimer_Id, DISCOVER_TIMER_INTERVAL);
+#endif
+
+#if ENABLE_SERIAL_INTERFACE
+ Serial_Init();
+#endif
+
+#ifdef SAVE_MODEL_STATE_POWER_FAILURE_DETECTION
+ GPIO_InitNVICPowerOff();
+#endif
+
+ UTIL_SEQ_RegTask( 1<< CFG_TASK_MESH_SW1_REQ_ID, UTIL_SEQ_RFU, AppliMeshSW1Task );
+
+#if (ENABLE_CUSTOM_BEACON == 1)
+ BLEMesh_SetCustomBeaconInterval(CUSTOM_BEACON_INTERVAL);
+#endif
+
+#if (LOW_POWER_FEATURE == 1) /**
+ * Create Timer to control unprovisioned device beacons
+ */
+ HW_TS_Create(CFG_TIM_PROC_ID_ISR, &lowPowerNodeApiTimer_Id, hw_ts_SingleShot, LowPowerNodeApiTask);
+
+ UTIL_SEQ_RegTask( 1<< CFG_TASK_MESH_LPN_REQ_ID, UTIL_SEQ_RFU, LowPowerNodeApiApp );
+ LPN_scan_enabled = MOBLE_FALSE;
+#endif
+#if (ENABLE_SENSOR_MODEL_SERVER != 0)
+ UTIL_SEQ_RegTask( 1<< CFG_TASK_MESH_SW3_REQ_ID, UTIL_SEQ_RFU, AppliMeshSW3Task );
+#endif
+}
+
+/*****************************Config Model Callbacks***************************/
+/**
+* @brief Callback from Config Model to receive the Publication Parameters
+* @param Structure Pointer having parameters - modelID, elementAddress,
+* Publish Address, PublishPeriod, PublishTTL, Credential Flag,
+* Publish AppKeyIndex, Retransmit Count & Restransmit Interval Steps
+* @retval none
+*/
+void Appli_GetPublicationParamsCb(model_publicationparams_t* pPubParameters)
+{
+ if(pPubParameters->modelID == SENSOR_SERVER_MODEL_ID)
+ {
+ Sensor_ModelPublishSet(pPubParameters);
+ }
+}
+
+
+/**
+* @brief PWM_CoolValue: This function is used to calculate the value for the
+ cool temperature for the light.
+* @param colourValue: Temperature value ratio
+* @param brightValue: Lightness value ratio.
+* @retval duty: duty fot the PWM
+*/
+MOBLEUINT16 PWM_CoolValue(float colourValue ,float brightValue)
+{
+ float colourDuty;
+ MOBLEUINT16 duty;
+
+ colourDuty = colourValue * brightValue;
+ duty = (MOBLEUINT16)(colourDuty * PWM_TIME_PERIOD);
+
+ return duty;
+}
+
+
+/**
+* @brief PWM_WarmValue: This function is used to calculate the value for the
+ warm temperature for the light.
+* @param colourValue: Temperature value ratio
+* @param brightValue: Lightness value ratio.
+* @retval duty: duty fot the PWM
+*/
+MOBLEUINT16 PWM_WarmValue(float colourValue ,float brightValue)
+{
+ float warmDuty;
+ MOBLEUINT16 duty;
+
+ warmDuty = (1-colourValue)* brightValue;
+ duty = (MOBLEUINT16)(warmDuty * PWM_TIME_PERIOD);
+
+ return duty;
+}
+
+/**
+* @brief PwmValueMapping: This function takes the value as parameter from the
+* model and return the value according to .
+* @param setValue: value to be set from model
+* @param maxRange: Max range of the parameter
+* @param minRange: Min range of the parameter
+* @retval MOBLEUINT8
+*/
+MOBLEUINT16 PwmValueMapping(MOBLEUINT16 setValue , MOBLEUINT16 maxRange , MOBLEINT16 minRange)
+{
+ MOBLEUINT16 percentValue;
+ MOBLEUINT16 duty;
+
+#ifdef SMART_PLUG
+ percentValue = (setValue * 100)/ (maxRange - minRange);
+
+ if(percentValue < 2)
+ {
+ duty = 0;
+ }
+ else if((percentValue > 2) && (percentValue <= 10))
+ {
+ duty = 1;
+ }
+ else if((percentValue > 10) && (percentValue <= 20))
+ {
+ duty = 2;
+ }
+ else if((percentValue > 20) && (percentValue <= 30))
+ {
+ duty = 3;
+ }
+ else if((percentValue > 30) && (percentValue <= 40))
+ {
+ duty = 4;
+ }
+ else if((percentValue > 40) && (percentValue <= 50))
+ {
+ duty = 5;
+ }
+ else if((percentValue > 50) && (percentValue <= 60))
+ {
+ duty = 6;
+ }
+ else if((percentValue > 60) && (percentValue <= 70))
+ {
+ duty = 7;
+ }
+ else if((percentValue > 70) && (percentValue <= 80))
+ {
+ duty = 8;
+ }
+ else if((percentValue > 80) && (percentValue <= 90))
+ {
+ duty = 9;
+ }
+ else if(percentValue > 90)
+ {
+ duty = 10;
+ }
+#else
+ if(minRange > 0x00)
+ {
+ percentValue = (setValue - 800)/ (maxRange - minRange);
+ percentValue = (percentValue*100);
+ }
+ else
+ {
+ percentValue = (setValue * 100)/ (maxRange - minRange);
+ }
+
+ duty = percentValue*320 ;
+
+ if(duty >= 32000)
+ {
+ duty = 31999;
+ }
+ if(duty == 0)
+ {
+ duty = 1;
+ }
+#endif
+
+ return duty;
+}
+
+
+/************************************ Weak linking ***********************************
+If implemented in application, linker would replace weak linking in library */
+WEAK_FUNCTION (void SerialPrvn_ProvisioningStatusUpdateCb(uint8_t flagPrvningInProcess, MOBLEUINT16 nodeAddress))
+{
+
+}
+
+
+/**
+* @}
+*/
+
+/**
+* @}
+*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_mesh.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_mesh.h
new file mode 100644
index 000000000..a694a2083
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_mesh.h
@@ -0,0 +1,136 @@
+/**
+ ******************************************************************************
+ * @file appli_mesh.h
+ * @author BLE Mesh Team
+ * @brief Header file for the user application file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APPLI_MESH_H
+#define __APPLI_MESH_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+#include "mesh_cfg_usr.h"
+#include "mesh_cfg.h"
+
+/* Exported macro ------------------------------------------------------------*/
+/* MACROS for Power Level definitions */
+#define POWER_LEVEL_LOW 0
+#define TX_POWER_LEVEL_MINUS_18DBM 0 /* = -18 dBm, */
+#define TX_POWER_LEVEL_MINUS_15DBM 1 /* = -15 dBm, */
+#define TX_POWER_LEVEL_MINUS_12DBM 2 /* = -12 dBm, */
+#define TX_POWER_LEVEL_MINUS_9DBM 3 /* = -9 dBm, */
+#define TX_POWER_LEVEL_MINUS_6DBM 4 /* = -6 dBm, */
+#define TX_POWER_LEVEL_MINUS_2DBM 5 /* = -2 dBm, */
+#define TX_POWER_LEVEL_0DBM 6 /* = 0 dBm, */
+#define TX_POWER_LEVEL_PLUS_5DBM 7 /* = 5 dBm. */
+#define POWER_LEVEL_HIGH 1
+#define TX_POWER_LEVEL_MINUS_14DBM 0 /* = -14 dBm, */
+#define TX_POWER_LEVEL_MINUS_11DBM 1 /* = -11 dBm, */
+#define TX_POWER_LEVEL_MINUS_8DBM 2 /* = -8 dBm, */
+#define TX_POWER_LEVEL_MINUS_5DBM 3 /* = -5 dBm, */
+#define TX_POWER_LEVEL_PLUS_2DBM 5 /* = 2 dBm, */
+#define TX_POWER_LEVEL_PLUS_4DBM 6 /* = 4 dBm, */
+#define TX_POWER_LEVEL_PLUS_8DBM 7 /* = 8 dBm */
+
+#ifdef SAVE_MODEL_STATE_POWER_FAILURE_DETECTION
+#define POWEROFF_PIN GPIO_PIN_12
+#define POWEROFF_GPIO_PORT GPIOB
+#define POWEROFF_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
+#define POWEROFF_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
+#define POWEROFF_EXTI_LINE GPIO_PIN_12
+#define POWEROFF_EXTI_IRQn EXTI15_10_IRQn
+#endif
+
+typedef enum _prvn_nvm_state
+{
+ NVM_INIT = 0,
+ NVM_SAVE_PENDING,
+} prvn_nvm_state;
+
+/* Exported variables ------------------------------------------------------- */
+
+extern MOBLEUINT8 bdaddr[];
+
+typedef struct
+{
+ MOBLEUINT16 nodeAddress;
+ MOBLEUINT8 numOfElements;
+ MOBLEUINT8 Reserved1; /* For Alignment by 4*/
+ MOBLEUINT16 newNodeAddress;
+ MOBLEUINT8 newNodeElements;
+ prvn_nvm_state saveToNVM;
+ MOBLEUINT8 NewProvNodeDevKey[DEVICE_KEY_SIZE];
+ MOBLEUINT8 NewProvNodeAppKey[APP_KEY_SIZE];
+ MOBLEUINT8 NewProvNodeUUID[UUID_SIZE];
+} NodeUnderProvisionParam_t;
+
+extern NodeUnderProvisionParam_t NodeUnderProvisionParam;
+extern MOBLEUINT16 Appli_SIG_Models[APPLICATION_NUMBER_OF_ELEMENTS][APPLICATION_SIG_MODELS_MAX_COUNT];
+extern MOBLEUINT32 Appli_Vendor_Models[APPLICATION_NUMBER_OF_ELEMENTS][APPLICATION_VENDOR_MODELS_MAX_COUNT];
+
+/* Exported Functions Prototypes ---------------------------------------------*/
+MOBLE_RESULT Appli_BleStackInitCb(void);
+MOBLE_RESULT Appli_BleSetTxPowerCb(void);
+MOBLE_RESULT Appli_BleSetUUIDCb(MOBLEUINT8 *uuid_prefix_data);
+MOBLE_RESULT Appli_BleSetProductInfoCB(MOBLEUINT8 *company_product_info);
+void Appli_BleUnprovisionedIdentifyCb(MOBLEUINT8 data);
+void Appli_BleGattConnectionCompleteCb(void);
+void Appli_BleGattDisconnectionCompleteCb(void);
+MOBLEUINT8 Appli_BleSetNumberOfElementsCb(void);
+MOBLE_RESULT Appli_BleAttentionTimerCb(void);
+void Appli_BleOutputOOBAuthCb(MOBLEUINT8* output_oob, MOBLEUINT8 size);
+MOBLEUINT8* Appli_BleInputOOBAuthCb(MOBLEUINT8 size);
+void Appli_BleSerialInputOOBValue(char *rcvdStringBuff, uint16_t rcvdStringSize);
+MOBLEUINT8 Appli_BleDisableFilterCb(void);
+void BLEMesh_PbAdvLinkCloseCb(void);
+void Appli_IntensityControlPublishing(MOBLEUINT8* value);
+
+int Appli_CheckBdMacAddr(void);
+MOBLE_RESULT Appli_LedBlink(void);
+MOBLE_RESULT Appli_LedStateCtrlCb(MOBLEUINT16 ctrl);
+
+void Appli_CheckForUnprovision(void);
+void Appli_Unprovision(void);
+void Appli_Process(void);
+void Appli_LedCtrl(void);
+void Appli_Init(MOBLEUINT8 *flag);
+
+MOBLE_ADDRESS GetAddressToConfigure(void);
+MOBLE_ADDRESS GetNewAddressToProvision(void);
+void SaveProvisionedNodeAddress(void);
+MOBLEUINT8* GetNewProvNodeDevKey(void);
+MOBLEUINT8* GetNewProvNodeAppKey(void);
+void IntensityPublish(void);
+void Start_SelfConfiguration (void);
+void Appli_ProvisionerInit(void);
+void Appli_StartProvisionerMode(MOBLEUINT8 mode);
+
+void Appli_GetPublicationParamsCb(model_publicationparams_t*);
+
+MOBLEUINT16 PWM_CoolValue(float colourValue ,float brightValue);
+MOBLEUINT16 PWM_WarmValue(float colourValue ,float brightValue);
+MOBLEUINT16 PwmValueMapping(MOBLEUINT16 setValue , MOBLEUINT16 maxRange , MOBLEINT16 minRange);
+
+MOBLE_RESULT BLEMesh_ScanDevices(neighbor_params_t *unprovDeviceArray, MOBLEUINT8 *noOfUnprovDevices);
+MOBLE_RESULT BLEMesh_ProvisionDevice(neighbor_params_t *unprovDeviceArray, MOBLEUINT16 index);
+
+void LED_Deinit(void);
+void LED_On(aPwmLedGsData_TypeDef aPwmLedGsData);
+void LED_Off(void);
+
+#endif /* __APPLI_MESH_H */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_nvm.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_nvm.c
new file mode 100644
index 000000000..ce9af8d33
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_nvm.c
@@ -0,0 +1,749 @@
+/**
+ ******************************************************************************
+ * @file appli_nvm.c
+ * @author BLE Mesh Team
+ * @brief User Application file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include <string.h>
+#include "hal_common.h"
+#include "ble_mesh.h"
+#include "mesh_cfg_usr.h"
+#include "appli_nvm.h"
+#include "mesh_cfg.h"
+#include "pal_nvm.h"
+#include "appli_mesh.h"
+#ifdef SAVE_MODEL_STATE_FOR_ALL_MESSAGES
+#include "common.h"
+#endif
+#if (LOW_POWER_FEATURE == 1)
+#include "app_conf.h"
+#include "stm32_seq.h"
+#endif
+#include "config_client.h"
+
+/** @addtogroup ST_BLE_Mesh
+* @{
+*/
+
+/** @addtogroup Application_Mesh_Models
+* @{
+*/
+/* Private define ------------------------------------------------------------*/
+
+extern const MOBLEUINT8* _bdaddr[];
+
+#ifdef SAVE_MODEL_STATE_FOR_ALL_MESSAGES
+extern MOBLEUINT8 PowerOnOff_flag;
+#endif
+
+extern const void* appNvmBase;
+
+
+/*
+* Page of size 4k, STM32WB, reserved for application is divided into 16 subpages of each 256 bytes
+* First subpage is reserved (for e.g. External MAC is present in this area)
+* Rest 15 subpages are used on rolling basis for application states.
+* First byte of each subpage indicates if page is valid or not
+*/
+
+#define APP_NVM_RESERVED_SIZE 256U
+#define APP_NVM_SUBPAGE_SIZE 256U
+#define APP_NVM_MAX_SUBPAGE 15U
+#define APP_NVM_SUBPAGE_OFFSET(i) (unsigned int)(APP_NVM_RESERVED_SIZE + APP_NVM_SUBPAGE_SIZE*(i))
+
+/* offsets defined wrt start of subpage */
+#define APP_NVM_VALID_FLAG_OFFSET 0U
+#define APP_NVM_VALID_FLAG_SIZE 4U
+#define APP_NVM_RESET_COUNT_OFFSET (unsigned int)APP_NVM_VALID_FLAG_SIZE
+#define APP_NVM_RESET_COUNT_SIZE 12U /* 12 bytes reserved for write cycle optimization */
+#define APP_NVM_GENERIC_MODEL_OFFSET (unsigned int)(APP_NVM_VALID_FLAG_SIZE+APP_NVM_RESET_COUNT_SIZE)
+//#define APP_NVM_GENERIC_MODEL_SIZE 16U
+#define APP_NVM_LIGHT_MODEL_OFFSET (unsigned int)(APP_NVM_VALID_FLAG_SIZE+APP_NVM_RESET_COUNT_SIZE+APP_NVM_GENERIC_MODEL_SIZE)
+//#define APP_NVM_LIGHT_MODEL_SIZE 16U
+
+#define FLASH_EMPTY_SIGNATURE 0xFFFFFFFF
+
+#define RADIO_OFF_DELAY 1000
+
+/* Private variables ---------------------------------------------------------*/
+
+typedef struct
+{
+ MOBLEUINT8 modelData[APP_NVM_GENERIC_MODEL_SIZE+APP_NVM_LIGHT_MODEL_SIZE];
+ MOBLEBOOL erasePageReq;
+ MOBLEBOOL writeReq;
+} APPLI_NVM_REQS;
+
+/* ALIGN(4) */
+__attribute__((aligned(4))) APPLI_NVM_REQS AppliNvm_Reqs;
+MOBLEUINT16 StopRadioInProgress;
+
+MOBLE_RESULT AppliNvm_EraseRestoreResvNvm(void);
+MOBLE_RESULT AppliNvm_FindFirstEmptyPage(MOBLEINT16* subPageIndex,
+ MOBLEUINT32 SubPageSize,
+ MOBLEUINT32 totalSubPage,
+ MOBLEUINT32 nvmBaseOffset);
+MOBLE_RESULT AppliNvm_MarkSubpageInvalid(void);
+MOBLE_RESULT AppliNvm_FlashProgram(MOBLEUINT32 offset,
+ void const *buf, MOBLEUINT32 size);
+
+#if 0 //#ifdef ENABLE_NVM_TEST
+/**
+* @brief This function erases a specified flash page
+* @param Page Number
+* @retval MOBLE_RESULT_INVALIDARG if PageNumber overflow
+* MOBLE_RESULT_FALSE if flash operation is very close to next radio event
+* MOBLE_RESULT_FAIL if flash command error is set
+* MOBLE_RESULT_SUCCESS on success
+*/
+MOBLE_RESULT AppliNvm_FlashErase(uint16_t PageNumber)
+{
+ MOBLE_RESULT result;
+
+ if (PageNumber < FLASH_PAGE_NB)
+ {
+ BLEMesh_StopAdvScan();
+ ATOMIC_SECTION_BEGIN();
+ result = PalNvmErase(APP_NVM_BASE, 0);
+ ATOMIC_SECTION_END();
+ }
+ else /* Invalid page no */
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+
+ return result;
+}
+#endif
+
+/**
+* @brief Program word (32-bit) at a APP_NVM_BASE + APP_NVM_RESERVED_SIZE
+* @param TypeProgram Indicate the way to program at a specified address
+* @param Address: address to write
+* @param Data: word to write
+* @retval MOBLE_RESULT_SUCCESS on success
+*/
+MOBLE_RESULT AppliNvm_FlashProgram(MOBLEUINT32 offset,
+ void const *buf,
+ MOBLEUINT32 size)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+
+ if (offset > PAGE_SIZE)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else if (size == 0)
+ {
+ result = MOBLE_RESULT_FALSE;
+ }
+ else if (offset + size > (APP_NVM_BASE + PAGE_SIZE))
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else if (offset & 3)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else if (size & 3)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else
+ {
+ result = PalNvmWrite(APP_NVM_BASE,
+ offset,
+ buf,
+ size);
+ }
+
+ return result;
+}
+
+
+/**
+* @brief Mark first valid subpage as invalid.
+* @param void
+* @retval MOBLE_RESULT_SUCCESS on success
+*/
+MOBLE_RESULT AppliNvm_MarkSubpageInvalid(void)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+#if 0
+ MOBLEUINT32 valid = 0;
+ MOBLEINT16 currSubPageIdx;
+ MOBLEUINT8 subPageTemp[APP_NVM_SUBPAGE_SIZE];
+
+ /* find valid subpage */
+ result = AppliNvm_FindFirstEmptyPage(&currSubPageIdx,
+ APP_NVM_SUBPAGE_SIZE,
+ APP_NVM_MAX_SUBPAGE,
+ (APP_NVM_BASE+APP_NVM_RESERVED_SIZE));
+
+
+ if (result == MOBLE_RESULT_OUTOFMEMORY)
+ {
+ AppliNvm_Reqs.erasePageReq = MOBLE_TRUE;
+ }
+ else
+ {
+ /* mark valid subpage as invalid */
+ memcpy((void*)subPageTemp,
+ (void*)(PRVN_NVM_BASE_OFFSET + APP_NVM_SUBPAGE_OFFSET(currSubPageIdx)),
+ APP_NVM_SUBPAGE_SIZE);
+ subPageTemp[APP_NVM_VALID_FLAG_OFFSET] = valid;
+ result = AppliNvm_FlashProgram(APP_NVM_SUBPAGE_OFFSET(currSubPageIdx),
+ (uint32_t*)&subPageTemp,
+ APP_NVM_SUBPAGE_SIZE);
+ if (MOBLE_FAILED(result))
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+ else if (result == MOBLE_RESULT_FALSE)
+ {
+ /* radio busy, try again later */
+ }
+ else
+ {
+ /* do nothing */
+ }
+ }
+#endif
+ return result;
+}
+
+
+/**
+* @brief This function writes Reset count value in flash at APP_NVM_BASE + APP_NVM_RESERVED_SIZE
+* if device has been turned ON 5 times consecutively with each ON duration < 2s, reset to factory settings
+* LED blinks 2 times to indicate device startup without reset
+* LED blinks 5 times to indicate reset at device startup
+* @param void
+* @retval MOBLE_RESULT_SUCCESS on success
+*/
+MOBLE_RESULT AppliNvm_FactorySettingReset(void)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+#if 0
+ MOBLEINT16 currSubPageIdx = 0;
+ MOBLEUINT32 resetCount;
+ MOBLEUINT8 subPageTemp[APP_NVM_SUBPAGE_SIZE];
+
+ result = AppliNvm_FindFirstEmptyPage(&currSubPageIdx,APP_NVM_SUBPAGE_SIZE,APP_NVM_MAX_SUBPAGE,
+ (APP_NVM_BASE+APP_NVM_RESERVED_SIZE));
+
+ if(result == MOBLE_RESULT_OUTOFMEMORY)
+ {
+ AppliNvm_Reqs.erasePageReq = MOBLE_TRUE;
+#if (LOW_POWER_FEATURE == 1)
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_APPLI_REQ_ID, CFG_SCH_PRIO_0);
+#endif
+ result = MOBLE_RESULT_FAIL;
+ }
+ else
+ {
+ if(currSubPageIdx > 0)
+ {
+ /* Not the first reset */
+ /* read the previous subpage */
+ memcpy((void*)&(subPageTemp[0]),
+ (void*)(APP_NVM_BASE + APP_NVM_SUBPAGE_OFFSET(currSubPageIdx-1)),
+ APP_NVM_SUBPAGE_SIZE);
+ }
+ else
+ {
+ /* read the current subpage */
+ memcpy((void*)&(subPageTemp[0]),
+ (void*)(APP_NVM_BASE + APP_NVM_SUBPAGE_OFFSET(currSubPageIdx)),
+ APP_NVM_SUBPAGE_SIZE);
+ }
+
+ /* read reset count from the subpage */
+ memcpy((void*)&resetCount,
+ (void*)&(subPageTemp[APP_NVM_RESET_COUNT_OFFSET]),
+ 4);
+ resetCount = resetCount << 1; /* Shifting for making Bits 0 from LSB */
+ memcpy((void*)&(subPageTemp[APP_NVM_RESET_COUNT_OFFSET]), (void*)&resetCount, 4);
+
+ /* Check for "POWER_ON_OFF_CYCLES_FOR_UNPROVISIONING" times, that many bits shall be zero */
+ if (resetCount > MASK_BITS_FOR_POWER_ON_OFF_CYCLES)
+ {
+ /* MASK_BITS_FOR_POWER_ON_OFF_CYCLES = 0xFFFFFFE0 */
+
+ /* update reset count */
+ result = AppliNvm_FlashProgram(APP_NVM_SUBPAGE_OFFSET(currSubPageIdx),
+ (uint32_t*)&subPageTemp,
+ APP_NVM_SUBPAGE_SIZE);
+
+ if (!memcmp((void*)&subPageTemp[APP_NVM_RESET_COUNT_OFFSET],
+ (void*)(APP_NVM_BASE + APP_NVM_SUBPAGE_OFFSET(currSubPageIdx)+APP_NVM_RESET_COUNT_OFFSET),
+ 4))
+ {
+ /* updated value of reset count in flash */
+ }
+
+ /* Blink twice to indicate device startup
+ 1 second to blink once and 2 seconds to blink twice */
+ for (MOBLEUINT8 i=0; i< ON_TIME_IN_SECONDS_FOR_POWER_CYCLING; i++)
+ {
+ Appli_LedBlink();
+ }
+
+ /* Load model data copy from nvm */
+ memcpy((void*)AppliNvm_Reqs.modelData,
+ (void*)(APP_NVM_SUBPAGE_OFFSET(currSubPageIdx)+APP_NVM_GENERIC_MODEL_OFFSET),
+ APP_NVM_MODELDATA_PER_ELEMENT_SIZE);
+
+ result = AppliNvm_MarkSubpageInvalid();
+
+ if (MOBLE_FAILED(result))
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+ }
+ else /* Device is forced to factory reset, 5 LSBs are zero */
+ {
+ /* Unprovision node */
+ BLEMesh_Unprovision();
+
+ /* Clear lib data, primary and backup nvm used by BLE-Mesh lib */
+ PalNvmErase(NVM_BASE, 0);
+ PalNvmErase(NVM_BASE, 0x1000);
+
+ AppliNvm_ClearModelState();
+
+ BLEMesh_SetUnprovisionedDevBeaconInterval(100);
+
+ /* Blink 5 times to indicate factory setting reset */
+ for (MOBLEUINT8 i=0; i<BLINK_TIMES_FOR_FACTORY_RESET; i++)
+ {
+ Appli_LedBlink();
+ }
+
+ TRACE_M(TF_MISC, "Reset to factory settings \r\n");
+ }
+
+ result = MOBLE_RESULT_SUCCESS;
+ }
+#endif
+ return result;
+}
+
+
+/**
+* @brief Save model states in nvm
+* @param model state buff
+* @param model state buff size
+* @retval MOBLE_RESULT_SUCCESS on success
+*/
+MOBLE_RESULT AppliNvm_SaveModelState(uint8_t* state,
+ uint16_t size)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS; /* if save model state not defined, return MOBLE_RESULT_FAIL */
+
+#if (SAVE_MODEL_STATE_NVM == 1)
+
+ if (size > APP_NVM_MODEL_SIZE)
+ {
+ /* incorrect size */
+ result = MOBLE_RESULT_FAIL;
+ }
+ else
+ {
+ memcpy(AppliNvm_Reqs.modelData,
+ state,
+ size);
+
+ AppliNvm_Reqs.writeReq = MOBLE_TRUE;
+ AppliNvm_Reqs.erasePageReq = MOBLE_FALSE;
+#if (LOW_POWER_FEATURE == 1)
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_APPLI_REQ_ID, CFG_SCH_PRIO_0);
+#endif
+ }
+#endif /* SAVE_MODEL_STATE_NVM */
+ return result;
+}
+
+
+/**
+* @brief Clear model states in nvm
+* @param none
+* @retval MOBLE_RESULT_SUCCESS on success
+*/
+MOBLE_RESULT AppliNvm_ClearModelState(void)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_FAIL; /* if save model state not defined, return MOBLE_RESULT_FAIL */
+
+#if (SAVE_MODEL_STATE_NVM == 1)
+ MOBLEUINT8 subPageTemp[APP_NVM_SUBPAGE_SIZE];
+ MOBLEINT16 subPageIdx;
+ MOBLEUINT8 clearBuff[APP_NVM_MODELDATA_PER_ELEMENT_SIZE] = {0};
+ MOBLEUINT32 valid = 0;
+
+ result = AppliNvm_FindFirstEmptyPage(&subPageIdx,
+ APP_NVM_SUBPAGE_SIZE,
+ APP_NVM_MAX_SUBPAGE,
+ (APP_NVM_BASE+APP_NVM_RESERVED_SIZE));
+
+ if (MOBLE_FAILED(result))
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+ else
+ {
+ if(subPageIdx > 0)
+ { /* Not the first subpage */
+ /* clear models states */
+ memcpy((void*)&(subPageTemp[0]),
+ (void*)(APP_NVM_BASE + APP_NVM_SUBPAGE_OFFSET(subPageIdx-1)),
+ APP_NVM_SUBPAGE_SIZE);
+ memcpy((void*)&subPageTemp[APP_NVM_GENERIC_MODEL_OFFSET],
+ (void*)(clearBuff),
+ APP_NVM_GENERIC_MODEL_SIZE+APP_NVM_LIGHT_MODEL_SIZE);
+ subPageTemp[APP_NVM_VALID_FLAG_OFFSET] = valid;
+
+ result = AppliNvm_FlashProgram(APP_NVM_SUBPAGE_OFFSET(subPageIdx),
+ (uint32_t*)&subPageTemp,
+ APP_NVM_SUBPAGE_SIZE);
+ }
+ else
+ { /* First subpage */
+ memcpy((void*)&(subPageTemp[0]),
+ (void*)(APP_NVM_BASE + APP_NVM_SUBPAGE_OFFSET(subPageIdx)),
+ APP_NVM_SUBPAGE_SIZE);
+ memcpy((void*)&subPageTemp[APP_NVM_GENERIC_MODEL_OFFSET],
+ (void*)(clearBuff),
+ APP_NVM_GENERIC_MODEL_SIZE+APP_NVM_LIGHT_MODEL_SIZE);
+ subPageTemp[APP_NVM_VALID_FLAG_OFFSET] = valid;
+
+ result = AppliNvm_FlashProgram(APP_NVM_SUBPAGE_OFFSET(subPageIdx),
+ (uint32_t*)&subPageTemp,
+ APP_NVM_SUBPAGE_SIZE);
+ }
+ }
+#endif /* SAVE_MODEL_STATE_NVM */
+ return result;
+}
+
+
+/**
+* @brief Load Model states from nvm
+* @param model state buff
+* @param model state buff size
+* @retval MOBLE_RESULT_SUCCESS on success
+*/
+MOBLE_RESULT AppliNvm_LoadModelState(uint8_t state[],
+ uint16_t* size)
+{
+#if (SAVE_MODEL_STATE_NVM == 1)
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ MOBLEINT16 currSubPageIdx = 0;
+
+ *size = 0;
+ result = AppliNvm_FindFirstEmptyPage(&currSubPageIdx,
+ APP_NVM_SUBPAGE_SIZE,
+ APP_NVM_MAX_SUBPAGE,
+ APP_NVM_BASE + APP_NVM_RESERVED_SIZE);
+
+ if(result == MOBLE_RESULT_OUTOFMEMORY)
+ {
+ AppliNvm_Reqs.erasePageReq = MOBLE_TRUE;
+#if (LOW_POWER_FEATURE == 1)
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_APPLI_REQ_ID, CFG_SCH_PRIO_0);
+#endif
+ result = MOBLE_RESULT_FAIL;
+ }
+ else
+ {
+ if(currSubPageIdx > 0)
+ {
+ /* Not the first reset */
+ /* Load model data copy from nvm */
+ memcpy((void*)AppliNvm_Reqs.modelData,
+ (void*)(APP_NVM_BASE + APP_NVM_SUBPAGE_OFFSET(currSubPageIdx-1) + APP_NVM_GENERIC_MODEL_OFFSET),
+ APP_NVM_GENERIC_MODEL_SIZE + APP_NVM_LIGHT_MODEL_SIZE);
+ memcpy((void*)state,
+ (void*)(AppliNvm_Reqs.modelData),
+ APP_NVM_MODEL_SIZE);
+ *size = APP_NVM_MODEL_SIZE;
+ }
+ }
+ return result;
+#else /* SAVE_MODEL_STATE_NVM */
+ *size = 0;
+ return MOBLE_RESULT_SUCCESS;
+#endif /* SAVE_MODEL_STATE_NVM */
+}
+
+
+/**
+* @brief Process NVM erase and write requests
+* @param void
+* @retval void
+*/
+void AppliNvm_Process(void)
+{
+ MOBLE_RESULT result;
+ MOBLEINT16 subPageIdx;
+ uint8_t reserveAreaCopy[APP_NVM_RESERVED_SIZE];
+
+ /* Erase if required */
+ if ((AppliNvm_Reqs.erasePageReq == MOBLE_TRUE) &&
+ (!LL_FLASH_IsActiveFlag_OperationSuspended()))
+ {
+ if(StopRadioInProgress == 0)
+ {
+ /* save reserve flash area */
+ memcpy((void*)reserveAreaCopy,
+ (void*)APP_NVM_BASE,
+ APP_NVM_RESERVED_SIZE);
+
+ TRACE_M(TF_PROVISION,"Erase flash page\r\n");
+ result = PalNvmErase(APP_NVM_BASE, 0);
+
+ if(result == MOBLE_RESULT_OUTOFMEMORY)
+ {
+ AppliNvm_Reqs.erasePageReq = MOBLE_TRUE;
+#if (LOW_POWER_FEATURE == 1)
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_APPLI_REQ_ID, CFG_SCH_PRIO_0);
+#endif
+ }
+ else
+ {
+ AppliNvm_Reqs.erasePageReq = MOBLE_FALSE;
+ AppliNvm_Reqs.writeReq = MOBLE_TRUE;
+#if (LOW_POWER_FEATURE == 1)
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_APPLI_REQ_ID, CFG_SCH_PRIO_0);
+#endif
+ /* restore reserve area */
+/* FLASH_ProgramWordBurst(APP_NVM_BASE, (uint32_t*)reserveAreaCopy); */
+ result = AppliNvm_FlashProgram(0,
+ (uint32_t*)&reserveAreaCopy,
+ APP_NVM_RESERVED_SIZE);
+ BLEMesh_ResumeAdvScan();
+ }
+ }
+ else
+ StopRadioInProgress--;
+ }
+
+ if (AppliNvm_Reqs.erasePageReq == MOBLE_FALSE &&
+ AppliNvm_Reqs.writeReq == MOBLE_TRUE)
+ {
+ result = AppliNvm_FindFirstEmptyPage(&subPageIdx,
+ APP_NVM_SUBPAGE_SIZE,
+ APP_NVM_MAX_SUBPAGE,
+ (APP_NVM_BASE+APP_NVM_RESERVED_SIZE));
+
+ if(result == MOBLE_RESULT_OUTOFMEMORY)
+ {
+ BLEMesh_SuspendAdvScan();
+ StopRadioInProgress = RADIO_OFF_DELAY;
+
+ AppliNvm_Reqs.erasePageReq = MOBLE_TRUE;
+#if (LOW_POWER_FEATURE == 1)
+ UTIL_SEQ_SetTask( 1<<CFG_TASK_APPLI_REQ_ID, CFG_SCH_PRIO_0);
+#endif
+ result = MOBLE_RESULT_SUCCESS;
+ }
+ else
+ {
+ MOBLEUINT8 subPageTemp[APP_NVM_SUBPAGE_SIZE];
+ MOBLEUINT32 valid = 0;
+
+ if(subPageIdx > 0)
+ {
+ /* Not the first reset */
+ /* read the previous subpage */
+ memcpy((void*)&(subPageTemp[0]),
+ (void*)(APP_NVM_BASE + APP_NVM_SUBPAGE_OFFSET(subPageIdx-1)),
+ APP_NVM_SUBPAGE_SIZE);
+ }
+ else
+ {
+ /* read the current subpage */
+ memcpy((void*)&(subPageTemp[0]),
+ (void*)(APP_NVM_BASE + APP_NVM_SUBPAGE_OFFSET(subPageIdx)),
+ APP_NVM_SUBPAGE_SIZE);
+ }
+
+ memcpy((void*)&(subPageTemp[APP_NVM_GENERIC_MODEL_OFFSET]),
+ (void*)&(AppliNvm_Reqs.modelData),
+ APP_NVM_GENERIC_MODEL_SIZE+APP_NVM_LIGHT_MODEL_SIZE);
+
+ subPageTemp[APP_NVM_VALID_FLAG_OFFSET] = valid;
+
+ result = AppliNvm_FlashProgram(APP_NVM_SUBPAGE_OFFSET(subPageIdx),
+ (uint8_t*)subPageTemp,
+ APP_NVM_SUBPAGE_SIZE);
+
+ if (result == MOBLE_RESULT_SUCCESS)
+ {
+ AppliNvm_Reqs.writeReq = MOBLE_FALSE;
+ }
+ }
+ }
+}
+
+
+/**
+* @brief Function used to set the flag which is responsible for storing the
+ states in flash.
+* @param void
+* @retval void
+*/
+void AppliNvm_SaveMessageParam (void)
+{
+#ifdef SAVE_MODEL_STATE_FOR_ALL_MESSAGES
+ PowerOnOff_flag = FLAG_SET;
+#endif
+}
+
+
+/**
+* @brief Find first valid subpage available.
+* If no valid subpage found, erase page appli nvm to reset it
+* @param pointer to variable to update first valid subpage index
+* @retval MOBLE_RESULT_SUCCESS on success
+*/
+MOBLE_RESULT AppliNvm_FindFirstEmptyPage(MOBLEINT16* subPageIndex,
+ MOBLEUINT32 SubPageSize,
+ MOBLEUINT32 totalSubPage,
+ MOBLEUINT32 nvmBaseOffset)
+{
+ MOBLEUINT32 valid[2];
+ MOBLEINT8 subPageIdx = -1;
+ MOBLEUINT32 *subPageOffset;
+ MOBLEUINT32 addressValidPage;
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+
+ for (MOBLEUINT16 count=0; count<totalSubPage; count++)
+ {
+ addressValidPage = nvmBaseOffset + SubPageSize*count;
+ subPageOffset = &addressValidPage;
+
+ /* Read 8 bytes and check if it's Empty */
+ memcpy((void*)&valid, (void*)(*subPageOffset), 8);
+
+ if ((valid[0] == FLASH_EMPTY_SIGNATURE) /*&& (valid[1] == FLASH_EMPTY_SIGNATURE)*/)
+ {
+ subPageIdx = count;
+ break;
+ }
+ }
+
+ if (subPageIdx < 0)
+ {
+ TRACE_M(TF_PROVISION,"Out of Memory, Flash page is full \r\n");
+ result = MOBLE_RESULT_OUTOFMEMORY;
+ }
+ else
+ {
+ result = MOBLE_RESULT_SUCCESS;
+ }
+
+ *subPageIndex = subPageIdx;
+
+ return result;
+}
+
+#if 0 //#ifdef ENABLE_NVM_TEST
+MOBLE_RESULT AppliNVM_Save_FlashTesting(MOBLEUINT8 *buffer,
+ MOBLEUINT16 buffer_size)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_FAIL;
+ uint8_t reserveAreaCopy[APP_NVM_RESERVED_SIZE];
+ MOBLEINT16 subPageIdx;
+
+ for(MOBLEUINT8 count = 0;count <= buffer_size;count++)
+ {
+ buffer[count] = count;
+ }
+
+ /* save reserve flash area */
+ memcpy((void*)reserveAreaCopy,
+ (void*)APP_NVM_BASE,
+ APP_NVM_RESERVED_SIZE);
+
+ result = AppliNvm_FlashErase((uint16_t)((APP_NVM_BASE - RESET_MANAGER_FLASH_BASE_ADDRESS) / PAGE_SIZE));
+
+ if (result == MOBLE_RESULT_SUCCESS)
+ {
+ /* restore reserve area */
+// FLASH_ProgramWordBurst(APP_NVM_BASE, (uint32_t*)reserveAreaCopy);
+ result = AppliNvm_FlashProgram(0,
+ (uint32_t*)&reserveAreaCopy,
+ APP_NVM_RESERVED_SIZE);
+ }
+
+ result = AppliNvm_FindFirstEmptyPage(&subPageIdx,
+ APP_NVM_SUBPAGE_SIZE,
+ APP_NVM_MAX_SUBPAGE,
+ (APP_NVM_BASE+APP_NVM_RESERVED_SIZE));
+
+ if(result == MOBLE_RESULT_OUTOFMEMORY)
+ {
+ TRACE_M(TF_PROVISION, "Flash sub page is full, preparing new subpage\r\n");
+ }
+ else
+ {
+ result = AppliNvm_FlashProgram(APP_NVM_SUBPAGE_OFFSET(subPageIdx)+APP_NVM_GENERIC_MODEL_OFFSET,
+ buffer,
+ buffer_size);
+ }
+ return result;
+}
+
+MOBLE_RESULT AppliNVM_Retrieve_FlashTesting(MOBLEUINT8 *buffer,
+ MOBLEUINT16 buffer_size)
+{
+ MOBLEINT16 currSubPageIdx;
+ MOBLE_RESULT result = MOBLE_RESULT_FAIL;
+
+ result = AppliNvm_FindFirstEmptyPage(&currSubPageIdx,
+ APP_NVM_SUBPAGE_SIZE,
+ APP_NVM_MAX_SUBPAGE,
+ (APP_NVM_BASE+APP_NVM_RESERVED_SIZE));
+
+ if(result == MOBLE_RESULT_OUTOFMEMORY)
+ {
+ TRACE_M(TF_PROVISION," Can not find the empty page for testing flash \r\n");
+ }
+ else
+ {
+ memcpy((void*)buffer,
+ (void*)(APP_NVM_SUBPAGE_OFFSET(currSubPageIdx)+APP_NVM_GENERIC_MODEL_OFFSET),
+ buffer_size);
+
+ result = AppliNvm_MarkSubpageInvalid();
+
+ if (MOBLE_FAILED(result))
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+ }
+
+ return result;
+}
+#endif
+
+/**
+* @}
+*/
+
+/**
+* @}
+*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_nvm.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_nvm.h
new file mode 100644
index 000000000..3cca57d10
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_nvm.h
@@ -0,0 +1,97 @@
+/**
+ ******************************************************************************
+ * @file appli_nvm.h
+ * @author BLE Mesh Team
+ * @brief Header file for the NVM application file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APPLI_NVM_H
+#define __APPLI_NVM_H
+
+/* Includes ------------------------------------------------------------------*/
+
+#include "mesh_cfg.h"
+
+/* Exported macro ------------------------------------------------------------*/
+
+extern const void *prvsnr_data;
+
+/* offset defined for the embedded provisioner node */
+#define PRVN_NVM_PAGE_SIZE 4096U
+#define PRVN_NVM_BASE_OFFSET ((unsigned int)prvsnr_data)
+#define PRVN_NVM_CHUNK_SIZE (sizeof(NvmPerNode_t)) /* Number of bytes saved per Element */
+#define PRVN_NVM_SUBPAGE_SIZE (sizeof(NvmPerNode_t)) /* Number of bytes saved per Element */
+#define PRVN_NVM_MAX_SUBPAGE (unsigned int)(PRVN_NVM_PAGE_SIZE/PRVN_NVM_CHUNK_SIZE)
+#define PRVN_NVM_SUBPAGE_OFFSET(i) (unsigned int)(PRVN_NVM_SUBPAGE_SIZE*(i))
+
+#define APP_NVM_BASE ((unsigned int)appNvmBase)
+#define APP_NVM_SIZE 4096U
+
+/* Exported variables ------------------------------------------------------- */
+typedef struct
+{
+ MOBLEUINT8 devKey[4+DEVICE_KEY_SIZE];
+
+#if ENABLE_SAVE_UUID_PER_NODE
+ MOBLEUINT8 node_UUID[UUID_SIZE];
+#endif
+
+} NvmPerNode_t;
+
+/* Exported Functions Prototypes ---------------------------------------------*/
+MOBLE_RESULT AppliNvm_FlashProgram(MOBLEUINT32 offset, void const *buf, MOBLEUINT32 size);
+MOBLE_RESULT AppliNvm_FactorySettingReset(void);
+#if 0 //#ifdef ENABLE_NVM_TEST
+MOBLE_RESULT AppliNvm_FlashErase(uint16_t PageNumber);
+#endif
+MOBLE_RESULT AppliNvm_SaveModelState(uint8_t* state, uint16_t size);
+MOBLE_RESULT AppliNvm_ClearModelState(void);
+MOBLE_RESULT AppliNvm_LoadModelState(uint8_t state[], uint16_t* size);
+void AppliNvm_Process(void);
+void AppliNvm_SaveMessageParam (void);
+MOBLE_RESULT AppliNvm_FindFirstEmptyPage(MOBLEINT16* subPageIndex,
+ MOBLEUINT32 SubPageSize,
+ MOBLEUINT32 totalSubPage,
+ MOBLEUINT32 nvmBaseOffset);
+MOBLE_RESULT AppliPrvnNvm_LoadData(uint8_t state[], uint8_t* size);
+
+MOBLE_RESULT AppliPrvnNvm_SaveData(uint8_t* data,
+ MOBLE_ADDRESS address,
+ uint8_t* pUUID,
+ uint8_t numElements);
+
+MOBLEUINT32* AppliPrvnNvm_GetNodeDevKey(MOBLE_ADDRESS addrss);
+void AppliPrvnNvm_Process(void);
+
+MOBLE_RESULT AppliPrvnNvm_FactorySettingReset(MOBLEUINT8*flag);
+
+MOBLE_RESULT AppliPrvnNvm_CopyData(uint8_t state[], uint8_t* size);
+
+void AppliPrvnNvm_SaveProvisionerDevKey(MOBLEUINT8 *data ,
+ MOBLE_ADDRESS address,
+ MOBLEUINT8 *prvnFlag,
+ MOBLEUINT8 numOfElements);
+
+void AppliPrvnNvm_SaveKeys (MOBLEUINT8 status);
+
+MOBLE_RESULT AppliNVM_Save_FlashTesting(MOBLEUINT8 *buffer,
+ MOBLEUINT16 buffer_size);
+MOBLE_RESULT AppliNVM_Retrieve_FlashTesting(MOBLEUINT8 *buffer,
+ MOBLEUINT16 buffer_size);
+
+
+#endif /* __APPLI_NVM_H */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensor.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensor.c
new file mode 100644
index 000000000..5391c9517
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensor.c
@@ -0,0 +1,798 @@
+/**
+ ******************************************************************************
+ * @file appli_sensor.c
+ * @author BLE Mesh Team
+ * @brief Application interface for Sensor Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+
+#include "hal_common.h"
+#include "types.h"
+#include "sensor_cfg_usr.h"
+#include "sensors.h"
+#include "appli_sensor.h"
+#include "appli_light_lc.h"
+#include "mesh_cfg.h"
+//#include "LPS25HB.h"
+#include "string.h"
+#include "common.h"
+#include "math.h"
+
+//MESH_MODEL_SENSOR_APP_CODE Begin
+/* Add Sensor application files + LCD Driver for Disco Kit*/
+#include "app_stts22h.h"
+#include "app_vl53l0x.h"
+#include "stm32_lcd.h"
+#include "stm32wb5mm_dk_lcd.h"
+//MESH_MODEL_SENSOR_APP_CODE End
+
+/** @addtogroup ST_BLE_Mesh
+ * @{
+ */
+
+/** @addtogroup Application_Mesh_Models
+ * @{
+ */
+
+MOBLE_RESULT Appli_Sensor_ValueSet(MOBLEUINT8 sensorOffset,
+ MOBLEUINT32 value);
+
+/* Private variables ---------------------------------------------------------*/
+
+/* ALIGN(4) */
+__attribute__((aligned(4)))const sensor_server_init_params_t SensorServerInitParams = SENSOR_SERVER_INIT_PARAMS;
+
+/* ALIGN(4) */
+__attribute__((aligned(4)))const sensor_server_cb_t AppliSensor_cb =
+{
+ /* Sensor Model callbacks */
+ Appli_Sensor_CadenceGet,
+ Appli_Sensor_CadenceSet,
+ Appli_Sensor_CadenceSetUnack,
+ Appli_Sensor_SettingsGet,
+ Appli_Sensor_SettingGet,
+ Appli_Sensor_SettingSet,
+ Appli_Sensor_SettingSetUnack,
+ Appli_Sensor_DescriptorGet,
+ Appli_Sensor_Get,
+ Appli_Sensor_ColumnGet,
+ Appli_Sensor_SeriesGet,
+ Appli_Sensor_ReadDescriptor,
+ Appli_Sensor_ReadValue,
+ Appli_Sensor_ReadColumn,
+ Appli_Sensor_ReadSeries,
+ Appli_Sensor_IsFastCadence,
+ Appli_Sensor_IsStatusTrigger
+};
+
+#if 0
+/**
+ * @brief Pressure sensor init
+ */
+__attribute__((aligned(4)))const PRESSURE_InitTypeDef Lps25InitParams =
+{
+ LPS25HB_ODR_1Hz,
+ LPS25HB_BDU_READ,
+ LPS25HB_DIFF_ENABLE,
+ LPS25HB_SPI_SIM_3W,
+ LPS25HB_P_RES_AVG_32,
+ LPS25HB_T_RES_AVG_16
+};
+#endif
+
+/**
+ * @brief Variables for people
+ */
+MOBLEUINT8 AppliSensorReadFromSensor = 0; /* Used for PTS testing */
+MOBLEUINT8 PresentTemperatureValue = 0;
+MOBLEUINT8 PreviousTemperatureValue = 0;
+MOBLEUINT8 Occupancy_Flag = MOBLE_FALSE;
+extern MOBLEUINT8 NumberOfElements;
+extern MOBLEUINT8 ProvisionFlag;
+MOBLEUINT8 Sensor_Setting_Access = 0x01 ;
+MOBLEUINT32 PresentPeopleCount = 0;
+MOBLEUINT32 PreviousPeopleCount = 0;
+
+/* Private functions ---------------------------------------------------------*/
+
+/******************************************************************************/
+#ifdef ENABLE_SENSOR_MODEL_SERVER
+/******************************************************************************/
+
+
+/**
+ * @brief Callback corresponding to Sensor_CadenceGet_cb
+ * @param Cadence parameters
+* @retval None
+*/
+void Appli_Sensor_CadenceGet(sensor_CadenceCbParam_t* pCadenceParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SENSOR, "Property ID %X element index %X peer addr %X dst peer %X\r\n",
+ pCadenceParam->property_ID, elementIndex, peerAddr, dstPeer);
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_CadenceSet_cb
+ * @param Cadence parameters
+* @retval None
+*/
+void Appli_Sensor_CadenceSet(sensor_CadenceCbParam_t* pCadenceParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SENSOR, "Property ID %X element index %X peer addr %X dst peer %X\r\n",
+ pCadenceParam->property_ID, elementIndex, peerAddr, dstPeer);
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_CadenceSetUnack_cb
+ * @param Cadence parameters
+* @retval None
+*/
+void Appli_Sensor_CadenceSetUnack(sensor_CadenceCbParam_t* pCadenceParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SENSOR, "Property ID %X element index %X peer addr %X dst peer %X\r\n",
+ pCadenceParam->property_ID, elementIndex, peerAddr, dstPeer);
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_SettingsGet_cb
+ * @param Setting parameters
+* @retval None
+*/
+void Appli_Sensor_SettingsGet(sensor_SettingsCbParams_t* pSettingParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SENSOR, "Property ID %X element index %X peer addr %X dst peer %X\r\n",
+ pSettingParam->propertyId, elementIndex, peerAddr, dstPeer);
+}
+
+/**
+ * @brief Callback corresponding to Sensor_SettingGet_cb
+ * @param Setting parameters
+* @retval None
+ */
+void Appli_Sensor_SettingGet(sensor_SettingCbParams_t* pSettingParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SENSOR, "Property ID %X element index %X peer addr %X dst peer %X\r\n",
+ pSettingParam->property_ID, elementIndex, peerAddr, dstPeer);
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_SettingSet_cb
+ * @param Setting parameters
+* @retval None
+*/
+void Appli_Sensor_SettingSet(sensor_SettingCbParams_t* pSettingParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SENSOR, "Property ID %X element index %X peer addr %X dst peer %X\r\n",
+ pSettingParam->property_ID, elementIndex, peerAddr, dstPeer);
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_SettingSetUnack_cb
+ * @param Setting parameters
+* @retval None
+*/
+void Appli_Sensor_SettingSetUnack(sensor_SettingCbParams_t* pSettingParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SENSOR, "Property ID %X element index %X peer addr %X dst peer %X\r\n",
+ pSettingParam->property_ID, elementIndex, peerAddr, dstPeer);
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_DescriptorGet_cb
+ * @param Descriptor parameters
+* @retval None
+*/
+void Appli_Sensor_DescriptorGet(MOBLEUINT8 prop_ID,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ if(length == 0)
+ {
+ TRACE_M(TF_SENSOR, "Sensor Descriptor data for all sensors on element index %X peer addr %X, dst peer %X\r\n",
+ elementIndex, peerAddr, dstPeer);
+ }
+ else
+ {
+ TRACE_M(TF_SENSOR, "Property ID %X element index %X peer addr %X, dst peer %X\r\n",
+ prop_ID, elementIndex, peerAddr, dstPeer);
+ }
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_Get_cb
+ * @param Get parameters
+* @retval None
+*/
+void Appli_Sensor_Get(MOBLEUINT16 prop_ID,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ if(length == 0)
+ {
+ TRACE_M(TF_SENSOR, "Sensor Data for all sensors on element index %X peer addr %X dst peer %X\r\n",
+ elementIndex, peerAddr, dstPeer);
+ }
+ else
+ {
+ TRACE_M(TF_SENSOR, "Property ID %X element index %X peer addr %X dst peer %X \r\n",
+ prop_ID, elementIndex, peerAddr, dstPeer);
+ }
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_ColumnGet_cb
+ * @param Column parameters
+* @retval None
+*/
+void Appli_Sensor_ColumnGet(sensor_ColumnCbParams_t* pColumnParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SENSOR, "Property ID %X element index %X peer addr %X dst peer %X\r\n",
+ pColumnParam->propertyId, elementIndex, peerAddr, dstPeer);
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_SeriesGet_cb
+ * @param Series parameters
+* @retval None
+*/
+void Appli_Sensor_SeriesGet(sensor_SeriesCbParams_t* pSeriesParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ TRACE_M(TF_SENSOR, "Property ID %X Raw Value X1 %ld Raw Value X2 %ld\r\n",
+ pSeriesParam->propertyId,
+ pSeriesParam->rawValueX1,
+ pSeriesParam->rawValueX2);
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_ReadDescriptor_cb
+ * Update SENSORX descriptor identified by sensorOffset
+ * Read from application to optimize RAM
+ * @param Sensor offset in sensor init structure
+ * @param descriptor parameters
+ * @retval Fail if sensor doesn't exist or property ID mismatch occurs
+ * else Success
+ */
+MOBLE_RESULT Appli_Sensor_ReadDescriptor(MOBLEUINT8 sensorOffset,
+ sensor_DescriptorCbParams_t* pDescriptorParams)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ const sensor_init_params_t* pSensorInitParams = NULL;
+
+ if (sensorOffset < SensorServerInitParams.sensorsCount)
+ {
+ pSensorInitParams = &(SensorServerInitParams.sensorInitParams[sensorOffset]);
+
+ if (pSensorInitParams->propertyId != pDescriptorParams->propertyId)
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+ else
+ {
+ /* */
+ }
+ }
+ else
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+
+ if (pSensorInitParams != NULL &&
+ pDescriptorParams != NULL)
+ {
+ pDescriptorParams->positiveTolerance = pSensorInitParams->positiveTolerance;
+ pDescriptorParams->negativeTolerance = pSensorInitParams->negativeTolerance;
+ pDescriptorParams->samplingFunction = pSensorInitParams->samplingFunction;
+ pDescriptorParams->measurementPeriod = pSensorInitParams->measurementPeriod;
+ pDescriptorParams->updateInterval = pSensorInitParams->updateInterval;
+ }
+ else
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+
+ return result;
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_ReadValue_cb
+ * Read sensor value and update buffer
+ * data length <= 128
+ * PreviousTemperatureValue, PresentTemperatureValue to be updated
+ * every time sensor value is changed and call to Sensor_UpdateCadence
+ * @param Sensor offset in sensor init structure
+ * @param Value parameters
+ * @retval Fail if sensor doesn't exist
+ * else Success
+ */
+MOBLE_RESULT Appli_Sensor_ReadValue(MOBLEUINT8 sensorOffset,
+ sensor_ValueCbParams_t* pValueParams)
+{
+ //MESH_MODEL_SENSOR_APP_CODE Begin
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ char text[32];
+ float temp_val =0.0;
+// MOBLEUINT8 *temp_array;
+ uint16_t prox_value = 0;
+ MOBLEUINT8 distance = 0;
+
+ TRACE_M(TF_SENSOR_M, ">>> \r\n");
+ /* Identify the Sensor to read */
+ switch(SensorServerInitParams.sensorInitParams[sensorOffset].propertyId)
+ {
+ case PRESENT_AMBIENT_TEMPERATURE_PID:
+ {
+ STTS22H_getTemperatureValue(&temp_val);
+
+ pValueParams->data[0] = (MOBLEUINT8)round(temp_val*2);
+ sprintf(text,"T:%2.1f C",temp_val);
+ UTIL_LCD_DisplayStringAtLine(3,(uint8_t*)text);
+ BSP_LCD_Refresh(0);
+ }
+ break;
+
+ case TIME_OF_FLIGHT_PID:
+ {
+ prox_value = VL53L0X_PROXIMITY_GetDistance();
+
+ if(prox_value < 2000)
+ {
+ distance = (MOBLEUINT8) (prox_value / 10);
+ sprintf(text,"Distance : %3d cm",distance);
+ UTIL_LCD_DisplayStringAtLine(2,(uint8_t*)text);
+ }
+ else
+ {
+ distance = (MOBLEUINT8) 200;
+ sprintf(text, "Distance > 200 cm");
+ UTIL_LCD_DisplayStringAtLine(2,(uint8_t*)text);
+ }
+ BSP_LCD_Refresh(0);
+ pValueParams->data[0] = distance;
+ }
+ break;
+
+ /* Add other Sensor Property ID here */
+
+ default:
+ break;
+ }
+ return result;
+ //MESH_MODEL_SENSOR_APP_CODE End
+}
+
+#endif
+
+
+/**
+ * @brief Callback corresponding to Sensor_ReadColumn_cb
+ * Fill column width and raw valye Y in data buffer
+ * data length <= 8
+ * @param Sensor offset in sensor init structure
+ * @param Series column parameters
+ * @retval Fail if sensor doesn't exist
+ * else Success
+*/
+MOBLE_RESULT Appli_Sensor_ReadColumn(MOBLEUINT8 sensorOffset,
+ MOBLEUINT8 columnOffset,
+ sensor_ColumnCbParams_t* pColumnParams)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ const sensor_init_params_t* pSensorInitParams = NULL;
+ MOBLEUINT8 dataLength = 0;
+ MOBLEUINT8* data = pColumnParams->data;
+
+ if (sensorOffset < SensorServerInitParams.sensorsCount)
+ {
+ pSensorInitParams = &(SensorServerInitParams.sensorInitParams[sensorOffset]);
+
+ /* fill sensor column data */
+ memcpy(data+dataLength,
+ &(pSensorInitParams->seriesColumn[columnOffset].columnWidth),
+ pSensorInitParams->dataLength);
+ dataLength = pSensorInitParams->dataLength;
+
+ memset(data+dataLength, 0xAA, pSensorInitParams->dataLength);
+ dataLength += pSensorInitParams->dataLength;
+
+ pColumnParams->dataLength = dataLength;
+ }
+ else
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+
+ return result;
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_ReadSeries_cb
+ * Fill sensor series state for all columns between and including X1 and X2
+ * Series data to be concatenated in triplet of raw value X, column width and raw value Y
+ * X[n] CW[n] Y[n] X[n+1] CW[n+1] Y[n+1] ...
+ * data length should be less than minimum of 379 or max application packet length supported
+ * @param Sensor offset in sensor init structure
+ * @param Series parameters
+ * @retval Fail if sensor doesn't exist
+ * else Success
+ */
+MOBLE_RESULT Appli_Sensor_ReadSeries(MOBLEUINT8 sensorOffset,
+ sensor_SeriesCbParams_t* pSeriesParams)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ const sensor_init_params_t* pSensorInitParams = NULL;
+ MOBLEUINT16 dataLength = 0;
+ MOBLEUINT8* data = pSeriesParams->data;
+
+ if (sensorOffset < SensorServerInitParams.sensorsCount)
+ {
+ pSensorInitParams = &(SensorServerInitParams.sensorInitParams[sensorOffset]);
+
+ for (MOBLEUINT8 count=0; count<pSensorInitParams->seriesCount; count++)
+ {
+ /* fill sensor series data */
+ if (pSensorInitParams->seriesColumn[count].rawX >= pSeriesParams->rawValueX1 &&
+ pSensorInitParams->seriesColumn[count].rawX <= pSeriesParams->rawValueX2)
+ {
+ memcpy(data+dataLength,
+ &(pSensorInitParams->seriesColumn[count].rawX),
+ pSensorInitParams->dataLength);
+ dataLength += pSensorInitParams->dataLength;
+ memcpy(data+dataLength,
+ &(pSensorInitParams->seriesColumn[count].columnWidth),
+ pSensorInitParams->dataLength);
+ dataLength += pSensorInitParams->dataLength;
+ memset(data+dataLength, 0xAA, pSensorInitParams->dataLength);
+ dataLength += pSensorInitParams->dataLength;
+
+ pSeriesParams->dataLength = dataLength;
+ }
+ else
+ {
+ /* */
+ }
+ }
+ }
+ else
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+
+ return result;
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_IsFastCadence_cb
+ * To check if fast cadence to be used for current sensor state
+ * @param Sensor offset in sensor init structure
+ * @param Fast Cadence Low
+ * @param Fast Cadence High
+ * @retval Trigger status
+ */
+MOBLEUINT8 Appli_Sensor_IsFastCadence(MOBLEUINT8 sensorOffset,
+ void* pFastCadenceLow,
+ void* pFastCadenceHigh)
+{
+ MOBLEUINT8 fastCadenceStatus = 0;
+ MOBLEUINT32 fastCadenceLow = *((MOBLEUINT32*)pFastCadenceLow);
+ MOBLEUINT32 fastCadenceHigh = *((MOBLEUINT32*)pFastCadenceHigh);
+ MOBLEUINT32 sensorValue = PresentTemperatureValue;
+
+ if (sensorOffset == 0)
+ {
+ if (fastCadenceLow <= fastCadenceHigh)
+ {
+ fastCadenceStatus = sensorValue >= fastCadenceLow &&
+ sensorValue <= fastCadenceHigh;
+ }
+ else
+ {
+ fastCadenceStatus = sensorValue > fastCadenceLow ||
+ sensorValue < fastCadenceHigh;
+ }
+}
+ else
+ {
+ /* Implemented only for sensor at offset 0 */
+ }
+
+ return fastCadenceStatus;
+}
+
+
+/**
+ * @brief Callback corresponding to Sensor_IsStatusTrigger_cb
+ * To check if sensor change in sensor state (delta) is more than
+ * given trigger state value
+ * delta up values
+ * @param Sensor offset in sensor init structure
+ * @param Trigger type -> value or percent change
+ * @param Status trigger delta down
+ * @param Status trigger delta up
+ * @retval Trigger status
+*/
+MOBLEUINT8 Appli_Sensor_IsStatusTrigger(MOBLEUINT8 sensorOffset,
+ status_trigger_type_e triggerType,
+ void* pDeltaDown,
+ void* pDeltaUp)
+{
+ const sensor_init_params_t* pSensorInitParams = NULL;
+ MOBLEUINT8 triggerStatus = 0;
+ MOBLEUINT32 deltaDown = *((MOBLEUINT32*)pDeltaDown);
+ MOBLEUINT32 deltaUp = *((MOBLEUINT32*)pDeltaUp);
+ status_trigger_delta_e statusTriggerDelta;
+ MOBLEUINT32 delta;
+
+ if (sensorOffset == 0)
+ {
+ if (PresentTemperatureValue < PreviousTemperatureValue)
+ {
+ /* status trigger delta down */
+ statusTriggerDelta = STATUS_TRIGGER_DELTA_DOWN;
+ delta = PreviousTemperatureValue - PresentTemperatureValue;
+
+ TRACE_M(TF_SENSOR, "Delta down value %ld\r\n", delta);
+ }
+ else
+ {
+ /* status trigger delta up */
+ statusTriggerDelta = STATUS_TRIGGER_DELTA_UP;
+ delta = PresentTemperatureValue - PreviousTemperatureValue;
+
+ TRACE_M(TF_SENSOR, "Delta up value %ld\r\n", delta);
+ }
+
+ if (triggerType == STATUS_TRIGGER_TYPE_PC)
+ {
+ pSensorInitParams = &(SensorServerInitParams.sensorInitParams[sensorOffset]);
+
+ if (pSensorInitParams->valuesRange != 0)
+ {
+ /* change delta to percentage change (of 0.01 % steps) */
+ delta = (MOBLEUINT32)((delta*10000)/pSensorInitParams->valuesRange);
+ }
+ else
+ {
+ triggerStatus = 0;
+ }
+ }
+
+ if ((statusTriggerDelta == STATUS_TRIGGER_DELTA_DOWN && delta >= deltaDown) ||
+ (statusTriggerDelta == STATUS_TRIGGER_DELTA_UP && delta >= deltaUp))
+ {
+ triggerStatus = 1;
+ }
+ else
+ {
+ triggerStatus = 0;
+ }
+ }
+
+ return triggerStatus;
+}
+
+
+/**
+* @brief Initialize hardware interfaces for sensors and mesh sensor model structures
+* Sensor init parameters to be defined in sensor_cfg_usr.h
+* Sensors are initialized in the order as defined in sensor_cfg_usr.h
+ * LPS25HB supports pressure and temperature sensor
+* @param void
+ * @retval
+ */
+MOBLE_RESULT Appli_Sensor_Init(void)
+ {
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+
+ //MESH_MODEL_SENSOR_APP_CODE Begin
+ /* Sensor Initialization */
+ TRACE_M(TF_SENSOR, "VL53L0X init\r\n");
+ VL53L0X_PROXIMITY_Init();
+ TRACE_M(TF_SENSOR, "STTS22H init\r\n");
+ STTS22H_Init_Sensor();
+
+ /* Start measure of the distance */
+ VL53L0X_Start_Measure();
+ /* Start measure of the temperature */
+ STTS22H_Start_Measure();
+ //MESH_MODEL_SENSOR_APP_CODE End
+
+ /* initialize sensor server model */
+ result = SensorServer_Init(&BufferSensorServer,
+ &AppliSensor_cb,
+ TOTAL_SENSOR_SERVER_BUFF_SIZE,
+ &SensorServerInitParams);
+
+ if(MOBLE_FAILED(result))
+ {
+ TRACE_M(TF_SENSOR, "Sensor Server init failed\r\n");
+ }
+
+ return result;
+ }
+
+
+/**
+ * @brief Handling of serial inputs to sensor model
+ * @param Sensor offset in sensor init structure
+ * @param Sensor value
+ * @retval void
+ */
+MOBLE_RESULT Appli_Sensor_Update(MOBLEUINT8 sensorOffset, MOBLEUINT32 value)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+
+ AppliSensorReadFromSensor = 1;
+
+ /* Update previous with current and current with new */
+ PreviousTemperatureValue = PresentTemperatureValue;
+ PresentTemperatureValue = (MOBLEUINT8)value;
+
+ /* To update cadence parameters
+ results in either status trigger or (and) fast cadence based on change and present
+ Application may decide not to update cadence parameters if senosr value is changing
+ very frequently in some cases to save bandwidth */
+ if (PresentTemperatureValue != PreviousTemperatureValue)
+ {
+ result = Sensor_UpdateCadence(sensorOffset,
+ SensorServerInitParams.sensorInitParams[0].elementIdx,
+ SensorServerInitParams.sensorInitParams[0].propertyId);
+ }
+
+ return result;
+}
+
+
+/**
+ * @brief Handling of serial inputs to sensor model
+ * Appli_Sensor_SerialCmd can be used for testing periodic publishing and
+ * triggered publishing with PTS
+ * @param serial string
+ * @param serial string size
+ * @retval void
+ */
+void Appli_Sensor_SerialCmd(char *rcvdStringBuff, uint16_t rcvdStringSize)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_INVALIDARG;
+ MOBLEUINT16 value = 0;
+ MOBLEUINT8 sensorOffset = 0;
+
+ if (!strncmp(rcvdStringBuff+6, "SETV", 4))
+ {
+ if (rcvdStringSize == 15)
+ {
+ sscanf(rcvdStringBuff+11, "%4hx", &value);
+
+ /* Set SENSOR1 value at offset 0 */
+ result = Appli_Sensor_Update(sensorOffset, value);
+ }
+ else
+ {
+ result = MOBLE_RESULT_FAIL;
+ BLEMesh_PrintStringCb("Invalid size of string\r\n");
+ }
+ }
+ else if (!strncmp(rcvdStringBuff+6, "PUBLISH", 7))
+ {
+ if (rcvdStringSize == 17)
+ {
+ sscanf(rcvdStringBuff+14, "%1hx", &value);
+
+ sensorOffset = value;
+
+ sscanf(rcvdStringBuff+16, "%1hx", &value);
+
+ /* Enable / Disable publishing of sensor as identified by sensor offset */
+ if(value == 0) /* Disable */
+ {
+ result = Sensor_UpdatePublishState(sensorOffset, 0);
+ }
+ else /* Enable */
+ {
+ result = Sensor_UpdatePublishState(sensorOffset, 1);
+ }
+ }
+ else
+ {
+ result = MOBLE_RESULT_FAIL;
+ BLEMesh_PrintStringCb("Invalid size of string\r\n");
+ }
+ }
+ else
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+
+ /* Check the result of command processing */
+ if(result == MOBLE_RESULT_SUCCESS)
+ {
+ BLEMesh_PrintStringCb("Success\r\n");
+ }
+ else if(result == MOBLE_RESULT_OUTOFMEMORY)
+ {
+ BLEMesh_PrintStringCb("Fail Out of memory\r\n");
+ }
+ else if(result == MOBLE_RESULT_INVALIDARG)
+ {
+ BLEMesh_PrintStringCb("Fail Invalid Argument\r\n");
+ }
+ else
+ {
+ BLEMesh_PrintStringCb("Fail\r\n");
+ }
+}
+
+
+/**
+ * @}
+ */
+
+/**
+ * @}
+ */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensor.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensor.h
new file mode 100644
index 000000000..e45f3d83b
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensor.h
@@ -0,0 +1,109 @@
+/**
+ ******************************************************************************
+ * @file appli_sensor.h
+ * @author BLE Mesh Team
+ * @brief Application interface for Light Mesh Model
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APPLI_SENSOR_H
+#define __APPLI_SENSOR_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+#include "sensors.h"
+#include "mesh_cfg.h"
+
+/* Exported functions ------------------------------------------------------- */
+void Appli_Sensor_CadenceGet(sensor_CadenceCbParam_t* pDescriptorParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_CadenceSet(sensor_CadenceCbParam_t* pDescriptorParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_CadenceSetUnack(sensor_CadenceCbParam_t* pDescriptorParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_SettingsGet(sensor_SettingsCbParams_t* pDescriptorParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_SettingGet(sensor_SettingCbParams_t* pSettingParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_SettingSet(sensor_SettingCbParams_t* pSettingParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_SettingSetUnack(sensor_SettingCbParams_t* pSettingParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_DescriptorGet(MOBLEUINT8 pDescriptorParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_Get (MOBLEUINT16 prop_ID,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_ColumnGet(sensor_ColumnCbParams_t* pDescriptorParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_SeriesGet(sensor_SeriesCbParams_t* pDescriptorParam,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS peerAddr,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+MOBLE_RESULT Appli_Sensor_ReadDescriptor(MOBLEUINT8 sensorOffset,
+ sensor_DescriptorCbParams_t* pDescriptorParams);
+MOBLE_RESULT Appli_Sensor_ReadValue(MOBLEUINT8 sensorOffset,
+ sensor_ValueCbParams_t* pValueParams);
+MOBLE_RESULT Appli_Sensor_ReadColumn(MOBLEUINT8 sensorOffset,
+ MOBLEUINT8 columnOffset,
+ sensor_ColumnCbParams_t* pColumnParams);
+MOBLE_RESULT Appli_Sensor_ReadSeries(MOBLEUINT8 sensorOffset,
+ sensor_SeriesCbParams_t* pSeriesParams);
+MOBLEUINT8 Appli_Sensor_IsFastCadence(MOBLEUINT8 sensorOffset,
+ void* pFastCadenceLow,
+ void* pFastCadenceHigh);
+MOBLEUINT8 Appli_Sensor_IsStatusTrigger(MOBLEUINT8 sensorOffset,
+ status_trigger_type_e triggerType,
+ void* pDeltaDown,
+ void* pDeltaUp);
+MOBLE_RESULT Appli_Sensor_Init(void);
+MOBLE_RESULT Appli_Sensor_Update(MOBLEUINT8 sensorOffset, MOBLEUINT32 value);
+
+MOBLE_RESULT Appli_Sensor_Update(MOBLEUINT8 sensorOffset,
+ MOBLEUINT32 value);
+void Appli_Sensor_SerialCmd(char *rcvdStringBuff,
+ uint16_t rcvdStringSize);
+#endif /* __APPLI_SENSOR_H */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensors_client.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensors_client.c
new file mode 100644
index 000000000..aa69240d2
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensors_client.c
@@ -0,0 +1,359 @@
+/**
+ ******************************************************************************
+* @file appli_sensors_client.c
+* @author BLE Mesh Team
+* @brief Application interface for Generic Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "hal_common.h"
+#include "types.h"
+#include "appli_sensor.h"
+#include "appli_light.h"
+#include "common.h"
+#include "mesh_cfg_usr.h"
+#include "appli_nvm.h"
+#include "appli_mesh.h"
+#include "sensors_client.h"
+#include "appli_sensors_client.h"
+#include "appli_light_lc.h"
+
+/** @addtogroup ST_BLE_Mesh
+* @{
+*/
+
+/** @addtogroup Application_Mesh_Models
+* @{
+*/
+
+/* Private typedef -----------------------------------------------------------*/
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+/* Private function prototypes -----------------------------------------------*/
+
+
+/* Private functions ---------------------------------------------------------*/
+/**
+* @brief Appli_SensorsClient_API: This function is a Wrapper to call Sensors Client API depending on opcode received in input
+* @param elementIndex: Index of the element
+* @param msg_opcode: opcode of the desired API
+* @param msg_params: buffer containing the desired API parameters
+* @retval MOBLE_RESULT
+*/
+MOBLE_RESULT Appli_SensorsClient_API(MOBLEUINT8 elementIndex, MOBLEUINT16 msg_opcode, MOBLEUINT8 *msg_params)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_FAIL;
+ switch(msg_opcode){
+/******************************************************************************/
+#ifdef ENABLE_SENSOR_MODEL_CLIENT
+/******************************************************************************/
+ case SENSOR_DESCRIPTOR_GET:
+ {
+ result = SensorsClient_Descriptor_Get(elementIndex, msg_params);
+ break;
+ }
+ case SENSOR_CADENCE_GET:
+ {
+ result = SensorsClient_Cadence_Get(elementIndex, msg_params);
+ break;
+ }
+ case SENSOR_CADENCE_SET:
+ {
+ result = SensorsClient_Cadence_Set(elementIndex,
+ msg_params,
+ 10); //(sizeof(sensor_CadenceCbParam_t)-3));
+ break;
+ }
+ case SENSOR_CADENCE_SET_UNACK:
+ {
+ result = SensorsClient_Cadence_Set_Unack(elementIndex,
+ msg_params,
+ 10); //(sizeof(sensor_CadenceCbParam_t)-3));
+ break;
+ }
+ case SENSOR_SETTINGS_GET:
+ {
+ result = SensorsClient_Settings_Get(elementIndex, msg_params);
+ break;
+ }
+
+ case SENSOR_SETTING_GET:
+ {
+ result = SensorsClient_Setting_Get(elementIndex, msg_params, sizeof(sensor_SettingsCbParams_t));
+ break;
+ }
+ case SENSOR_SETTING_SET:
+ {
+
+ result = SensorsClient_Setting_Set(elementIndex,
+ msg_params,
+ 6);
+ break;
+ }
+ case SENSOR_SETTING_SET_UNACK:
+ {
+
+ result = SensorsClient_Setting_Set_Unack(elementIndex,
+ msg_params,
+ 6);
+ break;
+ }
+ case SENSOR_GET:
+ {
+ result = SensorsClient_Get(elementIndex, msg_params);
+ break;
+ }
+ case SENSOR_COLUMN_GET:
+ {
+ result = SensorsClient_Column_Get(elementIndex, msg_params, 4);
+ break;
+ }
+ case SENSOR_SERIES_GET:
+ {
+ result = SensorsClient_Series_Get(elementIndex, msg_params, 4);
+ break;
+ }
+/******************************************************************************/
+#endif /* #ifdef ENABLE_SENSOR_MODEL_CLIENT */
+/******************************************************************************/
+
+
+ default:
+ {
+ TRACE_M(TF_SENSOR, "OpCode value invalid %d \r\n", msg_opcode);
+ result = MOBLE_RESULT_FAIL;
+ }
+ }
+ return result;
+}
+
+/**
+ * @brief Callback corresponding to Appli_Sensor_Cadence_Status
+ * @param Descriptor parameters
+ * @param
+* @retval None
+*/
+void Appli_Sensor_Cadence_Status(const MOBLEUINT8 *pCadence,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ MOBLEUINT8 i;
+
+ TRACE_M(TF_SENSOR,"Appli_Sensor_Cadence_Status callback received \r\n");
+
+ TRACE_M(TF_SERIAL_CTRL,"#%d! for element %d \r\n",
+ SENSOR_CADENCE_STATUS,
+ elementIndex);
+ for(i = 0; i < length; i++)
+ {
+ TRACE_M(TF_SERIAL_CTRL,"Cadence value: %d\n\r", pCadence[i]);
+ }
+}
+
+
+/**
+ * @brief Callback corresponding to Appli_Sensor_Settings_Status
+ * @param Descriptor parameters
+ * @param
+* @retval None
+*/
+void Appli_Sensor_Settings_Status(const MOBLEUINT8 *pSettings,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ MOBLEUINT8 i;
+
+ TRACE_M(TF_SENSOR,"Appli_Sensor_Settings_Status callback received \r\n");
+
+ TRACE_M(TF_SERIAL_CTRL,"#%d! for element %d \r\n",
+ SENSOR_SETTINGS_STATUS,
+ elementIndex);
+ for(i = 0; i < length; i++)
+ {
+ TRACE_M(TF_SERIAL_CTRL,"Settings value: %d\n\r", pSettings[i]);
+ }
+}
+
+
+/**
+ * @brief Callback corresponding to Appli_Sensor_Setting_Status
+ * @param Descriptor parameters
+ * @param
+* @retval None
+*/
+void Appli_Sensor_Setting_Status(const MOBLEUINT8 *pSetting,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ MOBLEUINT8 i;
+
+ TRACE_M(TF_SENSOR,"Appli_Sensor_Setting_Status callback received \r\n");
+
+ TRACE_M(TF_SERIAL_CTRL,"#%d! for element %d \r\n",
+ SENSOR_SETTING_STATUS,
+ elementIndex);
+ for(i = 0; i < length; i++)
+ {
+ TRACE_M(TF_SERIAL_CTRL,"Setting value: %d\n\r", pSetting[i]);
+ }
+}
+
+
+/**
+ * @brief Callback corresponding to Appli_Sensor_Descriptor_Status
+ * @param Descriptor parameters
+ * @param
+* @retval None
+*/
+void Appli_Sensor_Descriptor_Status(const MOBLEUINT8 *pDescriptor,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ MOBLEUINT8 i;
+
+ TRACE_M(TF_SENSOR,"Appli_Sensor_Descriptor_Status callback received \r\n");
+
+ TRACE_M(TF_SERIAL_CTRL,"#%d! for element %d \r\n",
+ SENSOR_DESCRIPTOR_STATUS,
+ elementIndex);
+ for(i = 0; i < length; i++)
+ {
+ TRACE_M(TF_SERIAL_CTRL,"Descriptor value: %d\n\r", pDescriptor[i]);
+ }
+}
+
+
+/**
+ * @brief Callback corresponding to Appli_Sensor_Status
+ * @param Descriptor parameters
+ * @param
+* @retval None
+*/
+void Appli_Sensor_Status(const MOBLEUINT8 *pStatus,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ //MESH_MODEL_SENSOR_APP_CODE Begin
+// MOBLEUINT8 i;
+ MOBLEUINT8 sensorStatusFormat=0xFF;
+ MOBLEUINT32 receivedLenght=0;
+ MOBLEUINT16 receivedPID=0;
+
+ TRACE_M(TF_SENSOR,"Appli_Sensor_Status callback received \r\n");
+
+ TRACE_M(TF_SERIAL_CTRL,"#%d! for element %d \r\n",
+ SENSOR_STATUS,
+ elementIndex);
+
+ /* Decode Data Marshalling Buffer */
+ if((pStatus[0] & 0x01) == 0x01){
+ sensorStatusFormat=0x01;
+ receivedLenght=(MOBLEUINT32)(((pStatus[0] & 0xFE)>>1) + 1);
+ receivedPID=(MOBLEUINT16)((pStatus[2] << 8)|(pStatus[1]));
+ }
+ else{
+ sensorStatusFormat=0x00;
+ receivedLenght=(MOBLEUINT32)(((pStatus[0] & 0x1E)>>1)+1);
+ receivedPID=(MOBLEUINT16)(((pStatus[0] & 0xE0) >> 5)|(pStatus[1] << 3));
+ }
+
+ TRACE_M(TF_SERIAL_CTRL,"Format: %d, Data Lenght: %lu, PID : 0x%04x\n\r", sensorStatusFormat, receivedLenght, receivedPID);
+
+ /*Display Data Buffer received */
+// for(i = 0; i < receivedLenght; i++){
+// TRACE_M(TF_SERIAL_CTRL,"Data[%d] = %d\n\r", i, pStatus[2 + sensorStatusFormat + i]);
+// }
+
+ /* Data management depending on sensor PID */
+ switch(receivedPID){
+ case PRESENT_AMBIENT_TEMPERATURE_PID:
+ TRACE_M(TF_SERIAL_CTRL,"Temperature = %d degrees \n\r", (pStatus[2]/2));
+ break;
+ case TIME_OF_FLIGHT_PID:
+ TRACE_M(TF_SERIAL_CTRL,"Distance = %d cm \n\r", ((pStatus[4]<<8)|(pStatus[3])));
+ break;
+ /* Add Sensor PID here */
+ default:
+ break;
+ }
+
+ //MESH_MODEL_SENSOR_APP_CODE End
+}
+
+
+/**
+ * @brief Callback corresponding to Appli_Sensor_Column_Status
+ * @param Descriptor parameters
+ * @param
+* @retval None
+*/
+void Appli_Sensor_Column_Status(const MOBLEUINT8 *pColumn,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ MOBLEUINT8 i;
+
+ TRACE_M(TF_SENSOR,"Appli_Sensor_Column_Status callback received \r\n");
+
+ TRACE_M(TF_SERIAL_CTRL,"#%d! for element %d \r\n",
+ SENSOR_COLUMN_STATUS,
+ elementIndex);
+ for(i = 0; i < length; i++)
+ {
+ TRACE_M(TF_SERIAL_CTRL,"Column Status value: %d\n\r", pColumn[i]);
+ }
+}
+
+
+/**
+ * @brief Callback corresponding to Appli_Sensor_Series_Status
+ * @param Descriptor parameters
+ * @param
+* @retval None
+*/
+void Appli_Sensor_Series_Status(const MOBLEUINT8 *pSeries,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex)
+{
+ MOBLEUINT8 i;
+
+ TRACE_M(TF_SENSOR,"Appli_Sensor_Series_Status callback received \r\n");
+
+ TRACE_M(TF_SERIAL_CTRL,"#%d! for element %d \r\n",
+ SENSOR_SERIES_STATUS,
+ elementIndex);
+ for(i = 0; i < length; i++)
+ {
+ TRACE_M(TF_SERIAL_CTRL,"Series Status value: %d\n\r", pSeries[i]);
+ }
+}
+
+
+/**
+* @}
+*/
+
+/**
+* @}
+*/
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensors_client.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensors_client.h
new file mode 100644
index 000000000..350bc4cdf
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_sensors_client.h
@@ -0,0 +1,70 @@
+/**
+ ******************************************************************************
+* @file appli_sensor_client.h
+* @author BLE Mesh Team
+* @brief Application interface for Sensor Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APPLI_SENSOR_CLIENT_H
+#define __APPLI_SENSOR_CLIENT_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+#include "sensors.h"
+#include "mesh_cfg.h"
+
+
+/* Exported macro ------------------------------------------------------------*/
+/* Exported variables ------------------------------------------------------- */
+/* Application Variable-------------------------------------------------------*/
+/* Exported Functions Prototypes ---------------------------------------------*/
+MOBLE_RESULT Appli_ConfigClient_Set(void);
+MOBLE_RESULT Appli_SensorsClient_API(MOBLEUINT8 elementIndex,
+ MOBLEUINT16 msg_opcode,
+ MOBLEUINT8 *msg_params);
+void Appli_Sensor_Descriptor_Status(const MOBLEUINT8 *pDescriptor,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_Cadence_Status(const MOBLEUINT8 *pCadence,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_Settings_Status(const MOBLEUINT8 *pSettings,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_Setting_Status(const MOBLEUINT8 *pSetting,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_Status(const MOBLEUINT8 *pStatus,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_Column_Status(const MOBLEUINT8 *pColumn,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+void Appli_Sensor_Series_Status(const MOBLEUINT8 *pSeries,
+ MOBLEUINT32 length,
+ MOBLE_ADDRESS dstPeer,
+ MOBLEUINT8 elementIndex);
+
+
+
+
+#endif /* __APPLI_SENSOR_CLIENT_H */
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_vendor.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_vendor.c
new file mode 100644
index 000000000..1c167cdf3
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_vendor.c
@@ -0,0 +1,600 @@
+/**
+ ******************************************************************************
+ * @file appli_vendor.c
+ * @author BLE Mesh Team
+ * @brief Application interface for Vendor Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* Includes ------------------------------------------------------------------*/
+#include "app_conf.h"
+#include "hal_common.h"
+#include "types.h"
+#include "ble_mesh.h"
+#include "appli_mesh.h"
+#include "vendor.h"
+#include "appli_vendor.h"
+#include "common.h"
+#include "appli_light.h"
+#include "models_if.h"
+#include "mesh_cfg.h"
+#include <string.h>
+
+/** @addtogroup ST_BLE_Mesh
+* @{
+*/
+
+/** @addtogroup Application_Mesh_Models
+* @{
+*/
+
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+typedef struct
+{
+ MOBLE_ADDRESS dst;
+ MOBLEUINT8 data[VENDOR_DATA_BUFFER_SIZE];
+ MOBLEUINT32 length;
+ MOBLEUINT8 elementIndex;
+} APPLI_SEND_BIG_DATA_PACKET;
+
+/* Private variables ---------------------------------------------------------*/
+aPwmLedGsData_TypeDef aPwmLedGsData_vendor;
+
+MOBLEUINT8 ResponseBuffer[VENDOR_DATA_BUFFER_SIZE];
+MOBLEUINT16 BuffLength;
+APPLI_SEND_BIG_DATA_PACKET Appli_VendorBigData;
+
+/*Variable to enable OTA for received vendor command*/
+extern MOBLEUINT8 Appli_LedState;
+extern uint16_t DUTY;
+extern MOBLEUINT8 NumberOfElements;
+MOBLEUINT32 TestHitCounter = 0;
+extern Appli_LightPwmValue_t Appli_LightPwmValue[APPLICATION_NUMBER_OF_ELEMENTS];
+
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+/**
+* @brief Process the Vendor Device Info Command
+* @param data: Pointer to the data received from peer_addr
+* @param length: Length of the data
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_Vendor_DeviceInfo(MOBLEUINT8 const *data, MOBLEUINT32 length)
+{
+ MOBLEUINT8 tempBuffer[10];
+ MOBLE_RESULT status = MOBLE_RESULT_SUCCESS;
+
+ MOBLEUINT8 subCmd = data[0];
+ char *libVersion;
+ char *subLibVersion;
+ MOBLEUINT8 inc = 0;
+ /*First Byte is sending the Sub Command*/
+ ResponseBuffer[0] = subCmd;
+ TRACE_M(TF_VENDOR,"#02-%02hx! \n\r",data[0]);
+
+ switch(subCmd)
+ {
+ case IC_TYPE:
+ {
+#ifdef BLUENRG1_DEVICE
+ ResponseBuffer[1] = BLUENRG1_BRD;
+#endif
+
+#ifdef BLUENRG2_DEVICE
+ ResponseBuffer[1] = BLUENRG2_BRD;
+#endif
+
+#ifdef BLUENRG_MS
+ ResponseBuffer[1] = BLUENRG_MS_BRD;
+#endif
+
+#ifdef STM32WB55xx
+ ResponseBuffer[1] = STM32WB55XX_BRD;
+#endif
+
+ BuffLength = 2;
+ break;
+ }
+ case LIB_VER:
+ {
+ libVersion = BLEMesh_GetLibraryVersion();
+ while(*libVersion != '\0')
+ {
+ tempBuffer[inc] = *libVersion;
+ if(tempBuffer[inc] != 0x2E)
+ {
+ tempBuffer[inc] = BLEMesh_ModelsASCII_To_Char(tempBuffer[inc]);
+ TRACE_M(TF_VENDOR,"Lib version is %x\n\r" ,(unsigned char)tempBuffer[inc]);
+ }
+ else
+ {
+ TRACE_M(TF_VENDOR,"Lib version is %c\n\r" ,(unsigned char)tempBuffer[inc]);
+ }
+ libVersion++;
+
+ inc++;
+ }
+ ResponseBuffer[1]= tempBuffer[0];
+ ResponseBuffer[2]= tempBuffer[1];
+ ResponseBuffer[3]= tempBuffer[3];
+ ResponseBuffer[4]= tempBuffer[4];
+ ResponseBuffer[5]= tempBuffer[6];
+ ResponseBuffer[6]= tempBuffer[7];
+ ResponseBuffer[7]= tempBuffer[8];
+ BuffLength = 8;
+ break;
+ }
+ case LIB_SUB_VER:
+ {
+ subLibVersion = BLEMesh_GetLibrarySubVersion();
+ while(*subLibVersion != '\0')
+ {
+ tempBuffer[inc] = * subLibVersion;
+ if((tempBuffer[inc] != 0x2E) && (tempBuffer[inc] != 0x52))
+ {
+ tempBuffer[inc] = BLEMesh_ModelsASCII_To_Char(tempBuffer[inc]);
+ TRACE_M(TF_VENDOR,"Sub Lib version is %x\n\r" ,(unsigned char)tempBuffer[inc]);
+ }
+ else
+ {
+ TRACE_M(TF_VENDOR,"Sub Lib version is %c\n\r" ,(unsigned char)tempBuffer[inc]);
+ }
+ subLibVersion++;
+ inc++;
+ }
+ ResponseBuffer[1]= tempBuffer[0];
+ ResponseBuffer[2]= tempBuffer[1];
+ ResponseBuffer[3]= tempBuffer[3];
+ ResponseBuffer[4]= tempBuffer[5];
+ ResponseBuffer[5]= tempBuffer[7];
+ ResponseBuffer[6]= tempBuffer[9];
+
+ BuffLength = 7;
+
+ break;
+ }
+ case APPLICATION_VER:
+ {
+ /*Insert Command to check Application Version*/
+ break;
+ }
+
+ default:
+ {
+ status = MOBLE_RESULT_FALSE;
+ break;
+ }
+
+ }
+
+ return status;
+}
+
+
+/**
+* @brief Process the Vendor Test Command
+* @param data: Pointer to the data received from peer_addr
+* @param length: Length of the data
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_Vendor_Test(MOBLEUINT8 const *data, MOBLEUINT32 length)
+{
+ MOBLE_RESULT status = MOBLE_RESULT_SUCCESS;
+ MOBLEUINT8 subCmd = data[0];
+ /*First Byte is sending the Sub Command*/
+ ResponseBuffer[0]=subCmd;
+ TRACE_M(TF_VENDOR,"#01-%02hx! \n\r",data[0]);
+ switch(subCmd)
+ {
+ case APPLI_TEST_ECHO:
+ {
+ if(length > sizeof(ResponseBuffer))
+ {
+ length = sizeof(ResponseBuffer);
+ TRACE_M(TF_VENDOR,"Length received greater than size of response buffer \r\n");
+ }
+ memcpy (&(ResponseBuffer[1]),&(data[1]),(length-1));
+ BuffLength = length;
+ break;
+ }
+ case APPLI_TEST_RANDOMIZATION_RANGE:
+ {
+ /*Insert Test related Commands here*/
+ break;
+ }
+ case APPLI_TEST_COUNTER:
+ {
+ TRACE_M(TF_VENDOR,"Test Counter is running \r\n");
+ ResponseBuffer[0] = subCmd;
+ ResponseBuffer[1] = Appli_LedState ;
+ BuffLength = 2;
+ /*Insert Test related Commands here*/
+ break;
+ }
+ case APPLI_TEST_INC_COUNTER:
+ {
+ TestHitCounter++;
+ TRACE_M(TF_VENDOR,"Command received Count %.2lx \r\n",TestHitCounter);
+ ResponseBuffer[0] = subCmd;
+ ResponseBuffer[1] = Appli_LedState ;
+ BuffLength = 2;
+ /*Insert Test related Commands here*/
+ break;
+ }
+ case APPLI_MODEL_PUBLISH_SELECT:
+ {
+ for (MOBLEUINT8 idx=0; idx<length; idx++)
+ {
+ TRACE_I(TF_VENDOR,"data[%d]= %d",idx,data[idx]);
+ TRACE_I(TF_VENDOR,"\n\r");
+ }
+ break;
+ }
+
+ default:
+ {
+ status = MOBLE_RESULT_FALSE;
+ break;
+ }
+ }
+
+ return status;
+}
+
+
+/**
+* @brief Process the Vendor LED Control Command
+* @param data: Pointer to the data received from peer_addr
+* @param length: Length of the data
+* @param elementIndex : selected element where '0' is first element
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_Vendor_LEDControl( MOBLEUINT8 const *data, MOBLEUINT32 length,
+ MOBLEUINT8 elementIndex , MOBLE_ADDRESS dst_peer)
+{
+ MOBLE_RESULT status = MOBLE_RESULT_SUCCESS;
+ MOBLEUINT8 subCommand;
+ subCommand = data[0];
+ MOBLEUINT16 duty;
+ MOBLEUINT16 intensityValue = 0;
+
+ TRACE_M(TF_VENDOR,"#03-%02hx!\n\r",data[0]);
+ switch(subCommand)
+ {
+ /*
+ Message Received B0 B1 B2 B3 B4 B5 B6 B7
+ B0 - Sub-Cmd LED
+ B1-B7 - Data Bytes
+ */
+ case APPLI_CMD_LED_BULB:
+ {
+ /*User Need to write the commands as per the element selected*/
+
+ TRACE_M(TF_VENDOR,"Appli_LED_Control callback received for elementIndex %d \r\n", elementIndex);
+ Appli_LedState = *(data+1); /* Toggle the state of the Blue LED */
+ if( Appli_LedState == 1)
+ {
+ aPwmLedGsData_vendor[PWM_LED_BLUE] = PWM_LED_GSDATA_99_9 ;
+ aPwmLedGsData_vendor[PWM_LED_GREEN] = PWM_LED_GSDATA_OFF;
+
+ LED_On(aPwmLedGsData_vendor);
+ }
+ else
+ {
+ LED_Off();
+ }
+ break;
+ }
+
+ /* Toggle Command */
+ case APPLI_CMD_TOGGLE:
+ {
+ /*User Need to write the commands as per the element selected*/
+
+ TRACE_M(TF_VENDOR,"Appli_LED_Toggle callback received for elementIndex %d \r\n", elementIndex);
+ if(Appli_LedState == 1)
+ {
+ LED_Off();
+ Appli_LedState = 0;
+ }
+ else
+ {
+ aPwmLedGsData_vendor[PWM_LED_BLUE] = PWM_LED_GSDATA_99_9 ;
+ aPwmLedGsData_vendor[PWM_LED_GREEN] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_vendor[PWM_LED_RED] = PWM_LED_GSDATA_OFF;
+ LED_On(aPwmLedGsData_vendor);
+
+ Appli_LedState = 1;
+ }
+
+ break;
+ }
+ /* On Command */
+ case APPLI_CMD_ON:
+ {
+ /*User Need to write the commands as per the element selected*/
+
+ TRACE_M(TF_VENDOR,"Appli_LED_ON callback received for elementIndex %d \r\n", elementIndex);
+ aPwmLedGsData_vendor[PWM_LED_BLUE] = PWM_LED_GSDATA_99_9 ;
+ aPwmLedGsData_vendor[PWM_LED_GREEN] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_vendor[PWM_LED_RED] = PWM_LED_GSDATA_OFF;
+ LED_On(aPwmLedGsData_vendor);
+
+ Appli_LedState = 1;
+
+ break;
+ }
+ /* Off Command */
+ case APPLI_CMD_OFF:
+ {
+ /*User Need to write the commands as per the element selected*/
+
+ TRACE_M(TF_VENDOR,"Appli_LED_OFF callback received for elementIndex %d \r\n", elementIndex);
+ LED_Off();
+
+ Appli_LedState = 0;
+ break;
+ }
+ /* intensity command */
+ case APPLI_CMD_LED_INTENSITY:
+ {
+ /*User Need to write the commands as per the element selected*/
+
+ TRACE_M(TF_VENDOR,"Appli_LED_Intensity callback received for elementIndex %d \r\n", elementIndex);
+ intensityValue = data[2] << 8;
+ intensityValue |= data[1];
+
+ duty = PwmValueMapping(intensityValue , 0x7FFF ,0);
+ if(duty > 16000)
+ {
+ aPwmLedGsData_vendor[PWM_LED_BLUE] = PWM_LED_GSDATA_99_9 ;
+ aPwmLedGsData_vendor[PWM_LED_GREEN] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_vendor[PWM_LED_RED] = PWM_LED_GSDATA_OFF;
+
+ LED_On(aPwmLedGsData_vendor);
+ }
+ else
+ {
+ LED_Off();
+ }
+ break;
+ }
+ /* Thermometer command */
+#ifdef APPLI_CMD_LED_THERMOMETER
+ case APPLI_CMD_LED_THERMOMETER:
+ {
+ /*User Need to write the commands as per the element selected*/
+
+ TRACE_M(TF_VENDOR,"Appli_LED_THERMOMETER callback received for elementIndex %d \r\n", elementIndex);
+ intensityValue = data[1];
+#ifdef INDICATOR_NODE
+ TRACE_M(TF_VENDOR,"Appli_LED_THERMOMETER : Intensity value %d \r\n", intensityValue);
+ if((intensityValue>170)&&(intensityValue<=255)){
+ aPwmLedGsData_vendor[PWM_LED_RED] = PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_vendor[PWM_LED_GREEN] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_vendor[PWM_LED_BLUE] = PWM_LED_GSDATA_OFF;
+ }
+ else if((intensityValue>85)&&(intensityValue<=170)){
+ aPwmLedGsData_vendor[PWM_LED_RED] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_vendor[PWM_LED_GREEN] = PWM_LED_GSDATA_7_0;
+ aPwmLedGsData_vendor[PWM_LED_BLUE] = PWM_LED_GSDATA_OFF;
+ }
+ else if((intensityValue>0)&&(intensityValue<=85)){
+ aPwmLedGsData_vendor[PWM_LED_RED] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_vendor[PWM_LED_GREEN] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_vendor[PWM_LED_BLUE] = PWM_LED_GSDATA_7_0;
+ }
+ else if(intensityValue==0){
+ aPwmLedGsData_vendor[PWM_LED_RED] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_vendor[PWM_LED_GREEN] = PWM_LED_GSDATA_OFF;
+ aPwmLedGsData_vendor[PWM_LED_BLUE] = PWM_LED_GSDATA_7_0;
+ }
+ else{
+ //Error invalid value
+ TRACE_M(TF_VENDOR,"Error Invalid Value \r\n");
+ }
+ TRACE_M(TF_VENDOR,"Appli_LED_THERMOMETER : RED %d , GREEN %d, BLUE %d \r\n", aPwmLedGsData_vendor[PWM_LED_RED], aPwmLedGsData_vendor[PWM_LED_GREEN], aPwmLedGsData_vendor[PWM_LED_BLUE]);
+ LED_On(aPwmLedGsData_vendor);
+#endif /* INDICATOR_NODE */
+ break;
+ }
+#endif
+ /* Default case - Not valid command */
+ default:
+ {
+ status = MOBLE_RESULT_FALSE;
+ break;
+ }
+ }
+ /*Buffer will be sent for Reliable Response*/
+ /*First Byte is Sub Command and 2nd Byte is LED Status*/
+ ResponseBuffer[0] = subCommand;
+ if(subCommand == APPLI_CMD_LED_INTENSITY)
+ {
+ ResponseBuffer[1] = intensityValue >> 8 ;
+ ResponseBuffer[2] = intensityValue ;
+ BuffLength = 3;
+ }
+ else
+ {
+ ResponseBuffer[1] = Appli_LedState ;
+ BuffLength = 2;
+ }
+
+ return status;
+}
+
+/**
+* @brief Process the Vendor Data write Command
+* @param data: Pointer to the data received from peer_addr
+* @param length: Length of the data
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_Vendor_Data_write(MOBLEUINT8 const *data, MOBLEUINT32 length)
+{
+ MOBLE_RESULT status = MOBLE_RESULT_SUCCESS;
+ MOBLEUINT8 subCmd = data[0];
+ /*First Byte is sending the Sub Command*/
+ ResponseBuffer[0]=subCmd;
+
+ TRACE_M(TF_VENDOR, "#0E-%02hx %02lx! \n\r",data[0], length);
+ for(MOBLEUINT16 i=0; i<length; i++)
+ {
+ TRACE_I(TF_VENDOR,"%02hx ",data[i]);
+ }
+ TRACE_I(TF_VENDOR,"\n\r");
+ switch(subCmd)
+ {
+ case APPLI_STRING_WRITE:
+ {
+ memcpy(&ResponseBuffer,data,length);
+ BuffLength = length;
+ break;
+ }
+ default:
+ {
+ status = MOBLE_RESULT_FALSE;
+ break;
+ }
+ }
+ return status;
+}
+
+/**
+* @brief Appli_GetTestValue: This function is callback for Application
+* when Vensor application test command received then status message is to be provided
+* @param responseValue: Pointer to the status message
+* @retval void
+*/
+void Appli_GetTestValue (MOBLEUINT8 *responseValue)
+{
+ *responseValue = TestHitCounter;
+ *(responseValue+1) = TestHitCounter >> 8;
+ *(responseValue+2) = TestHitCounter >> 16;
+ *(responseValue+3) = TestHitCounter >> 24;
+ TestHitCounter = 0;
+}
+/**
+* @brief Process the Vendor LED Control Command
+* @param data: Pointer to the data received from peer_addr
+* @param length: Length of the data
+* @param elementIndex : selected element where '0' is first element
+* @param dst_peer : Destination address
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_Vendor_SetBigDataPacket(MOBLEUINT8 *data, MOBLEUINT32 length,
+ MOBLEUINT8 elementIndex , MOBLE_ADDRESS dst_peer)
+{
+ MOBLE_RESULT status = MOBLE_RESULT_SUCCESS;
+
+ if (length > VENDOR_DATA_BUFFER_SIZE)
+ {
+ status = MOBLE_RESULT_INVALIDARG;
+ }
+ memmove(Appli_VendorBigData.data, data, length);
+ Appli_VendorBigData.dst = dst_peer;
+ Appli_VendorBigData.length = length;
+ Appli_VendorBigData.elementIndex = elementIndex;
+ return status;
+}
+/**
+* @brief Send Vendor big data packet
+* @param void
+* @retval MOBLE_RESULT status of result
+*/
+MOBLE_RESULT Appli_Vendor_SendBigDataPacket(void)
+{
+ MOBLE_RESULT status = MOBLE_RESULT_SUCCESS;
+
+ if(BLEMesh_TrsptIsBusyState())
+ {
+ aPwmLedGsData_vendor[PWM_LED_BLUE] = PWM_LED_GSDATA_99_9 ;
+ aPwmLedGsData_vendor[PWM_LED_GREEN] = PWM_LED_GSDATA_OFF;
+
+ LED_On(aPwmLedGsData_vendor);
+ status = MOBLE_RESULT_FALSE;
+ }
+ else
+ {
+ LED_Off();
+ status = BLEMesh_SetRemoteData(Appli_VendorBigData.dst,
+ Appli_VendorBigData.elementIndex,
+ 0x000E,
+ Appli_VendorBigData.data,
+ Appli_VendorBigData.length,
+ MOBLE_FALSE,
+ MOBLE_TRUE);
+ }
+ return status;
+}
+
+/**
+* @brief Publish Command for Vendor Model
+* @param srcAddress: Source Address of Node
+* @retval void
+*/
+void Appli_Vendor_Publish(MOBLE_ADDRESS srcAddress)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ MOBLEUINT8 AppliBuff[1];
+ /* changes the LED status on other nodes in the network */
+
+ AppliBuff[0] = APPLI_CMD_TOGGLE;
+
+ result = BLEMesh_SetRemotePublication(VENDORMODEL_STMICRO_ID1, srcAddress,
+ APPLI_LED_CONTROL_STATUS_CMD,
+ AppliBuff, sizeof(AppliBuff),
+ MOBLE_FALSE, MOBLE_TRUE);
+
+ if(result)
+ {
+ TRACE_I(TF_VENDOR_M, "Publication Error \r\n");
+ }
+}
+
+
+/**
+* @brief Publish Temperature Command for Vendor Model
+* @param srcAddress: Source Address of Node
+* @param temperature: Temperature Measured
+* @retval void
+*/
+void Appli_Vendor_Publish_Temperature(MOBLE_ADDRESS srcAddress, MOBLEUINT8 temperature)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ MOBLEUINT8 AppliBuff[2];
+ /* changes the LED status on other nodes in the network */
+
+ AppliBuff[0] = APPLI_CMD_LED_THERMOMETER;
+ AppliBuff[1] = temperature;
+ TRACE_I(TF_VENDOR_M, "Publish Temperature \r\n");
+ result = BLEMesh_SetRemotePublication(VENDORMODEL_STMICRO_ID1, srcAddress,
+ APPLI_LED_CONTROL_STATUS_CMD,
+ AppliBuff, sizeof(AppliBuff),
+ MOBLE_FALSE, MOBLE_TRUE);
+
+ if(result)
+ {
+ TRACE_I(TF_VENDOR_M, "Publication Error \r\n");
+ }
+}
+/**
+* @}
+*/
+
+/**
+* @}
+*/
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_vendor.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_vendor.h
new file mode 100644
index 000000000..708962d4a
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/appli_vendor.h
@@ -0,0 +1,46 @@
+/**
+ ******************************************************************************
+ * @file appli_vendor.h
+ * @author BLE Mesh Team
+ * @brief Application interface for Vendor Mesh Models
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __APPLI_VENDOR_H
+#define __APPLI_VENDOR_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+#include "ble_mesh.h"
+
+/* Exported macro ------------------------------------------------------------*/
+#define LED_OFF_VALUE 1U
+#define LED_ON_VALUE 32000U
+/* Private define ------------------------------------------------------------*/
+
+MOBLE_RESULT Appli_Vendor_LEDControl( MOBLEUINT8 const *data, MOBLEUINT32 length,
+ MOBLEUINT8 elementNumber, MOBLE_ADDRESS dst_peer);
+MOBLE_RESULT Appli_Vendor_DeviceInfo(MOBLEUINT8 const *data, MOBLEUINT32 length);
+MOBLE_RESULT Appli_Vendor_Test(MOBLEUINT8 const *data, MOBLEUINT32 length);
+MOBLE_RESULT Appli_Vendor_Data_write(MOBLEUINT8 const *data, MOBLEUINT32 length);
+void Appli_GetTestValue (MOBLEUINT8 *responseValue);
+MOBLE_RESULT Appli_Vendor_SendBigDataPacket(void);
+MOBLE_RESULT Appli_Vendor_SetBigDataPacket(MOBLEUINT8 *data, MOBLEUINT32 length,
+ MOBLEUINT8 elementIndex , MOBLE_ADDRESS dst_peer);
+void Appli_Vendor_Publish(MOBLE_ADDRESS srcAddress);
+void Appli_Vendor_Publish_Temperature(MOBLE_ADDRESS srcAddress, MOBLEUINT8 temperature);
+
+#endif /* __APPLI_VENDOR_H */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/ble_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/ble_conf.h
new file mode 100644
index 000000000..57713f5e3
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/ble_conf.h
@@ -0,0 +1,71 @@
+/**
+ ******************************************************************************
+ * @file ble_conf.h
+ * @author MCD Application Team
+ * @brief BLE configuration file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __BLE_CONF_H
+#define __BLE_CONF_H
+
+#include "app_conf.h"
+
+/******************************************************************************
+ *
+ * BLE SERVICES CONFIGURATION
+ * blesvc
+ *
+ ******************************************************************************/
+#define BLE_CFG_MESH 1
+
+/**
+ * This setting shall be set to '1' if the device needs to support the Peripheral Role
+ * In the MS configuration, both BLE_CFG_PERIPHERAL and BLE_CFG_CENTRAL shall be set to '1'
+ */
+#define BLE_CFG_PERIPHERAL 1
+
+/**
+ * This setting shall be set to '1' if the device needs to support the Central Role
+ * In the MS configuration, both BLE_CFG_PERIPHERAL and BLE_CFG_CENTRAL shall be set to '1'
+ */
+#define BLE_CFG_CENTRAL 1
+
+#define BLE_CFG_BROADCASTER 1
+
+#define BLE_CFG_OBSERVER 1
+
+#define BLE_CFG_DATA_ROLE_MODE 4
+
+
+/**
+ * There is one handler per service enabled
+ * Note: There is no handler for the Device Information Service
+ *
+ * This shall take into account all registered handlers
+ * (from either the provided services or the custom services)
+ */
+#define BLE_CFG_SVC_MAX_NBR_CB 7
+
+#define BLE_CFG_CLT_MAX_NBR_CB 5
+
+/******************************************************************************
+ * GAP Service - Appearance
+ ******************************************************************************/
+#define BLE_CFG_UNKNOWN_APPEARANCE (0)
+#define BLE_CFG_HR_SENSOR_APPEARANCE (832)
+#define BLE_CFG_GAP_APPEARANCE (BLE_CFG_UNKNOWN_APPEARANCE)
+
+#endif /*__BLE_CONF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/ble_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/ble_dbg_conf.h
new file mode 100644
index 000000000..49a3419cb
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/ble_dbg_conf.h
@@ -0,0 +1,204 @@
+/**
+ ******************************************************************************
+ * @file ble_dbg_conf.h
+ * @author MCD Application Team
+ * @brief BLE Debug configuration file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __BLE_DBG_CONF_H
+#define __BLE_DBG_CONF_H
+
+/**
+ * Enable or Disable traces from BLE
+ */
+
+#define BLE_DBG_DIS_EN 0
+#define BLE_DBG_HRS_EN 0
+#define BLE_DBG_EDS_STM_EN 0
+#define BLE_DBG_LBS_STM_EN 0
+#define BLE_DBG_SVCCTL_EN 1
+#define BLE_DBG_CTS_EN 0
+#define BLE_DBG_HIDS_EN 0
+#define BLE_DBG_PASS_EN 0
+#define BLE_DBG_BLS_EN 0
+#define BLE_DBG_HTS_EN 0
+#define BLE_DBG_ANS_EN 0
+#define BLE_DBG_ESS_EN 0
+#define BLE_DBG_GLS_EN 0
+#define BLE_DBG_BAS_EN 0
+#define BLE_DBG_RTUS_EN 0
+#define BLE_DBG_HPS_EN 0
+#define BLE_DBG_TPS_EN 0
+#define BLE_DBG_LLS_EN 0
+#define BLE_DBG_IAS_EN 0
+#define BLE_DBG_DTS_EN 0
+#define BLE_DBG_WSS_EN 0
+#define BLE_DBG_LNS_EN 0
+#define BLE_DBG_SCPS_EN 0
+#define BLE_DBG_P2P_STM_EN 0
+
+
+/**
+ * Macro definition
+ */
+#if ( BLE_DBG_DIS_EN != 0 )
+#define BLE_DBG_DIS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_DIS_MSG PRINT_NO_MESG
+#endif
+
+#if ( BLE_DBG_HRS_EN != 0 )
+#define BLE_DBG_HRS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_HRS_MSG PRINT_NO_MESG
+#endif
+
+#if ( BLE_DBG_P2P_STM_EN != 0 )
+#define BLE_DBG_P2P_STM_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_P2P_STM_MSG PRINT_NO_MESG
+#endif
+
+#if ( BLE_DBG_EDS_STM_EN != 0 )
+#define BLE_DBG_EDS_STM_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_EDS_STM_MSG PRINT_NO_MESG
+#endif
+
+#if ( BLE_DBG_LBS_STM_EN != 0 )
+#define BLE_DBG_LBS_STM_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_LBS_STM_MSG PRINT_NO_MESG
+#endif
+
+#if ( BLE_DBG_SVCCTL_EN != 0 )
+#define BLE_DBG_SVCCTL_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_SVCCTL_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_CTS_EN != 0)
+#define BLE_DBG_CTS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_CTS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_HIDS_EN != 0)
+#define BLE_DBG_HIDS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_HIDS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_PASS_EN != 0)
+#define BLE_DBG_PASS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_PASS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_BLS_EN != 0)
+#define BLE_DBG_BLS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_BLS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_HTS_EN != 0)
+#define BLE_DBG_HTS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_HTS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_ANS_EN != 0)
+#define BLE_DBG_ANS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_ANS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_ESS_EN != 0)
+#define BLE_DBG_ESS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_ESS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_GLS_EN != 0)
+#define BLE_DBG_GLS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_GLS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_BAS_EN != 0)
+#define BLE_DBG_BAS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_BAS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_RTUS_EN != 0)
+#define BLE_DBG_RTUS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_RTUS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_HPS_EN != 0)
+#define BLE_DBG_HPS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_HPS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_TPS_EN != 0)
+#define BLE_DBG_TPS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_TPS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_LLS_EN != 0)
+#define BLE_DBG_LLS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_LLS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_IAS_EN != 0)
+#define BLE_DBG_IAS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_IAS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_WSS_EN != 0)
+#define BLE_DBG_WSS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_WSS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_LNS_EN != 0)
+#define BLE_DBG_LNS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_LNS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_SCPS_EN != 0)
+#define BLE_DBG_SCPS_MSG PRINT_MESG_DBG
+#else
+#define BLE_DBG_SCPS_MSG PRINT_NO_MESG
+#endif
+
+#if (BLE_DBG_DTS_EN != 0)
+#define BLE_DBG_DTS_MSG PRINT_MESG_DBG
+#define BLE_DBG_DTS_BUF PRINT_LOG_BUFF_DBG
+#else
+#define BLE_DBG_DTS_MSG PRINT_NO_MESG
+#define BLE_DBG_DTS_BUF PRINT_NO_MESG
+#endif
+
+
+#endif /*__BLE_DBG_CONF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/cube_hal.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/cube_hal.h
new file mode 100644
index 000000000..3ab0f207f
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/cube_hal.h
@@ -0,0 +1,46 @@
+/**
+ ******************************************************************************
+ * @file cube_hal.h
+ * @author AMS VMA RF Application team
+ * @brief
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#ifndef _CUBE_HAL_H_
+#define _CUBE_HAL_H_
+
+/* Includes ------------------------------------------------------------------*/
+
+#include "stm32wbxx_hal.h"
+#include "stm32wbxx_hal_conf.h"
+
+#define B1_Pin GPIO_PIN_13
+#define B1_GPIO_Port GPIOC
+#define USART_TX_Pin GPIO_PIN_2
+#define USART_TX_GPIO_Port GPIOA
+#define USART_RX_Pin GPIO_PIN_3
+#define USART_RX_GPIO_Port GPIOA
+#define LD2_Pin GPIO_PIN_5
+#define LD2_GPIO_Port GPIOA
+
+#define UART_TX_TIMEOUT 5
+
+#define Uart_Irq_Handler USART2_IRQHandler
+
+
+void SystemClock_Config(void);
+void Init_Device(void);
+void MX_USART2_UART_Init(void);
+
+
+#endif /* _CUBE_HAL_H_ */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/data.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/data.s
new file mode 100644
index 000000000..782844084
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/data.s
@@ -0,0 +1,28 @@
+;/**
+;******************************************************************************
+;* @file data.s
+;* @author BLE Mesh Team
+;* @version V1.07.000
+;* @date 15-June-2018
+;* @brief Memory management
+;******************************************************************************
+;* @attention
+;*
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
+;*
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
+;*
+;******************************************************************************
+;*/
+_bdaddr EQU 0x0807E000
+ EXPORT _bdaddr
+
+ AREA CONFIG, READONLY
+_mobleNvmBase_data
+ EXPORT _mobleNvmBase_data
+ FILL 4096, 0x00
+
+ END
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/hal_common.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/hal_common.h
new file mode 100644
index 000000000..ad9026fca
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/hal_common.h
@@ -0,0 +1,51 @@
+/**
+ ******************************************************************************
+ * @file hal_common.h
+ * @author BLE Mesh Team
+ * @brief Common functions of HAL file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef _HAL_H_
+#define _HAL_H_
+
+/* Includes ------------------------------------------------------------------*/
+
+#if defined(NUCLEO_L152RE) || defined(USE_STM32WBXX_NUCLEO) || USE_STM32WBXX_USB_DONGLE || USE_STM32WB5M_DK /* NUCLEO_L152RE */
+#include "user_if.h"
+#else /* not NUCLEO_L152RE */
+#if defined(BLUENRG1) || defined(BLUENRG2) /* BLUENRG1 or BLUENRG2 */
+#include "hal.h"
+#else /* not BLUENRG1 or BLUENRG2 */
+#error "Unsupported board"
+#endif /* BLUENRG1 or BLUENRG2 */
+#endif /* NUCLEO_L152RE */
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <stdint.h>
+#include <stdbool.h>
+
+#include "types.h"
+
+void SetLed(int state);
+BUTTON_STATE GetButtonState(void);
+BUTTON_STATE GetButton2State(void);
+void InitDevice(void);
+
+void ShouldSleepFunc(void);
+
+#endif /* _HAL_H_ */
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/mesh_cfg_usr.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/mesh_cfg_usr.h
new file mode 100644
index 000000000..2d6647993
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/mesh_cfg_usr.h
@@ -0,0 +1,625 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file mesh_cfg_usr.h
+ * @author BLE Mesh Team
+ * @brief user configurable settings
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __MESH_CFG_USR_H
+#define __MESH_CFG_USR_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "ble_mesh.h"
+
+/* Exported macro ------------------------------------------------------------*/
+
+/*
+* Different features supported by BLE-Mesh. Uncomment according to application.
+* Low power feature enabled node do not support other features.
+* Do not define any other feature if Low Power feature is defined
+*/
+#define ENABLE_RELAY_FEATURE
+#define ENABLE_PROXY_FEATURE
+#define ENABLE_FRIEND_FEATURE
+//#define ENABLE_LOW_POWER_FEATURE
+//#define ENABLE_PROVISIONER_FEATURE
+//#define DYNAMIC_PROVISIONER
+
+/*
+* Different provision bearer supported by BLE-Mesh.
+* Define according to application.
+* At least one of PB-ADV and PB-GATT should be defined
+*/
+
+#define ENABLE_PB_ADV
+#define ENABLE_PB_GATT
+//#define ENABLE_PUB_KEY_TYPE_OOB
+#define ENABLE_AUTH_TYPE_NO_OOB
+//#define ENABLE_AUTH_TYPE_STATIC_OOB
+//#define ENABLE_AUTH_TYPE_OUTPUT_OOB
+//#define ENABLE_AUTH_TYPE_INPUT_OOB
+
+/* Static OOB Configurations */
+#define STATIC_OOB_SIZE 16U
+
+/* Output OOB Configurations */
+#define OUTPUT_OOB_SIZE 1U
+#define OUTPUT_OOB_ACTION OUTPUT_OOB_ACTION_BIT_BLINK
+
+/* Input OOB Configurations */
+#define INPUT_OOB_SIZE 1U
+#define INPUT_OOB_ACTION INPUT_OOB_ACTION_BIT_PUSH
+
+/******************************************************************************/
+/* Note: Please use Full Library configuration in project options to use the full
+ configuration of the C/C++ runtime library
+ for printf and scanf functionality */
+
+/* Enables the serial interface using Uart */
+#define ENABLE_SERIAL_INTERFACE 1
+#define ENABLE_SIG_MODELS_AT_COMMANDS 1
+#define ENABLE_VENDOR_MODELS_AT_COMMANDS 0
+#define ENABLE_UT 1
+
+/* Provisioner feature related configuration */
+#if defined (ENABLE_PROVISIONER_FEATURE) || defined(DYNAMIC_PROVISIONER)
+#define PROVISIONER_ROOT_ADDR_DEFAULT 0x0001
+
+/*
+Define the following Macro to save the nodes data in provisioner in NVM
+This may result into excessive flash erase operations, this should be avoided to ensure flash longevity
+*/
+#define SAVE_EMBD_PROVISION_DATA 1
+
+/* Enables the UUID saving per Node - Currently Not Supported */
+#define ENABLE_SAVE_UUID_PER_NODE 0
+
+//#define ENABLE_SERIAL_PRVN 1
+//#define ENABLE_CONFIG_MODEL_CLIENT (1)
+
+#define CLIENT_MAX_SIG_MODELS_PER_ELEMENT 12 /* Number of SIG Models for Node under provisioning */
+#define CLIENT_MAX_VENDOR_MODELS_PER_ELEMENT 1 /* Number of Vendor Models for Node under provisioning */
+#define CLIENT_MAX_ELEMENTS_PER_NODE 1 /* Number of Elements per Node */
+
+/*
+* Enable or disable neighbor table
+* if defined -> enabled
+* If MAC address of neighbor changes it appears as new neighbor
+* Neighbor table update can be triggered (configurable) in following cases
+* On receiving Unprovisioned device beacon
+* On receiving Secure network beacon
+* On receiving Mesh message
+* Message with any TTL
+* Message with TTL = 0
+* if not defined -> disabled
+*/
+#define ENABLE_NEIGHBOR_TABLE
+
+#endif
+
+/* Macro to test the Flash saving data and retrieval process */
+#define ENABLE_NVM_TEST
+
+/* Macros Used for user defined serial print data for models.
+Either use 0 to disable or 1 to enable
+@ TF_GENERIC -> Generic server
+@ TF_GENERIC_CLIENT -> Generic client
+@ TF_SENSOR -> Sensor server
+@ TF_LIGHT -> Lighting server
+@ TF_LIGHT_CLIENT -> Lighting client
+@ TF_LIGHT_LC -> Light LC server
+@ TF_VENDOR -> vendor model
+@ TF_CONFIG_CLIENT -> config client
+@ TF_LPN_FRND -> Friendship, Friend and Low Power
+@ TF_PROVISION -> Provisioning related
+@ TF_HANDLER -> interrupt handler
+@ TF_INIT -> main function
+@ TF_MISC -> others
+@ TF_COMMON -> common (middleware)
+@ TF_GENERIC_M -> Generic server (middleware)
+@ TF_GENERIC_CLIENT_M -> Config client (middleware)
+@ TF_SENSOR_M -> Sensor server (middleware)
+@ TF_LIGHT_M -> Lighting server (middleware)
+@ TF_LIGHT_CLIENT_M -> Lighting client (middleware)
+@ TF_LIGHT_LC_M -> Light LC server (middleware)
+@ TF_VENDOR_M -> vendor model (middleware)
+@ TF_CONFIG_CLIENT_M -> Config client (middleware)
+@ TF_NEIGHBOUR -> neighbour table
+@ TF_MEMORY
+@ TF_BEACON -> Beacons
+@ TF_SERIAL_CTRL
+*/
+/* Enabled by default */
+#ifndef ENABLE_LOW_POWER_FEATURE
+#define TF_GENERIC 1
+#define TF_GENERIC_CLIENT 1
+#define TF_SENSOR 1
+#define TF_LIGHT 1
+#define TF_LIGHT_CLIENT 1
+#define TF_LIGHT_LC 1
+#define TF_VENDOR 1
+#define TF_CONFIG_CLIENT 1
+#define TF_CONFIG_SERVER 1
+#define TF_LPN_FRND 1
+#define TF_PROVISION 1
+#define TF_HANDLER 1
+#define TF_INIT 1
+#define TF_MISC 1
+#define TF_SERIAL_CTRL 1
+/* Disabled by default */
+#define TF_COMMON 0
+#define TF_GENERIC_M 0
+#define TF_GENERIC_CLIENT_M 1
+#define TF_SENSOR_M 1
+#define TF_SENSOR_CLIENT_M 1
+#define TF_LIGHT_M 0
+#define TF_LIGHT_CLIENT_M 1
+#define TF_LIGHT_LC_M 1
+#define TF_VENDOR_M 1
+#define TF_CONFIG_CLIENT_M 0
+#define TF_NEIGHBOUR 0
+#define TF_MEMORY 0
+#define TF_BEACON 0
+#define TF_VENDOR_APPLI_TEST 1 /* Vendor commands testing */
+#define TF_NVM 0
+#endif
+
+/*******************************************************************************
+*** Following section helps to define Device Name during Provisioning *********
+*******************************************************************************/
+
+#define DEVICE_NAME_SIZE 11
+#define DEVICE_NAME 'S','T',' ','B','L','E',' ','M','e','s','h'
+
+/*******************************************************************************
+*** Following section helps to select right configuration of Models ***********
+*******************************************************************************/
+/******************************************************************************/
+/* Define the following Macros to enable the usage of the */
+/* Server Generic Models */
+/* For a choice of 3 elements (max is 8) */
+/* Definition is a bitmap of 3 bits: bit 2 element 3 */
+/* bit 1 element 2 */
+/* bit 0 element 1 */
+/* Example: 6 means Model enabled in element 2 and 3 */
+/******************************************************************************/
+
+/* Define the following Macros to enable the usage of the Server Generic Models */
+//#define ENABLE_GENERIC_MODEL_SERVER_ONOFF (1)
+//#define ENABLE_GENERIC_MODEL_SERVER_LEVEL (1)
+//#define ENABLE_GENERIC_MODEL_SERVER_POWER_ONOFF (1)
+//#define ENABLE_GENERIC_MODEL_SERVER_POWER_ONOFF_SETUP (1)
+//#define ENABLE_GENERIC_MODEL_SERVER_DEFAULT_TRANSITION_TIME (1)
+
+//#define ENABLE_GENERIC_MODEL_CLIENT_ONOFF (1)
+//#define ENABLE_GENERIC_MODEL_CLIENT_LEVEL (1)
+//#define ENABLE_GENERIC_MODEL_CLIENT_POWER_ONOFF (1)
+//#define ENABLE_GENERIC_MODEL_CLIENT_DEFAULT_TRANSITION_TIME (1)
+
+/* The Following Models are not available in this version, will be developed in
+ next version.
+*/
+/*
+#define ENABLE_GENERIC_MODEL_SERVER_POWER_LEVEL
+#define ENABLE_GENERIC_MODEL_SERVER_POWER_LEVEL_SETUP
+#define ENABLE_GENERIC_MODEL_SERVER_BATTERY
+#define ENABLE_GENERIC_MODEL_SERVER_LOCATION
+#define ENABLE_GENERIC_MODEL_SERVER_LOCATION_SETUP
+#define ENABLE_GENERIC_MODEL_SERVER_ADMIN_PROPERTY
+#define ENABLE_GENERIC_MODEL_SERVER_MANUFACTURER_PROPERTY
+#define ENABLE_GENERIC_MODEL_SERVER_USER_PROPERTY
+#define ENABLE_GENERIC_MODEL_SERVER_CLIENT_PROPERTY
+
+*/
+
+/******************************************************************************/
+/******* Define the following Macros to enable the usage of the Light Models */
+/* For a choice of 3 elements (max is 8) */
+/* Definition is a bitmap of 3 bits: bit 2 element 3 */
+/* bit 1 element 2 */
+/* bit 0 element 1 */
+/* Example: 6 means Model enabled in element 2 and 3 */
+/******************************************************************************/
+
+//#define ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS (1)
+//#define ENABLE_LIGHT_MODEL_SERVER_LIGHTNESS_SETUP (1)
+//#define ENABLE_LIGHT_MODEL_SERVER_CTL (1)
+//#define ENABLE_LIGHT_MODEL_SERVER_CTL_SETUP (1)
+//#define ENABLE_LIGHT_MODEL_SERVER_CTL_TEMPERATURE (1)
+//#define ENABLE_LIGHT_MODEL_SERVER_HSL (1)
+//#define ENABLE_LIGHT_MODEL_SERVER_HSL_SETUP (1)
+//#define ENABLE_LIGHT_MODEL_SERVER_HSL_HUE (1)
+//#define ENABLE_LIGHT_MODEL_SERVER_HSL_SATURATION (1)
+
+//#define ENABLE_LIGHT_MODEL_CLIENT_LIGHTNESS (1)
+//#define ENABLE_LIGHT_MODEL_CLIENT_CTL (1)
+//#define ENABLE_LIGHT_MODEL_CLIENT_HSL (1)
+
+/*
+ The following Models are managed in different file light_lc.c in middleware
+*/
+//#define ENABLE_LIGHT_MODEL_SERVER_LC (1)
+
+//#define ENABLE_LIGHT_MODEL_CLIENT_LC (1)
+
+/******************************************************************************/
+/* Define the following Macros to enable the usage of the Sensor Models */
+/* For a choice of 3 elements (max is 8) */
+/* Definition is a bitmap of 3 bits: bit 2 element 3 */
+/* bit 1 element 2 */
+/* bit 0 element 1 */
+/* Example: 6 means Model enabled in element 2 and 3 */
+/******************************************************************************/
+//MESH_MODEL_SENSOR_APP_CODE Begin
+/* Enable Sensor Model Server or Sensor Model Client */
+#define ENABLE_SENSOR_MODEL_SERVER (1)
+
+//#define ENABLE_SENSOR_MODEL_CLIENT (1)
+//MESH_MODEL_SENSOR_APP_CODE End
+
+/******************************************************************************/
+/* Define the following Macros to enable the usage of the time and */
+/* scene Models */
+/* For a choice of 3 elements (max is 8) */
+/* Definition is a bitmap of 3 bits: bit 2 element 3 */
+/* bit 1 element 2 */
+/* bit 0 element 1 */
+/* Example: 6 means Model enabled in element 2 and 3 */
+/******************************************************************************/
+
+//#define ENABLE_TIME_MODEL_SERVER
+//#define ENABLE_TIME_MODEL_SERVER_SETUP
+//#define ENABLE_SCENE_MODEL_SERVER
+//#define ENABLE_SCENE_MODEL_SERVER_SETUP
+
+/*
+ The Following Models are not available in this version
+*/
+//#define ENABLE_LIGHT_MODEL_SERVER_XYL
+//#define ENABLE_LIGHT_MODEL_SERVER_XYL_SETUP
+
+/******* Define the following Macros to enable the vendor model ******/
+//#define ENABLE_VENDOR_MODEL_SERVER (1)
+//#define GENERIC_SERVER_MODEL_PUBLISH
+
+/******************************************************************************/
+/*
+Define the Macro for enabling/disabling the Publishing with Generic on off
+or by Vendor Model.
+@ define Macro for Vendor Publishing
+@ Undefine or comment Macro for Generic On Off Publishing
+*/
+//#define VENDOR_CLIENT_MODEL_PUBLISH
+//#define GENERIC_CLIENT_MODEL_PUBLISH
+//#define LIGHT_CLIENT_MODEL_PUBLISH
+
+
+/* Define the macros for the numbers of sensor present.*/
+//#define NUMBER_OF_SENSOR 1
+//#define ENABLE_OCCUPANCY_SENSOR
+/*
+Macro is responsible for enabling and desabling the sensor publication.
+Comment this macro to disable the publication
+*/
+#define ENABLE_SENSOR_PUBLICATION
+
+
+/******************************************************************************/
+/* Maximum Time period value of PWM */
+#define PWM_TIME_PERIOD 31990U
+
+/******************************************************************************/
+/***** MACROS for POWER ON-OFF CYCLE BASED UNPROVISIONING *********************/
+/******************************************************************************/
+
+/*
+Define the following Macro to check the Power-OnOff Cycles
+5 Continuous cycles of OnOff with Ontime <2 sec will cause unprovisioning
+*/
+//#define ENABLE_UNPROVISIONING_BY_POWER_ONOFF_CYCLE
+
+#define POWER_ON_OFF_CYCLES_FOR_UNPROVISIONING 5
+#define MASK_BITS_FOR_POWER_ON_OFF_CYCLES (0xFFFFFFFF << POWER_ON_OFF_CYCLES_FOR_UNPROVISIONING)
+ /* 0xFFFFFFE0 */
+#define ON_TIME_IN_SECONDS_FOR_POWER_CYCLING 2
+#define BLINK_TIMES_FOR_FACTORY_RESET 5
+
+/*
+Define the following Macro to save Generic and Light Model states in NVM
+This may result into excessive flash erase operations,
+this should be avoided to ensure flash longevity
+*/
+#define ENABLE_SAVE_MODEL_STATE_NVM
+
+/* Only one Macro will be enable at one time */
+//#define SAVE_MODEL_STATE_FOR_ALL_MESSAGES
+//#define SAVE_MODEL_STATE_POWER_FAILURE_DETECTION
+
+
+/* Macros defined for the number of bytes saved, number of bytes dedicated for ganeric
+ model and light model.
+*/
+#define APP_NVM_GENERIC_MODEL_SIZE 16U
+#define APP_NVM_LIGHT_MODEL_SIZE 48U/*32U*/
+#define APP_NVM_MODELDATA_PER_ELEMENT_SIZE (APP_NVM_GENERIC_MODEL_SIZE+APP_NVM_LIGHT_MODEL_SIZE)
+//#define APP_NVM_MODEL_SIZE 50U
+#define APP_NVM_MODEL_SIZE (APP_NVM_MODELDATA_PER_ELEMENT_SIZE * APPLICATION_NUMBER_OF_ELEMENTS)
+//#define APP_NVM_MODEL_ALL_ELEMENTS_SIZE
+
+
+/*Macros are defined for the selection of the number of led and type of lighting
+ used for the application.
+*if board has one led, uncomment USER_BOARD_1LED
+*if board has cool warm leds, uncomment USER_BOARD_COOL_WHITE_LED
+*if board has RGB leds, uncomment USER_BOARD_RGB_LED
+*if board has RGB leds as well as cool warm leds,
+ uncomment USER_BOARD_COOL_WHITE_LED and USER_BOARD_RGB_LED
+*/
+/* comment ENABLE_GENERIC_MODEL_SERVER_DEFAULT_TRANSITION_TIME when using
+ USER_BOARD_COOL_WHITE_LED ,USER_BOARD_RGB_LED
+ Default transition is provided only for one led.
+*/
+//#define USER_BOARD_1LED
+//#define USER_BOARD_COOL_WHITE_LED
+//#define USER_BOARD_RGB_LED
+
+/*******************************************************************************
+*** Following section helps to configure the Application of Mesh ***********
+*******************************************************************************/
+
+/* Max elements: 5 */
+#define APPLICATION_NUMBER_OF_ELEMENTS 1
+/* Max total Models per element = (SIG + Vendor) = 11 */
+/* Max SIG Models per element */
+#define USER_SIG_MODELS_MAX_COUNT 10
+
+/* Max Vendor Models per element */
+#define USER_VENDOR_MODELS_MAX_COUNT 1
+
+
+/* Contains a 16-bit company identifier assigned by the Bluetooth SIG
+(the list is available
+@ https://www.bluetooth.com/specifications/assigned-numbers/company-identifiers)
+For STMicroelectronics : it is 0x0030 */
+#define COMPANY_ID 0x0030
+
+/* Contains a 16-bit vendor-assigned product identifier */
+#define PRODUCT_ID 0x0002
+
+/* Contains a 16-bit vendor-assigned product version ID */
+#define PRODUCT_VERSION_ID 0x010A
+
+#define MAX_APPLICATION_PACKET_SIZE 160
+
+#define TPT_SEGMENT_COUNT (((MAX_APPLICATION_PACKET_SIZE)/12)+2)
+
+/*******************************************************************************
+********** MAC Address Configuration *******************************************
+*******************************************************************************/
+
+/*
+* Define to enable external MAC handling,
+* DONT change the Values 0x01, 0x02, 0x03
+* SELECT ONLY One of the Option
+*/
+//#define GENERATE_STATIC_RANDOM_MAC 0x01
+//#define EXTERNAL_MAC_ADDR_MGMT 0x02
+#define INTERNAL_UNIQUE_NUMBER_MAC 0x03
+
+/* Declare this value as 0x01 if the External Address is PUBLIC Address */
+/* For example like this: #define EXTERNAL_MAC_IS_PUBLIC_ADDR 0x1 */
+/* Else, by default, the external address will be treated as RANDOM */
+#define EXTERNAL_MAC_IS_PUBLIC_ADDR 0x0
+
+/******************************************************************************/
+
+
+/*******************************************************************************
+****** Following section helps to select right configuration of node ***********
+*******************************************************************************/
+/*
+* Minimum gap between successive transmissions
+* varies from 10 to 65535
+*/
+#define TR_GAP_BETWEEN_TRANSMISSION 50U
+
+
+/*
+* Friend node receive window size is 50 ms
+*/
+
+/*
+* Friend node subscription list size is 4
+*/
+
+/*
+* Friend node message queue is 16
+*/
+
+/*
+* Number of Low power nodes that can be associated with Friend node
+* varies from 1 to 10
+*/
+#define FN_NO_OF_LPNS 6U
+
+/*
+* For prioritizing friendship offer with good RSSI link
+* varies from 0 to 3
+* Ref @Mesh_v1.0
+* 0 -> 1
+* 1 -> 1.5
+* 2 -> 2
+* 3 -> 2.5
+*/
+#define LPN_RSSI_FACTOR_LEVEL 1U
+
+/*
+* For prioritizing friendship offer with good receive window factor
+* varies from 0 to 3
+* Ref @Mesh_v1.0
+* 0 -> 1
+* 1 -> 1.5
+* 2 -> 2
+* 3 -> 2.5
+*/
+#define LPN_RECIVE_WINDOW_FACTOR_LEVEL 1U
+
+/*
+* Minimum packets queue size required by Low Power node
+* varies from 1 to 7
+* Ref @Mesh_v1.0
+* 1 -> 2
+* 2 -> 4
+* 3 -> 8
+* 4 -> 16
+* 5 -> 32
+* 6 -> 64
+* 7 -> 128
+*/
+#define LPN_MINIMUM_QUEUE_SIZE_LOG 2U
+
+/*
+* (unit ms)
+* varies from 0x0A to 0xFF
+* Ref @Mesh_v1.0
+* 0x0A -> 10ms
+* 0xFF -> 255ms
+*/
+#define LPN_RECEIVE_DELAY 150U
+
+/*
+* Poll timeout value after which friendship cease to exist (unit 100ms)
+* varies from 0x00000A to 0x34BBFF
+* Ref @Mesh_v1.0
+* 0x00000A -> 1 second
+* 0x34BBFF -> 96 hours
+*/
+#define LPN_POLL_TIMEOUT 2000U
+
+/*
+* Maximum receive window size acceptable to low power node (unit ms)
+* varies from 0x0A to 0xFF
+* Ref @Mesh_v1.0
+* 0x0A -> 10ms
+* 0xFF -> 255ms
+*/
+#define LPN_RECEIVE_WINDOW_SIZE 255U/*55U*/
+
+/*
+* Minimum friend's subscription list size capability required by lpn
+* varies from 1 to 5
+* Ref @Mesh_v1.0
+*/
+#define LPN_SUBSCR_LIST_SIZE 2U
+
+/*
+* Frequency at which low power node would send friend request (unit 100ms)
+* varies from 0 to 255
+* 100 -> 10s
+*/
+#define LPN_FRIEND_REQUEST_FREQUENCY 50U
+
+/*
+* Frequency at which low power node would poll friend node (unit 100ms)
+* should be less than poll timeout
+* 100 -> 10s
+*/
+#define LPN_FRIEND_POLL_FREQUENCY 25U
+
+/*
+* Minimum RSSI required by low power node
+* should be less than equal to -60
+*/
+#define LPN_MINIMUM_RSSI -100
+
+/*
+* Retries to be made by lpn before termination of friendship
+* varies from 2 to 10
+*/
+#define LPN_NO_OF_RETRIES 10U
+
+/*
+* Maximum address list size buffer in
+* Friend Subscription List Add Message is 10
+*/
+
+
+/*
+* Enable or disable neighbor table
+* if defined -> enabled
+* If MAC address of neighbor changes it appears as new neighbor
+* Neighbor table update can be triggered (configurable) in following cases
+* On receiving Unprovisioned device beacon
+* On receiving Secure network beacon
+* On receiving Mesh message
+* Message with any TTL
+* Message with TTL = 0
+* if not defined -> disabled
+*/
+#define ENABLE_NEIGHBOR_TABLE
+
+/*
+* Size of neighbor table
+*/
+#define NEIGHBOR_COUNT 5U
+
+/*
+* (unit s)
+* Duration (wrt appear or last refresh)
+* for which neighbor exists in neighbor table
+*/
+#define NEIGHBOR_ALIVE_TIME 20U
+
+/*
+* Enable/disable neighbor table update with unprovisioned device beacon
+* 0: Disable neighbor table update with unprovisioned device beacon
+* 1: Enable neighbor table update with unprovisioned device beacon
+*/
+#define NEIGHBOR_UNPRVND_DEV_BEACON_NTU 1U
+
+/*
+* Enable/disable neighbor table update with secure network beacon
+* 0: Disable neighbor table update with secure network beacon
+* 1: Enable neighbor table update with secure network beacon
+*/
+#define NEIGHBOR_SECURE_NET_BEACON_NTU 0U
+
+/*
+* Enable/disable neighbor table update with TTL 0 message
+* 0: Disable neighbor table update messages
+* 1: Enable neighbor table update with messages with 0 TTL
+* 2: Enable neighbor table update with messages with any TTL
+*/
+#define NEIGHBOR_MSG_TTLX_NTU 0U
+
+/*******************************************************************************
+*** Following section helps to configure the LEDs of Application of Mesh ***
+*******************************************************************************/
+
+#if defined USE_STM32WBXX_NUCLEO || defined USE_STM32WBXX_USB_DONGLE
+ #define SINGLE_LED PWM4
+ #define COOL_LED PWM0
+ #define WARM_LED PWM1
+ #define RED_LED PWM2
+ #define GREEN_LED PWM3
+ #define BLUE_LED PWM4
+#endif
+
+
+/* Exported variables -------------------------------------------------------*/
+/* Exported Functions Prototypes ---------------------------------------------*/
+
+#endif /* __MESH_CFG_USR_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/models_if.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/models_if.c
new file mode 100644
index 000000000..b0223fa4f
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/models_if.c
@@ -0,0 +1,1151 @@
+/**
+ ******************************************************************************
+ * @file models_if.c
+ * @author BLE Mesh Team
+ * @brief Mesh Modes interface file of the application
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "hal_common.h"
+#include "appli_mesh.h"
+#include "appli_nvm.h"
+#include "ble_hci_le.h"
+#include "models_if.h"
+
+#include "common.h"
+#include "generic.h"
+#include "light.h"
+#include "light_lc.h"
+#include "time_scene.h"
+#include "sensors.h"
+#include "vendor.h"
+#include "appli_generic.h"
+#include "appli_light.h"
+#include "appli_light_lc.h"
+#include "appli_sensor.h"
+#include "appli_vendor.h"
+#include "config_client.h"
+#include "generic_client.h"
+#include "light_client.h"
+#include "sensors_client.h"
+#include "appli_generic_client.h"
+#include "appli_light_client.h"
+#include "appli_sensors_client.h"
+
+#include "PWM_config.h"
+#include "PWM_handlers.h"
+
+/** @addtogroup ST_BLE_Mesh
+* @{
+*/
+
+/** @addtogroup Application_Mesh_Models
+* @{
+*/
+/* Private variables ---------------------------------------------------------*/
+MOBLEUINT8 Led_Value = 0;
+
+MOBLEUINT8 ButtonIndex_Value = 0;
+
+/* Private typedef -----------------------------------------------------------*/
+#pragma pack(push, 1)
+
+typedef struct
+{
+ MOBLE_ADDRESS peer;
+ MOBLE_ADDRESS dst;
+ MOBLEUINT8 command;
+ MOBLEUINT8 elementIndex;
+ MOBLEUINT8 appKeyOffset;
+ MOBLEUINT8 netKeyOffset;
+ MOBLEUINT8 data[DATA_BUFFER_LENGTH]; /* 8-Bytes response packet */
+ MOBLEUINT32 length;
+} APPLI_SEND_RESPONSE_MODULE;
+
+
+typedef struct
+{
+ MOBLEUINT8 packet_count;
+ MOBLEUINT32 send_time;
+ APPLI_SEND_RESPONSE_MODULE* head;
+ MOBLEUINT8 head_index;
+ APPLI_SEND_RESPONSE_MODULE packet[MAX_PENDING_PACKETS_QUE_SIZE];
+} APPLI_PENDING_PACKETS;
+
+#pragma pack(pop)
+/* Private define ------------------------------------------------------------*/
+/* Private macro -------------------------------------------------------------*/
+
+
+/* Private variables ---------------------------------------------------------*/
+
+MOBLEUINT8 pGeneric_OnOffParam[sizeof(Generic_OnOffParam_t)];
+MOBLEUINT8 pGeneric_LevelParam[sizeof(Generic_LevelParam_t)];
+MOBLEUINT8 pGeneric_DeltaLevelParam[sizeof(Generic_DeltaLevelParam_t)];
+MOBLEUINT8 pGeneric_MoveLevelParam[sizeof(Generic_LevelMoveParam_t)];
+MOBLEUINT8 pGeneric_PowerOnOffParam[sizeof(Generic_PowerOnOffParam_t)];
+MOBLEUINT8 pGeneric_DefaultTransitionTimeParam[sizeof(Generic_DefaultTransitionParam_t)];
+
+MOBLEUINT8 pLightnessParam[sizeof(Light_LightnessParam_t)];
+MOBLEUINT8 pLightnessRangeParam[sizeof(Light_LightnessRangeParam_t)];
+
+MOBLEUINT8 pLightCtlParam[sizeof(Light_CtlParam_t)];
+MOBLEUINT8 pLightCtlTemperatureParam[sizeof(Light_CtlTemperatureParam_t)];
+MOBLEUINT8 pLightCtlTemperatureRangeParam[sizeof(Light_CtlTemperatureRangeParam_t)];
+MOBLEUINT8 pLightCtlDefaultParam[sizeof(Light_CtlDefaultParam_t)];
+
+MOBLEUINT8 pLightHslParam[sizeof(Light_HslParam_t)];
+MOBLEUINT8 pLightHslRangeParam[sizeof(Light_HslRangeParam_t)];
+MOBLEUINT8 pLightHslHueParam[sizeof(Light_HslHueParam_t)];
+MOBLEUINT8 pLightHslSaturationParam[sizeof(Light_HslSaturationParam_t)];
+
+MOBLEUINT8 pLightLCModeParam[sizeof(Light_LC_ModeParam_t)];
+MOBLEUINT8 pLightLCOccupancyModeParam[sizeof(Light_LC_ModeParam_t)];
+MOBLEUINT8 pLightLCOnOffParam[sizeof(Light_LC_OnOffParam_t)];
+MOBLEUINT8 pLightLCPropertyParam[6];
+
+MOBLEUINT8 pSensorsCadenceParam[sizeof(sensor_CadenceCbParam_t)];
+MOBLEUINT8 pSensorsSettingParam[sizeof(sensor_SettingCbParams_t)];
+
+APPLI_PENDING_PACKETS Appli_PendingPackets = {0};
+
+__attribute__((aligned(4)))const MOBLE_VENDOR_CB_MAP vendor_cb =
+{
+ Vendor_WriteLocalDataCb,
+ Vendor_ReadLocalDataCb,
+ Vendor_OnResponseDataCb
+};
+
+__attribute__((aligned(4)))const Appli_Vendor_cb_t VendorAppli_cb =
+{
+ /*Vendor Commands*/
+ Appli_Vendor_LEDControl, /// Vendor_WriteLocalDataCb with command = APPLI_LED_CONTROL_STATUS_CMD
+ Appli_Vendor_DeviceInfo, /// Vendor_WriteLocalDataCb with command = APPLI_DEVICE_INFO_CMD
+ Appli_Vendor_Test, /// Vendor_WriteLocalDataCb with command = APPLI_TEST_CMD
+ Appli_LedCtrl, /// Vendor_ReadLocalDataCb with command = APPLI_LED_CONTROL_STATUS_CMD
+ Appli_GetTestValue, /// Vendor_ReadLocalDataCb with command = APPLI_TEST_CMD
+ Appli_Vendor_Data_write /// Vendor_WriteLocalDataCb with command = APPLI_DATA_CNTRL_CMD
+};
+
+__attribute__((aligned(4)))const Appli_Generic_cb_t GenericAppli_cb =
+{
+ /* Generic OnOff callbacks */
+ Appli_Generic_OnOff_Set,
+ /* Generic OnOff Status callbacks */
+ Appli_Generic_OnOff_Status,
+ /* Generic Level callbacks */
+ Appli_Generic_Level_Set,
+ Appli_Generic_Delta_Set,
+ Appli_Generic_Move_Set,
+ /* Generic Level Status callbacks */
+ Appli_Generic_Level_Status,
+ /* Generic Power on off callbacks */
+ Appli_Generic_PowerOnOff_Set,
+ /* Generic Power on off callbacks */
+ Appli_Generic_PowerOnOff_Status,
+
+ /* Generic Default transition time callbacks */
+ Appli_Generic_DefaultTransitionTime_Set,
+ /* Generic Default transition time callbacks */
+ Appli_Generic_DefaultTransitionTime_Status
+};
+
+__attribute__((aligned(4)))const Appli_Generic_State_cb_t Appli_GenericState_cb =
+{
+
+ /* Generic Get On Off status */
+ Appli_Generic_GetOnOffStatus,
+ Appli_Generic_GetOnOffValue,
+ /* Generic Get level status */
+ Appli_Generic_GetLevelStatus,
+ /* Generic Get Power on off status */
+ Appli_Generic_GetPowerOnOffStatus,
+ /* Generic Get Default transition time status */
+ Appli_Generic_GetDefaultTransitionStatus
+};
+
+__attribute__((aligned(4)))const Appli_Light_GetStatus_cb_t Appli_Light_GetStatus_cb =
+{
+ Appli_Light_GetLightnessStatus,
+ Appli_Light_GetLightnessLinearStatus,
+ Appli_Light_GetLightnessDefaultStatus,
+ Appli_Light_GetLightnessLastStatus,
+ Appli_Light_GetLightnessRangeStatus,
+ Appli_Light_GetCtlLightStatus,
+ Appli_Light_GetCtlTargetStatus,
+ Appli_Light_GetCtlTemperatureStatus,
+ Appli_Light_GetCtlTemperatureRange,
+ Appli_Light_GetCtlDefaultStatus,
+ Appli_Light_GetHslStatus,
+ Appli_Light_GetHslTargetStatus,
+ Appli_Light_GetHslHueStatus,
+ Appli_Light_GetHslSaturationStatus,
+ Appli_Light_GetHslHueRange,
+ Appli_Light_GetHslSatRange,
+ Appli_Light_GetHslDefaultStatus
+};
+
+
+__attribute__((aligned(4)))const Appli_Light_cb_t LightAppli_cb =
+{
+ /* Light Lightness callbacks */
+ Appli_Light_Lightness_Set,
+ Appli_Light_Lightness_Status,
+
+ Appli_Light_Lightness_Linear_Set,
+ Appli_Light_Lightness_Linear_Status,
+
+ Appli_Light_Lightness_Default_Set,
+ Appli_Light_Lightness_Default_Status,
+
+ Appli_Light_Lightness_Last_Set,
+ Appli_Light_Lightness_Last_Status,
+
+ Appli_Light_Lightness_Range_Set,
+ Appli_Light_Lightness_Range_Status,
+
+ Appli_Light_Ctl_Set,
+ Appli_Light_Ctl_Status,
+
+ Appli_Light_CtlTemperature_Set,
+ Appli_Light_CtlTemperature_Status,
+
+ Appli_Light_CtlTemperature_Range_Set,
+ Appli_Light_CtlTemperature_Range_Status,
+
+ Appli_Light_CtlDefault_Set,
+ Appli_Light_CtlDefault_Status,
+
+ Appli_Light_Hsl_Set,
+ Appli_Light_Hsl_Status,
+
+ Appli_Light_HslHue_Set,
+ Appli_Light_HslHue_Status,
+
+ Appli_Light_HslSaturation_Set,
+ Appli_Light_HslSaturation_Status,
+
+ Appli_Light_HslDefault_Set,
+ Appli_Light_HslDefault_Status,
+
+ Appli_Light_HslRange_Set,
+ Appli_Light_HslRange_Status
+};
+
+/*#ifdef ENABLE_SENSOR_MODEL_CLIENT*/
+__attribute__((aligned(4))) const sensor_client_cb_t SensorAppli_cb =
+{
+ Appli_Sensor_Descriptor_Status,
+ Appli_Sensor_Cadence_Status,
+ Appli_Sensor_Settings_Status,
+ Appli_Sensor_Setting_Status,
+ Appli_Sensor_Status,
+ Appli_Sensor_Column_Status,
+ Appli_Sensor_Series_Status
+};
+/*#endif*/
+
+__attribute__((aligned(4)))const MODEL_SIG_cb_t Model_SIG_cb[] =
+{
+#ifdef ENABLE_GENERIC_MODEL_SERVER
+ {
+ GenericModelServer_GetOpcodeTableCb,
+ GenericModelServer_GetStatusRequestCb,
+ GenericModelServer_ProcessMessageCb
+ },
+#endif
+
+#ifdef ENABLE_LIGHT_MODEL_SERVER
+ {
+ LightModelServer_GetOpcodeTableCb,
+ LightModelServer_GetStatusRequestCb,
+ LightModelServer_ProcessMessageCb
+ },
+#endif
+
+#ifdef ENABLE_SENSOR_MODEL_SERVER
+{
+ SensorModelServer_GetOpcodeTableCb,
+ SensorModelServer_GetStatusRequestCb,
+ SensorModelServer_ProcessMessageCb
+ },
+#endif
+
+#ifdef ENABLE_TIME_SCENE_MODEL_SERVER
+ {
+ Time_SceneModelServer_GetOpcodeTableCb,
+ Time_SceneModelServer_GetStatusRequestCb,
+ Time_SceneModelServer_ProcessMessageCb
+ },
+#endif
+
+#ifdef ENABLE_LIGHT_MODEL_SERVER_LC
+ {
+ LightLcServer_GetOpcodeTableCb,
+ LightLcServer_GetStatusRequestCb,
+ LightLcServer_ProcessMessageCb
+ },
+#endif
+
+#ifdef ENABLE_GENERIC_MODEL_CLIENT
+ {
+ GenericModelClient_GetOpcodeTableCb,
+ GenericModelClient_GetStatusRequestCb,
+ GenericModelClient_ProcessMessageCb
+ },
+#endif
+
+#ifdef ENABLE_CONFIG_MODEL_CLIENT
+ {
+ ConfigClientModel_GetOpcodeTableCb,
+ ConfigClientModel_GetStatusRequestCb,
+ ConfigClientModel_ProcessMessageCb
+ },
+#endif
+#ifdef ENABLE_LIGHT_MODEL_CLIENT
+ {
+ LightModelClient_GetOpcodeTableCb,
+ LightModelClient_GetStatusRequestCb,
+ LightModelClient_ProcessMessageCb
+ },
+#endif
+
+#ifdef ENABLE_SENSOR_MODEL_CLIENT
+ {
+ SensorsModelClient_GetOpcodeTableCb,
+ SensorsModelClient_GetStatusRequestCb,
+ SensorsModelClient_ProcessMessageCb
+ },
+#endif
+
+ {
+ 0, 0, 0
+ }
+};
+
+__attribute__((aligned(4)))const APPLI_SAVE_MODEL_STATE_CB SaveModelState_cb = AppliNvm_SaveModelState;
+
+#if 0
+__attribute__((aligned(4)))const APPLI_SAVE_MODEL_TEST_STATE_CB SaveModelTestState_cb = AppliNVM_Save_FlashTesting;
+__attribute__((aligned(4)))const APPLI_RETRIEVE_MODEL_TEST_STATE_CB RetrieveModelTestState_cb = AppliNVM_Retrieve_FlashTesting;
+#endif
+
+#define MODEL_SIG_COUNT ( ( sizeof(Model_SIG_cb)/sizeof(Model_SIG_cb[0]) - 1 ))
+
+__attribute__((aligned(4)))const MODEL_Vendor_cb_t Model_Vendor_cb[] =
+{
+#ifdef ENABLE_VENDOR_MODEL_SERVER
+ {
+ VendorModel_PID1_GetOpcodeTableCb,
+ VendorModel_PID1_GetStatusRequestCb,
+ VendorModel_PID1_ProcessMessageCb
+ },
+#endif
+ { 0, 0,0 }
+};
+
+#define MODEL_VENDOR_COUNT ( ( sizeof(Model_Vendor_cb)/sizeof(Model_Vendor_cb[0]) - 1 ))
+
+extern MOBLEUINT8 NumberOfElements;
+
+/* Private function prototypes -----------------------------------------------*/
+/* Private functions ---------------------------------------------------------*/
+
+void GetApplicationVendorModels(const MODEL_Vendor_cb_t** pModelsTable, MOBLEUINT32* VendorModelscount)
+{
+ *pModelsTable = Model_Vendor_cb ;
+ *VendorModelscount = MODEL_VENDOR_COUNT;
+
+ TRACE_M(TF_VENDOR_M, "GetApplicationVendorModels \r\n");
+}
+
+/**
+* @brief Initialization Commands for Models
+* @param void
+* @retval void
+*/
+void BLEMesh_ModelsInit(void)
+{
+
+#ifdef ENABLE_SAVE_MODEL_STATE_NVM
+
+ MOBLEUINT16 modelStateLoad_Size;
+ MOBLEUINT8 modelStateLoadBuff[APP_NVM_MODEL_SIZE];
+
+#ifdef CLIENT
+ MOBLEUINT8 PrvnStateLoad_Size;
+ MOBLEUINT8 PrvnlStateLoadBuff[16];
+#endif
+
+#if 0
+#ifdef ENABLE_NVM_TEST
+ /* Testing of flash code */
+ Device_FlashTesting();
+#endif
+#endif
+
+ /* Inintialise the light model range states with default values */
+ Light_ModelRangeInit();
+
+ /* Callbacks used by BlueNRG-Mesh Models */
+ BLEMesh_SetSIGModelsCbMap(Model_SIG_cb, MODEL_SIG_COUNT);
+
+#if defined ENABLE_SENSOR_MODEL_SERVER && !defined CUSTOM_BOARD_PWM_SELECTION
+ /* Initialization of sensors */
+ Appli_Sensor_Init();
+#endif
+
+ Appli_Light_LCs_Init();
+#endif
+
+ /* Load generic model states from nvm */
+ AppliNvm_LoadModelState(modelStateLoadBuff, &modelStateLoad_Size);
+ if (modelStateLoad_Size != 0)
+ {
+ /* update states of generic model */
+ Model_RestoreStates(modelStateLoadBuff, modelStateLoad_Size);
+ }
+
+#ifdef CLIENT
+ AppliPrvnNvm_LoadData(PrvnlStateLoadBuff,&PrvnStateLoad_Size);
+#endif
+
+}
+
+/**
+* @brief Process Commands for Models
+* @param void
+* @retval void
+*/
+void BLEMesh_ModelsProcess(void)
+{
+#ifdef ENABLE_GENERIC_MODEL_SERVER
+ Generic_Process();
+#endif
+
+#ifdef ENABLE_LIGHT_MODEL_SERVER
+ Lighting_Process();
+#endif
+
+#ifdef ENABLE_VENDOR_MODEL_SERVER
+ Vendor_Process();
+#endif
+/* Define this Macro to enable the publication of sensors data.*/
+#if defined ENABLE_SENSOR_MODEL_SERVER
+ Sensor_Process();
+#endif
+
+#if ENABLE_APPLI_TEST
+ Test_Process();
+#endif
+
+#ifdef ENABLE_SAVE_MODEL_STATE_NVM
+ ModelSave_Process();
+#endif
+
+#ifdef ENABLE_LIGHT_MODEL_SERVER_LC
+ Light_LC_Process();
+#endif
+}
+
+/**
+* @brief Publish Command for Models
+* @param void
+* @retval void
+*/
+void BLEMesh_ModelsCommand(void)
+{
+#ifdef VENDOR_CLIENT_MODEL_PUBLISH
+ Appli_Vendor_Publish(BLEMesh_GetAddress());
+#endif
+
+#if defined(GENERIC_CLIENT_MODEL_PUBLISH) || defined(LIGHT_CLIENT_MODEL_PUBLISH)
+ Led_Value ^= APPLI_LED_ON;
+ pGeneric_OnOffParam[0] = Led_Value; /* OnOff parameter byte 0 : The target value of the Generic Onoff state */
+
+ pLightLCModeParam[0] = Led_Value;
+ pLightLCOccupancyModeParam[0] = Led_Value;
+ pLightLCOnOffParam[0] = Led_Value;
+
+ /*This Switch-case allows to quickly set the different Models Messages parameters in order to demonstrate Client APIs functioning */
+ switch (ButtonIndex_Value){
+ case 0:
+ ButtonIndex_Value=0x1;
+
+ pGeneric_LevelParam[0]= 0xE8; /* Level parameter byte 0 : The target value of the Generic Level state */
+ pGeneric_LevelParam[1]= 0x03; /* Level parameter byte 1 : The target value of the Generic Level state */
+
+ pGeneric_DeltaLevelParam[0]= 0xE8; /* Delta Level parameter byte 0 : The Delta change of the Generic Level state */
+ pGeneric_DeltaLevelParam[1]= 0x03; /* Delta Level parameter byte 1 : The Delta change of the Generic Level state */
+ pGeneric_DeltaLevelParam[2]= 0x00; /* Delta Level parameter byte 2 : The Delta change of the Generic Level state */
+ pGeneric_DeltaLevelParam[3]= 0x00; /* Delta Level parameter byte 3 : The Delta change of the Generic Level state */
+
+ pGeneric_MoveLevelParam[0]= 0xE8; /*Move Delta Level parameter byte 0 : The Delta Level step to calculate Move speed for the Generic Level state */
+ pGeneric_MoveLevelParam[1]= 0x03; /*Move Delta Level parameter byte 1 : The Delta Level step to calculate Move speed for the Generic Level state */
+
+ pGeneric_DefaultTransitionTimeParam[0]=0x0F; /*Transition time parameter byte 0 : The value of the Generic Default Transition Time state */
+
+ pGeneric_PowerOnOffParam[0]=0x1; /*OnPowerUp parameter byte 0 : The value of the Generic OnPowerUp state */
+
+ pLightnessParam[0] = 0xE8; /*Lightness parameter byte 0 : The target value of the Light Lightness Actual/Linear/Default state */
+ pLightnessParam[1] = 0x03; /*Lightness parameter byte 1 : The target value of the Light Lightness Actual/Linear/Default state */
+
+ pLightnessRangeParam[0] = 0xE8; /*Lightness Range Min parameter byte 0 : The value of the Lightness Range Min field of the Light Lightness Range state */
+ pLightnessRangeParam[1] = 0x03; /*Lightness Range Min parameter byte 1 : The value of the Lightness Range Min field of the Light Lightness Range state */
+ pLightnessRangeParam[2] = 0x88; /*Lightness Range Max parameter byte 0 : The value of the Lightness Range Max field of the Light Lightness Range state */
+ pLightnessRangeParam[3] = 0x13; /*Lightness Range Max parameter byte 1 : The value of the Lightness Range Max field of the Light Lightness Range state */
+
+ pLightCtlParam[0] = 0xE8; /*CTL Lightness parameter byte 0 : The target value of the Light CTL Lightness state */
+ pLightCtlParam[1] = 0x03; /*CTL Lightness parameter byte 1 : The target value of the Light CTL Lightness state */
+ pLightCtlParam[2] = 0xE8; /*CTL Temperature parameter byte 0 : The target value of the Light CTL Temperature state */
+ pLightCtlParam[3] = 0x03; /*CTL Temperature parameter byte 1 : The target value of the Light CTL Temperature state */
+ pLightCtlParam[4] = 0xE8; /*CTL Delta UV parameter byte 0 : The target value of the Light CTL Delta UV state */
+ pLightCtlParam[5] = 0x03; /*CTL Delta UV parameter byte 1 : The target value of the Light CTL Delta UV state */
+
+ pLightCtlTemperatureParam[0] = 0xE8; /*CTL Temperature parameter byte 0 : The target value of the Light CTL Temperature state */
+ pLightCtlTemperatureParam[1] = 0x03; /*CTL Temperature parameter byte 1 : The target value of the Light CTL Temperature state */
+ pLightCtlTemperatureParam[2] = 0xE8; /*CTL Delta UV parameter byte 0 : The target value of the Light CTL Delta UV state */
+ pLightCtlTemperatureParam[3] = 0x03; /*CTL Delta UV parameter byte 1 : The target value of the Light CTL Delta UV state */
+
+ pLightCtlTemperatureRangeParam[0] = 0xE8; /*Temperature Range Min parameter byte 0 : The value of the Temperature Range Min field of the Light CTL Temperature Range state */
+ pLightCtlTemperatureRangeParam[1] = 0x03; /*Temperature Range Min parameter byte 1 : The value of the Temperature Range Min field of the Light CTL Temperature Range state */
+ pLightCtlTemperatureRangeParam[2] = 0x88; /*Temperature Range Max parameter byte 0 : The value of the Temperature Range Max field of the Light CTL Temperature Range state */
+ pLightCtlTemperatureRangeParam[3] = 0x13; /*Temperature Range Max parameter byte 1 : The value of the Temperature Range Max field of the Light CTL Temperature Range state */
+
+ pLightCtlDefaultParam[0] = 0xE8; /*CTL Lightness parameter byte 0 : The target value of the Light CTL Lightness Default state*/
+ pLightCtlDefaultParam[1] = 0x03; /*CTL Lightness parameter byte 1 : The target value of the Light CTL Lightness Default state*/
+ pLightCtlDefaultParam[2] = 0xE8; /*CTL Temperature parameter byte 0 : The target value of the Light CTL Temperature Default state*/
+ pLightCtlDefaultParam[3] = 0x03; /*CTL Temperature parameter byte 1 : The target value of the Light CTL Temperature Default state*/
+ pLightCtlDefaultParam[4] = 0xE8; /*CTL Delta UV parameter byte 0 : The target value of the Light CTL Delta UV Default state*/
+ pLightCtlDefaultParam[5] = 0x03; /*CTL Delta UV parameter byte 1 : The target value of the Light CTL Delta UV Default state*/
+ /** Red color **/
+ pLightHslParam[0] = 0x44; /*HSL Lightness parameter byte 0 : The target value of the Light HSL Lightness state*/
+ pLightHslParam[1] = 0x44; /*HSL Lightness parameter byte 1 : The target value of the Light HSL Lightness state*/
+ pLightHslParam[2] = 0x64; /*HSL Hue parameter byte 0 : The target value of the Light HSL Hue state*/
+ pLightHslParam[3] = 0x04; /*HSL Hue parameter byte 1 : The target value of the Light HSL Hue state*/
+ pLightHslParam[4] = 0xff; /*HSL Saturation parameter byte 0 : The target value of the Light HSL Saturation state*/
+ pLightHslParam[5] = 0xff; /*HSL Saturation parameter byte 1 : The target value of the Light HSL Saturation state*/
+
+ pLightHslRangeParam[0] = 0xE8; /*HSL Hue Range Min parameter byte 0 : The value of the Hue Range Min field of the Light HSL Hue Range state*/
+ pLightHslRangeParam[1] = 0x03; /*HSL Hue Range Min parameter byte 1 : The value of the Hue Range Min field of the Light HSL Hue Range state*/
+ pLightHslRangeParam[2] = 0x88; /*HSL Hue Range Max parameter byte 0 : The value of the Hue Range Max field of the Light HSL Hue Range state*/
+ pLightHslRangeParam[3] = 0x13; /*HSL Hue Range Max parameter byte 1 : The value of the Hue Range Max field of the Light HSL Hue Range state*/
+ pLightHslRangeParam[4] = 0x88; /*HSL Saturation Min parameter byte 0 : The value of the Saturation Range Min field of the Light HSL Saturation Range state*/
+ pLightHslRangeParam[5] = 0x13; /*HSL Saturation Min parameter byte 1 : The value of the Saturation Range Min field of the Light HSL Saturation Range state*/
+ pLightHslRangeParam[6] = 0x70; /*HSL Saturation Max parameter byte 0 : The value of the Saturation Range Max field of the Light HSL Saturation Range state*/
+ pLightHslRangeParam[7] = 0x17; /*HSL Saturation Max parameter byte 1 : The value of the Saturation Range Max field of the Light HSL Saturation Range state*/
+
+ pLightHslHueParam[0] = 0xE8; /*HSL Hue parameter byte 0 : The target value of the Light HSL Hue state*/
+ pLightHslHueParam[1] = 0x03; /*HSL Hue parameter byte 1 : The target value of the Light HSL Hue state*/
+
+ pLightHslSaturationParam[0] = 0xE8; /*HSL Saturation parameter byte 0 : The target value of the Light HSL Saturation state*/
+ pLightHslSaturationParam[1] = 0x03; /*HSL Saturation parameter byte 1 : The target value of the Light HSL Saturation state*/
+
+ /*LIGHT_CONTROL_AMBIENT_LUXLEVEL_ON_PID : 0x002B*/
+ pLightLCPropertyParam[0]= 0x2B; /* Property ID byte 0 : Property ID identifying a Light LC Property.*/
+ pLightLCPropertyParam[1]= 0x00; /* Property ID byte 1 : Property ID identifying a Light LC Property.*/
+ pLightLCPropertyParam[2]= 0x44; /* Property ID byte 0 : Property ID identifying a Light LC Property.*/
+ pLightLCPropertyParam[3]= 0x44; /* Property ID byte 1 : Property ID identifying a Light LC Property.*/
+ pLightLCPropertyParam[4]= 0x44; /* Property ID byte 2 : Property ID identifying a Light LC Property.*/
+ break;
+
+ case 1:
+ ButtonIndex_Value=0x2;
+
+ pGeneric_LevelParam[0]= 0xff; /* Level parameter byte 0 : The target value of the Generic Level state */
+ pGeneric_LevelParam[1]= 0x7f; /* Level parameter byte 1 : The target value of the Generic Level state */
+
+ pGeneric_DeltaLevelParam[0]= 0x10; /* Delta Level parameter byte 0 : The Delta change of the Generic Level state */
+ pGeneric_DeltaLevelParam[1]= 0x27; /* Delta Level parameter byte 1 : The Delta change of the Generic Level state */
+ pGeneric_DeltaLevelParam[2]= 0x00; /* Delta Level parameter byte 2 : The Delta change of the Generic Level state */
+ pGeneric_DeltaLevelParam[3]= 0x00; /* Delta Level parameter byte 3 : The Delta change of the Generic Level state */
+
+ pGeneric_MoveLevelParam[0]= 0xff; /*Move Delta Level parameter byte 0 : The Delta Level step to calculate Move speed for the Generic Level state */
+ pGeneric_MoveLevelParam[1]= 0x7f; /*Move Delta Level parameter byte 1 : The Delta Level step to calculate Move speed for the Generic Level state */
+
+ pGeneric_DefaultTransitionTimeParam[0]=0x10; /*Transition time parameter byte 0 : The value of the Generic Default Transition Time state */
+
+ pGeneric_PowerOnOffParam[0]=0x2; /*OnPowerUp parameter byte 0 : The value of the Generic OnPowerUp state. */
+
+ pLightnessParam[0] = 0xff; /*Lightness parameter byte 0 : The target value of the Light Lightness Actual/Linear/Default state */
+ pLightnessParam[1] = 0xff; /*Lightness parameter byte 1 : The target value of the Light Lightness Actual/Linear/Default state */
+
+ pLightnessRangeParam[0] = 0x00; /*Lightness Range Min parameter byte 0 : The value of the Lightness Range Min field of the Light Lightness Range state */
+ pLightnessRangeParam[1] = 0x00; /*Lightness Range Min parameter byte 1 : The value of the Lightness Range Min field of the Light Lightness Range state */
+ pLightnessRangeParam[2] = 0xff; /*Lightness Range Max parameter byte 0 : The value of the Lightness Range Max field of the Light Lightness Range state */
+ pLightnessRangeParam[3] = 0xff; /*Lightness Range Max parameter byte 1 : The value of the Lightness Range Max field of the Light Lightness Range state */
+
+ pLightCtlParam[0] = 0xff; /*CTL Lightness parameter byte 0 : The target value of the Light CTL Lightness state */
+ pLightCtlParam[1] = 0xff; /*CTL Lightness parameter byte 1 : The target value of the Light CTL Lightness state */
+ pLightCtlParam[2] = 0x20; /*CTL Temperature parameter byte 0 : The target value of the Light CTL Temperature state */
+ pLightCtlParam[3] = 0x4e; /*CTL Temperature parameter byte 1 : The target value of the Light CTL Temperature state */
+ pLightCtlParam[4] = 0xff; /*CTL Delta UV parameter byte 0 : The target value of the Light CTL Delta UV state */
+ pLightCtlParam[5] = 0x7f; /*CTL Delta UV parameter byte 1 : The target value of the Light CTL Delta UV state */
+
+ pLightCtlTemperatureParam[0] = 0x20; /*CTL Temperature parameter byte 0 : The target value of the Light CTL Temperature state */
+ pLightCtlTemperatureParam[1] = 0x4e; /*CTL Temperature parameter byte 1 : The target value of the Light CTL Temperature state */
+ pLightCtlTemperatureParam[2] = 0xff; /*CTL Delta UV parameter byte 0 : The target value of the Light CTL Delta UV state */
+ pLightCtlTemperatureParam[3] = 0x7f; /*CTL Delta UV parameter byte 1 : The target value of the Light CTL Delta UV state */
+
+ pLightCtlTemperatureRangeParam[0] = 0x19; /*Temperature Range Min parameter byte 0 : The value of the Temperature Range Min field of the Light CTL Temperature Range state */
+ pLightCtlTemperatureRangeParam[1] = 0x4e; /*Temperature Range Min parameter byte 1 : The value of the Temperature Range Min field of the Light CTL Temperature Range state */
+ pLightCtlTemperatureRangeParam[2] = 0x20; /*Temperature Range Max parameter byte 0 : The value of the Temperature Range Max field of the Light CTL Temperature Range state */
+ pLightCtlTemperatureRangeParam[3] = 0x4e; /*Temperature Range Max parameter byte 1 : The value of the Temperature Range Max field of the Light CTL Temperature Range state */
+
+ pLightCtlDefaultParam[0] = 0xff; /*CTL Lightness parameter byte 0 : The target value of the Light CTL Lightness Default state*/
+ pLightCtlDefaultParam[1] = 0xff; /*CTL Lightness parameter byte 1 : The target value of the Light CTL Lightness Default state*/
+ pLightCtlDefaultParam[2] = 0x20; /*CTL Temperature parameter byte 0 : The target value of the Light CTL Temperature Default state*/
+ pLightCtlDefaultParam[3] = 0x4e; /*CTL Temperature parameter byte 1 : The target value of the Light CTL Temperature Default state*/
+ pLightCtlDefaultParam[4] = 0xff; /*CTL Delta UV parameter byte 0 : The target value of the Light CTL Delta UV Default state*/
+ pLightCtlDefaultParam[5] = 0x7f; /*CTL Delta UV parameter byte 1 : The target value of the Light CTL Delta UV Default state*/
+ /** Green color **/
+ pLightHslParam[0] = 0xc6; /*HSL Lightness parameter byte 0 : The target value of the Light HSL Lightness state*/
+ pLightHslParam[1] = 0x46; /*HSL Lightness parameter byte 1 : The target value of the Light HSL Lightness state*/
+ pLightHslParam[2] = 0x19; /*HSL Hue parameter byte 0 : The target value of the Light HSL Hue state*/
+ pLightHslParam[3] = 0x51; /*HSL Hue parameter byte 1 : The target value of the Light HSL Hue state*/
+ pLightHslParam[4] = 0xd7; /*HSL Saturation parameter byte 0 : The target value of the Light HSL Saturation state*/
+ pLightHslParam[5] = 0xed; /*HSL Saturation parameter byte 1 : The target value of the Light HSL Saturation state*/
+
+ pLightHslRangeParam[0] = 0x00; /*HSL Hue Range Min parameter byte 0 : The value of the Hue Range Min field of the Light HSL Hue Range state*/
+ pLightHslRangeParam[1] = 0xf0; /*HSL Hue Range Min parameter byte 1 : The value of the Hue Range Min field of the Light HSL Hue Range state*/
+ pLightHslRangeParam[2] = 0xff; /*HSL Hue Range Max parameter byte 0 : The value of the Hue Range Max field of the Light HSL Hue Range state*/
+ pLightHslRangeParam[3] = 0xff; /*HSL Hue Range Max parameter byte 1 : The value of the Hue Range Max field of the Light HSL Hue Range state*/
+ pLightHslRangeParam[4] = 0x00; /*HSL Saturation Min parameter byte 0 : The value of the Saturation Range Min field of the Light HSL Saturation Range state*/
+ pLightHslRangeParam[5] = 0xe0; /*HSL Saturation Min parameter byte 1 : The value of the Saturation Range Min field of the Light HSL Saturation Range state*/
+ pLightHslRangeParam[6] = 0xff; /*HSL Saturation Max parameter byte 0 : The value of the Saturation Range Max field of the Light HSL Saturation Range state*/
+ pLightHslRangeParam[7] = 0xef; /*HSL Saturation Max parameter byte 1 : The value of the Saturation Range Max field of the Light HSL Saturation Range state*/
+
+ pLightHslHueParam[0] = 0xff; /*HSL Hue parameter byte 0 : The target value of the Light HSL Hue state*/
+ pLightHslHueParam[1] = 0xff; /*HSL Hue parameter byte 1 : The target value of the Light HSL Hue state*/
+
+ pLightHslSaturationParam[0] = 0xff; /*HSL Saturation parameter byte 0 : The target value of the Light HSL Saturation state*/
+ pLightHslSaturationParam[1] = 0xff; /*HSL Saturation parameter byte 1 : The target value of the Light HSL Saturation state*/
+
+ /*LIGHT_CONTROL_AMBIENT_LUXLEVEL_ON_PID : 0x002B*/
+ pLightLCPropertyParam[0]= 0x2B; /* Property ID byte 0 : Property ID identifying a Light LC Property.*/
+ pLightLCPropertyParam[1]= 0x00; /* Property ID byte 1 : Property ID identifying a Light LC Property.*/
+ pLightLCPropertyParam[2]= 0x01; /* Property ID byte 0 : Property ID identifying a Light LC Property.*/
+ pLightLCPropertyParam[3]= 0x00; /* Property ID byte 1 : Property ID identifying a Light LC Property.*/
+ pLightLCPropertyParam[4]= 0x10; /* Property ID byte 2 : Property ID identifying a Light LC Property.*/
+ break;
+
+ case 2:
+ ButtonIndex_Value=0x0;
+
+ pGeneric_LevelParam[0]= 0x00; /* Level parameter byte 0 : The target value of the Generic Level state */
+ pGeneric_LevelParam[1]= 0x00; /* Level parameter byte 1 : The target value of the Generic Level state */
+
+ pGeneric_DeltaLevelParam[0]= 0x00; /* Delta Level parameter byte 0 : The Delta change of the Generic Level state */
+ pGeneric_DeltaLevelParam[1]= 0x00; /* Delta Level parameter byte 1 : The Delta change of the Generic Level state */
+ pGeneric_DeltaLevelParam[2]= 0x00; /* Delta Level parameter byte 2 : The Delta change of the Generic Level state */
+ pGeneric_DeltaLevelParam[3]= 0x00; /* Delta Level parameter byte 3 : The Delta change of the Generic Level state */
+
+ pGeneric_MoveLevelParam[0]= 0x00; /*Move Delta Level parameter byte 0 : The Delta Level step to calculate Move speed for the Generic Level state */
+ pGeneric_MoveLevelParam[1]= 0x00; /*Move Delta Level parameter byte 1 : The Delta Level step to calculate Move speed for the Generic Level state */
+
+ pGeneric_DefaultTransitionTimeParam[0]=0x00; /*Transition time parameter byte 0 : The value of the Generic Default Transition Time state */
+
+ pGeneric_PowerOnOffParam[0]=0x0; /*OnPowerUp parameter byte 0 : The value of the Generic OnPowerUp state. */
+
+ pLightnessParam[0] = 0x00; /*Lightness parameter byte 0 : The target value of the Light Lightness Actual/Linear/Default state */
+ pLightnessParam[1] = 0x00; /*Lightness parameter byte 1 : The target value of the Light Lightness Actual/Linear/Default state */
+
+ pLightnessRangeParam[0] = 0x00; /*Lightness Range Min parameter byte 0 : The value of the Lightness Range Min field of the Light Lightness Range state */
+ pLightnessRangeParam[1] = 0x00; /*Lightness Range Min parameter byte 1 : The value of the Lightness Range Min field of the Light Lightness Range state */
+ pLightnessRangeParam[2] = 0x00; /*Lightness Range Max parameter byte 0 : The value of the Lightness Range Max field of the Light Lightness Range state */
+ pLightnessRangeParam[3] = 0x10; /*Lightness Range Max parameter byte 1 : The value of the Lightness Range Max field of the Light Lightness Range state */
+
+ pLightCtlParam[0] = 0x00; /*CTL Lightness parameter byte 0 : The target value of the Light CTL Lightness state */
+ pLightCtlParam[1] = 0x00; /*CTL Lightness parameter byte 1 : The target value of the Light CTL Lightness state */
+ pLightCtlParam[2] = 0x20; /*CTL Temperature parameter byte 0 : The target value of the Light CTL Temperature state */
+ pLightCtlParam[3] = 0x03; /*CTL Temperature parameter byte 1 : The target value of the Light CTL Temperature state */
+ pLightCtlParam[4] = 0x00; /*CTL Delta UV parameter byte 0 : The target value of the Light CTL Delta UV state */
+ pLightCtlParam[5] = 0x00; /*CTL Delta UV parameter byte 1 : The target value of the Light CTL Delta UV state */
+
+ pLightCtlTemperatureParam[0] = 0x20; /*CTL Temperature parameter byte 0 : The target value of the Light CTL Temperature state */
+ pLightCtlTemperatureParam[1] = 0x03; /*CTL Temperature parameter byte 1 : The target value of the Light CTL Temperature state */
+ pLightCtlTemperatureParam[2] = 0x00; /*CTL Delta UV parameter byte 0 : The target value of the Light CTL Delta UV state */
+ pLightCtlTemperatureParam[3] = 0x00; /*CTL Delta UV parameter byte 1 : The target value of the Light CTL Delta UV state */
+
+ pLightCtlTemperatureRangeParam[0] = 0x20; /*Temperature Range Min parameter byte 0 : The value of the Temperature Range Min field of the Light CTL Temperature Range state */
+ pLightCtlTemperatureRangeParam[1] = 0x03; /*Temperature Range Min parameter byte 1 : The value of the Temperature Range Min field of the Light CTL Temperature Range state */
+ pLightCtlTemperatureRangeParam[2] = 0x21; /*Temperature Range Max parameter byte 0 : The value of the Temperature Range Max field of the Light CTL Temperature Range state */
+ pLightCtlTemperatureRangeParam[3] = 0x03; /*Temperature Range Max parameter byte 1 : The value of the Temperature Range Max field of the Light CTL Temperature Range state */
+
+ pLightCtlDefaultParam[0] = 0x00; /*CTL Lightness parameter byte 0 : The target value of the Light CTL Lightness Default state */
+ pLightCtlDefaultParam[1] = 0x00; /*CTL Lightness parameter byte 1 : The target value of the Light CTL Lightness Default state */
+ pLightCtlDefaultParam[2] = 0x20; /*CTL Temperature parameter byte 0 : The target value of the Light CTL Temperature Default state */
+ pLightCtlDefaultParam[3] = 0x03; /*CTL Temperature parameter byte 1 : The target value of the Light CTL Temperature Default state */
+ pLightCtlDefaultParam[4] = 0x00; /*CTL Delta UV parameter byte 0 : The target value of the Light CTL Delta UV Default state */
+ pLightCtlDefaultParam[5] = 0x00; /*CTL Delta UV parameter byte 1 : The target value of the Light CTL Delta UV Default state */
+
+ pLightHslParam[0] = 0x00; /*HSL Lightness parameter byte 0 : The target value of the Light HSL Lightness state */
+ pLightHslParam[1] = 0x00; /*HSL Lightness parameter byte 1 : The target value of the Light HSL Lightness state */
+ pLightHslParam[2] = 0x00; /*HSL Hue parameter byte 0 : The target value of the Light HSL Hue state */
+ pLightHslParam[3] = 0x00; /*HSL Hue parameter byte 1 : The target value of the Light HSL Hue state */
+ pLightHslParam[4] = 0x00; /*HSL Saturation parameter byte 0 : The target value of the Light HSL Saturation state */
+ pLightHslParam[5] = 0x00; /*HSL Saturation parameter byte 1 : The target value of the Light HSL Saturation state */
+
+ pLightHslRangeParam[0] = 0x00; /*HSL Hue Range Min parameter byte 0 : The value of the Hue Range Min field of the Light HSL Hue Range state*/
+ pLightHslRangeParam[1] = 0x00; /*HSL Hue Range Min parameter byte 1 : The value of the Hue Range Min field of the Light HSL Hue Range state*/
+ pLightHslRangeParam[2] = 0x00; /*HSL Hue Range Max parameter byte 0 : The value of the Hue Range Max field of the Light HSL Hue Range state*/
+ pLightHslRangeParam[3] = 0x10; /*HSL Hue Range Max parameter byte 1 : The value of the Hue Range Max field of the Light HSL Hue Range state*/
+ pLightHslRangeParam[4] = 0x00; /*HSL Saturation Min parameter byte 0 : The value of the Saturation Range Min field of the Light HSL Saturation Range state*/
+ pLightHslRangeParam[5] = 0x00; /*HSL Saturation Min parameter byte 1 : The value of the Saturation Range Min field of the Light HSL Saturation Range state*/
+ pLightHslRangeParam[6] = 0x00; /*SL Saturation Max parameter byte 0 : The value of the Saturation Range Max field of the Light HSL Saturation Range state*/
+ pLightHslRangeParam[7] = 0x20; /*HSL Saturation Max parameter byte 1 : The value of the Saturation Range Max field of the Light HSL Saturation Range state*/
+
+ pLightHslHueParam[0] = 0x00; /*HSL Hue parameter byte 0 : The target value of the Light HSL Hue state */
+ pLightHslHueParam[1] = 0x00; /*HSL Hue parameter byte 1 : The target value of the Light HSL Hue state */
+
+ pLightHslSaturationParam[0] = 0x00; /*HSL Saturation parameter byte 0 : The target value of the Light HSL Saturation state*/
+ pLightHslSaturationParam[1] = 0x00; /*HSL Saturation parameter byte 1 : The target value of the Light HSL Saturation state*/
+
+ /*LIGHT_CONTROL_AMBIENT_LUXLEVEL_ON_PID : 0x002B */
+ pLightLCPropertyParam[0]= 0x2B; /* Property ID byte 0 : Property ID identifying a Light LC Property.*/
+ pLightLCPropertyParam[1]= 0x00; /* Property ID byte 1 : Property ID identifying a Light LC Property.*/
+ pLightLCPropertyParam[2]= 0x00; /* Property ID byte 0 : Property ID identifying a Light LC Property.*/
+ pLightLCPropertyParam[3]= 0x00; /* Property ID byte 1 : Property ID identifying a Light LC Property.*/
+ pLightLCPropertyParam[4]= 0x00; /* Property ID byte 2 : Property ID identifying a Light LC Property.*/
+ break;
+
+ default:
+ break;
+ }
+
+
+#ifdef GENERIC_CLIENT_MODEL_PUBLISH
+ /** GENERIC ONOFF **/
+/* TRACE_M(TF_GENERIC_CLIENT_M, "----------- Generic API ONOFF SET ACK ------------- \r\n");
+ Appli_GenericClient_API(0, GENERIC_ON_OFF_SET_ACK, pGeneric_OnOffParam);
+ */
+ TRACE_M(TF_GENERIC_CLIENT_M, "----------- Generic API ONOFF SET UNACK ------------- \r\n");
+ Appli_GenericClient_API(0, GENERIC_ON_OFF_SET_UNACK, pGeneric_OnOffParam);
+
+ /** GENERIC LEVEL **/
+/* TRACE_M(TF_GENERIC_CLIENT_M, "----------- Generic API LEVEL SET ACK ------------- \r\n");*/
+/* Appli_GenericClient_API(0, GENERIC_LEVEL_SET_ACK, pGeneric_LevelParam); */
+/* */
+/* TRACE_M(TF_GENERIC_CLIENT_M, "----------- Generic API LEVEL SET UNACK ------------- \r\n");*/
+/* Appli_GenericClient_API(0, GENERIC_LEVEL_SET_UNACK, pGeneric_LevelParam); */
+/* */
+/* TRACE_M(TF_GENERIC_CLIENT_M, "----------- Generic API DELTA LEVEL SET ACK ------------- \r\n");*/
+/* Appli_GenericClient_API(0, GENERIC_DELTA_SET, pGeneric_DeltaLevelParam);*/
+/* */
+/* TRACE_M(TF_GENERIC_CLIENT_M, "----------- Generic API DELTA LEVEL SET UNACK ------------- \r\n");*/
+/* Appli_GenericClient_API(0, GENERIC_DELTA_SET_UNACK, pGeneric_DeltaLevelParam); */
+/* */
+/* TRACE_M(TF_GENERIC_CLIENT_M, "----------- Generic API MOVE DELTA LEVEL SET ACK ------------- \r\n");*/
+/* Appli_GenericClient_API(0, GENERIC_MOVE_SET, pGeneric_MoveLevelParam); */
+/* */
+/* TRACE_M(TF_GENERIC_CLIENT_M, "----------- Generic API MOVE DELTA LEVEL SET UNACK ------------- \r\n");*/
+/* Appli_GenericClient_API(0, GENERIC_MOVE_SET_UNACK, pGeneric_MoveLevelParam); */
+
+ /** GENERIC POWER ONOFF **/
+/* TRACE_M(TF_GENERIC_CLIENT_M, "----------- Generic API POWER ON OFF SET ACK ------------- \r\n");*/
+/* Appli_GenericClient_API(0, GENERIC_POWER_ON_OFF_SET, pGeneric_PowerOnOffParam); */
+/* */
+/* TRACE_M(TF_GENERIC_CLIENT_M, "----------- Generic API POWER ON OFF SET UNACK ------------- \r\n");*/
+/* Appli_GenericClient_API(0, GENERIC_POWER_ON_OFF_SET_UNACK, pGeneric_PowerOnOffParam); */
+
+ /** GENERIC TRANSITION TIME **/
+/* TRACE_M(TF_GENERIC_CLIENT_M, "----------- Generic API DEFAULT TRANSITION TIME SET ACK ------------- \r\n");*/
+/* Appli_GenericClient_API(0, GENERIC_DEFAULT_TRANSITION_TIME_SET, pGeneric_DefaultTransitionTimeParam); */
+/* */
+/* TRACE_M(TF_GENERIC_CLIENT_M, "----------- Generic API DEFAULT TRANSITION TIME SET UNACK ------------- \r\n");*/
+/* Appli_GenericClient_API(0, GENERIC_DEFAULT_TRANSITION_TIME_SET_UNACK, pGeneric_DefaultTransitionTimeParam); */
+#endif
+
+#ifdef LIGHT_CLIENT_MODEL_PUBLISH
+ /** LIGHT LIGHTNESS **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LIGHTNESS SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LIGHTNESS_SET, pLightnessParam); */
+/* */
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LIGHTNESS SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LIGHTNESS_SET_UNACK, pLightnessParam); */
+
+ /** LIGHT LIGHTNESS LINEAR **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LIGHTNESS SET LINEAR ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LIGHTNESS_LINEAR_SET, pLightnessParam); */
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LIGHTNESS SET LINEAR UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LIGHTNESS_LINEAR_SET_UNACK, pLightnessParam); */
+
+ /** LIGHT LIGHTNESS DEFAULT **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LIGHTNESS DEFAULT SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LIGHTNESS_DEFAULT_SET, pLightnessParam); */
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LIGHTNESS DEFAULT SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LIGHTNESS_DEFAULT_SET_UNACK, pLightnessParam); */
+
+ /** LIGHT LIGHTNESS RANGE **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LIGHTNESS RANGE SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LIGHTNESS_RANGE_SET, pLightnessRangeParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LIGHTNESS RANGE SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LIGHTNESS_RANGE_SET_UNACK, pLightnessRangeParam);*/
+
+ /** LIGHT LIGHTNESS CTL **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT CTL SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_CTL_SET, pLightCtlParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT CTL SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_CTL_SET_UNACK, pLightCtlParam);*/
+
+ /** LIGHT LIGHTNESS CTL TEMPERATURE**/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT CTL TEMPERATURE SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_CTL_TEMPERATURE_SET, pLightCtlTemperatureParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT CTL TEMPERATURE SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_CTL_TEMPERATURE_SET_UNACK, pLightCtlTemperatureParam);*/
+
+ /** LIGHT LIGHTNESS CTL TEMPERATURE RANGE**/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT CTL TEMPERATURE RANGE SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_CTL_TEMPERATURE_RANGE_SET, pLightCtlTemperatureRangeParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT CTL TEMPERATURE RANGE SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_CTL_TEMPERATURE_RANGE_SET_UNACK, pLightCtlTemperatureRangeParam);*/
+
+ /** LIGHT LIGHTNESS CTL DEFAULT**/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT CTL DEFAULT SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_CTL_DEFAULT_SET, pLightCtlDefaultParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT CTL DEFAULT SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_CTL_DEFAULT_SET_UNACK, pLightCtlDefaultParam);*/
+
+ /** LIGHT LIGHTNESS HSL **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT HSL SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_HSL_SET, pLightHslParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT HSL SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_HSL_SET_UNACK, pLightHslParam);*/
+
+ /** LIGHT LIGHTNESS HSL DEFAULT **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT HSL DEFAULT SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_HSL_DEFAULT_SET, pLightHslParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT HSL DEFAULT SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_HSL_DEFAULT_SET_UNACK, pLightHslParam);*/
+
+ /** LIGHT LIGHTNESS HSL RANGE **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT HSL RANGE SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_HSL_RANGE_SET, pLightHslRangeParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT HSL RANGE SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_HSL_RANGE_SET_UNACK, pLightHslRangeParam);*/
+
+ /** LIGHT LIGHTNESS HSL HUE **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT HSL HUE SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_HSL_HUE_SET, pLightHslHueParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT HSL HUE SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_HSL_HUE_SET_UNACK, pLightHslHueParam);*/
+
+ /** LIGHT LIGHTNESS HSL SATURATION **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT HSL SATURATION SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_HSL_SATURATION_SET, pLightHslSaturationParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT HSL SATURATION SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_HSL_SATURATION_SET_UNACK, pLightHslSaturationParam);*/
+
+ /** LIGHT LC MODE **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LC MODE SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LC_MODE_SET, pLightLCModeParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LC MODE SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LC_MODE_SET_UNACK, pLightLCModeParam);*/
+
+ /** LIGHT LC OM **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LC OM SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LC_OM_SET, pLightLCOccupancyModeParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LC OM SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LC_OM_SET_UNACK, pLightLCOccupancyModeParam);*/
+
+ /** LIGHT LC ONOFF **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LC ONOFF SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LC_ON_OFF_SET, pLightLCOnOffParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LC ONOFF SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LC_ON_OFF_SET_UNACK, pLightLCOnOffParam);*/
+
+ /** LIGHT LC PROPERTY **/
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LC PROPERTY SET ACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LC_PROPERTY_SET, pLightLCPropertyParam);*/
+
+/* TRACE_M(TF_LIGHT_CLIENT_M, "----------- API LIGHT LC PROPERTY SET UNACK ------------- \r\n");*/
+/* Appli_LightClient_API(0, LIGHT_LC_PROPERTY_SET_UNACK, pLightLCPropertyParam);*/
+#endif
+#endif
+
+ #ifdef ENABLE_SENSOR_MODEL_CLIENT
+ /** SENSOR CADENCE**/
+ /*
+ PRESENT_AMBIENT_TEMPERATURE_PID : 0x004F
+ */
+ pSensorsCadenceParam[0]= 0x4F; /* Property ID byte 0 : Property ID for the sensor.*/
+ pSensorsCadenceParam[1]= 0x00; /* Property ID byte 1 : Property ID for the sensor.*/
+
+ pSensorsCadenceParam[2]= 0x81; /* Fast Cadence Period Divisor bits 0-7: Divisor for the Publish Period.*/
+ /* Status Trigger Type bit 8 : Defines the unit and format of the Status Trigger Delta fields.*/
+ pSensorsCadenceParam[3]= 0x11; /* Status Trigger Delta Down byte 0 : Delta down value that triggers a status message.*/
+ pSensorsCadenceParam[4]= 0x11; /* Status Trigger Delta Down byte 1 : Delta down value that triggers a status message.*/
+
+ pSensorsCadenceParam[5]= 0x22; /* Status Trigger Delta Up byte 0 : Delta down value that triggers a status message.*/
+ pSensorsCadenceParam[6]= 0x22; /* Status Trigger Delta Up byte 1 : Delta down value that triggers a status message.*/
+
+ pSensorsCadenceParam[7]= 0x10; /* Status Min Interval byte 0 : Minimum interval between two consecutive Status messages. */
+
+ pSensorsCadenceParam[8]= 0x33; /* Fast Cadence Low byte 0 : Low value for the fast cadence range.*/
+
+ pSensorsCadenceParam[9]= 0x44; /* Fast Cadence High byte 0 : High value for the fast cadence range.*/
+
+/* TRACE_M(TF_SENSOR_CLIENT_M, "----------- API SENSOR CADENCE SET ------------- \r\n");*/
+/* Appli_SensorsClient_API(0, SENSOR_CADENCE_SET, pSensorsCadenceParam);*/
+
+/* TRACE_M(TF_SENSOR_CLIENT_M, "----------- API SENSOR CADENCE SET UNACK ------------- \r\n");*/
+/* Appli_SensorsClient_API(0, SENSOR_CADENCE_SET_UNACK, pSensorsCadenceParam);*/
+
+ /** SENSOR SETTING**/
+ /*
+ PRESENT_AMBIENT_TEMPERATURE_PID : 0x004F
+ Second Property PID : 0x00AD
+ */
+ pSensorsSettingParam[0]= 0x4F; /* Property ID byte 0 : Property ID for the sensor*/
+ pSensorsSettingParam[1]= 0x00; /* Property ID byte 1 : Property ID for the sensor*/
+ pSensorsSettingParam[2]= 0xAD; /* Sensor Setting Property ID byte 0 : Property ID for the sensor setting*/
+ pSensorsSettingParam[3]= 0x00; /* Sensor Setting Property ID byte 1 : Property ID for the sensor setting*/
+
+ switch (ButtonIndex_Value){
+ case 0:
+ pSensorsSettingParam[4]= 0x10; /* Sensor Setting Property ID byte 0 : Property ID for the sensor setting*/
+ /*pSensorsSettingParam[5]= 0x10;*/ /* Sensor Setting Property ID byte 1 : Property ID for the sensor setting*/
+ break;
+ case 1:
+ pSensorsSettingParam[4]= 0x20; /* Sensor Setting Property ID byte 0 : Property ID for the sensor setting*/
+ /*pSensorsSettingParam[5]= 0x20;*/ /* Sensor Setting Property ID byte 1 : Property ID for the sensor setting*/
+ break;
+ case 2:
+ pSensorsSettingParam[4]= 0x0F; /* Sensor Setting Property ID byte 0 : Property ID for the sensor setting*/
+ /*pSensorsSettingParam[5]= 0x00;*/ /* Sensor Setting Property ID byte 1 : Property ID for the sensor setting*/
+ break;
+ default:
+ break;
+ }
+/* TRACE_M(TF_SENSOR_CLIENT_M, "----------- API SENSOR SETTING SET ------------- \r\n");*/
+/* Appli_SensorsClient_API(0, SENSOR_SETTING_SET, pSensorsSettingParam);*/
+
+/* TRACE_M(TF_SENSOR_CLIENT_M, "----------- API SENSOR SETTING SET UNACK ------------- \r\n");*/
+/* Appli_SensorsClient_API(0, SENSOR_SETTING_SET_UNACK, pSensorsSettingParam);*/
+#endif /* ENABLE_SENSOR_MODEL_CLIENT */
+
+
+/* if CLIENT and SERVER => Publish is already done in CLIENT */
+#ifdef GENERIC_SERVER_MODEL_PUBLISH
+#ifndef GENERIC_CLIENT_MODEL_PUBLISH
+ Generic_Publish(BLEMesh_GetAddress());
+#endif
+#endif
+}
+
+
+/**
+* @brief Get the Element Number for selected Model
+* @param dst_peer : Destination Address received
+* @retval MOBLEUINT8 : elementNumber
+*/
+MOBLEUINT8 BLEMesh_ModelsGetElementNumber(MOBLE_ADDRESS dst_peer)
+{
+
+ MOBLE_ADDRESS nodeAddress;
+ MOBLEUINT8 elementNumber;
+
+ nodeAddress = BLEMesh_GetAddress();
+ elementNumber = ((dst_peer - nodeAddress)+1);
+
+ return elementNumber;
+}
+
+/**
+* @brief Get the Element Index for selected Model
+* @param dst_peer : Destination Address received
+* @retval MOBLEUINT8 : elementIndex
+*/
+MOBLEUINT8 BLEMesh_ModelsGetElementIndex(MOBLE_ADDRESS dst_peer)
+{
+
+ MOBLE_ADDRESS nodeAddress;
+ MOBLEUINT8 elementIndex;
+
+ nodeAddress = BLEMesh_GetAddress();
+ elementIndex =(dst_peer - nodeAddress);
+
+ return elementIndex;
+}
+
+
+/**
+* @brief Schedule a packet to be sent with randomized send timestamp
+* If a que is empty, random timestamp is calculated
+* Subsequent packets are sent in sequence
+* @param *pmsgParam Pointer to structure of message header for parameters:
+* elementIndex, src, dst addresses, TTL, RSSI, NetKey & AppKey Offset
+* @param status: Command status
+* @param data: Data buffer.
+* @param length: Length of data in bytes.
+* @retval None
+*/
+void BLEMesh_ModelsDelayPacket(MODEL_MessageHeader_t *pmsgParams,
+ MOBLEUINT8 command,
+ MOBLEUINT8 const * data,
+ MOBLEUINT32 length)
+{
+ MOBLEUINT8 random_time[8];
+
+ if (Appli_PendingPackets.packet_count == 0)
+ {
+ Appli_PendingPackets.packet_count = 1;
+ hci_le_rand(random_time);
+ Appli_PendingPackets.send_time = Clock_Time() +
+ DEFAULT_DELAY_PACKET_FROM +
+ (random_time[0] + random_time[1]*256)\
+ %DEFAULT_DELAY_PACKET_RANDOM_TIME;
+ Appli_PendingPackets.head = Appli_PendingPackets.packet;
+ Appli_PendingPackets.head_index = 0;
+ TRACE_M(TF_MISC, "Randomized time: %ld\n\r", Appli_PendingPackets.send_time - Clock_Time());
+ }
+ else
+ {
+ Appli_PendingPackets.packet_count += 1;
+ Appli_PendingPackets.packet_count = (Appli_PendingPackets.packet_count)%\
+ (MAX_PENDING_PACKETS_QUE_SIZE+1);
+
+ if (Appli_PendingPackets.head != (Appli_PendingPackets.packet + \
+ MAX_PENDING_PACKETS_QUE_SIZE - 1))
+ {
+ Appli_PendingPackets.head = Appli_PendingPackets.head +1;
+ Appli_PendingPackets.head_index = Appli_PendingPackets.head_index+1;
+ }
+ else
+ {
+ Appli_PendingPackets.head = Appli_PendingPackets.packet;
+ Appli_PendingPackets.head_index = 0;
+ }
+ }
+
+ Appli_PendingPackets.head->peer = pmsgParams->peer_addr;
+ Appli_PendingPackets.head->dst = pmsgParams->dst_peer;
+ Appli_PendingPackets.head->elementIndex = pmsgParams->elementIndex;
+ Appli_PendingPackets.head->appKeyOffset = pmsgParams->rcvdAppKeyOffset;
+ Appli_PendingPackets.head->netKeyOffset = pmsgParams->rcvdNetKeyOffset;
+ Appli_PendingPackets.head->command = command;
+ Appli_PendingPackets.head->length = length;
+ for (MOBLEUINT8 count=0; count<length; count++)
+ Appli_PendingPackets.head->data[count] = data[count];
+}
+
+
+/**
+* @brief If send timestamp is reached and que is not empty, send all packets
+* @param None
+* @retval None
+*/
+void BLEMesh_ModelsSendDelayedPacket(void)
+{
+ APPLI_SEND_RESPONSE_MODULE* ptr;
+ MODEL_MessageHeader_t msgParam;
+ MOBLEUINT8 temp_index;
+
+ if ((Appli_PendingPackets.packet_count != 0) &&
+ (Appli_PendingPackets.send_time <= Clock_Time()))
+ {
+ for (MOBLEUINT8 count=Appli_PendingPackets.packet_count; count!=0; count--)
+ {
+ TRACE_M(TF_MISC, "Sending randomized packets. Packet count: %d \n\r",\
+ Appli_PendingPackets.packet_count - count + 1);
+ temp_index = ((Appli_PendingPackets.head_index+MAX_PENDING_PACKETS_QUE_SIZE+1)\
+ -count)%MAX_PENDING_PACKETS_QUE_SIZE;
+ ptr = Appli_PendingPackets.packet + temp_index;
+
+ /* Initialize the messageParam*/
+ msgParam.dst_peer = ptr->dst;
+ msgParam.peer_addr = ptr->peer;
+ msgParam.elementIndex = 0;
+ msgParam.rcvdAppKeyOffset = 0;
+ msgParam.rcvdNetKeyOffset = 0;
+ msgParam.rssi = 0;
+ msgParam.ttl = 0;
+
+ VendorModel_SendResponse(VENDOR_STMICRO_CID,
+ &msgParam,
+ ptr->command,
+ ptr->data,
+ ptr->length);
+ }
+
+ Appli_PendingPackets.packet_count = 0;
+ }
+}
+
+/** \brief Set remote publication for the given Model ID & node Address
+* User is responsible for serializing data into \a data buffer. Vendor_WriteLocalDataCb
+* callback will be called on the remote device.
+* @param modelId ID of the model.
+* @param elementIdx element index
+* @param command vendor model commands
+* @param data Data buffer.
+* @param length Length of data in bytes.
+* @param response If 'MOBLE_TRUE', used to get the response. If 'MOBLE_FALSE', no response
+* @return MOBLE_RESULT_SUCCESS on success.
+*/
+MOBLE_RESULT MeshClient_SetRemotePublication(MOBLEUINT32 modelId, MOBLEUINT8 elementIdx,
+ MOBLEUINT16 msg_opcode, MOBLEUINT8 const *msg_buff,
+ MOBLEUINT32 length, MOBLEBOOL ack_flag,
+ MOBLEUINT8 isVendor)
+{
+ MOBLE_ADDRESS srcAddress;
+
+ srcAddress = BLEMesh_GetAddress();
+ srcAddress += elementIdx; /* Get the Address to send in the message */
+
+ return BLEMesh_SetRemotePublication(modelId,
+ srcAddress ,
+ msg_opcode ,
+ msg_buff, length,
+ ack_flag,
+ MOBLE_FALSE);
+}
+
+/**
+* @brief Convert ASCII value into Character
+* @param tempValue : 8bit value for conversion
+* @retval MOBLEUINT8
+*/
+MOBLEUINT8 BLEMesh_ModelsASCII_To_Char(MOBLEUINT8 tempValue)
+{
+ tempValue = tempValue - 0x30;
+ return tempValue;
+}
+
+__weak void Test_Process(void)
+{
+}
+/**
+* @}
+*/
+
+/**
+* @}
+*/
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/models_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/models_if.h
new file mode 100644
index 000000000..daa30e380
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/models_if.h
@@ -0,0 +1,49 @@
+/**
+ ******************************************************************************
+ * @file models_if.h
+ * @author BLE Mesh Team
+ * @brief Mesh Modes interface file header
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __MODELS_H
+#define __MODELS_H
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+
+
+/* Exported macro ------------------------------------------------------------*/
+/* Exported variables ------------------------------------------------------- */
+
+/* Exported Functions Prototypes ---------------------------------------------*/
+
+void BLEMesh_ModelsInit(void);
+void BLEMesh_ModelsProcess(void);
+void BLEMesh_ModelsCommand(void);
+
+MOBLEUINT8 BLEMesh_ModelsGetElementNumber(MOBLE_ADDRESS dst_peer);
+MOBLEUINT8 BLEMesh_ModelsGetElementIndex(MOBLE_ADDRESS dst_peer);
+void BLEMesh_ModelsDelayPacket(MODEL_MessageHeader_t *pmsgParams, MOBLEUINT8 command,
+ MOBLEUINT8 const * data, MOBLEUINT32 length);
+void BLEMesh_ModelsSendDelayedPacket(void);
+MOBLEUINT8 BLEMesh_ModelsASCII_To_Char(MOBLEUINT8 tempValue);
+MOBLE_RESULT MeshClient_SetRemotePublication(MOBLEUINT32 modelId, MOBLEUINT8 elementIdx,
+ MOBLEUINT16 msg_opcode, MOBLEUINT8 const *msg_buff,
+ MOBLEUINT32 length, MOBLEBOOL ack_flag,
+ MOBLEUINT8 isVendor);
+
+#endif /* __MODELS_H */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/pal_nvm.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/pal_nvm.c
new file mode 100644
index 000000000..37960317a
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/pal_nvm.c
@@ -0,0 +1,441 @@
+/**
+ ******************************************************************************
+ * @file pal_nvm.c
+ * @author BLE Mesh Team
+ * @brief Flash management for the Controller
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "types.h"
+#include "pal_nvm.h"
+#include "pal_if.h"
+#include <string.h>
+
+#include "ble.h"
+#include "shci.h"
+#include "mesh_cfg_usr.h"
+
+#include "hw_flash.h"
+
+/* Private define ------------------------------------------------------------*/
+#define FLASH_SECTOR_SIZE 0x1000
+
+/* Private variables ---------------------------------------------------------*/
+
+/* Private functions ---------------------------------------------------------*/
+/**
+ * @brief Gets the page of a given address
+ * @param Addr: Address of the FLASH Memory
+ * @retval The page of a given address
+ */
+static MOBLEUINT32 GetPage(MOBLEUINT32 Addr)
+{
+ MOBLEUINT32 page = 0;
+
+ if (Addr < (FLASH_BASE + FLASH_BANK_SIZE))
+ {
+ /* Bank 1 */
+ page = (Addr - FLASH_BASE) / FLASH_PAGE_SIZE;
+ }
+ else
+ {
+ /* Bank 2 */
+ page = (Addr - (FLASH_BASE + FLASH_BANK_SIZE)) / FLASH_PAGE_SIZE;
+ }
+
+ return page;
+}
+
+#if 0
+/**
+* @brief PalNvmErase
+* @param None
+* @retval Result
+*/
+MOBLE_RESULT PalNvmErase(MOBLEUINT32 address,
+ MOBLEUINT32 offset)
+{
+ HAL_StatusTypeDef status = HAL_OK;
+ uint32_t pageError = 0;
+
+// printf("PalNvmErase >>>\r\n");
+
+ FLASH_EraseInitTypeDef erase;
+ erase.TypeErase = FLASH_TYPEERASE_PAGES;
+ erase.Page = GetPage(address + offset); /* 126 or 127 */;
+ erase.NbPages = FLASH_SECTOR_SIZE >> 12;
+
+ while( LL_HSEM_1StepLock( HSEM, CFG_HW_FLASH_SEMID ) );
+ HAL_FLASH_Unlock();
+ __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP |
+ FLASH_FLAG_WRPERR |
+ FLASH_FLAG_OPTVERR);
+
+ SHCI_C2_FLASH_EraseActivity( ERASE_ACTIVITY_ON);
+
+ while(LL_FLASH_IsActiveFlag_OperationSuspended());
+ status = HAL_FLASHEx_Erase(&erase, &pageError);
+ while(LL_FLASH_IsActiveFlag_OperationSuspended());
+
+ SHCI_C2_FLASH_EraseActivity( ERASE_ACTIVITY_OFF);
+
+ HAL_FLASH_Lock();
+ LL_HSEM_ReleaseLock( HSEM, CFG_HW_FLASH_SEMID, 0 );
+
+// printf("PalNvmErase <<<\r\n");
+
+ return status == HAL_OK ? MOBLE_RESULT_SUCCESS : MOBLE_RESULT_FAIL;
+}
+#endif
+
+/**
+* @brief returns NVM write protect status
+* @param None
+* @retval TRUE if flash is write protected
+*/
+MOBLEBOOL PalNvmIsWriteProtected(void)
+{
+ /* All flash is writable */
+ return MOBLE_FALSE;
+}
+
+/**
+* @brief Read NVM
+* @param address: read start address of nvm
+* @param offset: offset read start address of nvm
+* @param buf: copy of read content
+* @param size: size of memory to be read
+* @param backup: If read from backup memory
+* @retval Result of read operation
+*/
+MOBLE_RESULT PalNvmRead(MOBLEUINT32 address,
+ MOBLEUINT32 offset,
+ void *buf,
+ MOBLEUINT32 size,
+ MOBLEBOOL backup)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+
+// printf("MoblePalNvmRead >>>\r\n");
+
+ if (offset > NVM_SIZE)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else if (size == 0)
+ {
+ result = MOBLE_RESULT_FALSE;
+ }
+ else if (offset + size > NVM_SIZE)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else
+ {
+ memcpy(buf, (void *)(address + offset), size);
+ }
+
+// printf("MoblePalNvmRead <<<\r\n");
+ return result;
+}
+
+/**
+* @brief Compare with NVM
+* @param offset: start address of nvm to compare
+* @param offset: offset start address of nvm
+* @param buf: copy of content
+* @param size: size of memory to be compared
+* @param comparison: outcome of comparison
+* @retval Result
+*/
+MOBLE_RESULT PalNvmCompare(MOBLEUINT32 address,
+ MOBLEUINT32 offset,
+ void const *buf,
+ MOBLEUINT32 size,
+ MOBLE_NVM_COMPARE* comparison)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+ MOBLEUINT32 i;
+
+#ifdef ENABLE_SAVE_MODEL_STATE_NVM
+// printf("MoblePalNvmCompare >>>\r\n");
+
+ if ((comparison == NULL) || (buf == NULL))
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else if (offset > NVM_SIZE)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else if (size == 0)
+ {
+ result = MOBLE_RESULT_FALSE;
+ }
+ else if (offset + size > NVM_SIZE)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else if (offset & 3)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else if (size & 3)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else
+ {
+ *comparison = MOBLE_NVM_COMPARE_EQUAL;
+ size >>= 2;
+
+ MOBLEUINT32 * src = (MOBLEUINT32*)buf;
+ MOBLEUINT32 * dst = (MOBLEUINT32*)(address + offset);
+
+ i = 0;
+ do
+ {
+ if ((src[i] != dst[i]) && (*comparison == MOBLE_NVM_COMPARE_EQUAL))
+ {
+ *comparison = MOBLE_NVM_COMPARE_NOT_EQUAL;
+ }
+ i++;
+ } while((*comparison != MOBLE_NVM_COMPARE_NOT_EQUAL) && (i < size));
+ }
+
+// printf("MoblePalNvmCompare <<<\r\n");
+#else
+ *comparison = MOBLE_NVM_COMPARE_EQUAL;
+#endif
+ return result;
+}
+
+/**
+* @brief Erase NVM
+* @param None
+* @retval Result
+*/
+MOBLE_RESULT PalNvmErase(MOBLEUINT32 address,
+ MOBLEUINT32 offset)
+{
+ HAL_StatusTypeDef status = HAL_OK;
+
+ uint32_t pageError = 0;
+
+// printf("MoblePalNvmErase >>>\r\n");
+
+ FLASH_EraseInitTypeDef erase;
+ erase.TypeErase = FLASH_TYPEERASE_PAGES;
+ erase.Page = GetPage(address + offset); /* 126 or 127 */;
+ erase.NbPages = FLASH_SECTOR_SIZE >> 12;
+
+ while( LL_HSEM_1StepLock( HSEM, CFG_HW_FLASH_SEMID ) );
+ HAL_FLASH_Unlock();
+ __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP |
+ FLASH_FLAG_WRPERR |
+ FLASH_FLAG_OPTVERR);
+
+ SHCI_C2_FLASH_EraseActivity( ERASE_ACTIVITY_ON);
+
+ while(LL_FLASH_IsActiveFlag_OperationSuspended());
+ status = HAL_FLASHEx_Erase(&erase, &pageError);
+ while(LL_FLASH_IsActiveFlag_OperationSuspended());
+
+ SHCI_C2_FLASH_EraseActivity( ERASE_ACTIVITY_OFF);
+
+ HAL_FLASH_Lock();
+ LL_HSEM_ReleaseLock( HSEM, CFG_HW_FLASH_SEMID, 0 );
+
+// printf("MoblePalNvmErase <<<\r\n");
+
+ return status == HAL_OK ? MOBLE_RESULT_SUCCESS : MOBLE_RESULT_FAIL;
+}
+
+/**
+* @brief Write to NVM
+* @param offset: wrt start address of nvm
+* @param offset: offset wrt start address of nvm
+* @param buf: copy of write content
+* @param size: size of memory to be written
+* @retval Result
+*/
+MOBLE_RESULT PalNvmWrite(MOBLEUINT32 address,
+ MOBLEUINT32 offset,
+ void const *buf,
+ MOBLEUINT32 size)
+{
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+
+#ifdef ENABLE_SAVE_MODEL_STATE_NVM
+
+ // printf("MoblePalNvmWrite >>>\r\n");
+
+ if (offset > NVM_SIZE)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else if (size == 0)
+ {
+ result = MOBLE_RESULT_FALSE;
+ }
+ else if (offset + size > NVM_SIZE)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else if (offset & 3)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else if (size & 3)
+ {
+ result = MOBLE_RESULT_INVALIDARG;
+ }
+ else
+ {
+ MOBLEUINT32 remain = 0;
+ MOBLEUINT32 nb_dword = 0;
+
+ nb_dword = (size >> 3);
+ remain = size - ((nb_dword) << 3);
+ if(remain > 0)
+ nb_dword += 1;
+
+ uint64_t* src = (uint64_t*)buf;
+
+ while( LL_HSEM_1StepLock( HSEM, CFG_HW_FLASH_SEMID ) );
+ HAL_FLASH_Unlock();
+ __HAL_FLASH_CLEAR_FLAG(FLASH_FLAG_EOP |
+ FLASH_FLAG_WRPERR |
+ FLASH_FLAG_OPTVERR |
+ FLASH_FLAG_PGSERR |
+ FLASH_FLAG_SIZERR |
+ FLASH_FLAG_PGAERR);
+
+ for (size_t i = 0; i < nb_dword/*size*/; i++)
+ {
+ do
+ {
+ while(LL_FLASH_IsActiveFlag_OperationSuspended());
+ HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD,
+ address + offset + (i <<3),
+ src[i]);
+ while(LL_FLASH_IsActiveFlag_OperationSuspended());
+ } while(*((uint64_t*)(address + offset + (i <<3))) != src[i]);
+ }
+
+ HAL_FLASH_Lock();
+ LL_HSEM_ReleaseLock( HSEM, CFG_HW_FLASH_SEMID, 0 );
+ }
+// printf("MoblePalNvmWrite <<<\r\n");
+#endif
+
+ return result;
+}
+
+#if 0
+/**
+* @brief Backup process
+* @param None
+* @retval Result
+*/
+static MOBLE_RESULT PalNvmBackupProcess(void)
+{
+ MOBLEUINT32 buff[4*N_BYTES_WORD];
+ static MOBLEUINT8 backup_pages_to_be_erased = 0;
+ MOBLE_RESULT result = MOBLE_RESULT_SUCCESS;
+
+ if (backup_pages_to_be_erased == 0)
+ {
+ backup_pages_to_be_erased = 1;
+ }
+
+ if(backup_pages_to_be_erased != 0)
+ {
+#if 0
+ BLEMesh_StopAdvScan();
+ ATOMIC_SECTION_BEGIN();
+ if(BluenrgMesh_IsFlashReadyToErase())
+ {
+ FLASH_ErasePage((uint16_t)((BNRGM_NVM_BACKUP_BASE -
+ RESET_MANAGER_FLASH_BASE_ADDRESS) / PAGE_SIZE +
+ BNRGM_NVM_BACKUP_SIZE/PAGE_SIZE -
+ backup_pages_to_be_erased));
+
+ if (FLASH_GetFlagStatus(Flash_CMDERR) == SET)
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+ else
+ {
+ backup_pages_to_be_erased--;
+ }
+ }
+ else
+ {
+ /* do nothing */
+ }
+ ATOMIC_SECTION_END();
+#else
+ result = PalNvmErase(NVM_BASE, FLASH_SECTOR_SIZE);
+ if(result == MOBLE_RESULT_SUCCESS)
+ backup_pages_to_be_erased = 0;
+#endif
+ }
+
+ if (result == MOBLE_RESULT_SUCCESS && backup_pages_to_be_erased == 0)
+ {
+#if 0
+ BLEMesh_StopAdvScan();
+ ATOMIC_SECTION_BEGIN();
+ if(BluenrgMesh_IsFlashReadyToErase())
+ {
+ for (size_t i = 0; i < BNRGM_NVM_BACKUP_SIZE && FLASH_GetFlagStatus(Flash_CMDERR) == RESET; )
+ {
+ memcpy((MOBLEUINT8*)buff, (void *)(BNRGM_NVM_BASE + i), 4*N_BYTES_WORD);
+ FLASH_ProgramWordBurst(BNRGM_NVM_BACKUP_BASE + i, (uint32_t*)buff);
+ i += 4*N_BYTES_WORD;
+ }
+
+ if (FLASH_GetFlagStatus(Flash_CMDERR) == SET)
+ {
+ result = MOBLE_RESULT_FAIL;
+ }
+ else
+ {
+ PalNvmReqs.backup_req = MOBLE_FALSE;
+ }
+ }
+ else
+ {
+ /* do nothing */
+ }
+ ATOMIC_SECTION_END();
+#else
+#endif
+ }
+ return result;
+}
+#endif
+
+/**
+* @brief NVM process
+* @param None
+* @retval Result
+*/
+MOBLE_RESULT PalNvmProcess(void)
+{
+ /* do nothing */
+ return MOBLE_RESULT_SUCCESS;
+}
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/sensor_cfg_usr.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/sensor_cfg_usr.h
new file mode 100644
index 000000000..1039c17c4
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/sensor_cfg_usr.h
@@ -0,0 +1,695 @@
+/**
+ ******************************************************************************
+* @file sensor_cfg_usr.h
+* @author BLE Mesh Team
+* @brief sensor server initialization parameters
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __SENSOR_USR_CFG_H
+#define __SENSOR_USR_CFG_H
+
+/**
+* Maximum count of settings that can be supported by a sensor
+* E.g., 5 sensors
+* 1st sensor has 2 settings
+* 2nd sensor has 3 settings
+* 3rd sensor has 2 settings
+* 4th sensor has 1 setting
+* 5th sensor has 2 settings
+* This value is max(2, 3, 2, 1, 2) = 3
+* value is >=1
+*/
+#define SENSOR_MAX_SETTINGS_COUNT 2
+
+/**
+* Maximum count of series column that is supported by a sensor
+* E.g., 2 sensors supporting series column
+* One sensor supports 2 columns while other sensor supports 20 columns
+* This value is max(2, 20) = 20
+* value is >=1
+*/
+#define SENSOR_MAX_SERIES_COUNT 2 //MESH_MODEL_SENSOR_APP_CODE modify this value depending on the maximum number of series for your sensors
+
+/**
+* Total sensors count on all elements
+* It is sum of sensors count on all elements
+* Sensor init fails in case of mismatch with sensor server initialization parameters
+*/
+#define TOTAL_SENSORS_COUNT 2 //MESH_MODEL_SENSOR_APP_CODE modify this value depending on the number of sensor to use
+
+/**
+* Sum of sensor settings on all sensors on all elements
+* Sensor init fails in case of mismatch with sensor server initialization parameters
+*/
+#define TOTAL_SENSOR_SETTINGS_COUNT 4
+
+/**
+* Sum of sensor series columns on all sensors on all elements
+* Sensor init fails in case of mismatch with sensor server initialization parameters
+*/
+#define TOTAL_SENSOR_SERIES_COLUMN_COUNT 0
+
+
+/**
+* This structure contains sensor setting initialization parameters
+*/
+typedef struct
+{
+ uint16_t settingPropertyId;
+ uint8_t settingAccess;
+ uint32_t settingRaw;
+}sensor_settings_init_params_t;
+
+
+/**
+* This structure contains sensor series column initialization parameters
+*/
+typedef struct
+{
+ uint32_t rawX;
+ uint32_t columnWidth;
+}sensor_series_column_init_params_t;
+
+
+/**
+* This structure contains sensor initialization parameters
+*/
+typedef struct
+{
+ uint8_t elementIdx;
+ uint16_t propertyId;
+ uint16_t positiveTolerance;
+ uint16_t negativeTolerance;
+ uint8_t samplingFunction;
+ uint8_t measurementPeriod;
+ uint8_t updateInterval;
+ uint8_t dataLength;
+ uint8_t cadenceState;
+ uint32_t valuesRange;
+ uint8_t settingsCount;
+ sensor_settings_init_params_t settings[SENSOR_MAX_SETTINGS_COUNT];
+ uint16_t seriesCount;
+ sensor_series_column_init_params_t seriesColumn[SENSOR_MAX_SERIES_COUNT];
+}sensor_init_params_t;
+
+
+/**
+* This structure contains sensor server initialization parameters
+*/
+typedef struct
+{
+ uint8_t sensorsCount;
+ sensor_init_params_t sensorInitParams[TOTAL_SENSORS_COUNT];
+} sensor_server_init_params_t;
+
+
+/**
+* Below section represents initialization parameters of sensors supported
+* Define sensors in ascending order of element index followed by ascending
+* order of Property IDs else initialization of sensor structure would fail
+* Single element can support one instance of sensor PID, there can't be multiple
+* instances of same PID on same element
+* For e.g. 10 sensors with PID (PID1 < PIDn ... < PID7) supported on 3 elements
+* with element index (0, 1 and 2) in below fashion
+* Element index 0 supports sensors corresponding to PID3, PID4, PID6 and PID7
+* Element index 1 supports sensors corresponding to PID2, PID4, PID5 and PID6
+* Element index 2 supports sensors corresponding to PID1, PID5
+* Corrector order of naming sensors (SENSORX) is
+* Element index 0 -> SENSOR1(PID3), SENSOR2(PID4), SENSOR3(PID6) and SENSOR4(PID7)
+* Element index 1 -> SENSOR5(PID2), SENSOR6(PID4), SENSOR7(PID5), and SENSOR8(PID6)
+* Element index 2 -> SENSOR9(PID1), and SENSOR10(PID5)
+*/
+
+/* Sensor 1 initialization */
+
+/**
+* Element index for SENSOR1
+* varies from 0 to n-1 (n = number of elements)
+*/
+#define SENSOR1_ELEMENT_IDX 0
+
+/**
+* Property ID of sensor, identifies device characteristics and other features
+* Defined by Mesh Device Properties or a custom value
+* 16 bit value
+* 0x0000 - Prohibited
+*/
+#define SENSOR1_PROPERTY_ID PRESENT_AMBIENT_TEMPERATURE_PID
+#define SENSOR1_POSITIVE_TOLERANCE SENSOR_POSITIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR1_NEGATIVE_TOLERANCE SENSOR_NEGATIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR1_SAMPLING_FUNCTION SENSOR_SAMPLING_FUNC_UNSPECIFIED
+#define SENSOR1_MEASUREMENT_PERIOD SENSOR_MEASUREMENT_PERIOD_NA
+#define SENSOR1_UPDATE_INTERVAL SENSOR_UPDATE_INTERVAL_NA
+#define SENSOR1_DATA_LENGTH 1
+#define SENSOR1_CADENCE_STATE SENSOR_CADENCE_SUPPORTED
+#define SENSOR1_VALUES_RANGE 254
+#define SENSOR1_SETTINGS_COUNT 2
+#define SENSOR1_SETTING1_PROPERTY_ID 0x00BB
+#define SENSOR1_SETTING1_ACCESS SENSOR_SETTING_ACCESS_READ
+#define SENSOR1_SETTING1_RAW 0
+#define SENSOR1_SETTING2_PROPERTY_ID 0x00AD
+#define SENSOR1_SETTING2_ACCESS SENSOR_SETTING_ACCESS_READ_WRITE
+#define SENSOR1_SETTING2_RAW 0
+#define SENSOR1_SERIES_COUNT 0
+
+#define SENSOR1_SETTINGS1_INIT_PARAMS \
+{\
+ SENSOR1_SETTING1_PROPERTY_ID,\
+ SENSOR1_SETTING1_ACCESS,\
+ SENSOR1_SETTING1_RAW \
+}
+
+#define SENSOR1_SETTINGS2_INIT_PARAMS \
+{\
+ SENSOR1_SETTING2_PROPERTY_ID,\
+ SENSOR1_SETTING2_ACCESS,\
+ SENSOR1_SETTING2_RAW \
+}
+
+#define SENSOR1_INIT_PARAMS \
+{\
+ SENSOR1_ELEMENT_IDX,\
+ SENSOR1_PROPERTY_ID,\
+ SENSOR1_POSITIVE_TOLERANCE,\
+ SENSOR1_NEGATIVE_TOLERANCE,\
+ SENSOR1_SAMPLING_FUNCTION,\
+ SENSOR1_MEASUREMENT_PERIOD,\
+ SENSOR1_UPDATE_INTERVAL,\
+ SENSOR1_DATA_LENGTH,\
+ SENSOR1_CADENCE_STATE,\
+ SENSOR1_VALUES_RANGE,\
+ SENSOR1_SETTINGS_COUNT,\
+ {\
+ SENSOR1_SETTINGS1_INIT_PARAMS,\
+ SENSOR1_SETTINGS2_INIT_PARAMS\
+ },\
+ SENSOR1_SERIES_COUNT,\
+ {\
+ {0}\
+ }\
+}
+
+//MESH_MODEL_SENSOR_APP_CODE Begin
+/* Sensor 2 description and initialization */
+
+#define SENSOR2_ELEMENT_IDX 0
+#define SENSOR2_PROPERTY_ID TIME_OF_FLIGHT_PID
+#define SENSOR2_POSITIVE_TOLERANCE SENSOR_POSITIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR2_NEGATIVE_TOLERANCE SENSOR_NEGATIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR2_SAMPLING_FUNCTION SENSOR_SAMPLING_FUNC_UNSPECIFIED
+#define SENSOR2_MEASUREMENT_PERIOD SENSOR_MEASUREMENT_PERIOD_NA
+#define SENSOR2_UPDATE_INTERVAL SENSOR_UPDATE_INTERVAL_NA
+#define SENSOR2_DATA_LENGTH 2
+#define SENSOR2_CADENCE_STATE SENSOR_CADENCE_NOT_SUPPORTED
+#define SENSOR2_VALUES_RANGE 0
+#define SENSOR2_SETTINGS_COUNT 1
+#define SENSOR2_SETTING1_PROPERTY_ID 0xAAFA
+#define SENSOR2_SETTING1_ACCESS SENSOR_SETTING_ACCESS_READ
+#define SENSOR2_SETTING1_RAW 35666
+#define SENSOR2_SETTING1_RAW 35666
+#define SENSOR2_SERIES_COUNT 2
+#define SENSOR2_SERIES1_RAWX 20
+#define SENSOR2_SERIES1_CW 30
+#define SENSOR2_SERIES2_RAWX 50
+#define SENSOR2_SERIES2_CW 40
+
+#define SENSOR2_SETTINGS1_INIT_PARAMS \
+{\
+ SENSOR2_SETTING1_PROPERTY_ID,\
+ SENSOR2_SETTING1_ACCESS,\
+ SENSOR2_SETTING1_RAW\
+}
+
+#define SENSOR2_COLUMN1_INIT_PARAMS {SENSOR2_SERIES1_RAWX,SENSOR2_SERIES1_CW}
+#define SENSOR2_COLUMN2_INIT_PARAMS {SENSOR2_SERIES2_RAWX,SENSOR2_SERIES2_CW}
+
+#define SENSOR2_INIT_PARAMS \
+{\
+ SENSOR2_ELEMENT_IDX,\
+ SENSOR2_PROPERTY_ID,\
+ SENSOR2_POSITIVE_TOLERANCE,\
+ SENSOR2_NEGATIVE_TOLERANCE,\
+ SENSOR2_SAMPLING_FUNCTION,\
+ SENSOR2_MEASUREMENT_PERIOD,\
+ SENSOR2_UPDATE_INTERVAL,\
+ SENSOR2_DATA_LENGTH,\
+ SENSOR2_CADENCE_STATE,\
+ SENSOR2_VALUES_RANGE,\
+ SENSOR2_SETTINGS_COUNT,\
+ {\
+ SENSOR2_SETTINGS1_INIT_PARAMS,\
+ },\
+ SENSOR2_SERIES_COUNT,\
+ {\
+ SENSOR2_COLUMN1_INIT_PARAMS,\
+ SENSOR2_COLUMN2_INIT_PARAMS\
+ }\
+}
+
+/**
+* Combined defined of all sensors initialization parameters
+*/
+
+#define SENSOR_SERVER_INIT_PARAMS \
+{\
+ TOTAL_SENSORS_COUNT,\
+ {\
+ SENSOR1_INIT_PARAMS,\
+ SENSOR2_INIT_PARAMS,\
+ }\
+}
+//MESH_MODEL_SENSOR_APP_CODE End
+#endif /* __SENSOR_USR_CFG_H */
+
+/*
+
+Example for multiple sensors with series column support
+
+#define SENSOR_MAX_SETTINGS_COUNT 3
+#define SENSOR_MAX_SERIES_COUNT 20
+#define TOTAL_SENSORS_COUNT 5
+#define TOTAL_SENSOR_SETTINGS_COUNT 9
+#define TOTAL_SENSOR_SERIES_COLUMN_COUNT 22
+
+#define SENSOR1_ELEMENT_IDX 0
+#define SENSOR1_PROPERTY_ID PEOPLE_COUNT_PID
+#define SENSOR1_POSITIVE_TOLERANCE SENSOR_POSITIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR1_NEGATIVE_TOLERANCE SENSOR_NEGATIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR1_SAMPLING_FUNCTION SENSOR_SAMPLING_FUNC_UNSPECIFIED
+#define SENSOR1_MEASUREMENT_PERIOD SENSOR_MEASUREMENT_PERIOD_NA
+#define SENSOR1_UPDATE_INTERVAL SENSOR_UPDATE_INTERVAL_NA
+#define SENSOR1_DATA_LENGTH 2
+#define SENSOR1_CADENCE_STATE SENSOR_CADENCE_SUPPORTED
+#define SENSOR1_VALUES_RANGE 1000
+#define SENSOR1_SETTINGS_COUNT 3
+#define SENSOR1_SETTING1_PROPERTY_ID 0x000A
+#define SENSOR1_SETTING1_ACCESS SENSOR_SETTING_ACCESS_READ
+#define SENSOR1_SETTING1_RAW 234
+#define SENSOR1_SETTING2_PROPERTY_ID 0x000C
+#define SENSOR1_SETTING2_ACCESS SENSOR_SETTING_ACCESS_READ
+#define SENSOR1_SETTING2_RAW 246
+#define SENSOR1_SETTING3_PROPERTY_ID 0x0010
+#define SENSOR1_SETTING3_ACCESS SENSOR_SETTING_ACCESS_READ_WRITE
+#define SENSOR1_SETTING3_RAW 278
+#define SENSOR1_SERIES_COUNT 0
+
+#define SENSOR1_SETTINGS1_INIT_PARAMS \
+{\
+ SENSOR1_SETTING1_PROPERTY_ID,\
+ SENSOR1_SETTING1_ACCESS,\
+ SENSOR1_SETTING1_RAW\
+}
+
+#define SENSOR1_SETTINGS2_INIT_PARAMS \
+{\
+ SENSOR1_SETTING2_PROPERTY_ID,\
+ SENSOR1_SETTING2_ACCESS,\
+ SENSOR1_SETTING2_RAW\
+}
+
+#define SENSOR1_SETTINGS3_INIT_PARAMS \
+{\
+ SENSOR1_SETTING3_PROPERTY_ID,\
+ SENSOR1_SETTING3_ACCESS,\
+ SENSOR1_SETTING3_RAW\
+}
+
+#define SENSOR1_INIT_PARAMS \
+{\
+ SENSOR1_ELEMENT_IDX,\
+ SENSOR1_PROPERTY_ID,\
+ SENSOR1_POSITIVE_TOLERANCE,\
+ SENSOR1_NEGATIVE_TOLERANCE,\
+ SENSOR1_SAMPLING_FUNCTION,\
+ SENSOR1_MEASUREMENT_PERIOD,\
+ SENSOR1_UPDATE_INTERVAL,\
+ SENSOR1_DATA_LENGTH,\
+ SENSOR1_CADENCE_STATE,\
+ SENSOR1_VALUES_RANGE,\
+ SENSOR1_SETTINGS_COUNT,\
+ {\
+ SENSOR1_SETTINGS1_INIT_PARAMS,\
+ SENSOR1_SETTINGS2_INIT_PARAMS,\
+ SENSOR1_SETTINGS3_INIT_PARAMS\
+ },\
+ SENSOR1_SERIES_COUNT,\
+ {\
+ {0}\
+ }\
+}
+
+#define SENSOR2_ELEMENT_IDX 0
+#define SENSOR2_PROPERTY_ID DESIRED_AMBIENT_TEMPERATURE_PID
+#define SENSOR2_POSITIVE_TOLERANCE 0xabc
+#define SENSOR2_NEGATIVE_TOLERANCE 0xdef
+#define SENSOR2_SAMPLING_FUNCTION SENSOR_SAMPLING_FUNC_RMS
+#define SENSOR2_MEASUREMENT_PERIOD 0x04
+#define SENSOR2_UPDATE_INTERVAL 0x05
+#define SENSOR2_DATA_LENGTH 1
+#define SENSOR2_CADENCE_STATE SENSOR_CADENCE_SUPPORTED
+#define SENSOR2_VALUES_RANGE 100
+#define SENSOR2_SETTINGS_COUNT 2
+#define SENSOR2_SETTING1_PROPERTY_ID 0x00BB
+#define SENSOR2_SETTING1_ACCESS SENSOR_SETTING_ACCESS_READ
+#define SENSOR2_SETTING1_RAW 345
+#define SENSOR2_SETTING2_PROPERTY_ID 0x00AD
+#define SENSOR2_SETTING2_ACCESS SENSOR_SETTING_ACCESS_READ_WRITE
+#define SENSOR2_SETTING2_RAW 435
+#define SENSOR2_SERIES_COUNT 0
+
+#define SENSOR2_SETTINGS1_INIT_PARAMS \
+{\
+ SENSOR2_SETTING1_PROPERTY_ID,\
+ SENSOR2_SETTING1_ACCESS,\
+ SENSOR2_SETTING1_RAW\
+}
+
+#define SENSOR2_SETTINGS2_INIT_PARAMS \
+{\
+ SENSOR2_SETTING2_PROPERTY_ID,\
+ SENSOR2_SETTING2_ACCESS,\
+ SENSOR2_SETTING2_RAW \
+}
+
+#define SENSOR2_INIT_PARAMS \
+{\
+ SENSOR2_ELEMENT_IDX,\
+ SENSOR2_PROPERTY_ID,\
+ SENSOR2_POSITIVE_TOLERANCE,\
+ SENSOR2_NEGATIVE_TOLERANCE,\
+ SENSOR2_SAMPLING_FUNCTION,\
+ SENSOR2_MEASUREMENT_PERIOD,\
+ SENSOR2_UPDATE_INTERVAL,\
+ SENSOR2_DATA_LENGTH,\
+ SENSOR2_CADENCE_STATE,\
+ SENSOR2_VALUES_RANGE,\
+ SENSOR2_SETTINGS_COUNT,\
+ {\
+ SENSOR2_SETTINGS1_INIT_PARAMS,\
+ SENSOR2_SETTINGS2_INIT_PARAMS\
+ },\
+ SENSOR2_SERIES_COUNT,\
+ {\
+ {0}\
+ }\
+}
+
+#define SENSOR3_ELEMENT_IDX 0
+#define SENSOR3_PROPERTY_ID PRESSURE_PID
+#define SENSOR3_POSITIVE_TOLERANCE SENSOR_POSITIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR3_NEGATIVE_TOLERANCE SENSOR_NEGATIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR3_SAMPLING_FUNCTION SENSOR_SAMPLING_FUNC_UNSPECIFIED
+#define SENSOR3_MEASUREMENT_PERIOD SENSOR_MEASUREMENT_PERIOD_NA
+#define SENSOR3_UPDATE_INTERVAL SENSOR_UPDATE_INTERVAL_NA
+#define SENSOR3_DATA_LENGTH 2
+#define SENSOR3_CADENCE_STATE SENSOR_CADENCE_NOT_SUPPORTED
+#define SENSOR3_VALUES_RANGE 500
+#define SENSOR3_SETTINGS_COUNT 2
+#define SENSOR3_SETTING1_PROPERTY_ID 0x0AAA
+#define SENSOR3_SETTING1_ACCESS SENSOR_SETTING_ACCESS_READ
+#define SENSOR3_SETTING1_RAW 35666
+#define SENSOR3_SETTING2_PROPERTY_ID 0x0AAC
+#define SENSOR3_SETTING2_ACCESS SENSOR_SETTING_ACCESS_READ
+#define SENSOR3_SETTING2_RAW 33666
+#define SENSOR3_SERIES_COUNT 20
+#define SENSOR3_SERIES1_RAWX 0
+#define SENSOR3_SERIES1_CW 10
+#define SENSOR3_SERIES2_RAWX 23
+#define SENSOR3_SERIES2_CW 10
+#define SENSOR3_SERIES3_RAWX 34
+#define SENSOR3_SERIES3_CW 10
+#define SENSOR3_SERIES4_RAWX 35
+#define SENSOR3_SERIES4_CW 10
+#define SENSOR3_SERIES5_RAWX 36
+#define SENSOR3_SERIES5_CW 10
+#define SENSOR3_SERIES6_RAWX 40
+#define SENSOR3_SERIES6_CW 10
+#define SENSOR3_SERIES7_RAWX 41
+#define SENSOR3_SERIES7_CW 10
+#define SENSOR3_SERIES8_RAWX 42
+#define SENSOR3_SERIES8_CW 10
+#define SENSOR3_SERIES9_RAWX 43
+#define SENSOR3_SERIES9_CW 10
+#define SENSOR3_SERIES10_RAWX 45
+#define SENSOR3_SERIES10_CW 10
+#define SENSOR3_SERIES11_RAWX 46
+#define SENSOR3_SERIES11_CW 10
+#define SENSOR3_SERIES12_RAWX 47
+#define SENSOR3_SERIES12_CW 10
+#define SENSOR3_SERIES13_RAWX 48
+#define SENSOR3_SERIES13_CW 10
+#define SENSOR3_SERIES14_RAWX 49
+#define SENSOR3_SERIES14_CW 10
+#define SENSOR3_SERIES15_RAWX 50
+#define SENSOR3_SERIES15_CW 10
+#define SENSOR3_SERIES16_RAWX 51
+#define SENSOR3_SERIES16_CW 10
+#define SENSOR3_SERIES17_RAWX 52
+#define SENSOR3_SERIES17_CW 10
+#define SENSOR3_SERIES18_RAWX 53
+#define SENSOR3_SERIES18_CW 10
+#define SENSOR3_SERIES19_RAWX 55
+#define SENSOR3_SERIES19_CW 10
+#define SENSOR3_SERIES20_RAWX 89
+#define SENSOR3_SERIES20_CW 10
+
+#define SENSOR3_SETTINGS1_INIT_PARAMS \
+{\
+ SENSOR3_SETTING1_PROPERTY_ID,\
+ SENSOR3_SETTING1_ACCESS,\
+ SENSOR3_SETTING1_RAW\
+}
+
+#define SENSOR3_SETTINGS2_INIT_PARAMS \
+{\
+ SENSOR3_SETTING2_PROPERTY_ID,\
+ SENSOR3_SETTING2_ACCESS,\
+ SENSOR3_SETTING2_RAW\
+}
+
+#define SENSOR3_COLUMN1_INIT_PARAMS {SENSOR3_SERIES1_RAWX,SENSOR3_SERIES1_CW}
+#define SENSOR3_COLUMN2_INIT_PARAMS {SENSOR3_SERIES2_RAWX,SENSOR3_SERIES2_CW}
+#define SENSOR3_COLUMN3_INIT_PARAMS {SENSOR3_SERIES3_RAWX,SENSOR3_SERIES3_CW}
+#define SENSOR3_COLUMN4_INIT_PARAMS {SENSOR3_SERIES4_RAWX,SENSOR3_SERIES4_CW}
+#define SENSOR3_COLUMN5_INIT_PARAMS {SENSOR3_SERIES5_RAWX,SENSOR3_SERIES5_CW}
+#define SENSOR3_COLUMN6_INIT_PARAMS {SENSOR3_SERIES6_RAWX,SENSOR3_SERIES6_CW}
+#define SENSOR3_COLUMN7_INIT_PARAMS {SENSOR3_SERIES7_RAWX,SENSOR3_SERIES7_CW}
+#define SENSOR3_COLUMN8_INIT_PARAMS {SENSOR3_SERIES8_RAWX,SENSOR3_SERIES8_CW}
+#define SENSOR3_COLUMN9_INIT_PARAMS {SENSOR3_SERIES9_RAWX,SENSOR3_SERIES9_CW}
+#define SENSOR3_COLUMN10_INIT_PARAMS {SENSOR3_SERIES10_RAWX,SENSOR3_SERIES10_CW}
+#define SENSOR3_COLUMN11_INIT_PARAMS {SENSOR3_SERIES11_RAWX,SENSOR3_SERIES11_CW}
+#define SENSOR3_COLUMN12_INIT_PARAMS {SENSOR3_SERIES12_RAWX,SENSOR3_SERIES12_CW}
+#define SENSOR3_COLUMN13_INIT_PARAMS {SENSOR3_SERIES13_RAWX,SENSOR3_SERIES13_CW}
+#define SENSOR3_COLUMN14_INIT_PARAMS {SENSOR3_SERIES14_RAWX,SENSOR3_SERIES14_CW}
+#define SENSOR3_COLUMN15_INIT_PARAMS {SENSOR3_SERIES15_RAWX,SENSOR3_SERIES15_CW}
+#define SENSOR3_COLUMN16_INIT_PARAMS {SENSOR3_SERIES16_RAWX,SENSOR3_SERIES16_CW}
+#define SENSOR3_COLUMN17_INIT_PARAMS {SENSOR3_SERIES17_RAWX,SENSOR3_SERIES17_CW}
+#define SENSOR3_COLUMN18_INIT_PARAMS {SENSOR3_SERIES18_RAWX,SENSOR3_SERIES18_CW}
+#define SENSOR3_COLUMN19_INIT_PARAMS {SENSOR3_SERIES19_RAWX,SENSOR3_SERIES19_CW}
+#define SENSOR3_COLUMN20_INIT_PARAMS {SENSOR3_SERIES20_RAWX,SENSOR3_SERIES20_CW}
+
+#define SENSOR3_INIT_PARAMS \
+{\
+ SENSOR3_ELEMENT_IDX,\
+ SENSOR3_PROPERTY_ID,\
+ SENSOR3_POSITIVE_TOLERANCE,\
+ SENSOR3_NEGATIVE_TOLERANCE,\
+ SENSOR3_SAMPLING_FUNCTION,\
+ SENSOR3_MEASUREMENT_PERIOD,\
+ SENSOR3_UPDATE_INTERVAL,\
+ SENSOR3_DATA_LENGTH,\
+ SENSOR3_CADENCE_STATE,\
+ SENSOR3_VALUES_RANGE,\
+ SENSOR3_SETTINGS_COUNT,\
+ {\
+ SENSOR3_SETTINGS1_INIT_PARAMS,\
+ SENSOR3_SETTINGS2_INIT_PARAMS\
+ },\
+ SENSOR3_SERIES_COUNT,\
+ {\
+ SENSOR3_COLUMN1_INIT_PARAMS,\
+ SENSOR3_COLUMN2_INIT_PARAMS,\
+ SENSOR3_COLUMN3_INIT_PARAMS,\
+ SENSOR3_COLUMN4_INIT_PARAMS,\
+ SENSOR3_COLUMN5_INIT_PARAMS,\
+ SENSOR3_COLUMN6_INIT_PARAMS,\
+ SENSOR3_COLUMN7_INIT_PARAMS,\
+ SENSOR3_COLUMN8_INIT_PARAMS,\
+ SENSOR3_COLUMN9_INIT_PARAMS,\
+ SENSOR3_COLUMN10_INIT_PARAMS,\
+ SENSOR3_COLUMN11_INIT_PARAMS,\
+ SENSOR3_COLUMN12_INIT_PARAMS,\
+ SENSOR3_COLUMN13_INIT_PARAMS,\
+ SENSOR3_COLUMN14_INIT_PARAMS,\
+ SENSOR3_COLUMN15_INIT_PARAMS,\
+ SENSOR3_COLUMN16_INIT_PARAMS,\
+ SENSOR3_COLUMN17_INIT_PARAMS,\
+ SENSOR3_COLUMN18_INIT_PARAMS,\
+ SENSOR3_COLUMN19_INIT_PARAMS,\
+ SENSOR3_COLUMN20_INIT_PARAMS}\
+}
+
+#define SENSOR4_ELEMENT_IDX 0
+#define SENSOR4_PROPERTY_ID HUMIDITY_PID
+#define SENSOR4_POSITIVE_TOLERANCE SENSOR_POSITIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR4_NEGATIVE_TOLERANCE SENSOR_NEGATIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR4_SAMPLING_FUNCTION SENSOR_SAMPLING_FUNC_UNSPECIFIED
+#define SENSOR4_MEASUREMENT_PERIOD SENSOR_MEASUREMENT_PERIOD_NA
+#define SENSOR4_UPDATE_INTERVAL SENSOR_UPDATE_INTERVAL_NA
+#define SENSOR4_DATA_LENGTH 2
+#define SENSOR4_CADENCE_STATE SENSOR_CADENCE_SUPPORTED
+#define SENSOR4_VALUES_RANGE 200
+#define SENSOR4_SETTINGS_COUNT 1
+#define SENSOR4_SETTING1_PROPERTY_ID 0xAAAA
+#define SENSOR4_SETTING1_ACCESS SENSOR_SETTING_ACCESS_READ_WRITE
+#define SENSOR4_SETTING1_RAW 35666
+#define SENSOR4_SERIES_COUNT 0
+
+#define SENSOR4_SETTINGS_INIT_PARAMS \
+{\
+ SENSOR4_SETTING1_PROPERTY_ID,\
+ SENSOR4_SETTING1_ACCESS,\
+ SENSOR4_SETTING1_RAW\
+}
+
+#define SENSOR4_INIT_PARAMS \
+{\
+ SENSOR4_ELEMENT_IDX,\
+ SENSOR4_PROPERTY_ID,\
+ SENSOR4_POSITIVE_TOLERANCE,\
+ SENSOR4_NEGATIVE_TOLERANCE,\
+ SENSOR4_SAMPLING_FUNCTION,\
+ SENSOR4_MEASUREMENT_PERIOD,\
+ SENSOR4_UPDATE_INTERVAL,\
+ SENSOR4_DATA_LENGTH,\
+ SENSOR4_CADENCE_STATE,\
+ SENSOR4_VALUES_RANGE,\
+ SENSOR4_SETTINGS_COUNT,\
+ {\
+ SENSOR4_SETTINGS_INIT_PARAMS\
+ },\
+ SENSOR4_SERIES_COUNT,\
+ {\
+ {0}\
+ }\
+}
+
+#define SENSOR5_ELEMENT_IDX 0
+#define SENSOR5_PROPERTY_ID TIME_OF_FLIGHT_PID
+#define SENSOR5_POSITIVE_TOLERANCE SENSOR_POSITIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR5_NEGATIVE_TOLERANCE SENSOR_NEGATIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR5_SAMPLING_FUNCTION SENSOR_SAMPLING_FUNC_UNSPECIFIED
+#define SENSOR5_MEASUREMENT_PERIOD SENSOR_MEASUREMENT_PERIOD_NA
+#define SENSOR5_UPDATE_INTERVAL SENSOR_UPDATE_INTERVAL_NA
+#define SENSOR5_DATA_LENGTH 2
+#define SENSOR5_CADENCE_STATE SENSOR_CADENCE_NOT_SUPPORTED
+#define SENSOR5_VALUES_RANGE 0
+#define SENSOR5_SETTINGS_COUNT 1
+#define SENSOR5_SETTING1_PROPERTY_ID 0xAAFA
+#define SENSOR5_SETTING1_ACCESS SENSOR_SETTING_ACCESS_READ
+#define SENSOR5_SETTING1_RAW 35666
+#define SENSOR5_SERIES_COUNT 2
+#define SENSOR5_SERIES1_RAWX 20
+#define SENSOR5_SERIES1_CW 30
+#define SENSOR5_SERIES2_RAWX 50
+#define SENSOR5_SERIES2_CW 40
+
+#define SENSOR5_SETTINGS_INIT_PARAMS \
+{\
+ SENSOR5_SETTING1_PROPERTY_ID,\
+ SENSOR5_SETTING1_ACCESS,\
+ SENSOR5_SETTING1_RAW\
+}
+
+#define SENSOR5_COLUMN1_INIT_PARAMS {SENSOR5_SERIES1_RAWX,SENSOR5_SERIES1_CW}
+#define SENSOR5_COLUMN2_INIT_PARAMS {SENSOR5_SERIES2_RAWX,SENSOR5_SERIES2_CW}
+
+#define SENSOR5_INIT_PARAMS \
+{\
+ SENSOR5_ELEMENT_IDX,\
+ SENSOR5_PROPERTY_ID,\
+ SENSOR5_POSITIVE_TOLERANCE,\
+ SENSOR5_NEGATIVE_TOLERANCE,\
+ SENSOR5_SAMPLING_FUNCTION,\
+ SENSOR5_MEASUREMENT_PERIOD,\
+ SENSOR5_UPDATE_INTERVAL,\
+ SENSOR5_DATA_LENGTH,\
+ SENSOR5_CADENCE_STATE,\
+ SENSOR5_VALUES_RANGE,\
+ SENSOR5_SETTINGS_COUNT,\
+ {\
+ SENSOR5_SETTINGS_INIT_PARAMS\
+ },\
+ SENSOR5_SERIES_COUNT,\
+ {\
+ SENSOR5_COLUMN1_INIT_PARAMS,\
+ SENSOR5_COLUMN2_INIT_PARAMS\
+ }\
+}
+
+#define SENSOR6_ELEMENT_IDX 0
+#define SENSOR6_PROPERTY_ID PRESENCE_PID
+#define SENSOR6_POSITIVE_TOLERANCE SENSOR_POSITIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR6_NEGATIVE_TOLERANCE SENSOR_NEGATIVE_TOLERANCE_UNSPECIFIED
+#define SENSOR6_SAMPLING_FUNCTION SENSOR_SAMPLING_FUNC_UNSPECIFIED
+#define SENSOR6_MEASUREMENT_PERIOD SENSOR_MEASUREMENT_PERIOD_NA
+#define SENSOR6_UPDATE_INTERVAL SENSOR_UPDATE_INTERVAL_NA
+#define SENSOR6_DATA_LENGTH 1
+#define SENSOR6_CADENCE_STATE SENSOR_CADENCE_NOT_SUPPORTED
+#define SENSOR6_VALUES_RANGE 0
+#define SENSOR6_SETTINGS_COUNT 0
+#define SENSOR6_SERIES_COUNT 0
+
+#define SENSOR6_SETTINGS_INIT_PARAMS \
+{\
+ {\
+ {0}\
+ }\
+}
+
+#define SENSOR6_INIT_PARAMS \
+{\
+ SENSOR6_ELEMENT_IDX,\
+ SENSOR6_PROPERTY_ID,\
+ SENSOR6_POSITIVE_TOLERANCE,\
+ SENSOR6_NEGATIVE_TOLERANCE,\
+ SENSOR6_SAMPLING_FUNCTION,\
+ SENSOR6_MEASUREMENT_PERIOD,\
+ SENSOR6_UPDATE_INTERVAL,\
+ SENSOR6_DATA_LENGTH,\
+ SENSOR6_CADENCE_STATE,\
+ SENSOR6_VALUES_RANGE,\
+ SENSOR6_SETTINGS_COUNT,\
+ {\
+ {0}\
+ },\
+ SENSOR6_SERIES_COUNT,\
+ {\
+ {0}\
+ }\
+}
+
+#define SENSOR_SERVER_INIT_PARAMS \
+{\
+ TOTAL_SENSORS_COUNT,\
+ {\
+ SENSOR1_INIT_PARAMS,\
+ SENSOR2_INIT_PARAMS,\
+ SENSOR3_INIT_PARAMS,\
+ SENSOR4_INIT_PARAMS,\
+ SENSOR5_INIT_PARAMS\
+ }\
+}
+*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/svcctl_conf.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/svcctl_conf.c
new file mode 100644
index 000000000..87b4944bd
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/svcctl_conf.c
@@ -0,0 +1,80 @@
+/**
+ ******************************************************************************
+ * @file svctl_conf.c
+ * @author MCD Application Team
+ * @brief Configuration of the BLE service controller
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#include "app_common.h"
+
+#include "otp.h"
+
+/* Private defines -----------------------------------------------------------*/
+#define BD_ADDR_SIZE_LOCAL 6
+
+/* Private variables ---------------------------------------------------------*/
+static const uint8_t M_bd_addr[BD_ADDR_SIZE_LOCAL] =
+{
+ (uint8_t)((CFG_ADV_BD_ADDRESS & 0x0000000000FF)),
+ (uint8_t)((CFG_ADV_BD_ADDRESS & 0x00000000FF00) >> 8),
+ (uint8_t)((CFG_ADV_BD_ADDRESS & 0x000000FF0000) >> 16),
+ (uint8_t)((CFG_ADV_BD_ADDRESS & 0x0000FF000000) >> 24),
+ (uint8_t)((CFG_ADV_BD_ADDRESS & 0x00FF00000000) >> 32),
+ (uint8_t)((CFG_ADV_BD_ADDRESS & 0xFF0000000000) >> 40)
+};
+
+static uint8_t bd_addr_udn[BD_ADDR_SIZE_LOCAL];
+
+const uint8_t* SVCCTL_GetBdAddress( void )
+{
+ uint8_t *otp_addr;
+ const uint8_t *bd_addr;
+ uint32_t udn;
+ uint32_t company_id;
+ uint32_t device_id;
+
+ udn = LL_FLASH_GetUDN();
+
+ if(udn != 0xFFFFFFFF)
+ {
+ company_id = LL_FLASH_GetSTCompanyID();
+ device_id = LL_FLASH_GetDeviceID();
+
+ bd_addr_udn[0] = (uint8_t)(udn & 0x000000FF);
+ bd_addr_udn[1] = (uint8_t)( (udn & 0x0000FF00) >> 8 );
+ bd_addr_udn[2] = (uint8_t)( (udn & 0x00FF0000) >> 16 );
+ bd_addr_udn[3] = (uint8_t)device_id;
+ bd_addr_udn[4] = (uint8_t)(company_id & 0x000000FF);;
+ bd_addr_udn[5] = (uint8_t)( (company_id & 0x0000FF00) >> 8 );
+
+ bd_addr = (const uint8_t *)bd_addr_udn;
+ }
+ else
+ {
+ otp_addr = OTP_Read(0);
+ if(otp_addr)
+ {
+ bd_addr = ((OTP_ID0_t*)otp_addr)->bd_address;
+ }
+ else
+ {
+ bd_addr = M_bd_addr;
+ }
+
+ }
+
+ return bd_addr;
+}
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/tl_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/tl_conf.h
new file mode 100644
index 000000000..f9c44a264
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/tl_conf.h
@@ -0,0 +1,30 @@
+/**
+ ******************************************************************************
+ * @file tl_conf.h
+ * @author MCD Application Team
+ * @brief Transport Layer Configuration
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __TL_CONF_H
+#define __TL_CONF_H
+
+/**
+ * It shall be set to 1 for power optimization when standby is supported
+ */
+#define CFG_BLE_HCI_STDBY 0
+
+
+
+#endif /*__TL_CONF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/tl_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/tl_dbg_conf.h
new file mode 100644
index 000000000..d54b76ff0
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/tl_dbg_conf.h
@@ -0,0 +1,124 @@
+/**
+ ******************************************************************************
+ * File Name : tl_dbg_conf.h
+ * Description : Debug configuration file for stm32wpan transport layer interface.
+ *
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __TL_DBG_CONF_H
+#define __TL_DBG_CONF_H
+
+/* USER CODE BEGIN Tl_Conf */
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_conf.h" /* required as some configuration used in dbg_trace.h are set there */
+#include "dbg_trace.h"
+#include "hw_if.h"
+
+/**
+ * Enable or Disable traces
+ * The raw data output is the hci binary packet format as specified by the BT specification *
+ */
+#define TL_SHCI_CMD_DBG_EN 0 /* Reports System commands sent to CPU2 and the command response */
+#define TL_SHCI_CMD_DBG_RAW_EN 0 /* Reports raw data System commands sent to CPU2 and the command response */
+#define TL_SHCI_EVT_DBG_EN 0 /* Reports System Asynchronous Events received from CPU2 */
+#define TL_SHCI_EVT_DBG_RAW_EN 0 /* Reports raw data System Asynchronous Events received from CPU2 */
+
+#define TL_HCI_CMD_DBG_EN 0 /* Reports BLE command sent to CPU2 and the command response */
+#define TL_HCI_CMD_DBG_RAW_EN 0 /* Reports raw data BLE command sent to CPU2 and the command response */
+#define TL_HCI_EVT_DBG_EN 0 /* Reports BLE Asynchronous Events received from CPU2 */
+#define TL_HCI_EVT_DBG_RAW_EN 0 /* Reports raw data BLE Asynchronous Events received from CPU2 */
+
+#define TL_MM_DBG_EN 0 /* Reports the information of the buffer released to CPU2 */
+
+/**
+ * Macro definition
+ */
+
+/**
+ * System Transport Layer
+ */
+#if (TL_SHCI_CMD_DBG_EN != 0)
+#define TL_SHCI_CMD_DBG_MSG PRINT_MESG_DBG
+#define TL_SHCI_CMD_DBG_BUF PRINT_LOG_BUFF_DBG
+#else
+#define TL_SHCI_CMD_DBG_MSG(...)
+#define TL_SHCI_CMD_DBG_BUF(...)
+#endif
+
+#if (TL_SHCI_CMD_DBG_RAW_EN != 0)
+#define TL_SHCI_CMD_DBG_RAW(_PDATA_, _SIZE_) HW_UART_Transmit(hw_uart1, (uint8_t*)_PDATA_, _SIZE_, (~0))
+#else
+#define TL_SHCI_CMD_DBG_RAW(...)
+#endif
+
+#if (TL_SHCI_EVT_DBG_EN != 0)
+#define TL_SHCI_EVT_DBG_MSG PRINT_MESG_DBG
+#define TL_SHCI_EVT_DBG_BUF PRINT_LOG_BUFF_DBG
+#else
+#define TL_SHCI_EVT_DBG_MSG(...)
+#define TL_SHCI_EVT_DBG_BUF(...)
+#endif
+
+#if (TL_SHCI_EVT_DBG_RAW_EN != 0)
+#define TL_SHCI_EVT_DBG_RAW(_PDATA_, _SIZE_) HW_UART_Transmit(hw_uart1, (uint8_t*)_PDATA_, _SIZE_, (~0))
+#else
+#define TL_SHCI_EVT_DBG_RAW(...)
+#endif
+
+/**
+ * BLE Transport Layer
+ */
+#if (TL_HCI_CMD_DBG_EN != 0)
+#define TL_HCI_CMD_DBG_MSG PRINT_MESG_DBG
+#define TL_HCI_CMD_DBG_BUF PRINT_LOG_BUFF_DBG
+#else
+#define TL_HCI_CMD_DBG_MSG(...)
+#define TL_HCI_CMD_DBG_BUF(...)
+#endif
+
+#if (TL_HCI_CMD_DBG_RAW_EN != 0)
+#define TL_HCI_CMD_DBG_RAW(_PDATA_, _SIZE_) HW_UART_Transmit(hw_uart1, (uint8_t*)_PDATA_, _SIZE_, (~0))
+#else
+#define TL_HCI_CMD_DBG_RAW(...)
+#endif
+
+#if (TL_HCI_EVT_DBG_EN != 0)
+#define TL_HCI_EVT_DBG_MSG PRINT_MESG_DBG
+#define TL_HCI_EVT_DBG_BUF PRINT_LOG_BUFF_DBG
+#else
+#define TL_HCI_EVT_DBG_MSG(...)
+#define TL_HCI_EVT_DBG_BUF(...)
+#endif
+
+#if (TL_HCI_EVT_DBG_RAW_EN != 0)
+#define TL_HCI_EVT_DBG_RAW(_PDATA_, _SIZE_) HW_UART_Transmit(hw_uart1, (uint8_t*)_PDATA_, _SIZE_, (~0))
+#else
+#define TL_HCI_EVT_DBG_RAW(...)
+#endif
+
+/**
+ * Memory Manager - Released buffer tracing
+ */
+#if (TL_MM_DBG_EN != 0)
+#define TL_MM_DBG_MSG PRINT_MESG_DBG
+#else
+#define TL_MM_DBG_MSG(...)
+#endif
+
+/* USER CODE END Tl_Conf */
+
+#endif /*__TL_DBG_CONF_H */
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/tl_if.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/tl_if.c
new file mode 100644
index 000000000..85aa6e5da
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/tl_if.c
@@ -0,0 +1,45 @@
+/**
+ ******************************************************************************
+ * @file tl_if.c
+ * @author MCD Application Team
+ * @brief Transport layer interface to BLE
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+#include "app_common.h"
+
+#include "hci_tl.h"
+#include "shci_tl.h"
+#include "tl.h"
+
+
+void hci_register_io_bus(tHciIO* fops)
+{
+ /* Register IO bus services */
+ fops->Init = TL_BLE_Init;
+ fops->Send = TL_BLE_SendCmd;
+
+ return;
+}
+
+void shci_register_io_bus(tSHciIO* fops)
+{
+ /* Register IO bus services */
+ fops->Init = TL_SYS_Init;
+ fops->Send = TL_SYS_SendCmd;
+
+ return;
+}
+
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/user_if.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/user_if.c
new file mode 100644
index 000000000..349251ecd
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/user_if.c
@@ -0,0 +1,341 @@
+/**
+ ******************************************************************************
+* @file user_if.c
+* @author BLE Mesh Team
+* @brief User interface file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) STMicroelectronics</center></h2>
+(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* Includes ------------------------------------------------------------------*/
+#include "cube_hal.h"
+#include "ble_clock.h"
+#include "hci.h"
+#include "user_if.h"
+#include "hal.h"
+#include "hal_common.h"
+#include "mesh_cfg.h"
+
+#include <stdio.h>
+#ifdef IAR
+#include <yfuns.h>
+#else
+#define _LLIO_STDIN 0
+#define _LLIO_STDOUT 1
+#define _LLIO_STDERR 2
+#define _LLIO_ERROR ((size_t)-1) /* For __read and __write. */
+#endif
+
+
+
+typedef struct _IO_ReceiveCallBack
+{
+ /**
+ * callback to notify the application with the received I/O data
+ */
+ IO_RECEIVE_DATA_USER_CALLBACK_TYPE IO_user_application;
+} IO_ReceiveCallBack;
+/**
+* @}
+*/
+
+#define READ_DATA_SIZE 1024
+#define READ_BUFFER_IS_EMPTY() (Read_ptr_in == Read_ptr_out)
+
+/* IO User Callback used to handle received data from I/O channel*/
+static uint8_t Read_Buffer [READ_DATA_SIZE];
+static uint32_t Read_ptr_in = 0;
+static uint32_t Read_ptr_out = 0;
+/*static volatile uint8_t s_SdkEvalVersion = ID_UNKNOWN;*/
+static IO_ReceiveCallBack IO_Receive_Data;
+static void SdkEval_IO_processInputData(uint8_t * rx_data, uint16_t data_size);
+
+
+/**
+* @brief SetLed Sets the state of led
+* @param int state State for the led GPIO
+* @retval void
+*/
+void SetLed(int state)
+{
+ if (state)
+ {
+ BSP_LED_On(LED_BLUE);
+ }
+ else
+ {
+ BSP_LED_Off(LED_BLUE);
+ }
+}
+
+#if 0
+/**
+* @brief GetButtonState
+* @param void
+* @retval BUTTON_STATE returns the status of the userbutton GPIO
+*/
+BUTTON_STATE GetButtonState(void)
+{
+ return HAL_GPIO_ReadPin(GPIOC, GPIO_PIN_13);
+}
+
+/**
+* @brief InitButton initializes the GPIO for the user button
+* @param void
+* @retval void
+*/
+void InitButton(void)
+{
+ GPIO_InitTypeDef init;
+ init.Pin = GPIO_PIN_13;
+ init.Mode = GPIO_MODE_INPUT | GPIO_MODE_EVT_FALLING;
+ init.Pull = GPIO_NOPULL;
+ init.Speed = GPIO_SPEED_VERY_LOW;
+ init.Alternate = 0;
+ __HAL_RCC_GPIOC_CLK_ENABLE();
+ HAL_GPIO_Init(GPIOC, &init);
+ EXTI->FTSR |= EXTI_RTSR_TR13; /* enable wake-up event on falling edge */
+ EXTI->IMR &= ~EXTI_IMR_MR13; /* disable interrupt */
+ EXTI->EMR |= EXTI_EMR_MR13; /* enable event */
+}
+#endif
+
+/**
+* @brief processInputData
+* @param uint8_t * rx_data pointer to receive data
+* @param uint16_t data_size size of receive data
+* @retval void
+*/
+void processInputData(uint8_t * rx_data, uint16_t data_size)
+{
+ SdkEval_IO_processInputData(rx_data, data_size);
+}
+
+/**
+* @brief Configure the selected I/O communication channel
+* @param None.
+* @retval None.
+*/
+void SdkEval_IO_Config(IO_RECEIVE_DATA_USER_CALLBACK_TYPE io_receive_function)
+{
+ IO_Receive_Data.IO_user_application = io_receive_function;
+#if defined (ENABLE_USB)
+ /* Init Device Library */
+ USBD_Init(&USBD_Device, &VCP_Desc, 0);
+
+ /* Add Supported Class */
+ USBD_RegisterClass(&USBD_Device, USBD_CDC_CLASS);
+
+ /* Add CDC Interface Class */
+ USBD_CDC_RegisterInterface(&USBD_Device, &USBD_CDC_fops);
+
+ /* Start Device Process */
+ USBD_Start(&USBD_Device);
+
+#elif defined (ENABLE_USART)
+ /* Init Serial Uart */
+ MX_USART2_UART_Init();
+#endif
+}
+
+/**
+* @brief InitDevice intitializes the Device
+* @param void
+* @retval void
+*/
+void InitDevice(void)
+{
+ Init_Device(); /* Initializes HAL and System Clock */
+
+#ifndef NEWLIB_SYSCALLS
+ SdkEval_IO_Config(processInputData);
+#endif
+ /* Delay for debug purpose, in order to see printed data at startup. */
+#if defined(ENABLE_USART)
+ Clock_Wait(2000);
+#endif
+
+#if defined(ACCELEROMETER_TYPE) || defined(THERMOMETER_TYPE)
+ I2C_Reset();
+ Temperature_Init();
+ Accel_Init();
+#endif
+ InitButton();
+}
+
+
+/**
+* @brief ShouldSleepFunc sleep mode function
+* @param void
+* @retval void
+*/
+void ShouldSleepFunc(void)
+{
+ __disable_irq();
+ __WFE();
+ __NOP();
+ __enable_irq();
+}
+
+/**
+* @brief Receive data on selected I/O port
+* @param rx_data pointer to buffer of received
+* @param data_size number of received data
+* @retval None.
+*/
+void SdkEval_IO_Receive_Data(uint8_t * rx_data, uint16_t data_size)
+{
+ if(IO_Receive_Data.IO_user_application)
+ IO_Receive_Data.IO_user_application(rx_data,data_size);
+
+}
+/**
+* @brief Read buffer push
+* @param byte
+* @retval None.
+*/
+void Read_Buffer_Push(uint8_t byte)
+{
+ Read_Buffer[Read_ptr_in] = byte;
+
+ Read_ptr_in++;
+
+ /* To avoid buffer overflow */
+ if(Read_ptr_in == READ_DATA_SIZE)
+ {
+ Read_ptr_in = 0;
+ }
+}
+/**
+* @brief Read buffer pop
+* @param byte
+* @retval None.
+*/
+int Read_Buffer_Pop(uint8_t *byte)
+{
+ if(READ_BUFFER_IS_EMPTY())
+ return 0;
+
+ *byte = Read_Buffer[Read_ptr_out];
+
+ Read_ptr_out++;
+
+ if(Read_ptr_out == READ_DATA_SIZE)
+ Read_ptr_out = 0;
+
+ return 1;
+}
+/**
+* @brief Process input data
+* @param byte
+* @retval None.
+*/
+static void SdkEval_IO_processInputData(uint8_t * rx_data, uint16_t data_size)
+{
+ for(int i = 0; i < data_size; i++){
+ Read_Buffer_Push(rx_data[i]);
+ }
+}
+extern UART_HandleTypeDef huart2;
+#undef putchar
+/**
+* @brief Put character
+* @param byte
+* @retval None.
+*/
+int putchar(int c)
+{
+ /* wait for the transmission end */
+ while(!(__HAL_UART_GET_FLAG(&huart2, UART_FLAG_TXE)));
+ /* send the data */
+ HAL_UART_Transmit(&huart2, (uint8_t*)&c, 1, UART_TX_TIMEOUT);
+ return c;
+}
+
+void __io_putchar(char c)
+{
+ putchar(c);
+}
+
+/* Required for Keil */
+#ifndef __IAR_SYSTEMS_ICC__
+void _ttywrch(int ch)
+{
+ putchar(ch);
+}
+
+int fputc(int ch, FILE *f)
+{
+ _ttywrch(ch);
+ return(ch);
+}
+int fgetc(FILE *f)
+{
+ return -1;
+}
+#endif
+
+/**
+* @brief Write handle
+* @param buffer
+* @param size
+* @retval None.
+*/
+size_t _write(int handle, const unsigned char * buffer, size_t size)
+{
+ size_t nChars = 0;
+
+ if (handle != _LLIO_STDOUT && handle != _LLIO_STDERR) {
+ return _LLIO_ERROR;
+ }
+
+ if (buffer == 0) {
+ /* This means that we should flush internal buffers.
+ spin until TX complete (TX is idle)*/
+#ifdef ENABLE_USB
+ while (!USB_OUT_BUFFER_IS_EMPTY()) {}
+#endif /* ENABLE_USB */
+ return 0;
+ }
+
+ while(size--) {
+ __io_putchar(*buffer++);
+ ++nChars;
+ }
+
+ return nChars;
+}
+
+/**
+* @brief Read handle
+* @param buffer
+* @param size
+* @retval None.
+*/
+size_t __read(int handle, unsigned char * buffer, size_t size)
+{
+ size_t bytes = 0;
+
+ while(bytes < size && Read_Buffer_Pop(buffer+bytes)){
+ bytes++;
+ }
+ return bytes;
+}
+
+uint8_t __io_getcharNonBlocking(uint8_t *data)
+{
+ if (__read(_LLIO_STDIN,data,1))
+ return 1;
+ else
+ return 0;
+}/* end serialReadByte() */
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/user_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/user_if.h
new file mode 100644
index 000000000..47889703c
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/user_if.h
@@ -0,0 +1,39 @@
+/**
+ ******************************************************************************
+* @file user_if.h
+* @author BLE Mesh Team
+* @brief Header file for User interface file
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) STMicroelectronics</center></h2>
+(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef _USER_INTERFACE_H_
+#define _USER_INTERFACE_H_
+
+/* Includes ------------------------------------------------------------------*/
+#include "stm32wbxx_hal.h"
+#include "stm32wbxx_hal_conf.h"
+#include "ble_clock.h"
+
+#define BUTTON_PRESSED GPIO_PIN_RESET
+
+/* Exported typedefs ---------------------------------------------*/
+typedef GPIO_PinState BUTTON_STATE;
+typedef void (* IO_RECEIVE_DATA_USER_CALLBACK_TYPE) (uint8_t * rx_data, uint16_t data_size);
+
+/* Exported Functions Prototypes ---------------------------------------------*/
+
+#endif /* _USER_INTERFACE_H_ */
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/vcp_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/vcp_conf.h
new file mode 100644
index 000000000..5dc48464c
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/app/vcp_conf.h
@@ -0,0 +1,49 @@
+/**
+ ******************************************************************************
+ * @file vcp_conf.h
+ * @author MCD Application Team
+ * @brief Configuration of the vcp interface
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Define to prevent recursive inclusion -------------------------------------*/
+#ifndef __VCP_CONF_H
+#define __VCP_CONF_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+/* Includes ------------------------------------------------------------------*/
+/* Exported types ------------------------------------------------------------*/
+/* Exported constants --------------------------------------------------------*/
+#define VCP_BAUD_RATE (115200)
+#define VCP_TX_PATH_INTERFACE_READY_SETUP_TIME (20*1000*1000/CFG_TS_TICK_VAL) /** 20s */
+#define VCP_TASK_ID (CFG_IdleTask_VCP_SendData)
+#define VCP_TASK_PRIO (CFG_SCH_Prio_1)
+
+#ifdef VCP_TX_PATH_INTERFACE_READY_SETUP_TIME
+#define VCP_TIMER_PROC_ID (CFG_TimProcID_isr)
+#endif
+
+/* External variables --------------------------------------------------------*/
+/* Exported macros -----------------------------------------------------------*/
+/* Exported functions ------------------------------------------------------- */
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*__VCP_CONF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/target/hw_ipcc.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/target/hw_ipcc.c
new file mode 100644
index 000000000..8e924740e
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/target/hw_ipcc.c
@@ -0,0 +1,673 @@
+/**
+ ******************************************************************************
+ * File Name : Target/hw_ipcc.c
+ * Description : Hardware IPCC source file for STM32WPAN Middleware.
+ *
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_common.h"
+#include "mbox_def.h"
+
+/* Global variables ---------------------------------------------------------*/
+/* Private defines -----------------------------------------------------------*/
+#define HW_IPCC_TX_PENDING( channel ) ( !(LL_C1_IPCC_IsActiveFlag_CHx( IPCC, channel )) ) && (((~(IPCC->C1MR)) & (channel << 16U)))
+#define HW_IPCC_RX_PENDING( channel ) (LL_C2_IPCC_IsActiveFlag_CHx( IPCC, channel )) && (((~(IPCC->C1MR)) & (channel << 0U)))
+
+/* Private macros ------------------------------------------------------------*/
+/* Private typedef -----------------------------------------------------------*/
+/* Private variables ---------------------------------------------------------*/
+static void (*FreeBufCb)( void );
+
+/* Private function prototypes -----------------------------------------------*/
+static void HW_IPCC_BLE_EvtHandler( void );
+static void HW_IPCC_BLE_AclDataEvtHandler( void );
+static void HW_IPCC_MM_FreeBufHandler( void );
+static void HW_IPCC_SYS_CmdEvtHandler( void );
+static void HW_IPCC_SYS_EvtHandler( void );
+static void HW_IPCC_TRACES_EvtHandler( void );
+
+#ifdef THREAD_WB
+static void HW_IPCC_OT_CmdEvtHandler( void );
+static void HW_IPCC_THREAD_NotEvtHandler( void );
+static void HW_IPCC_THREAD_CliNotEvtHandler( void );
+#endif
+
+#ifdef LLD_TESTS_WB
+static void HW_IPCC_LLDTESTS_ReceiveCliRspHandler( void );
+static void HW_IPCC_LLDTESTS_ReceiveM0CmdHandler( void );
+#endif
+#ifdef LLD_BLE_WB
+/*static void HW_IPCC_LLD_BLE_ReceiveCliRspHandler( void );*/
+static void HW_IPCC_LLD_BLE_ReceiveRspHandler( void );
+static void HW_IPCC_LLD_BLE_ReceiveM0CmdHandler( void );
+#endif
+
+#ifdef MAC_802_15_4_WB
+static void HW_IPCC_MAC_802_15_4_CmdEvtHandler( void );
+static void HW_IPCC_MAC_802_15_4_NotEvtHandler( void );
+#endif
+
+#ifdef ZIGBEE_WB
+static void HW_IPCC_ZIGBEE_CmdEvtHandler( void );
+static void HW_IPCC_ZIGBEE_StackNotifEvtHandler( void );
+static void HW_IPCC_ZIGBEE_StackM0RequestHandler( void );
+#endif
+
+/* Public function definition -----------------------------------------------*/
+
+/******************************************************************************
+ * INTERRUPT HANDLER
+ ******************************************************************************/
+void HW_IPCC_Rx_Handler( void )
+{
+ if (HW_IPCC_RX_PENDING( HW_IPCC_SYSTEM_EVENT_CHANNEL ))
+ {
+ HW_IPCC_SYS_EvtHandler();
+ }
+#ifdef MAC_802_15_4_WB
+ else if (HW_IPCC_RX_PENDING( HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL ))
+ {
+ HW_IPCC_MAC_802_15_4_NotEvtHandler();
+ }
+#endif /* MAC_802_15_4_WB */
+#ifdef THREAD_WB
+ else if (HW_IPCC_RX_PENDING( HW_IPCC_THREAD_NOTIFICATION_ACK_CHANNEL ))
+ {
+ HW_IPCC_THREAD_NotEvtHandler();
+ }
+ else if (HW_IPCC_RX_PENDING( HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL ))
+ {
+ HW_IPCC_THREAD_CliNotEvtHandler();
+ }
+#endif /* THREAD_WB */
+#ifdef LLD_TESTS_WB
+ else if (HW_IPCC_RX_PENDING( HW_IPCC_LLDTESTS_CLI_RSP_CHANNEL ))
+ {
+ HW_IPCC_LLDTESTS_ReceiveCliRspHandler();
+ }
+ else if (HW_IPCC_RX_PENDING( HW_IPCC_LLDTESTS_M0_CMD_CHANNEL ))
+ {
+ HW_IPCC_LLDTESTS_ReceiveM0CmdHandler();
+ }
+#endif /* LLD_TESTS_WB */
+#ifdef LLD_BLE_WB
+ else if (HW_IPCC_RX_PENDING( HW_IPCC_LLD_BLE_RSP_CHANNEL ))
+ {
+ HW_IPCC_LLD_BLE_ReceiveRspHandler();
+ }
+ else if (HW_IPCC_RX_PENDING( HW_IPCC_LLD_BLE_M0_CMD_CHANNEL ))
+ {
+ HW_IPCC_LLD_BLE_ReceiveM0CmdHandler();
+ }
+#endif /* LLD_TESTS_WB */
+#ifdef ZIGBEE_WB
+ else if (HW_IPCC_RX_PENDING( HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL ))
+ {
+ HW_IPCC_ZIGBEE_StackNotifEvtHandler();
+ }
+ else if (HW_IPCC_RX_PENDING( HW_IPCC_ZIGBEE_M0_REQUEST_CHANNEL ))
+ {
+ HW_IPCC_ZIGBEE_StackM0RequestHandler();
+ }
+#endif /* ZIGBEE_WB */
+ else if (HW_IPCC_RX_PENDING( HW_IPCC_BLE_EVENT_CHANNEL ))
+ {
+ HW_IPCC_BLE_EvtHandler();
+ }
+ else if (HW_IPCC_RX_PENDING( HW_IPCC_TRACES_CHANNEL ))
+ {
+ HW_IPCC_TRACES_EvtHandler();
+ }
+
+ return;
+}
+
+void HW_IPCC_Tx_Handler( void )
+{
+ if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
+ {
+ HW_IPCC_SYS_CmdEvtHandler();
+ }
+#ifdef MAC_802_15_4_WB
+ else if (HW_IPCC_TX_PENDING( HW_IPCC_MAC_802_15_4_CMD_RSP_CHANNEL ))
+ {
+ HW_IPCC_MAC_802_15_4_CmdEvtHandler();
+ }
+#endif /* MAC_802_15_4_WB */
+#ifdef THREAD_WB
+ else if (HW_IPCC_TX_PENDING( HW_IPCC_THREAD_OT_CMD_RSP_CHANNEL ))
+ {
+ HW_IPCC_OT_CmdEvtHandler();
+ }
+#endif /* THREAD_WB */
+#ifdef LLD_TESTS_WB
+// No TX handler for LLD tests
+#endif /* LLD_TESTS_WB */
+#ifdef ZIGBEE_WB
+ if (HW_IPCC_TX_PENDING( HW_IPCC_ZIGBEE_CMD_APPLI_CHANNEL ))
+ {
+ HW_IPCC_ZIGBEE_CmdEvtHandler();
+ }
+#endif /* ZIGBEE_WB */
+ else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
+ {
+ HW_IPCC_SYS_CmdEvtHandler();
+ }
+ else if (HW_IPCC_TX_PENDING( HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ))
+ {
+ HW_IPCC_MM_FreeBufHandler();
+ }
+ else if (HW_IPCC_TX_PENDING( HW_IPCC_HCI_ACL_DATA_CHANNEL ))
+ {
+ HW_IPCC_BLE_AclDataEvtHandler();
+ }
+
+ return;
+}
+/******************************************************************************
+ * GENERAL
+ ******************************************************************************/
+void HW_IPCC_Enable( void )
+{
+ /**
+ * Such as IPCC IP available to the CPU2, it is required to keep the IPCC clock running
+ when FUS is running on CPU2 and CPU1 enters deep sleep mode
+ */
+ LL_C2_AHB3_GRP1_EnableClock(LL_C2_AHB3_GRP1_PERIPH_IPCC);
+
+ /**
+ * When the device is out of standby, it is required to use the EXTI mechanism to wakeup CPU2
+ */
+ LL_C2_EXTI_EnableEvent_32_63( LL_EXTI_LINE_41 );
+ LL_EXTI_EnableRisingTrig_32_63( LL_EXTI_LINE_41 );
+
+ /**
+ * In case the SBSFU is implemented, it may have already set the C2BOOT bit to startup the CPU2.
+ * In that case, to keep the mechanism transparent to the user application, it shall call the system command
+ * SHCI_C2_Reinit( ) before jumping to the application.
+ * When the CPU2 receives that command, it waits for its event input to be set to restart the CPU2 firmware.
+ * This is required because once C2BOOT has been set once, a clear/set on C2BOOT has no effect.
+ * When SHCI_C2_Reinit( ) is not called, generating an event to the CPU2 does not have any effect
+ * So, by default, the application shall both set the event flag and set the C2BOOT bit.
+ */
+ __SEV( ); /* Set the internal event flag and send an event to the CPU2 */
+ __WFE( ); /* Clear the internal event flag */
+ LL_PWR_EnableBootC2( );
+
+ return;
+}
+
+void HW_IPCC_Init( void )
+{
+ LL_AHB3_GRP1_EnableClock( LL_AHB3_GRP1_PERIPH_IPCC );
+
+ LL_C1_IPCC_EnableIT_RXO( IPCC );
+ LL_C1_IPCC_EnableIT_TXF( IPCC );
+
+ HAL_NVIC_EnableIRQ(IPCC_C1_RX_IRQn);
+ HAL_NVIC_EnableIRQ(IPCC_C1_TX_IRQn);
+
+ return;
+}
+
+/******************************************************************************
+ * BLE
+ ******************************************************************************/
+void HW_IPCC_BLE_Init( void )
+{
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_BLE_EVENT_CHANNEL );
+
+ return;
+}
+
+void HW_IPCC_BLE_SendCmd( void )
+{
+ LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_BLE_CMD_CHANNEL );
+
+ return;
+}
+
+static void HW_IPCC_BLE_EvtHandler( void )
+{
+ HW_IPCC_BLE_RxEvtNot();
+
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_BLE_EVENT_CHANNEL );
+
+ return;
+}
+
+void HW_IPCC_BLE_SendAclData( void )
+{
+ LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_HCI_ACL_DATA_CHANNEL );
+ LL_C1_IPCC_EnableTransmitChannel( IPCC, HW_IPCC_HCI_ACL_DATA_CHANNEL );
+
+ return;
+}
+
+static void HW_IPCC_BLE_AclDataEvtHandler( void )
+{
+ LL_C1_IPCC_DisableTransmitChannel( IPCC, HW_IPCC_HCI_ACL_DATA_CHANNEL );
+
+ HW_IPCC_BLE_AclDataAckNot();
+
+ return;
+}
+
+__weak void HW_IPCC_BLE_AclDataAckNot( void ){};
+__weak void HW_IPCC_BLE_RxEvtNot( void ){};
+
+/******************************************************************************
+ * SYSTEM
+ ******************************************************************************/
+void HW_IPCC_SYS_Init( void )
+{
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_SYSTEM_EVENT_CHANNEL );
+
+ return;
+}
+
+void HW_IPCC_SYS_SendCmd( void )
+{
+ LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_SYSTEM_CMD_RSP_CHANNEL );
+ LL_C1_IPCC_EnableTransmitChannel( IPCC, HW_IPCC_SYSTEM_CMD_RSP_CHANNEL );
+
+ return;
+}
+
+static void HW_IPCC_SYS_CmdEvtHandler( void )
+{
+ LL_C1_IPCC_DisableTransmitChannel( IPCC, HW_IPCC_SYSTEM_CMD_RSP_CHANNEL );
+
+ HW_IPCC_SYS_CmdEvtNot();
+
+ return;
+}
+
+static void HW_IPCC_SYS_EvtHandler( void )
+{
+ HW_IPCC_SYS_EvtNot();
+
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_SYSTEM_EVENT_CHANNEL );
+
+ return;
+}
+
+__weak void HW_IPCC_SYS_CmdEvtNot( void ){};
+__weak void HW_IPCC_SYS_EvtNot( void ){};
+
+/******************************************************************************
+ * MAC 802.15.4
+ ******************************************************************************/
+#ifdef MAC_802_15_4_WB
+void HW_IPCC_MAC_802_15_4_Init( void )
+{
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL );
+
+ return;
+}
+
+void HW_IPCC_MAC_802_15_4_SendCmd( void )
+{
+ LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_MAC_802_15_4_CMD_RSP_CHANNEL );
+ LL_C1_IPCC_EnableTransmitChannel( IPCC, HW_IPCC_MAC_802_15_4_CMD_RSP_CHANNEL );
+
+ return;
+}
+
+void HW_IPCC_MAC_802_15_4_SendAck( void )
+{
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL );
+
+ return;
+}
+
+static void HW_IPCC_MAC_802_15_4_CmdEvtHandler( void )
+{
+ LL_C1_IPCC_DisableTransmitChannel( IPCC, HW_IPCC_MAC_802_15_4_CMD_RSP_CHANNEL );
+
+ HW_IPCC_MAC_802_15_4_CmdEvtNot();
+
+ return;
+}
+
+static void HW_IPCC_MAC_802_15_4_NotEvtHandler( void )
+{
+ LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_MAC_802_15_4_NOTIFICATION_ACK_CHANNEL );
+
+ HW_IPCC_MAC_802_15_4_EvtNot();
+
+ return;
+}
+__weak void HW_IPCC_MAC_802_15_4_CmdEvtNot( void ){};
+__weak void HW_IPCC_MAC_802_15_4_EvtNot( void ){};
+#endif
+
+/******************************************************************************
+ * THREAD
+ ******************************************************************************/
+#ifdef THREAD_WB
+void HW_IPCC_THREAD_Init( void )
+{
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_THREAD_NOTIFICATION_ACK_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL );
+
+ return;
+}
+
+void HW_IPCC_OT_SendCmd( void )
+{
+ LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_THREAD_OT_CMD_RSP_CHANNEL );
+ LL_C1_IPCC_EnableTransmitChannel( IPCC, HW_IPCC_THREAD_OT_CMD_RSP_CHANNEL );
+
+ return;
+}
+
+void HW_IPCC_CLI_SendCmd( void )
+{
+ LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_THREAD_CLI_CMD_CHANNEL );
+
+ return;
+}
+
+void HW_IPCC_THREAD_SendAck( void )
+{
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_THREAD_NOTIFICATION_ACK_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_THREAD_NOTIFICATION_ACK_CHANNEL );
+
+ return;
+}
+
+void HW_IPCC_THREAD_CliSendAck( void )
+{
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL );
+
+ return;
+}
+
+static void HW_IPCC_OT_CmdEvtHandler( void )
+{
+ LL_C1_IPCC_DisableTransmitChannel( IPCC, HW_IPCC_THREAD_OT_CMD_RSP_CHANNEL );
+
+ HW_IPCC_OT_CmdEvtNot();
+
+ return;
+}
+
+static void HW_IPCC_THREAD_NotEvtHandler( void )
+{
+ LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_THREAD_NOTIFICATION_ACK_CHANNEL );
+
+ HW_IPCC_THREAD_EvtNot();
+
+ return;
+}
+
+static void HW_IPCC_THREAD_CliNotEvtHandler( void )
+{
+ LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_THREAD_CLI_NOTIFICATION_ACK_CHANNEL );
+
+ HW_IPCC_THREAD_CliEvtNot();
+
+ return;
+}
+
+__weak void HW_IPCC_OT_CmdEvtNot( void ){};
+__weak void HW_IPCC_CLI_CmdEvtNot( void ){};
+__weak void HW_IPCC_THREAD_EvtNot( void ){};
+
+#endif /* THREAD_WB */
+
+/******************************************************************************
+ * LLD TESTS
+ ******************************************************************************/
+#ifdef LLD_TESTS_WB
+void HW_IPCC_LLDTESTS_Init( void )
+{
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_LLDTESTS_CLI_RSP_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_LLDTESTS_M0_CMD_CHANNEL );
+ return;
+}
+
+void HW_IPCC_LLDTESTS_SendCliCmd( void )
+{
+ LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_LLDTESTS_CLI_CMD_CHANNEL );
+ return;
+}
+
+static void HW_IPCC_LLDTESTS_ReceiveCliRspHandler( void )
+{
+ LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_LLDTESTS_CLI_RSP_CHANNEL );
+ HW_IPCC_LLDTESTS_ReceiveCliRsp();
+ return;
+}
+
+void HW_IPCC_LLDTESTS_SendCliRspAck( void )
+{
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_LLDTESTS_CLI_RSP_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_LLDTESTS_CLI_RSP_CHANNEL );
+ return;
+}
+
+static void HW_IPCC_LLDTESTS_ReceiveM0CmdHandler( void )
+{
+ LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_LLDTESTS_M0_CMD_CHANNEL );
+ HW_IPCC_LLDTESTS_ReceiveM0Cmd();
+ return;
+}
+
+
+void HW_IPCC_LLDTESTS_SendM0CmdAck( void )
+{
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_LLDTESTS_M0_CMD_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_LLDTESTS_M0_CMD_CHANNEL );
+ return;
+}
+__weak void HW_IPCC_LLDTESTS_ReceiveCliRsp( void ){};
+__weak void HW_IPCC_LLDTESTS_ReceiveM0Cmd( void ){};
+#endif /* LLD_TESTS_WB */
+
+/******************************************************************************
+ * LLD BLE
+ ******************************************************************************/
+#ifdef LLD_BLE_WB
+void HW_IPCC_LLD_BLE_Init( void )
+{
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_LLD_BLE_RSP_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_LLD_BLE_M0_CMD_CHANNEL );
+ return;
+}
+
+void HW_IPCC_LLD_BLE_SendCliCmd( void )
+{
+ LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_LLD_BLE_CLI_CMD_CHANNEL );
+ return;
+}
+
+/*static void HW_IPCC_LLD_BLE_ReceiveCliRspHandler( void )
+{
+ LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_LLD_BLE_CLI_RSP_CHANNEL );
+ HW_IPCC_LLD_BLE_ReceiveCliRsp();
+ return;
+}*/
+
+void HW_IPCC_LLD_BLE_SendCliRspAck( void )
+{
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_LLD_BLE_CLI_RSP_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_LLD_BLE_CLI_RSP_CHANNEL );
+ return;
+}
+
+static void HW_IPCC_LLD_BLE_ReceiveM0CmdHandler( void )
+{
+ //LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_LLD_BLE_M0_CMD_CHANNEL );
+ HW_IPCC_LLD_BLE_ReceiveM0Cmd();
+ return;
+}
+
+
+void HW_IPCC_LLD_BLE_SendM0CmdAck( void )
+{
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_LLD_BLE_M0_CMD_CHANNEL );
+ //LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_LLD_BLE_M0_CMD_CHANNEL );
+ return;
+}
+__weak void HW_IPCC_LLD_BLE_ReceiveCliRsp( void ){};
+__weak void HW_IPCC_LLD_BLE_ReceiveM0Cmd( void ){};
+
+/* Transparent Mode */
+void HW_IPCC_LLD_BLE_SendCmd( void )
+{
+ LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_LLD_BLE_CMD_CHANNEL );
+ return;
+}
+
+static void HW_IPCC_LLD_BLE_ReceiveRspHandler( void )
+{
+ LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_LLD_BLE_RSP_CHANNEL );
+ HW_IPCC_LLD_BLE_ReceiveRsp();
+ return;
+}
+
+void HW_IPCC_LLD_BLE_SendRspAck( void )
+{
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_LLD_BLE_RSP_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_LLD_BLE_RSP_CHANNEL );
+ return;
+}
+
+#endif /* LLD_BLE_WB */
+
+/******************************************************************************
+ * ZIGBEE
+ ******************************************************************************/
+#ifdef ZIGBEE_WB
+void HW_IPCC_ZIGBEE_Init( void )
+{
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_ZIGBEE_M0_REQUEST_CHANNEL );
+
+ return;
+}
+
+void HW_IPCC_ZIGBEE_SendM4RequestToM0( void )
+{
+ LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_ZIGBEE_CMD_APPLI_CHANNEL );
+ LL_C1_IPCC_EnableTransmitChannel( IPCC, HW_IPCC_ZIGBEE_CMD_APPLI_CHANNEL );
+
+ return;
+}
+
+void HW_IPCC_ZIGBEE_SendM4AckToM0Notify( void )
+{
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL );
+
+ return;
+}
+
+static void HW_IPCC_ZIGBEE_CmdEvtHandler( void )
+{
+ LL_C1_IPCC_DisableTransmitChannel( IPCC, HW_IPCC_ZIGBEE_CMD_APPLI_CHANNEL );
+
+ HW_IPCC_ZIGBEE_RecvAppliAckFromM0();
+
+ return;
+}
+
+static void HW_IPCC_ZIGBEE_StackNotifEvtHandler( void )
+{
+ LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_ZIGBEE_APPLI_NOTIF_ACK_CHANNEL );
+
+ HW_IPCC_ZIGBEE_RecvM0NotifyToM4();
+
+ return;
+}
+
+static void HW_IPCC_ZIGBEE_StackM0RequestHandler( void )
+{
+ LL_C1_IPCC_DisableReceiveChannel( IPCC, HW_IPCC_ZIGBEE_M0_REQUEST_CHANNEL );
+
+ HW_IPCC_ZIGBEE_RecvM0RequestToM4();
+
+ return;
+}
+
+void HW_IPCC_ZIGBEE_SendM4AckToM0Request( void )
+{
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_ZIGBEE_M0_REQUEST_CHANNEL );
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_ZIGBEE_M0_REQUEST_CHANNEL );
+
+ return;
+}
+
+__weak void HW_IPCC_ZIGBEE_RecvAppliAckFromM0( void ){};
+__weak void HW_IPCC_ZIGBEE_RecvM0NotifyToM4( void ){};
+__weak void HW_IPCC_ZIGBEE_RecvM0RequestToM4( void ){};
+#endif /* ZIGBEE_WB */
+
+/******************************************************************************
+ * MEMORY MANAGER
+ ******************************************************************************/
+void HW_IPCC_MM_SendFreeBuf( void (*cb)( void ) )
+{
+ if ( LL_C1_IPCC_IsActiveFlag_CHx( IPCC, HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ) )
+ {
+ FreeBufCb = cb;
+ LL_C1_IPCC_EnableTransmitChannel( IPCC, HW_IPCC_MM_RELEASE_BUFFER_CHANNEL );
+ }
+ else
+ {
+ cb();
+
+ LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_MM_RELEASE_BUFFER_CHANNEL );
+ }
+
+ return;
+}
+
+static void HW_IPCC_MM_FreeBufHandler( void )
+{
+ LL_C1_IPCC_DisableTransmitChannel( IPCC, HW_IPCC_MM_RELEASE_BUFFER_CHANNEL );
+
+ FreeBufCb();
+
+ LL_C1_IPCC_SetFlag_CHx( IPCC, HW_IPCC_MM_RELEASE_BUFFER_CHANNEL );
+
+ return;
+}
+
+/******************************************************************************
+ * TRACES
+ ******************************************************************************/
+void HW_IPCC_TRACES_Init( void )
+{
+ LL_C1_IPCC_EnableReceiveChannel( IPCC, HW_IPCC_TRACES_CHANNEL );
+
+ return;
+}
+
+static void HW_IPCC_TRACES_EvtHandler( void )
+{
+ HW_IPCC_TRACES_EvtNot();
+
+ LL_C1_IPCC_ClearFlag_CHx( IPCC, HW_IPCC_TRACES_CHANNEL );
+
+ return;
+}
+
+__weak void HW_IPCC_TRACES_EvtNot( void ){};
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/readme.txt b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/readme.txt
new file mode 100644
index 000000000..22f8dd118
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_Model_Sensor/readme.txt
@@ -0,0 +1,269 @@
+/**
+ @page BLE_Mesh_Model_Sensor example
+
+ @verbatim
+ ******************************************************************************
+ * @file BLE/BLE_Mesh_Model_Sensor/readme.txt
+ * @author MCD Application Team
+ * @brief Description of the BLE Mesh Thermometer Sensor Node demo example.
+ ******************************************************************************
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+
+ @par Application Description
+This is the implementation of a BLE Mesh Sensor Model (Client and Server) as specified by the BLE SIG.
+
+This example is to demonstrate the BLE Mesh Sensor Model (Client and Server) by using a STM32WB5MM Discovery Kit as BLE Mesh Sensor Node
+in order to send measured temperature and distance on client request over BLE Mesh Network through sensor command.
+
+@par Keywords
+
+Connectivity, BLE, Mesh, Model, Sensor, BLE protocol, BLE profile, Dual core
+
+@par Directory contents
+
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_common.h Header for all modules with common definition
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_conf.h Parameters configuration file of the application
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_debug.h Header for app_debug.c module
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_entry.h Parameters configuration file of the application
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_stts221.h Header for app_stts221.c module
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/app_vl53l0x.h Header for app_vl53l0x.c module
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_conf.h Configuration file of the HW
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_flash.h Header for hw_flash.c module
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/hw_if.h HW interface
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/lp_timer.h Header for lp_timer.c module
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/main.h Header for main.c module
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32_lpm_if.h Header for stm32_lpm_if.c module (LP management)
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wb5mm_dk_conf.h Configuration file of the Discovery board
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wbxx_hal_conf.h HAL configuration file
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/stm32wbxx_it.h Interrupt handlers header file
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/utilities_conf.h Configuration file of the utilities
+ - BLE/BLE_Mesh_Model_Sensor/Core/Inc/vcp_conf.h Configuration of the vcp interface
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/app_debug.c Debug capabilities source file for STM32WPAN Middleware
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/app_entry.c Initialization of the application
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/app_stts221.c Temperature Application file
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/app_vl53l0x.c Proximity Application file
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_flash.c FLASH drive file
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_timerserver.c Timer Server based on RTC
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/hw_uart.c hardware access
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/lp_timer.c Low power timer
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/main.c Main program
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/stm32_lpm_if.c Low Power Manager Interface
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/stm32wbxx_it.c Interrupt handlers
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/system_stm32wbxx.c stm32wbxx system source file
+ - BLE/BLE_Mesh_Model_Sensor/Core/Src/vl53l0x/ Proximity sensor files
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/app_ble.h Header for app_ble.c module
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/ble_conf.h BLE Services configuration
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/ble_dbg_conf.h BLE Traces configuration of the BLE services
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/app_ble.c BLE Profile implementation
+
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_config.c Config Model APIs callback from ST BLE Mesh Library
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_config.h Header file for the application config file
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_config_client.c Config Client Model APIs callback from ST BLE Mesh Library
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_config_client.h Header file for the application config Client file
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_generic.c Application interface for Generic Mesh Models
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_generic.h Header of Application interface for Generic Mesh Models
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_generic_client.c Application interface for Generic Client Mesh Models
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_generic_client.h Header of Application interface for Generic Client Mesh Models
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_light.c BLE Mesh Light Model implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_light.h Header of BLE Mesh Light Model implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_light_client.c BLE Mesh Light Client Model implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_light_client.h Header of BLE Mesh Light Client Model implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_light_lc.c BLE Mesh Light Lightness Controller Model implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_light_lc.h Header of BLE Mesh Light Lightness Controller Model implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_mesh.c BLE Mesh application implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_mesh.h Header of BLE Mesh application implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_nvm.c BLE Mesh NVM application implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_nvm.h Header of BLE Mesh NVM application implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_sensor.c BLE Mesh Sensor Model implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_sensor.h Header of BLE Mesh Sensor Model implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_sensor_client.c BLE Mesh Sensor Client Model implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_sensor_client.h Header of BLE Mesh Sensor Client Model implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_vendor.c BLE Mesh Vendor Model implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/appli_vendor.h Header of BLE Mesh Vendor Model implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/hal_common.h Header for common function of HAL file
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/mesh_cfg.h Header for Mesh configuration
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/mesh_cfg_usr.h Header for user Mesh configuration
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/models_if.h Header for the BLE Mesh Models Interface file
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/models_if.c BLE Mesh Models Interface file
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/pal_nvm.c BLE Mesh NVM management implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/pal_nvm.h Header of BLE Mesh NVM management implementation
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/svcctl_conf.c Service Controller configuration API
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/PWM_config.c Pulse Width Modulation configuration
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/PWM_config.h Header of Pulse Width Modulation configuration
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/PWM_handlers.c Pulse Width Modulation handlers
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/PWM_handlers.h Header of Pulse Width Modulation handlers
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/tl_conf.h Configuration file of the Transport layer
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/tl_if.c Transport Layer interface
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/user_if.h Header file for User interface file
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/user_if.c User interface file
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/App/vcp_conf.h Configuration of the vcp interface
+
+ - BLE/BLE_Mesh_Model_Sensor/STM32_WPAN/Target/hw_ipcc.c IPCC Driver
+
+
+@par Hardware and Software environment
+
+ - This application runs on STM32WB5MM Discovery Kit devices
+
+ - STM32WB5MM Discovery Kit board Set-up
+ - Connect the Board to your PC with a USB cable type A to mini-B to ST-LINK connector (USB_STLINK).
+
+@par How to use it ?
+
+This application requests having the stm32wb5x_BLE_Stack_full_fw.bin binary flashed on the Wireless Coprocessor.
+If it is not the case, you need to use STM32CubeProgrammer to load the appropriate binary.
+All available binaries are located under /Projects/STM32_Copro_Wireless_Binaries directory.
+Refer to UM2237 to learn how to use/install STM32CubeProgrammer.
+Refer to /Projects/STM32_Copro_Wireless_Binaries/ReleaseNote.html for the detailed procedure to change the
+Wireless Coprocessor binary.
+
+In order to make the program work, you must do the following :
+ - Open your IAR toolchain
+ - Rebuild all files and load the image into Target memory
+ - Run the example
+
+For more details refer to the Application Note:
+ AN5292_STM32WB_How_to_build_BLE_Mesh_Application
+
+
+@Introduction
+
+The ST BLE-Mesh library supports all of the following features in a Mesh node:
+1. Relay: to forward received network PDUs on advertising or GATT bearer, if the Proxy feature is enabled
+2. Proxy: to forward received network PDUs between GATT and advertising bearers
+3. Friend: can perform duties such as scanning for other associated nodes that are usually Low Power mode
+4. Low Power: consumes much less power as the node usually does not perform any scanning
+A typical BLE Mesh node radio should always be in scanning mode to avoid missing packets over the air, but this kind of
+operation is not supported by many devices due to continuous energy requirements.
+To enable low power operation, BLE Mesh Profile v1.0 defines the concept of Friendship.
+In a Mesh network, a Low Power feature-enabled Mesh node (LPN) offloads its packet receiving (scanning) duty to an adjacent
+Friend feature-enabled Mesh node (FN). The LPN is not always scanning and remains inactive (or sleeps) for most of its life
+cycle, significantly reducing its energy requirements. Nodes running on batteries or energy harvesting techniques usually
+support the Low Power feature.
+Once connected to each other, the FN and LPN are considered friends and their connection is known as a Friendship. At least
+one FN must be in the direct radio range of an LPN to establish Friendship.
+
+@Configuration
+
+The Server and Client projects both support Proxy, Relay and Friend features.
+
+@Demo setup based on STM32WB5MM-DK board
+
+General default setting defined in mesh_cfg_usr.h:
+ ENABLE_SENSOR_MODEL_SERVER (1) /* VENDOR SERVER ONOFF MODEL ON FIRST ELEMENT */
+ APPLICATION_NUMBER_OF_ELEMENTS 1 /* NUMBER OF ELEMENT SUPPORTED */
+ APPLICATION_SIG_MODELS_MAX_COUNT 10 /* TOTAL NUMBER OF MODELS SUPPORTED */
+ APPLICATION_VENDOR_MODELS_MAX_COUNT 1 /* TOTAL NIMBER OF VENDOR MODELS SUPPORTED */
+ ENABLE_PB_ADV /* Provisioning Bearer over advertising channels support */
+ ENABLE_PB_GATT /* Provisioning Bearer over GATT proxy support */
+
+The following demo based on STM32WB5MM-DK has been set up using one board as a Thermometer Sensor and one or more boards as Temperature Indicators.
+
+SENSOR SERVER NODE Setup:
+Step 1. By default, the Project is Setup to support a Sensor Server Node. Ensure the ENABLE_SENSOR_MODEL_SERVER macro is enabled while ENABLE_SENSOR_MODEL_CLIENT is disabled in mesh_cfg_usr.h:
+ /* Enable Sensor Model Server or Sensor Model Client */
+ #define ENABLE_SENSOR_MODEL_SERVER (1)
+
+ //#define ENABLE_SENSOR_MODEL_CLIENT (1)
+
+Step 2. Generate and flash binary in the first board.
+ Once flashed, the Node Type (Sensor Server), and the board BD Address are displayed on the LCD screen.
+
+
+SENSOR CLIENT NODE Setup:
+Step 1. In mesh_cfg_usr.h, disable the ENABLE_SENSOR_MODEL_SERVER macro and enable ENABLE_SENSOR_MODEL_CLIENT:
+ /* Enable Sensor Model Server or Sensor Model Client */
+ //#define ENABLE_SENSOR_MODEL_SERVER (1)
+
+ #define ENABLE_SENSOR_MODEL_CLIENT (1)
+
+Step 2. Generate and flash binary in the second board.
+ Once flashed, the Node Type (Sensor Client), and the board BD Address are displayed on the LCD screen.
+
+
+Demo operation
+Step 3. Connect an HyperTerminal to each board (e.g Tera Term):
+ - Setup the Serial port as follow:
+ Speed: 115 200
+ Data: 8 bit
+ Parity: none
+ Stop bits: 1 bits
+ Flow Control: none
+ - Select the Serial Port corresponding to your first board
+ - Repeat the operation for the second board
+ Note: You can identify which board is connected to which HyperTerminal window by pushing reset button on one board.
+ The associated Terminal windows displays reset logs.
+
+Step 4. Verify the boards are correctly unprovisioned, by keeping pressed User Button 1 (B1) and Reset button,
+ releasing the Reset button while keeping B1 pressed until the Blue LED is blinking.
+ You can see "Unprovisioned device" message on the HyperTerminal logs of the board.
+
+Step 5. Setup the BLE-mesh network using the ST BLE-Mesh Android (https://play.google.com/store/apps/details?id=com.st.bluenrgmesh&hl=en) or
+ iOS (https://apps.apple.com/us/app/st-ble-mesh/id1348645067) smartphone application.
+ The following instructions are based on the Android version of the application, buttons and menus may differ in the iOS version.
+ In case of doubts or for further information, you can refer to:
+ Android User Manual: UM2180 (https://www.st.com/content/ccc/resource/technical/document/user_manual/group0/7e/bb/bd/40/66/0f/46/54/DM00369109/files/DM00369109.pdf/jcr:content/translations/en.DM00369109.pdf)
+ iOS User Manual : UM2361 https://www.st.com/content/ccc/resource/technical/document/user_manual/group0/7e/ea/19/73/31/3e/43/1a/DM00477323/files/DM00477323.pdf/jcr:content/translations/en.DM00477323.pdf
+
+ - Launch the application and select the "device" interface in the top left corner.
+
+ - Your devices should be visible in this interface, click on the (+) button next to one of the devices to begin the provisioning and configuration process of this device.
+ If your Unpvorisioned devices are not visible from this interface, try to reproduce the Step 4.
+
+ - Select "Fast Provisioning" button.
+ The Green LED of your board switches ON to indicate the board is currently used as Proxy by smartphone, this means the smartphone use this board to setup and communicate with the BLE mesh Network.
+
+ - Near to "Element 1" click on the "Configure" button.
+ /!\ "Quick Configuration" option of the smartphone application encounter issue to configure Client model, that is the reason why configuration is done manually.
+
+ - On the configuration menu you can see if the board you are provisioning is your Server or Client node:
+ SENSOR MODEL SERVER indicate your board is the Server Node
+ SENSOR MODEL CLIENT indicate your board is the Client Node
+
+ a. Click on "Bind More Key" text.
+ Then "Add New Key" and select the AppKey 0.
+ In the pop-up, check the circle in front of "App Key 0", the AppKey binding is now done.
+ From the binded keys menu, check the circle in front of "App Key 0" one more time.
+
+ b. In the Subscription List, check "Default: C000" Checkbox
+ c. In the Set Publish Address, check "Default: C000" Checkbox too
+
+ - In the case of Server Node, click on "SENSOR MODEL SERVER" and select the "SENSOR SETUP SERVER" model.
+ Reproduce steps a., b. and c. steps for this model
+
+ - Save your settings in the top right corner
+
+ - Click on the Arrow in Top Left Corner to exit Configuration menu.
+ At this point your node must be correctly Provisioned ans Configured.
+ It should be visible from the Node interface (click on "Nodes" button in bottom menu).
+
+ - You can rename your node by clicking on the setting button next to (P)(R)(F) icons.
+ Click on the Pen icon in Node Name line and rename your Node:
+ "Sensor Server"
+ "Sensor Client"
+ Depending on your node.
+
+ - Come back to the "Devices" interface and reproduce previous steps for your second board.
+
+Step 6. Once the Client and Server Nodes are provisioned, you can close the smartphone application.
+ The Green LED of your Proxy node should switch OFF as it is no longer connected to the Smartphone.
+
+Step 7. On Short Push on User Button 1 (B1) of the Sensor_Client Node: the Sensor_Client send a request to the Sensor_Server Node. The Client ask the Temperature to the Server.
+ The Sensor_Server answer to this request, you can observe the reply is correctly processed in Sensor_Server HyperTerminal: "Sensor_Status - Reply sent"
+ On Sensor_Client Hyperterminal, you can see the received Temperature value: "Appli_Sensor_Status - Temperature = 23 degrees"
+
+ On Long Push on User Button 1 (B1) of the Sensor_Client Node: the Sensor_Client send a request to the Sensor_Server Node. The Client ask the Time Of Flight measurement to the Server.
+ The Sensor_Server answer to this request, you can observe the reply is correctly processed in Sensor_Server HyperTerminal: "Sensor_Status - Reply sent"
+ On Sensor_Client Hyperterminal, you can see the received Distance value: "Appli_Sensor_Status - Distance = 161 cm"
+
+
+ * <h3><center>&copy; COPYRIGHT STMicroelectronics</center></h3>
+ */ \ No newline at end of file
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_common.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_common.h
index 7e66ee35a..8d15b5c11 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_common.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_common.h
@@ -1,21 +1,20 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file app_common.h
* @author MCD Application Team
* @brief Common
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -118,5 +117,3 @@ extern "C"
#endif
#endif /*__APP_COMMON_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_conf.h
index 6fb3aef6c..4d37ea1c3 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_conf.h
@@ -1,21 +1,20 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file app_conf.h
* @author MCD Application Team
* @brief Application configuration file
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -258,26 +257,52 @@
/**
* BLE stack Options flags to be configured with:
- * - SHCI_C2_BLE_INIT_OPTIONS_LL_ONLY
- * - SHCI_C2_BLE_INIT_OPTIONS_LL_HOST
- * - SHCI_C2_BLE_INIT_OPTIONS_NO_SVC_CHANGE_DESC
- * - SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC
- * - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RO
- * - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW
- * - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_1
- * - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3
- * which are used to set following configuration bits:
- * (bit 0): 1: LL only
+ * - SHCI_C2_BLE_INIT_OPTIONS_LL_ONLY
+ * - SHCI_C2_BLE_INIT_OPTIONS_LL_HOST
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_SVC_CHANGE_DESC
+ * - SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC
+ * - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RO
+ * - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW
+ * - SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV
+ * - SHCI_C2_BLE_INIT_OPTIONS_CS_ALGO2
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2
+ * - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_1
+ * - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3 * which are used to set following configuration bits:
+ * (bit 0): 1: LL only
* 0: LL + host
- * (bit 1): 1: no service change desc.
+ * (bit 1): 1: no service change desc.
* 0: with service change desc.
- * (bit 2): 1: device name Read-Only
+ * (bit 2): 1: device name Read-Only
* 0: device name R/W
- * (bit 7): 1: LE Power Class 1
- * 0: LE Power Classe 2-3
+ * (bit 3): 1: extended advertizing supported [NOT SUPPORTED]
+ * 0: extended advertizing not supported [NOT SUPPORTED]
+ * (bit 4): 1: CS Algo #2 supported
+ * 0: CS Algo #2 not supported
+ * (bit 7): 1: LE Power Class 1
+ * 0: LE Power Class 2-3
+ * other bits: reserved (shall be set to 0)
+ */
+#define CFG_BLE_OPTIONS (SHCI_C2_BLE_INIT_OPTIONS_LL_HOST | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV | SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2 | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
+
+#define CFG_BLE_MAX_COC_INITIATOR_NBR (32)
+
+#define CFG_BLE_MIN_TX_POWER (0)
+
+#define CFG_BLE_MAX_TX_POWER (0)
+
+
+/**
+ * BLE Rx model configuration flags to be configured with:
+ * - SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_LEGACY
+ * - SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_BLOCKER
+* which are used to set following configuration bits:
+ * (bit 0): 1: agc_rssi model improved vs RF blockers
+ * 0: Legacy agc_rssi model
* other bits: reserved (shall be set to 0)
*/
-#define CFG_BLE_OPTIONS SHCI_C2_BLE_INIT_OPTIONS_LL_HOST
+
+#define CFG_BLE_RX_MODEL_CONFIG SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_LEGACY
/******************************************************************************
@@ -348,7 +373,7 @@
* The lower is the value, the better is the power consumption and the accuracy of the timerserver
* The higher is the value, the finest is the granularity
*
- * CFG_RTC_ASYNCH_PRESCALER: This sets the asynchronous prescaler of the RTC. It should as high as possible ( to ouput
+ * CFG_RTC_ASYNCH_PRESCALER: This sets the asynchronous prescaler of the RTC. It should as high as possible ( to output
* clock as low as possible) but the output clock should be equal or higher frequency compare to the clock feeding
* the wakeup timer. A lower clock speed would impact the accuracy of the timer server.
*
@@ -570,7 +595,7 @@ typedef enum
******************************************************************************/
/**
* Supported requester to the MCU Low Power Manager - can be increased up to 32
- * It lits a bit mapping of all user of the Low Power Manager
+ * It lists a bit mapping of all user of the Low Power Manager
*/
typedef enum
{
@@ -586,5 +611,3 @@ typedef enum
#define CFG_OTP_END_ADRESS OTP_AREA_END_ADDR
#endif /*__APP_CONFIG_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_debug.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_debug.h
index 13485c16b..6be8307c3 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_debug.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_debug.h
@@ -1,22 +1,20 @@
-
/**
******************************************************************************
* @file app_debug.h
* @author MCD Application Team
- * @brief Interface to support debug in the application
+ * @brief Header for app_debug.c module
******************************************************************************
* @attention
- *
- * <h2><center>&copy; Copyright (c) 2018 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -41,5 +39,3 @@ extern "C" {
#endif
#endif /*__APP_DEBUG_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_entry.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_entry.h
index 5d85cd90c..b82056fc3 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_entry.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_entry.h
@@ -1,4 +1,4 @@
-
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file app_entry.h
@@ -7,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -40,5 +40,3 @@ extern "C" {
#endif
#endif /*__APP_ENTRY_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_stts22h.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_stts22h.h
index e62e5efe7..c76aa8294 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_stts22h.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_stts22h.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -42,5 +41,3 @@ void STTS22H_Stop_Measure(void);
void STTS22H_PrintValues(void);
#endif /* __APP_STTS22H_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_vl53l0x.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_vl53l0x.h
index 6591b5042..88674407c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_vl53l0x.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/app_vl53l0x.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -42,5 +41,3 @@ void VL53L0X_PROXIMITY_PrintValue(void);
void VL53L0X_Start_Measure(void);
void VL53L0X_Stop_Measure(void);
#endif /* __APP_VL53L0X_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_conf.h
index b703e7393..bb561c740 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * @file hw_conf.h
- * @author MCD Application Team
- * @brief Configuration of hardware interface
+ ******************************************************************************
+ * @file hw_conf.h
+ * @author MCD Application Team
+ * @brief Configuration of hardware interface
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -245,5 +244,3 @@
#define CFG_HW_USART1_DMA_TX_IRQHandler DMA2_Channel4_IRQHandler
#endif /*HW_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_flash.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_flash.h
index 18c088d3e..51ece819e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_flash.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_flash.h
@@ -1,20 +1,19 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file hw_flash.h
* @brief Header for hw_flash.c module
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* This software component is licensed by ST under BSD 3-Clause license,
-* the "License"; You may not use this file except in compliance with the
-* License. You may obtain a copy of the License at:
-* opensource.org/licenses/BSD-3-Clause
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __HW_FLASH_H
@@ -83,5 +82,3 @@ uint32_t HW_FLASH_OB_GetSNBRSA(void);
#endif
#endif /*__HW_FLASH_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_if.h
index 2397e3453..7a9f350d7 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/hw_if.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -150,7 +149,7 @@ extern "C" {
* @param pTimerId: Timer Id returned to the user to request operation (start, stop, delete)
* @param TimerMode: Mode of the virtual timer (Single shot or repeated)
* @param pTimerCallBack: Callback when the virtual timer expires
- * @retval HW_TS_ReturnStatus_t: Return whether the creation is sucessfull or not
+ * @retval HW_TS_ReturnStatus_t: Return whether the creation is successful or not
*/
HW_TS_ReturnStatus_t HW_TS_Create(uint32_t TimerProcessID, uint8_t *pTimerId, HW_TS_Mode_t TimerMode, HW_TS_pTimerCb_t pTimerCallBack);
@@ -249,5 +248,3 @@ extern "C" {
#endif
#endif /*HW_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/lp_timer.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/lp_timer.h
index 41f226faf..cc30a4de0 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/lp_timer.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/lp_timer.h
@@ -1,20 +1,19 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file lp_timer.h
* @brief Header for lp_timer.c module
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* This software component is licensed by ST under BSD 3-Clause license,
-* the "License"; You may not use this file except in compliance with the
-* License. You may obtain a copy of the License at:
-* opensource.org/licenses/BSD-3-Clause
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __LP_TIMER_H
@@ -56,5 +55,3 @@ extern "C" {
#endif
#endif /*__LP_TIMER_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/main.h
index 0dfed68a8..5ddcf89b4 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/main.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/main.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -36,5 +35,3 @@ void Error_Handler(void);
/* Exported functions ------------------------------------------------------- */
#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32_lpm_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32_lpm_if.h
index d8e67947f..45c31caa5 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32_lpm_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32_lpm_if.h
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
-******************************************************************************
-* @file stm32_lpm_if.h
-* @brief Header for stm32_lpm_if.c module (device specific LP management)
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* This software component is licensed by ST under BSD 3-Clause license,
-* the "License"; You may not use this file except in compliance with the
-* License. You may obtain a copy of the License at:
-* opensource.org/licenses/BSD-3-Clause
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @file stm32_lpm_if.h
+ * @author MCD Application Team
+ * @brief Header for stm32_lpm_if.c module (device specific LP management)
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -77,5 +77,3 @@ void PWR_ExitSleepMode( void );
#endif
#endif /*__STM32_LPM_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wb5mm_dk_conf.h
index ec99e3a9b..86325246b 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wb5mm_dk_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wb5mm_dk_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -92,5 +91,3 @@ extern "C" {
#endif
#endif /* STM32WB5MM_DK_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wbxx_hal_conf.h
index 05adcdabd..bb10549b5 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wbxx_hal_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wbxx_hal_conf.h
@@ -1,3 +1,4 @@
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32wbxx_hal_conf.h
@@ -6,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -348,5 +349,3 @@
#endif
#endif /* __STM32WBxx_HAL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wbxx_it.h
index 480978e43..757d93735 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wbxx_it.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/stm32wbxx_it.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -61,5 +60,3 @@ void TIM1_CC_IRQHandler(void);
#endif
#endif /* __STM32WBxx_IT_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/utilities_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/utilities_conf.h
index 4dde3509a..66b51180a 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/utilities_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/utilities_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : utilities_conf.h
- * Description : Configuration file for STM32 Utilities.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file utilities_conf.h
+ * @author MCD Application Team
+ * @brief Configuration file for STM32 Utilities.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -64,5 +63,3 @@ extern "C" {
#endif
#endif /*UTILITIES_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/vcp_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/vcp_conf.h
index 4b9e79dde..2e913957b 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/vcp_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Inc/vcp_conf.h
@@ -1,21 +1,20 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file vcp_conf.h
* @author MCD Application Team
* @brief Configuration of the vcp interface
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -49,5 +48,3 @@ extern "C"
#endif
#endif /*__VCP_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_debug.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_debug.c
index 8b5be2941..7ccfffc6c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_debug.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_debug.c
@@ -1,21 +1,20 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file app_debug.c
* @author MCD Application Team
* @brief Debug capabilities
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2018 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2018(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
@@ -38,7 +37,7 @@ typedef PACKED_STRUCT
/* Private defines -----------------------------------------------------------*/
#define GPIO_NBR_OF_RF_SIGNALS 9
-#define GPIO_CFG_NBR_OF_FEATURES 34
+#define GPIO_CFG_NBR_OF_FEATURES 38
#define NBR_OF_TRACES_CONFIG_PARAMETERS 4
#define NBR_OF_GENERAL_CONFIG_PARAMETERS 4
@@ -109,8 +108,16 @@ static const APPD_GpioConfig_t aGpioConfigList[GPIO_CFG_NBR_OF_FEATURES] =
/* From v1.4.0 */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* NVMA_START - Set on Entry / Reset on Exit */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_EOP - Set on Entry / Reset on Exit */
+/* From v1.5.0 */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_WRITE - Set on Entry / Reset on Exit */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_ERASE - Set on Entry / Reset on Exit */
+/* From v1.6.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_RESCHEDULE_EVENT - Set on Entry / Reset on Exit */
+/* From v1.8.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_LLD_CMD_RX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_LLD_ACK_TX - Set on Entry / Reset on Exit */
+/* From v1.9.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_ASYNCH_EVENT_NACKED - Set on Entry / Reset on Exit */
};
/**
@@ -358,5 +365,3 @@ void DbgOutputTraces( uint8_t *p_data, uint16_t size, void (*cb)(void) )
return;
}
#endif
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_entry.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_entry.c
index 10a0e7f0e..661412f03 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_entry.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_entry.c
@@ -1,22 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * @file app_entry.c
- * @author MCD Application Team
- * @brief Entry point of the Application
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @file app_entry.c
+ * @author MCD Application Team
+ * @brief Entry point of the Application
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -41,6 +40,10 @@
#include "app_vl53l0x.h"
#include "app_stts22h.h"
+
+#include "shci.h"
+#include "dbg_trace.h"
+
/* Private includes -----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
@@ -98,6 +101,8 @@ static void appe_Tl_Init( void );
static void APPE_SysStatusNot( SHCI_TL_CmdStatus_t status );
static void APPE_SysUserEvtRx( void * pPayload );
+static void APPE_SysEvtReadyProcessing( void * pPayload );
+static void APPE_SysEvtError( void * pPayload);
#if (CFG_HW_LPUART1_ENABLED == 1)
extern void MX_LPUART1_UART_Init(void);
#endif
@@ -251,13 +256,149 @@ static void APPE_SysStatusNot( SHCI_TL_CmdStatus_t status )
*/
static void APPE_SysUserEvtRx( void * pPayload )
{
- UNUSED(pPayload);
- /* Traces channel initialization */
- /* Enable debug on CPU2 */
- APPD_EnableCPU2( );
+ TL_AsynchEvt_t *p_sys_event;
+ WirelessFwInfo_t WirelessInfo;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+
+ /* Read the firmware version of both the wireless firmware and the FUS */
+ SHCI_GetWirelessFwInfo( &WirelessInfo );
+ APP_DBG_MSG("Wireless Firmware version %d.%d.%d\n", WirelessInfo.VersionMajor, WirelessInfo.VersionMinor, WirelessInfo.VersionSub);
+ APP_DBG_MSG("Wireless Firmware build %d\n", WirelessInfo.VersionReleaseType);
+ APP_DBG_MSG("FUS version %d.%d.%d\n\n", WirelessInfo.FusVersionMajor, WirelessInfo.FusVersionMinor, WirelessInfo.FusVersionSub);
+
+ switch(p_sys_event->subevtcode)
+ {
+ case SHCI_SUB_EVT_CODE_READY:
+ APPE_SysEvtReadyProcessing(pPayload);
+ break;
+
+ case SHCI_SUB_EVT_ERROR_NOTIF:
+ APPE_SysEvtError(pPayload);
+ break;
+
+ case SHCI_SUB_EVT_BLE_NVM_RAM_UPDATE:
+ APP_DBG_MSG("-- BLE NVM RAM HAS BEEN UPDATED BY CMO+ \n");
+ APP_DBG_MSG("SHCI_SUB_EVT_BLE_NVM_RAM_UPDATE : StartAddress = %lx , Size = %ld\n",
+ ((SHCI_C2_BleNvmRamUpdate_Evt_t*)p_sys_event->payload)->StartAddress,
+ ((SHCI_C2_BleNvmRamUpdate_Evt_t*)p_sys_event->payload)->Size);
+ break;
+
+ case SHCI_SUB_EVT_NVM_START_WRITE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_START_WRITE : NumberOfWords = %ld\n",
+ ((SHCI_C2_NvmStartWrite_Evt_t*)p_sys_event->payload)->NumberOfWords);
+ break;
+
+ case SHCI_SUB_EVT_NVM_END_WRITE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_END_WRITE\n");
+ break;
+
+ case SHCI_SUB_EVT_NVM_START_ERASE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_START_ERASE : NumberOfSectors = %ld\n",
+ ((SHCI_C2_NvmStartErase_Evt_t*)p_sys_event->payload)->NumberOfSectors);
+ break;
+
+ case SHCI_SUB_EVT_NVM_END_ERASE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_END_ERASE\n");
+ break;
+
+ default:
+ break;
+ }
+
+ return;
+}
- APP_BLE_Init( );
- UTIL_LPM_SetOffMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE);
+/**
+* @brief Notify when ready system event from the M0 firmware
+*/
+static void APPE_SysEvtReadyProcessing( void * pPayload )
+{
+ TL_AsynchEvt_t *p_sys_event;
+ SHCI_C2_Ready_Evt_t *p_sys_ready_event;
+
+ SHCI_C2_CONFIG_Cmd_Param_t config_param = {0};
+ uint32_t RevisionID=0;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+ p_sys_ready_event = (SHCI_C2_Ready_Evt_t*) p_sys_event->payload;
+
+ if(p_sys_ready_event->sysevt_ready_rsp == WIRELESS_FW_RUNNING)
+ {
+ /**
+ * The wireless firmware is running on the CPU2
+ */
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - WIRELESS_FW_RUNNING \n");
+
+ /* Traces channel initialization */
+ APPD_EnableCPU2( );
+
+ /* Enable all events Notification */
+ config_param.PayloadCmdSize = SHCI_C2_CONFIG_PAYLOAD_CMD_SIZE;
+ config_param.EvtMask1 = SHCI_C2_CONFIG_EVTMASK1_BIT0_ERROR_NOTIF_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT1_BLE_NVM_RAM_UPDATE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT2_THREAD_NVM_RAM_UPDATE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT3_NVM_START_WRITE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT4_NVM_END_WRITE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT5_NVM_START_ERASE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT6_NVM_END_ERASE_ENABLE;
+
+
+ /* Read revision identifier */
+ /**
+ * @brief Return the device revision identifier
+ * @note This field indicates the revision of the device.
+ * @rmtoll DBGMCU_IDCODE REV_ID LL_DBGMCU_GetRevisionID
+ * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF
+ */
+ RevisionID = LL_DBGMCU_GetRevisionID();
+
+ APP_DBG_MSG("DBGMCU_GetRevisionID= %lx \n\n", RevisionID);
+
+ config_param.RevisionID = RevisionID;
+ (void)SHCI_C2_Config(&config_param);
+
+ APP_BLE_Init( );
+ UTIL_LPM_SetOffMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE);
+
+ }
+ else if (p_sys_ready_event->sysevt_ready_rsp == FUS_FW_RUNNING)
+ {
+ /**
+ * The FUS firmware is running on the CPU2
+ * In the scope of this application, there should be no case when we get here
+ */
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - FUS_FW_RUNNING \n");
+
+ /* The packet shall not be released as this is not supported by the FUS */
+ ((tSHCI_UserEvtRxParam*)pPayload)->status = SHCI_TL_UserEventFlow_Disable;
+
+ } else {
+
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY – UNEXPECTED CASE \n");
+ }
+ return;
+}
+
+/**
+* @brief Notify a system error coming from the M0 firmware
+*/
+static void APPE_SysEvtError( void * pPayload)
+{
+ TL_AsynchEvt_t *p_sys_event;
+ SCHI_SystemErrCode_t *p_sys_error_code;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+ p_sys_error_code = (SCHI_SystemErrCode_t*) p_sys_event->payload;
+
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON %x \n",(*p_sys_error_code));
+
+ if ((*p_sys_error_code) == ERR_BLE_INIT) {
+ /* Error during BLE stack initialization */
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON – ERR_BLE_INIT \n");
+ } else {
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON – BLE ERROR \n");
+ }
return;
}
@@ -388,4 +529,3 @@ void HAL_GPIO_EXTI_Callback( uint16_t GPIO_Pin )
return;
}
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_stts22h.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_stts22h.c
index e267b6d8c..a9ca7e777 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_stts22h.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_stts22h.c
@@ -1,22 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* @file app_stts22h.c
* @author MCD Application Team
* @brief Temperature Application
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "app_stts22h.h"
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_vl53l0x.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_vl53l0x.c
index 5b85b4200..9e7110ec5 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_vl53l0x.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/app_vl53l0x.c
@@ -1,22 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* @file app_vl53l0x.c
* @author MCD Application Team
* @brief Proximity Application
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_flash.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_flash.c
index 882181c8c..7355cea62 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_flash.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_flash.c
@@ -1,20 +1,19 @@
-/*****************************************************************************
+/**
+ ******************************************************************************
* @file hw_flash.c
* @author MCD Application Team
- * @brief This file contains the FLASH driver needed by EE module
- *****************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- *****************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
#include "common.h"
#include "stm32_seq.h"
@@ -148,5 +147,3 @@ static void HW_FLASH_PageErase(uint32_t Page)
// DBG_GPIO_Gr2Set(DBG_GPIO_GR2_FLASH_ERASE);
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE***/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_timerserver.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_timerserver.c
index c842ba55e..f1444495a 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_timerserver.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_timerserver.c
@@ -1,18 +1,17 @@
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : hw_timerserver.c
* Description : Hardware timerserver source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -890,4 +889,3 @@ __weak void HW_TS_RTC_Int_AppNot(uint32_t TimerProcessID, uint8_t TimerID, HW_TS
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_uart.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_uart.c
index cb97bd718..7a42785ae 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_uart.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/hw_uart.c
@@ -1,21 +1,20 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file hw_uart.c
* @author MCD Application Team
* @brief hardware access
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
@@ -467,5 +466,3 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
return;
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/lp_timer.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/lp_timer.c
index 404bb2e3b..eafc19123 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/lp_timer.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/lp_timer.c
@@ -1,17 +1,16 @@
/**
- ***************************************************************************************
+ ***************************************************************************************
* File Name : lp_timer.c
* Description : Low power timer to be used within Mesh Application.
- ***************************************************************************************
+ ***************************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -130,5 +129,4 @@ static void LpTimerCb( void )
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/main.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/main.c
index bb7c81d04..a2653c543 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/main.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/main.c
@@ -1,9 +1,20 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file main.c
* @author MCD Application Team
* @brief BLE application with BLE core
*
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
@verbatim
==============================================================================
##### IMPORTANT NOTE #####
@@ -22,19 +33,8 @@
detailed procedure to change the Wireless Coprocessor binary.
@endverbatim
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
@@ -457,4 +457,3 @@ void HAL_Delay(uint32_t Delay)
}
}
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/stm32_lpm_if.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/stm32_lpm_if.c
index fba978d88..8018ad626 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/stm32_lpm_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/stm32_lpm_if.c
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ***************************************************************************************
- * File Name : stm32_lpm_if.c
- * Description : Low layer function to enter/exit low power modes (stop, sleep).
- ***************************************************************************************
+ ******************************************************************************
+ * @file stm32_lpm_if.c
+ * @author MCD Application Team
+ * @brief Low layer function to enter/exit low power modes (stop, sleep).
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -277,19 +277,11 @@ static void EnterLowPower( void )
/* Release ENTRY_STOP_MODE semaphore */
LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
}
else
{
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
@@ -355,5 +347,3 @@ static void Switch_On_HSI( void )
/* USER CODE END Private_Functions */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
-
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/stm32wbxx_it.c
index 3e4bf6e24..78004ebbc 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/stm32wbxx_it.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/stm32wbxx_it.c
@@ -8,13 +8,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -223,5 +222,3 @@ void TIM1_CC_IRQHandler(void)
/* USER CODE END TIM1_IRQn 1 */
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/system_stm32wbxx.c
index 9e9b79832..f820e244c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/system_stm32wbxx.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/system_stm32wbxx.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file system_stm32wbxx.c
* @author MCD Application Team
* @brief CMSIS Cortex Device Peripheral Access Layer System Source File
@@ -57,19 +57,18 @@
* SDIO and RNG clock |
*-----------------------------------------------------------------------------
*=============================================================================
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/** @addtogroup CMSIS
* @{
@@ -339,5 +338,3 @@ void SystemCoreClockUpdate(void)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api.c
index d96b0332f..1dc5f475f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api.c
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api.h
index 88260a27a..67762d8f9 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c
index 3e1827a96..ba8243293 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h
index 53ff76838..7757e76d0 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_core.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_core.c
index 30d394241..1d7d30081 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_core.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_core.c
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_core.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_core.h
index 4d8fc4c4c..b019419b3 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_core.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_core.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c
index 0597dc369..27ff440ce 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h
index 75da46a21..a1f0f6657 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_strings.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_strings.c
index b35c1f9d0..8b1e814f6 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_strings.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_strings.c
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_strings.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_strings.h
index 4c9c4c450..5b77fb51b 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_strings.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_api_strings.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_def.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_def.h
index 48b8b64ef..6416e01ca 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_def.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_def.h
@@ -5,13 +5,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_device.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_device.h
index 3c7daa1ba..20842e60f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_device.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_device.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h
index dc65a788f..3ee4534cf 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_platform.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_platform.h
index fe40bf378..c4c3a12f8 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_platform.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_platform.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -42,5 +41,3 @@
#endif
#endif /* __VL53L0X_PLATFORM_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_platform_log.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_platform_log.h
index 3e20c8e91..07d2b0643 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_platform_log.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_platform_log.h
@@ -1,14 +1,15 @@
/**
******************************************************************************
+ * @file vl53l0x_platform_log.h
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tof.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tof.c
index 1d0851b76..9ef7bc0f7 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tof.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tof.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -329,5 +328,3 @@ void SetupSingleShot(VL53L0X_Dev_t Dev)
Dev.LeakyFirst=1;
}
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tof.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tof.h
index a5fc1ea9a..a1caf711a 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tof.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tof.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -229,5 +228,3 @@ void SetupSingleShot(VL53L0X_Dev_t Dev);
#endif
#endif /* __VL53L0X_TOF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tuning.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tuning.h
index 6bfebf3d6..3bee119ac 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tuning.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_tuning.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_types.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_types.h
index 17495ce26..53f930f3e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_types.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/Core/Src/vl53l0x/vl53l0x_types.h
@@ -5,13 +5,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/BLE_Mesh_ThermometerSensor.ewp b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/BLE_Mesh_ThermometerSensor.ewp
index 0f5c26309..da283bddf 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/BLE_Mesh_ThermometerSensor.ewp
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/BLE_Mesh_ThermometerSensor.ewp
@@ -134,7 +134,7 @@
<option>
<name>CoreVariant</name>
<version>26</version>
- <state>39</state>
+ <state>0</state>
</option>
<option>
<name>GFPUDeviceSlave</name>
@@ -143,12 +143,12 @@
<option>
<name>FPU2</name>
<version>0</version>
- <state>4</state>
+ <state>0</state>
</option>
<option>
<name>NrRegs</name>
<version>0</version>
- <state>1</state>
+ <state>0</state>
</option>
<option>
<name>NEON</name>
@@ -157,7 +157,7 @@
<option>
<name>GFPUCoreSlave2</name>
<version>26</version>
- <state>39</state>
+ <state>0</state>
</option>
<option>
<name>OGCMSISPackSelectDevice</name>
@@ -198,7 +198,7 @@
</option>
<option>
<name>DSPExtension</name>
- <state>1</state>
+ <state>0</state>
</option>
<option>
<name>TrustZone</name>
@@ -288,7 +288,7 @@
</option>
<option>
<name>CCDebugInfo</name>
- <state>0</state>
+ <state>1</state>
</option>
<option>
<name>IEndianMode</name>
@@ -372,7 +372,7 @@
<state>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK</state>
<state>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\Common</state>
<state>$PROJ_DIR$\..\..\..\..\..\..\Utilities\LCD</state>
- <state>$PROJ_DIR$\..\..\..\..\..\..\Utilities\fonts</state>
+ <state>$PROJ_DIR$\..\..\..\..\..\..\Utilities\Fonts</state>
<state>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ism330dhcx</state>
</option>
<option>
@@ -792,7 +792,7 @@
</option>
<option>
<name>IlinkIcfFile</name>
- <state>$PROJ_DIR$\stm32wb55xx_flash_cm4.icf</state>
+ <state>$PROJ_DIR$\stm32wb5mxx_flash_cm4.icf</state>
</option>
<option>
<name>IlinkIcfFileSlave</name>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/startup_stm32wb55xx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/startup_stm32wb55xx_cm4.s
index 1f886ff59..911641737 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/startup_stm32wb55xx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/startup_stm32wb55xx_cm4.s
@@ -16,13 +16,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under BSD 3-Clause license,
-;* the "License"; You may not use this file except in compliance with the
-;* License. You may obtain a copy of the License at:
-;* opensource.org/licenses/BSD-3-Clause
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;
@@ -83,7 +82,7 @@ __vector_table
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -514,4 +513,3 @@ DMAMUX1_OVR_IRQHandler
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/stm32wb5mxx_flash_cm4.icf b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/stm32wb5mxx_flash_cm4.icf
new file mode 100644
index 000000000..f13848f65
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/EWARM/stm32wb5mxx_flash_cm4.icf
@@ -0,0 +1,42 @@
+/*###ICF### Section handled by ICF editor, don't touch! ****/
+/*-Editor annotation file-*/
+/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
+/*-Specials-*/
+define symbol __ICFEDIT_intvec_start__ = 0x08000000;
+/*-Memory Regions-*/
+/***** FLASH Part dedicated to M4 *****/
+define symbol __ICFEDIT_region_ROM_start__ = 0x08000000;
+define symbol __ICFEDIT_region_ROM_end__ = 0x0807FFFF;
+define symbol __ICFEDIT_region_RAM_start__ = 0x20000008;
+define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF;
+/*-Sizes-*/
+define symbol __ICFEDIT_size_cstack__ = 0x1000;
+define symbol __ICFEDIT_size_heap__ = 0x400;
+/**** End of ICF editor section. ###ICF###*/
+
+define symbol __ICFEDIT_region_RAM_SHARED_start__ = 0x20030000;
+define symbol __ICFEDIT_region_RAM_SHARED_end__ = 0x200327FF;
+
+define memory mem with size = 4G;
+define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
+define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
+define region RAM_SHARED_region = mem:[from __ICFEDIT_region_RAM_SHARED_start__ to __ICFEDIT_region_RAM_SHARED_end__];
+define region Total_RAM_region = RAM_region | RAM_SHARED_region ;
+
+define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
+define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
+
+/* MB_MEM1 and MB_MEM2 are sections reserved to mailbox communication. It is placed in the shared memory */
+initialize by copy { readwrite };
+do not initialize { section .noinit,
+ section MAPPING_TABLE,
+ section MB_MEM1 };
+
+place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
+place at address mem:__ICFEDIT_region_RAM_SHARED_start__ { section MAPPING_TABLE };
+
+place in ROM_region { readonly };
+place in RAM_region { block CSTACK, block HEAP };
+place in RAM_SHARED_region { section MB_MEM1};
+place in RAM_SHARED_region { section MB_MEM2};
+place in Total_RAM_region { readwrite };
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/BLE_Mesh_ThermometerSensor.uvoptx b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/BLE_Mesh_ThermometerSensor.uvoptx
index 787d46f6e..c587671fc 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/BLE_Mesh_ThermometerSensor.uvoptx
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/BLE_Mesh_ThermometerSensor.uvoptx
@@ -10,7 +10,7 @@
<aExt>*.s*; *.src; *.a*</aExt>
<oExt>*.obj; *.o</oExt>
<lExt>*.lib</lExt>
- <tExt>*.txt; *.h; *.inc</tExt>
+ <tExt>*.txt; *.h; *.inc; *.md</tExt>
<pExt>*.plm</pExt>
<CppX>*.cpp</CppX>
<nMigrate>0</nMigrate>
@@ -316,7 +316,7 @@
<Group>
<GroupName>Application/MDK-ARM</GroupName>
- <tvExp>0</tvExp>
+ <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
<RteFlg>0</RteFlg>
@@ -1499,6 +1499,26 @@
</Group>
<Group>
+ <GroupName>Middlewares/ST/STM32_WPAN/ble/mesh/Library</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>18</GroupNumber>
+ <FileNumber>100</FileNumber>
+ <FileType>4</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\Library\libBle_Mesh_CM4_Keil.lib</PathWithFileName>
+ <FilenameWithoutPath>libBle_Mesh_CM4_Keil.lib</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
<GroupName>::CMSIS</GroupName>
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/BLE_Mesh_ThermometerSensor.uvprojx b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/BLE_Mesh_ThermometerSensor.uvprojx
index 56027a71d..81f44d017 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/BLE_Mesh_ThermometerSensor.uvprojx
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/BLE_Mesh_ThermometerSensor.uvprojx
@@ -10,7 +10,7 @@
<TargetName>BLE_Mesh_ThermometerSensor</TargetName>
<ToolsetNumber>0x4</ToolsetNumber>
<ToolsetName>ARM-ADS</ToolsetName>
- <pCCUsed>5060750::V5.06 update 6 (build 750)::.\ARMCC</pCCUsed>
+ <pCCUsed>5060960::V5.06 update 7 (build 960)::.\ARMCC</pCCUsed>
<uAC6>0</uAC6>
<TargetOption>
<TargetCommonOption>
@@ -336,7 +336,7 @@
<v6WtE>0</v6WtE>
<v6Rtti>0</v6Rtti>
<VariousControls>
- <MiscControls>--wchar32</MiscControls>
+ <MiscControls></MiscControls>
<Define>USE_STM32WB5M_DK,STM32WB55xx,USE_HAL_DRIVER,CORE_CM4,STM32,ENABLE_USART,TRACE_ENABLE_NO_FUNCTION,SERVER,THERMOMETER_NODE</Define>
<Undefine></Undefine>
<IncludePath>../../../../../../Drivers/CMSIS/Include;../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc;../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/Inc;../Core/Inc;../../../../../../Middlewares/ST/STM32_WPAN;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto;../../../../../../Middlewares/ST/STM32_WPAN/utilities;../../../../../../Utilities/lpm/tiny_lpm;../../../../../../Utilities/sequencer;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci;../../../../../../Middlewares/ST/STM32_WPAN/ble/mesh/MeshModel/Inc;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread;../STM32_WPAN/app;../../../../../../Middlewares/ST/STM32_WPAN/ble;../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include;../../../../../../Drivers/BSP/Components/ssd1315;../Core/Src/vl53l0x;../../../../../../Drivers/BSP/Components/stts22h;../../../../../../Drivers/BSP/STM32WB5MM-DK;../../../../../../Drivers/BSP/Components/Common;../../../../../../Utilities/LCD;../../../../../../Utilities/Fonts;../../../../../../Drivers/BSP/Components/ism330dhcx</IncludePath>
@@ -963,6 +963,16 @@
</Files>
</Group>
<Group>
+ <GroupName>Middlewares/ST/STM32_WPAN/ble/mesh/Library</GroupName>
+ <Files>
+ <File>
+ <FileName>libBle_Mesh_CM4_Keil.lib</FileName>
+ <FileType>4</FileType>
+ <FilePath>..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\mesh\Library\libBle_Mesh_CM4_Keil.lib</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
<GroupName>::CMSIS</GroupName>
</Group>
</Groups>
@@ -986,11 +996,6 @@
<Layers>
<Layer>
<LayName>&lt;Project Info&gt;</LayName>
- <LayDesc></LayDesc>
- <LayUrl></LayUrl>
- <LayKeys></LayKeys>
- <LayCat></LayCat>
- <LayLic></LayLic>
<LayTarg>0</LayTarg>
<LayPrjMark>1</LayPrjMark>
</Layer>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/startup_stm32wb5mxx_cm4.s
index f04432d7b..6a51d2123 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/startup_stm32wb5mxx_cm4.s
@@ -14,12 +14,12 @@
;******************************************************************************
;* @attention
;*
-;* Copyright (c) 2019 STMicroelectronics. All rights reserved.
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
@@ -84,7 +84,7 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -365,4 +365,3 @@ __user_initial_stackheap
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct
index 9d4d446ba..938d9f592 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct
@@ -11,11 +11,16 @@ LR_IROM1 0x08000000 0x00080000 { ; load region size_region
RW_IRAM1 0x20000008 0x2FFF8 { ; RW data
.ANY (+RW +ZI)
}
- RW_RAM_SHARED 0x20030000 0x2800 { ; RW data
- *(MAPPING_TABLE)
- *(MB_MEM1)
- *(MB_MEM2)
- }
+
+ RW_RAM_SHARED1 0x20030000 0x28 { ; RW data
+ *(MAPPING_TABLE)
+ }
+ RW_RAM_SHARED2 0x20030028 0x27D8 { ; RW data
+ *(MB_MEM1)
+ *(MB_MEM2)
+ .ANY (+RW +ZI)
+ }
+
}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Core/syscalls.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Core/syscalls.c
index bc0dd6c06..c921fd873 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Core/syscalls.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Core/syscalls.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
@@ -7,19 +7,18 @@
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <sys/stat.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Core/sysmem.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Core/sysmem.c
index d7cc52cd4..dda5abe79 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Core/sysmem.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Core/sysmem.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
@@ -7,19 +7,18 @@
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <errno.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
index 891ce5b9a..18f06244f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -14,13 +14,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
-* This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,7 +92,7 @@ LoopFillZerobss:
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
-/* Call the clock system intitialization function.*/
+/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
@@ -442,4 +441,3 @@ g_pfnVectors:
.weak DMAMUX1_OVR_IRQHandler
.thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
index f0c35b387..04d57d8aa 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -15,30 +15,14 @@
** of any kind.
**
*****************************************************************************
+** @attention
**
-** <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
+** Copyright (c) 2019 STMicroelectronics.
+** All rights reserved.
**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-** 1. Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** 3. Neither the name of STMicroelectronics nor the names of its contributors
-** may be used to endorse or promote products derived from this software
-** without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
**
*****************************************************************************
*/
@@ -145,7 +129,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_config.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_config.c
index e9b50f44e..5365f0d06 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_config.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_config.c
@@ -1,21 +1,20 @@
/**
- *******************************************************************************
+ ******************************************************************************
* @file PWM_config.c
* @author BLE Mesh Team
* @brief Configuration file for PWM.
- *******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- *******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
#include "hal_common.h"
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_handlers.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_handlers.c
index dc0f184c2..4c3beedc2 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_handlers.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_handlers.c
@@ -1,43 +1,20 @@
/**
-********************************************************************************
+ ******************************************************************************
* @file PWM_handlers.c
* @author BLE Mesh Team
-* @version V1.0.0
-* @date 31-July-2018
* @brief Handlers for PWM and other support functions.
-********************************************************************************
-* @attention
-*
-*<h2><center>&copy; COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
-*
-* Redistribution and use in source and binary forms, with or without modification,
-* are permitted provided that the following conditions are met:
-* 1. Redistributions of source code must retain the above copyright notice,
-* this list of conditions and the following disclaimer.
-* 2. Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following disclaimer in the documentation
-* and/or other materials provided with the distribution.
-* 3. Neither the name of STMicroelectronics nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*
-* Initial BLE-Mesh is built over Motorola’s Mesh over Bluetooth Low Energy
-* (MoBLE) technology. The present solution is developed and maintained for both
-* Mesh library and Applications solely by STMicroelectronics.
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
#include "hal_common.h"
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_handlers.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_handlers.h
index a27fa757b..2d1346363 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_handlers.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/PWM_handlers.h
@@ -2,20 +2,18 @@
******************************************************************************
* @file PWM/PWM_handlers.c
* @author SNM Application Team
-* @version V1.0.0
-* @date September-2015
* @brief Handlers for PWM and other support functions.
******************************************************************************
* @attention
*
- * 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.
+ * Copyright (c) STMicroelectronics</center></h2>
+(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- * <h2><center>&copy; COPYRIGHT 2015 STMicroelectronics</center></h2>
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/app_ble.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/app_ble.c
index 33c62ce74..34539527f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/app_ble.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/app_ble.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -253,8 +252,8 @@ void APP_BLE_Init( void )
/* USER CODE END APP_BLE_Init_1 */
SHCI_C2_Ble_Init_Cmd_Packet_t ble_init_cmd_packet =
{
- {{0,0,0}}, /**< Header unused */
- {0, /** pBleBufferAddress not used */
+ {{0,0,0}}, /**< Header unused */
+ {0, /** pBleBufferAddress not used */
0, /** BleBufferSize not used */
CFG_BLE_NUM_GATT_ATTRIBUTES,
CFG_BLE_NUM_GATT_SERVICES,
@@ -271,7 +270,11 @@ void APP_BLE_Init( void )
CFG_BLE_HSE_STARTUP_TIME,
CFG_BLE_VITERBI_MODE,
CFG_BLE_OPTIONS,
- 0}
+ 0,
+ CFG_BLE_MAX_COC_INITIATOR_NBR,
+ CFG_BLE_MIN_TX_POWER,
+ CFG_BLE_MAX_TX_POWER,
+ CFG_BLE_RX_MODEL_CONFIG}
};
/**
@@ -667,4 +670,3 @@ void SVCCTL_ResumeUserEventFlow( void )
/* USER CODE BEGIN FD_WRAP_FUNCTIONS */
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/app_ble.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/app_ble.h
index d87d3e466..629ef1bb7 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/app_ble.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/app_ble.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -75,5 +74,3 @@ void APP_BLE_Init( void );
#endif
#endif /*APP_BLE_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config.c
index 6a94692e4..7440fb163 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config.c
@@ -1,23 +1,20 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file appli_config.c
* @author BLE Mesh Team
-* @version V1.13.000
-* @date 20-10-2020
* @brief Config Model APIs callback from ST BLE Mesh Library
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* 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
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
#include <string.h>
#include "hal_common.h"
@@ -356,4 +353,3 @@ void Appli_GetPublicationGetParamsCb(model_publicationparams_t* pPubParameters)
/**
* @}
*/
-/******************* (C) COPYRIGHT 2017 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config.h
index ccfbfcc74..ac0fb660c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config.h
@@ -1,23 +1,20 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file appli_config.h
* @author BLE Mesh Team
-* @version V1.13.000
-* @date 20-10-2020
* @brief Header file for the application config file
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* 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
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __APPLI_CONFIG_H
@@ -51,4 +48,3 @@ void Appli_GetPublicationGetParamsCb(model_publicationparams_t*);
#endif /* __APPLI_CONFIG_H */
-/******************* (C) COPYRIGHT 2017 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config_client.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config_client.c
index 3b7fce7a2..d0584e763 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config_client.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config_client.c
@@ -1,22 +1,20 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file appli_config_client.c
* @author BLE Mesh Team
* @brief Application interface for Config CLient Mesh Model
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- *
- ******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
#include "hal_common.h"
@@ -716,7 +714,7 @@ void Appli_ConfigClientStartNodeConfiguration(MOBLEUINT8 prvState)
/**
* @brief This function is Init function for the state machine of the
- Configuration Client. The Function shall be called everytime a new
+ Configuration Client. The Function shall be called every time a new
node is provisioned
* @param None
* @retval None
@@ -1456,7 +1454,7 @@ MOBLE_RESULT AppliConfigClient_SelfPublicationSetDefault (void)
}
else if (MODEL_IS_FOUNDATION_MODEL(modelIdentifier))
{
- /* If Model is Foundation Model, then it doesnt need to be
+ /* If Model is Foundation Model, then it does not need to be
added for Publishing */
/* Do NOTHING, let the next Model be picked */
@@ -1538,7 +1536,7 @@ MOBLE_RESULT AppliConfigClient_SelfSubscriptionSetDefault (void)
}
else if (MODEL_IS_FOUNDATION_MODEL(modelIdentifier))
{
- /* If Model is Foundation Model, then it doesnt need to be
+ /* If Model is Foundation Model, then it does not need to be
Subscribed */
/* Do NOTHING, let the next Model be picked */
@@ -1603,7 +1601,7 @@ MOBLE_RESULT Appli_ConfigClient_SelfDefaultAppKeyBind (void)
}
else if (MODEL_IS_FOUNDATION_MODEL(modelIdentifier))
{
- /* If Model is Foundation Model, then it doesnt need to be binded
+ /* If Model is Foundation Model, then it does not need to be binded
with AppKey */
/* Do NOTHING, let the next Model be picked */
@@ -1914,5 +1912,4 @@ MOBLEUINT8 AppliConfigClient_SendMessageDefault(MOBLEUINT8 elementIdx)
* @}
*/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config_client.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config_client.h
index b380cf636..52462b86f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config_client.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_config_client.h
@@ -1,21 +1,20 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file appli_config_client.h
* @author BLE Mesh Team
* @brief Application interface for Generic Mesh Models
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* 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
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __APPLI_CONFIG_CLIENT_H
@@ -89,5 +88,4 @@ MOBLEUINT8 GetCountVendorModelToPublish(MOBLEUINT8 elementIdx);
#endif /* __APPLI_CONFIG_CLIENT_H */
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic.c
index c47414d35..a71587de6 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -479,5 +478,4 @@ MOBLE_RESULT Appli_Generic_GetDefaultTransitionStatus(MOBLEUINT8* pTransition_St
* @}
*/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic.h
index 9ed198bcd..a98425cbc 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -154,5 +153,4 @@ MOBLE_RESULT Appli_Generic_GetDefaultTransitionStatus(MOBLEUINT8* pTransition_St
#endif /* __APPLI_GENERIC_H */
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic_client.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic_client.c
index 67fb3a069..22bd7e99a 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic_client.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic_client.c
@@ -1,21 +1,20 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file appli_generic_client.c
* @author BLE Mesh Team
* @brief Application interface for Generic Mesh Models
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* 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
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
#include "hal_common.h"
@@ -341,5 +340,4 @@ MOBLE_RESULT Appli_GenericClient_API(MOBLEUINT8 elementIndex, MOBLEUINT16 msg_op
* @}
*/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic_client.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic_client.h
index 80ecb070c..f6c569564 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic_client.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_generic_client.h
@@ -1,21 +1,20 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file appli_generic_client.h
* @author BLE Mesh Team
* @brief Application interface for Generic Mesh Models
-******************************************************************************
-* @attention
-*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ ******************************************************************************
+ * @attention
*
- * 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
-*
-******************************************************************************
-*/
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __APPLI_GENERIC_CLIENT_H
@@ -36,5 +35,4 @@ MOBLE_RESULT Appli_GenericClient_API(MOBLEUINT8 elementIndex, MOBLEUINT16 msg_op
#endif /* __APPLI_GENERIC_CLIENT_H */
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light.c
index a8d452bd2..4da26e260 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -1311,7 +1310,7 @@ void HSL2RGB_Conversion(MOBLEUINT8 elementIndex)
mValue = (MOBLEUINT16)((lightnessvalue * 1000) - (cValue/2));
xValue = (MOBLEUINT16)(cValue * (1 - fabs(fmod(hueValue / 60.0, 2.0) - 1)));
- /* Conditons applied for the different angle of hue value */
+ /* Conditions applied for the different angle of hue value */
if (hueValue > 0 && hueValue < (HUE_UPPER_LIMIT / 6))
{
RgbF_Create(cValue + mValue, xValue + mValue, mValue, elementIndex);
@@ -1355,5 +1354,4 @@ void HSL2RGB_Conversion(MOBLEUINT8 elementIndex)
/**
* @}
*/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light.h
index 6bdbebacb..c8400e080 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -273,5 +272,4 @@ void RgbF_Create(MOBLEUINT16 value1,
#endif /* __APPLI_LIGHT_H */
/******************************************************************************/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_client.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_client.c
index ef4644a11..8d7dda2f7 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_client.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_client.c
@@ -1,21 +1,20 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file appli_light_client.c
* @author BLE Mesh Team
* @brief Application interface for Generic Mesh Models
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* 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
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
#include "hal_common.h"
@@ -1202,5 +1201,4 @@ MOBLE_RESULT Appli_Light_HslRange_Status(MOBLEUINT8 const *pHslRange_status, MOB
* @}
*/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_client.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_client.h
index 77a93eb92..530d0964b 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_client.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_client.h
@@ -1,21 +1,20 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file appli_light_client.h
* @author BLE Mesh Team
* @brief Application interface for Generic Mesh Models
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* 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
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __APPLI_LIGHT_CLIENT_H
@@ -107,5 +106,4 @@ MOBLE_RESULT Appli_LightClient_API(MOBLEUINT8 elementIndex,
#endif /* __APPLI_LIGHT_CLIENT_H */
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_lc.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_lc.c
index 29efc487d..b1d53e1ec 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_lc.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_lc.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -450,5 +449,4 @@ void Appli_Light_LC_SerialCmd(char *rcvdStringBuff, uint16_t rcvdStringSize)
* @}
*/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_lc.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_lc.h
index 9b75aa9ff..42c59766e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_lc.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_light_lc.h
@@ -1,21 +1,20 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file appli_light_lc.h
* @author BLE Mesh Team
* @brief Application interface for Light Control Mesh Models
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* 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
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __APPLI_LIGHT_LC_H
@@ -77,5 +76,4 @@ void Appli_Light_LC_SerialCmd(char *rcvdStringBuff,
uint16_t rcvdStringSize);
#endif /* __APPLI_LIGHT_LC_H */
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_mesh.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_mesh.c
index 2c16055d3..1752ab269 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_mesh.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_mesh.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -1853,4 +1852,3 @@ WEAK_FUNCTION (void SerialPrvn_ProvisioningStatusUpdateCb(uint8_t flagPrvningInP
/**
* @}
*/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_mesh.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_mesh.h
index fb707e345..a694a2083 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_mesh.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_mesh.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -134,5 +133,4 @@ void LED_Off(void);
#endif /* __APPLI_MESH_H */
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_nvm.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_nvm.c
index 564d86bf5..ce9af8d33 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_nvm.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_nvm.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -601,7 +600,7 @@ void AppliNvm_Process(void)
/**
-* @brief Fuction used to set the flag which is responsible for storing the
+* @brief Function used to set the flag which is responsible for storing the
states in flash.
* @param void
* @retval void
@@ -748,4 +747,3 @@ MOBLE_RESULT AppliNVM_Retrieve_FlashTesting(MOBLEUINT8 *buffer,
/**
* @}
*/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_nvm.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_nvm.h
index 0392b98af..3cca57d10 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_nvm.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_nvm.h
@@ -6,16 +6,15 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
-*/
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __APPLI_NVM_H
@@ -95,5 +94,4 @@ MOBLE_RESULT AppliNVM_Retrieve_FlashTesting(MOBLEUINT8 *buffer,
#endif /* __APPLI_NVM_H */
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensor.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensor.c
index 12e359467..e04787fed 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensor.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensor.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -305,7 +304,7 @@ void Appli_Sensor_SeriesGet(sensor_SeriesCbParams_t* pSeriesParam,
* Read from application to optimize RAM
* @param Sensor offset in sensor init structure
* @param descriptor parameters
- * @retval Fail if sensor doesn't exist or property ID mismatch occurrs
+ * @retval Fail if sensor doesn't exist or property ID mismatch occurs
* else Success
*/
MOBLE_RESULT Appli_Sensor_ReadDescriptor(MOBLEUINT8 sensorOffset,
@@ -355,7 +354,7 @@ MOBLE_RESULT Appli_Sensor_ReadDescriptor(MOBLEUINT8 sensorOffset,
* Read sensor value and update buffer
* data length <= 128
* PreviousTemperatureValue, PresentTemperatureValue to be updated
- * everytime sensor value is changed and call to Sensor_UpdateCadence
+ * every time sensor value is changed and call to Sensor_UpdateCadence
* @param Sensor offset in sensor init structure
* @param Value parameters
* @retval Fail if sensor doesn't exist
@@ -601,7 +600,7 @@ MOBLEUINT8 Appli_Sensor_IsFastCadence(MOBLEUINT8 sensorOffset,
}
else
{
- /* Implmented only for sensor at offset 0 */
+ /* Implemented only for sensor at offset 0 */
}
return fastCadenceStatus;
@@ -862,5 +861,4 @@ void Appli_Sensor_SerialCmd(char *rcvdStringBuff, uint16_t rcvdStringSize)
* @}
*/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensor.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensor.h
index 172acf4f7..e45f3d83b 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensor.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensor.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -107,5 +106,4 @@ void Appli_Sensor_SerialCmd(char *rcvdStringBuff,
uint16_t rcvdStringSize);
#endif /* __APPLI_SENSOR_H */
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensors_client.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensors_client.c
index 3525a880f..1ce2d49ec 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensors_client.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensors_client.c
@@ -1,21 +1,20 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file appli_sensors_client.c
* @author BLE Mesh Team
* @brief Application interface for Generic Mesh Models
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* 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
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
#include "hal_common.h"
@@ -328,5 +327,4 @@ void Appli_Sensor_Series_Status(const MOBLEUINT8 *pSeries,
* @}
*/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensors_client.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensors_client.h
index e28aac4df..350bc4cdf 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensors_client.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_sensors_client.h
@@ -1,21 +1,20 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file appli_sensor_client.h
* @author BLE Mesh Team
* @brief Application interface for Sensor Mesh Models
-******************************************************************************
-* @attention
-*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ ******************************************************************************
+ * @attention
*
- * 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
-*
-******************************************************************************
-*/
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __APPLI_SENSOR_CLIENT_H
@@ -69,4 +68,3 @@ void Appli_Sensor_Series_Status(const MOBLEUINT8 *pSeries,
#endif /* __APPLI_SENSOR_CLIENT_H */
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_vendor.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_vendor.c
index 8542c0af1..1c167cdf3 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_vendor.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_vendor.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -598,5 +597,4 @@ void Appli_Vendor_Publish_Temperature(MOBLE_ADDRESS srcAddress, MOBLEUINT8 tempe
* @}
*/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_vendor.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_vendor.h
index 06e712e21..708962d4a 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_vendor.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/appli_vendor.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -44,5 +43,4 @@ void Appli_Vendor_Publish_Temperature(MOBLE_ADDRESS srcAddress, MOBLEUINT8 tempe
#endif /* __APPLI_VENDOR_H */
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/ble_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/ble_conf.h
index 4cc3ce72b..57713f5e3 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/ble_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/ble_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -63,12 +62,10 @@
#define BLE_CFG_CLT_MAX_NBR_CB 5
/******************************************************************************
- * GAP Service - Apprearance
+ * GAP Service - Appearance
******************************************************************************/
#define BLE_CFG_UNKNOWN_APPEARANCE (0)
#define BLE_CFG_HR_SENSOR_APPEARANCE (832)
#define BLE_CFG_GAP_APPEARANCE (BLE_CFG_UNKNOWN_APPEARANCE)
#endif /*__BLE_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/ble_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/ble_dbg_conf.h
index 35a4d96ab..49a3419cb 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/ble_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/ble_dbg_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -203,5 +202,3 @@
#endif /*__BLE_DBG_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/cube_hal.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/cube_hal.h
index 3afc2e373..3ab0f207f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/cube_hal.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/cube_hal.h
@@ -6,16 +6,15 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
- */
+ */
#ifndef _CUBE_HAL_H_
#define _CUBE_HAL_H_
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/data.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/data.s
index 636eb47c6..782844084 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/data.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/data.s
@@ -8,33 +8,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* Redistribution and use in source and binary forms, with or without modification,
-;* are permitted provided that the following conditions are met:
-;* 1. Redistributions of source code must retain the above copyright notice,
-;* this list of conditions and the following disclaimer.
-;* 2. Redistributions in binary form must reproduce the above copyright notice,
-;* this list of conditions and the following disclaimer in the documentation
-;* and/or other materials provided with the distribution.
-;* 3. Neither the name of STMicroelectronics nor the names of its contributors
-;* may be used to endorse or promote products derived from this software
-;* without specific prior written permission.
-;*
-;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-;* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-;* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-;* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-;* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-;* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-;* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-;* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-;* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-;*
-;* Initial BlueNRG-Mesh is built over Motorola’s Mesh over Bluetooth Low Energy
-;* (MoBLE) technology. The present solution is developed and maintained for both
-;* Mesh library and Applications solely by STMicroelectronics.
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;*/
@@ -47,4 +26,3 @@ _mobleNvmBase_data
FILL 4096, 0x00
END
-;/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/hal_common.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/hal_common.h
index 01e2f6ebc..ad9026fca 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/hal_common.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/hal_common.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -49,5 +48,4 @@ void InitDevice(void);
void ShouldSleepFunc(void);
#endif /* _HAL_H_ */
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/mesh_cfg_usr.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/mesh_cfg_usr.h
index 1b77750a0..9889728f6 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/mesh_cfg_usr.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/mesh_cfg_usr.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -42,7 +41,7 @@
/*
* Different provision bearer supported by BLE-Mesh.
* Define according to application.
-* Atleast one of PB-ADV and PB-GATT should be defined
+* At least one of PB-ADV and PB-GATT should be defined
*/
#define ENABLE_PB_ADV
@@ -85,7 +84,7 @@ This may result into excessive flash erase operations, this should be avoided to
*/
#define SAVE_EMBD_PROVISION_DATA 1
-/* Enables the UUID saving per Node - Currenly Not Supported */
+/* Enables the UUID saving per Node - Currently Not Supported */
#define ENABLE_SAVE_UUID_PER_NODE 0
//#define ENABLE_SERIAL_PRVN 1
@@ -326,7 +325,7 @@ Comment this macro to disable the publication
/*
Define the following Macro to check the Power-OnOff Cycles
-5 Continous cycles of OnOff with Ontime <2 sec will cause unprovisioning
+5 Continuous cycles of OnOff with Ontime <2 sec will cause unprovisioning
*/
//#define ENABLE_UNPROVISIONING_BY_POWER_ONOFF_CYCLE
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/models_if.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/models_if.c
index 377f8fb30..b0223fa4f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/models_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/models_if.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -130,7 +129,7 @@ __attribute__((aligned(4)))const MOBLE_VENDOR_CB_MAP vendor_cb =
__attribute__((aligned(4)))const Appli_Vendor_cb_t VendorAppli_cb =
{
- /*Vendor Commads*/
+ /*Vendor Commands*/
Appli_Vendor_LEDControl, /// Vendor_WriteLocalDataCb with command = APPLI_LED_CONTROL_STATUS_CMD
Appli_Vendor_DeviceInfo, /// Vendor_WriteLocalDataCb with command = APPLI_DEVICE_INFO_CMD
Appli_Vendor_Test, /// Vendor_WriteLocalDataCb with command = APPLI_TEST_CMD
@@ -479,7 +478,7 @@ void BLEMesh_ModelsCommand(void)
pLightLCOccupancyModeParam[0] = Led_Value;
pLightLCOnOffParam[0] = Led_Value;
- /*This Switch-case allows to quickly set the different Models Messages parameters in order to demonstrate Client APIs functionning */
+ /*This Switch-case allows to quickly set the different Models Messages parameters in order to demonstrate Client APIs functioning */
switch (ButtonIndex_Value){
case 0:
ButtonIndex_Value=0x1;
@@ -1150,4 +1149,3 @@ __weak void Test_Process(void)
* @}
*/
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/models_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/models_if.h
index f00d2d28d..daa30e380 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/models_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/models_if.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -47,5 +46,4 @@ MOBLE_RESULT MeshClient_SetRemotePublication(MOBLEUINT32 modelId, MOBLEUINT8 ele
#endif /* __MODELS_H */
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/pal_nvm.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/pal_nvm.c
index 12df6a87f..37960317a 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/pal_nvm.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/pal_nvm.c
@@ -6,16 +6,15 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
-******************************************************************************
-*/
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
#include "types.h"
@@ -440,4 +439,3 @@ MOBLE_RESULT PalNvmProcess(void)
return MOBLE_RESULT_SUCCESS;
}
-/******************* (C) COPYRIGHT 2020 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/sensor_cfg_usr.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/sensor_cfg_usr.h
index bf4c48dc4..27311f9dd 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/sensor_cfg_usr.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/sensor_cfg_usr.h
@@ -1,21 +1,20 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file sensor_cfg_usr.h
* @author BLE Mesh Team
* @brief sensor server initialization parameters
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* 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
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __SENSOR_USR_CFG_H
@@ -263,7 +262,7 @@ typedef struct
}
/**
-* Combined defined of all sensors intialization parameters
+* Combined defined of all sensors initialization parameters
*/
#define SENSOR_SERVER_INIT_PARAMS \
@@ -276,7 +275,7 @@ typedef struct
}
#else
/**
-* Combined defined of all sensors intialization parameters
+* Combined defined of all sensors initialization parameters
*/
#define SENSOR_SERVER_INIT_PARAMS \
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/svcctl_conf.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/svcctl_conf.c
index 1dce9189e..87b4944bd 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/svcctl_conf.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/svcctl_conf.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -79,4 +78,3 @@ const uint8_t* SVCCTL_GetBdAddress( void )
}
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_conf.h
index 6df3dc0c7..f9c44a264 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -29,5 +28,3 @@
#endif /*__TL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_dbg_conf.h
index b468b2863..b2d9401fc 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_dbg_conf.h
@@ -1,21 +1,22 @@
+/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : tl_dbg_conf.h
- * Description : Debug configuration file for stm32wpan transport layer interface.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file tl_dbg_conf.h
+ * @author MCD Application Team
+ * @brief Debug configuration file for stm32wpan transport layer interface.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __TL_DBG_CONF_H
@@ -42,7 +43,7 @@
#define TL_HCI_EVT_DBG_EN 0 /* Reports BLE Asynchronous Events received from CPU2 */
#define TL_HCI_EVT_DBG_RAW_EN 0 /* Reports raw data BLE Asynchronous Events received from CPU2 */
-#define TL_MM_DBG_EN 0 /* Reports the informations of the buffer released to CPU2 */
+#define TL_MM_DBG_EN 0 /* Reports the information of the buffer released to CPU2 */
/**
* Macro definition
@@ -122,5 +123,3 @@
/* USER CODE END Tl_Conf */
#endif /*__TL_DBG_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_if.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_if.c
index 609ca64cf..85aa6e5da 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/tl_if.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -44,4 +43,3 @@ void shci_register_io_bus(tSHciIO* fops)
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/user_if.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/user_if.c
index 43a0e548d..349251ecd 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/user_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/user_if.c
@@ -1,43 +1,21 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file user_if.c
* @author BLE Mesh Team
-* @version V1.09.000
-* @date 15-Oct-2018
* @brief User interface file
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
-*
-* Redistribution and use in source and binary forms, with or without modification,
-* are permitted provided that the following conditions are met:
-* 1. Redistributions of source code must retain the above copyright notice,
-* this list of conditions and the following disclaimer.
-* 2. Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following disclaimer in the documentation
-* and/or other materials provided with the distribution.
-* 3. Neither the name of STMicroelectronics nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*
-* Initial BlueNRG-Mesh is built over Motorola’s Mesh over Bluetooth Low Energy
-* (MoBLE) technology. The present solution is developed and maintained for both
-* Mesh library and Applications solely by STMicroelectronics.
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) STMicroelectronics</center></h2>
+(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
#include "cube_hal.h"
#include "ble_clock.h"
@@ -196,7 +174,7 @@ void InitDevice(void)
/**
-* @brief ShouldSleepFunc sleep mode fuction
+* @brief ShouldSleepFunc sleep mode function
* @param void
* @retval void
*/
@@ -361,4 +339,3 @@ uint8_t __io_getcharNonBlocking(uint8_t *data)
return 0;
}/* end serialReadByte() */
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/user_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/user_if.h
index 773b36116..47889703c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/user_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/user_if.h
@@ -1,43 +1,21 @@
/**
-******************************************************************************
+ ******************************************************************************
* @file user_if.h
* @author BLE Mesh Team
-* @version V1.09.000
-* @date 15-Oct-2018
* @brief Header file for User interface file
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
-*
-* Redistribution and use in source and binary forms, with or without modification,
-* are permitted provided that the following conditions are met:
-* 1. Redistributions of source code must retain the above copyright notice,
-* this list of conditions and the following disclaimer.
-* 2. Redistributions in binary form must reproduce the above copyright notice,
-* this list of conditions and the following disclaimer in the documentation
-* and/or other materials provided with the distribution.
-* 3. Neither the name of STMicroelectronics nor the names of its contributors
-* may be used to endorse or promote products derived from this software
-* without specific prior written permission.
-*
-* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*
-* Initial BLE-Mesh is built over Motorola’s Mesh over Bluetooth Low Energy
-* (MoBLE) technology. The present solution is developed and maintained for both
-* Mesh library and Applications solely by STMicroelectronics.
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) STMicroelectronics</center></h2>
+(-2021) STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef _USER_INTERFACE_H_
@@ -58,5 +36,4 @@ typedef void (* IO_RECEIVE_DATA_USER_CALLBACK_TYPE) (uint8_t * rx_data, uint16_t
#endif /* _USER_INTERFACE_H_ */
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/vcp_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/vcp_conf.h
index 22b6dc41c..5dc48464c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/vcp_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/app/vcp_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -48,5 +47,3 @@ extern "C"
#endif
#endif /*__VCP_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/target/hw_ipcc.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/target/hw_ipcc.c
index e7049681d..6aceffd62 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/target/hw_ipcc.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/STM32_WPAN/target/hw_ipcc.c
@@ -1,18 +1,17 @@
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : Target/hw_ipcc.c
* Description : Hardware IPCC source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -162,10 +161,7 @@ void HW_IPCC_Tx_Handler( void )
HW_IPCC_ZIGBEE_CmdEvtHandler();
}
#endif /* ZIGBEE_WB */
- else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
- {
- HW_IPCC_SYS_CmdEvtHandler();
- }
+
else if (HW_IPCC_TX_PENDING( HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ))
{
HW_IPCC_MM_FreeBufHandler();
@@ -672,4 +668,3 @@ static void HW_IPCC_TRACES_EvtHandler( void )
__weak void HW_IPCC_TRACES_EvtNot( void ){};
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/readme.txt b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/readme.txt
index 68a5e8dec..ff385c741 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Mesh_ThermometerSensor/readme.txt
@@ -2,27 +2,30 @@
@page BLE_Mesh_ThermometerSensor example
@verbatim
- ******************** (C) COPYRIGHT 2021 STMicroelectronics *******************
+ ******************************************************************************
* @file BLE/BLE_Mesh_ThermometerSensor/readme.txt
* @author MCD Application Team
- * @brief Description of the BLE Mesh Thermometer Sensor Node demo example.
+ * @brief Description of the BLE Mesh Thermometer Vendor Node demo example.
******************************************************************************
*
- * Copyright (c) 2021 STMicroelectronics. All rights reserved.
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@par Application Description
-This is the implementation of a BLE Mesh Vendor profile as specified by the BLE SIG.
+This is the implementation of a BLE Mesh Vendor model as specified by the BLE SIG.
-This example is to demonstrate the BLE Mesh Vendor profile by using a STM32WB5MM Discovery Kit as BLE Mesh Vendor Node
+This example is to demonstrate the BLE Mesh Vendor model by using a STM32WB5MM Discovery Kit as BLE Mesh Vendor Node
in order to send measured temperature over BLE Mesh Network through vendor command.
+@par Keywords
+
+Connectivity, BLE, Mesh, Thermometer, Vendor, BLE protocol, BLE profile, Dual core
@par Directory contents
@@ -115,7 +118,7 @@ in order to send measured temperature over BLE Mesh Network through vendor comma
@par How to use it ?
-This application requests having the stm32wb5x_BLE_Stack_fw.bin binary flashed on the Wireless Coprocessor.
+This application requests having the stm32wb5x_BLE_Stack_full_fw.bin binary flashed on the Wireless Coprocessor.
If it is not the case, you need to use STM32CubeProgrammer to load the appropriate binary.
All available binaries are located under /Projects/STM32_Copro_Wireless_Binaries directory.
Refer to UM2237 to learn how to use/install STM32CubeProgrammer.
@@ -180,23 +183,70 @@ Step 2. Generate and flash binary in the other boards.
Once flashed the distance measured by the board is displayed on the LCD screen.
Demo operation
-Step 3. Verify your boards are correctly unprovisioned, by keeping pressed User Button 1 (B1) and Reset button,
- releasing the reset while keeping B1 pressed until the Blue LED is blinking.
-
-Step 4. Provision all the flashed and unprovisioned boards with the default parameters (Fast povisioning -> Quick configuration),
- using BLE-Mesh Android (https://play.google.com/store/apps/details?id=com.st.bluenrgmesh&hl=en) or
- BLE-Mesh iOS (https://apps.apple.com/us/app/st-ble-mesh/id1348645067) smartphone application (subscribe and publish to default group).
-
-Step 5. Modify publication address of your Thermometer Node to publish his vendor commands to the Indicator Nodes (directly to the Node r using Group definitions).
-
-The Thermometer will send Vendor command to change the RGB LED color of the Indicator Node depending on the temperature he is measuring.
-Blue = low temperature
-Green = medium temperature
-Red = High temperature
+Step 3. Connect an HyperTerminal to each board (e.g Tera Term):
+ - Setup the Serial port as follow:
+ Speed: 115 200
+ Data: 8 bit
+ Parity: none
+ Stop bits: 1 bits
+ Flow Control: none
+ - Select the Serial Port corresponding to your first board
+ - Repeat the operation for the second board
+ Note: You can identify which board is connected to which HyperTerminal window by pushing reset button on one board.
+ The associated Terminal windows displays reset logs.
+
+Step 4. Verify the boards are correctly unprovisioned, by keeping pressed User Button 1 (B1) and Reset button,
+ releasing the Reset button while keeping B1 pressed until the Blue LED is blinking.
+ You can see "Unprovisioned device" message on the HyperTerminal logs of the board.
+
+Step 5. Setup the BLE-mesh network using the ST BLE-Mesh Android (https://play.google.com/store/apps/details?id=com.st.bluenrgmesh&hl=en) or
+ iOS (https://apps.apple.com/us/app/st-ble-mesh/id1348645067) smartphone application.
+ The following instructions are based on the Android version of the application, buttons and menus may differ in the iOS version.
+ In case of doubts or for further information, you can refer to:
+ Android User Manual: UM2180 (https://www.st.com/content/ccc/resource/technical/document/user_manual/group0/7e/bb/bd/40/66/0f/46/54/DM00369109/files/DM00369109.pdf/jcr:content/translations/en.DM00369109.pdf)
+ iOS User Manual : UM2361 https://www.st.com/content/ccc/resource/technical/document/user_manual/group0/7e/ea/19/73/31/3e/43/1a/DM00477323/files/DM00477323.pdf/jcr:content/translations/en.DM00477323.pdf
+
+ - Launch the application and select the "device" interface in the top left corner.
+
+ - Your devices should be visible in this interface, click on the (+) button next to one of the devices to begin the provisioning and configuration process of this device.
+ If your Unpvorisioned devices are not visible from this interface, try to reproduce the Step 4.
+
+ - Select "Fast Provisioning" button.
+ The green LED of your board switches ON to indicate the board is currently used as Proxy by smartphone, this means the smartphone use this board to setup and communicate with the BLE mesh Network.
+
+ - Click on "Go with Quick Configuration" button.
+ In the pop-up, check the circle in front of "App Key 0", the AppKey binding is now done.
+
+ - Let Default Group Subscription and Publish Target selection and click on "Add Configuration" button.
+ The application is now on the Node interface. (click on "Nodes" button in bottom menu).
+
+ - You can rename your node by clicking on the setting button next to (P)(R)(F) icons.
+ Click on the Pen icon in Node Name line and rename your Node:
+ "Thermometer Node"
+ "Indicator Node"
+ Depending on your node.
+
+ - Come back to the "Devices" interface (on bottom bar menu) and reproduce previous steps for your second board.
+
+Step 6. Modify publication address of your Thermometer Node to publish his vendor commands to the Indicator Node:
+ - Go to the "Nodes" interface (on bottom bar menu)
+ - Open Element 1 settings of the Thermometer Node. The Settings button is situated on the right of Element 1 line of the Thermometer Node.
+ - Select Indicator Node/Element 1 in "Set Publish Address" list.
+ - Save settings
+ Now the Thermometer Node publish to the Indicator Node.
+
+Step 7. Once the Thermometer and Indicator Nodes are provisioned, you can close the smartphone application.
+ The Green LED of your Proxy node should switch OFF as it is no longer connected to the Smartphone.
+
+Step 8. The Thermometer send Vendor command to change the RGB LED color of the Indicator Node depending on the temperature he is measuring.
+ Blue = low temperature
+ Green = medium temperature
+ Red = High temperature
NOTE: The actual code manage temperature between 20 and 30 degrees Celsius.
You can change it by modifying min_temp, max_temp.
into PublishTemp_Task() function
+
* <h3><center>&copy; COPYRIGHT STMicroelectronics</center></h3>
*/ \ No newline at end of file
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/.extSettings b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/.extSettings
index f2068cc69..91ce31f03 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/.extSettings
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/.extSettings
@@ -1,11 +1,10 @@
[ProjectFiles]
-HeaderPath=..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK;..\..\..\..\..\..\Drivers\BSP\Components\ssd1315;..\..\..\..\..\..\Drivers\BSP\Components\Common;..\..\..\..\..\..\Utilities\Fonts;..\..\..\..\..\..\Utilities\LCD;..\..\..\..\..\..\Drivers\BSP\Components\ism330dhcx;..\..\..\..\..\..\Middlewares\ST\STM32_Audio\Addons\PDM\Inc;..\..\..\..\..\..\Middlewares\ST\STM32_USB_Device_Library\Class\AUDIO\Inc;..\..\..\..\..\..\Drivers\CMSIS\DSP\Source\FilteringFunctions;..\..\..\..\..\..\Drivers\CMSIS\DSP\Include;..\..\..\..\..\..\Drivers\BSP\Components\stts22h;..\..\..\..\..\..\Drivers\BSP\Components\s25fl128s;/../Core/Src/vl53l0x;
+HeaderPath=..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK;..\..\..\..\..\..\Drivers\BSP\Components\ssd1315;..\..\..\..\..\..\Drivers\BSP\Components\Common;..\..\..\..\..\..\Utilities\Fonts;..\..\..\..\..\..\Utilities\LCD;..\..\..\..\..\..\Drivers\BSP\Components\ism330dhcx;..\..\..\..\..\..\Drivers\CMSIS\DSP\Source\FilteringFunctions;..\..\..\..\..\..\Drivers\CMSIS\DSP\Include;..\..\..\..\..\..\Drivers\BSP\Components\stts22h;/../Core/Src/vl53l0x;
[Others]
-Define=STM32WL55MM_DK
-HALModule=SAI;IPCC;
+Define=USE_STM32WB5M_DK
[Groups]
-Drivers/BSP/STM32WB5MM-DK=../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_audio.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_env_sensors.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_env_sensors_ex.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_lcd.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_motion_sensors.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_motion_sensors_ex.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_qspi.c;
-Drivers/BSP/Components=../../../../../../Drivers/BSP/Components/ism330dhcx/ism330dhcx.c;../../../../../../Drivers/BSP/Components/ism330dhcx/ism330dhcx_reg.c;../../../../../../Drivers/BSP/Components/s25fl128s/s25fl128s.c;../../../../../../Drivers/BSP/Components/ssd1315/ssd1315.c;../../../../../../Drivers/BSP/Components/ssd1315/ssd1315_reg.c;../../../../../../Drivers/BSP/Components/stts22h/stts22h.c;../../../../../../Drivers/BSP/Components/stts22h/stts22h_reg.c
+Drivers/BSP/STM32WB5MM-DK=../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_env_sensors.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_env_sensors_ex.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_lcd.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_motion_sensors.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_motion_sensors_ex.c;
+Drivers/BSP/Components=../../../../../../Drivers/BSP/Components/ism330dhcx/ism330dhcx.c;../../../../../../Drivers/BSP/Components/ism330dhcx/ism330dhcx_reg.c;../../../../../../Drivers/BSP/Components/ssd1315/ssd1315.c;../../../../../../Drivers/BSP/Components/ssd1315/ssd1315_reg.c;../../../../../../Drivers/BSP/Components/stts22h/stts22h.c;../../../../../../Drivers/BSP/Components/stts22h/stts22h_reg.c
Doc=../readme.txt;
Utilities=../../../../../../Utilities/LCD/stm32_lcd.c
Application/User/STM32_WPAN/App=../STM32_WPAN/App/env_server_app.c;../STM32_WPAN/App/motenv_server_app.c;../STM32_WPAN/App/wb5m_sensor_stm.c;../STM32_WPAN/App/motion_server_app.c
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/BLE_Sensor.ioc b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/BLE_Sensor.ioc
new file mode 100644
index 000000000..48e0ce458
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/BLE_Sensor.ioc
@@ -0,0 +1,527 @@
+#MicroXplorer Configuration settings - do not modify
+Dma.Request0=USART1_TX
+Dma.RequestsNb=1
+Dma.USART1_TX.0.Direction=DMA_MEMORY_TO_PERIPH
+Dma.USART1_TX.0.EventEnable=DISABLE
+Dma.USART1_TX.0.Instance=DMA2_Channel4
+Dma.USART1_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART1_TX.0.MemInc=DMA_MINC_ENABLE
+Dma.USART1_TX.0.Mode=DMA_NORMAL
+Dma.USART1_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART1_TX.0.PeriphInc=DMA_PINC_DISABLE
+Dma.USART1_TX.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.USART1_TX.0.Priority=DMA_PRIORITY_LOW
+Dma.USART1_TX.0.RequestNumber=1
+Dma.USART1_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.USART1_TX.0.SignalID=NONE
+Dma.USART1_TX.0.SyncEnable=DISABLE
+Dma.USART1_TX.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.USART1_TX.0.SyncRequestNumber=1
+Dma.USART1_TX.0.SyncSignalID=NONE
+File.Version=6
+GPIO.groupedBy=Group By Peripherals
+I2C3.IPParameters=Timing
+I2C3.Timing=0x10707DBC
+KeepUserPlacement=false
+Mcu.Family=STM32WB
+Mcu.IP0=DMA
+Mcu.IP1=HSEM
+Mcu.IP10=STM32_WPAN
+Mcu.IP11=SYS
+Mcu.IP12=TIM17
+Mcu.IP13=TINY_LPM
+Mcu.IP14=USART1
+Mcu.IP2=I2C3
+Mcu.IP3=IPCC
+Mcu.IP4=NVIC
+Mcu.IP5=RCC
+Mcu.IP6=RF
+Mcu.IP7=RTC
+Mcu.IP8=SEQUENCER
+Mcu.IP9=SPI1
+Mcu.IPNb=15
+Mcu.Name=STM32WB5MMGHx
+Mcu.Package=LGA86
+Mcu.Pin0=PA2
+Mcu.Pin1=PA1
+Mcu.Pin10=PB5
+Mcu.Pin11=PB4
+Mcu.Pin12=PB3
+Mcu.Pin13=PC10
+Mcu.Pin14=PC11
+Mcu.Pin15=PC12
+Mcu.Pin16=PA13
+Mcu.Pin17=PA14
+Mcu.Pin18=PA15
+Mcu.Pin19=PA10
+Mcu.Pin2=PA0
+Mcu.Pin20=PA12
+Mcu.Pin21=PA11
+Mcu.Pin22=PD0
+Mcu.Pin23=PD1
+Mcu.Pin24=PB13
+Mcu.Pin25=PC6
+Mcu.Pin26=PB14
+Mcu.Pin27=PB15
+Mcu.Pin28=PB6
+Mcu.Pin29=PC13
+Mcu.Pin3=PC3
+Mcu.Pin30=PB12
+Mcu.Pin31=PE4
+Mcu.Pin32=PC5
+Mcu.Pin33=PB11
+Mcu.Pin34=PB10
+Mcu.Pin35=PB2
+Mcu.Pin36=PC4
+Mcu.Pin37=PA8
+Mcu.Pin38=PA9
+Mcu.Pin39=PA7
+Mcu.Pin4=PC2
+Mcu.Pin40=PA6
+Mcu.Pin41=PA5
+Mcu.Pin42=PA4
+Mcu.Pin43=PA3
+Mcu.Pin44=PH0
+Mcu.Pin45=PH1
+Mcu.Pin46=PD14
+Mcu.Pin47=PE1
+Mcu.Pin48=PD13
+Mcu.Pin49=PD12
+Mcu.Pin5=PC1
+Mcu.Pin50=PD2
+Mcu.Pin51=PC9
+Mcu.Pin52=PD3
+Mcu.Pin53=PC7
+Mcu.Pin54=PE3
+Mcu.Pin55=PD4
+Mcu.Pin56=PD9
+Mcu.Pin57=PD8
+Mcu.Pin58=PD15
+Mcu.Pin59=PD10
+Mcu.Pin6=PB9
+Mcu.Pin60=PE2
+Mcu.Pin61=PE0
+Mcu.Pin62=PD5
+Mcu.Pin63=PD6
+Mcu.Pin64=PD11
+Mcu.Pin65=PC8
+Mcu.Pin66=VP_HSEM_VS_HSEM
+Mcu.Pin67=VP_IPCC_VS_IPCC
+Mcu.Pin68=VP_RCC_V_OSC_IN
+Mcu.Pin69=VP_RCC_V_OSC32_IN
+Mcu.Pin7=PC0
+Mcu.Pin70=VP_RF_VS_RF
+Mcu.Pin71=VP_RTC_VS_RTC_Activate
+Mcu.Pin72=VP_SEQUENCER_VS_SEQUENCER
+Mcu.Pin73=VP_STM32_WPAN_VS_BLE_HOST
+Mcu.Pin74=VP_SYS_VS_Systick
+Mcu.Pin75=VP_TIM17_VS_ClockSourceINT
+Mcu.Pin76=VP_TINY_LPM_VS_TINY_LPM
+Mcu.Pin8=PB8
+Mcu.Pin9=PB7
+Mcu.PinsNb=77
+Mcu.ThirdPartyNb=0
+Mcu.UserConstants=
+Mcu.UserName=STM32WB5MMGHx
+MxCube.Version=6.4.0
+MxDb.Version=DB.6.0.40
+NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.DMA2_Channel4_IRQn=true\:15\:0\:true\:false\:true\:false\:true
+NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.ForceEnableDMAVector=true
+NVIC.HSEM_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
+NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+PA0.Locked=true
+PA0.Signal=ADCx_IN5
+PA1.Locked=true
+PA1.Mode=Full_Duplex_Master
+PA1.Signal=SPI1_SCK
+PA10.Locked=true
+PA10.Signal=I2C1_SDA
+PA11.GPIOParameters=GPIO_Label
+PA11.GPIO_Label=USB_N
+PA11.Locked=true
+PA11.Signal=USB_DM
+PA12.GPIOParameters=GPIO_Label
+PA12.GPIO_Label=USB_P
+PA12.Locked=true
+PA12.Signal=USB_DP
+PA13.GPIOParameters=GPIO_Label
+PA13.GPIO_Label=T_SWDIO
+PA13.Locked=true
+PA13.Signal=SYS_JTMS-SWDIO
+PA14.GPIOParameters=GPIO_Label
+PA14.GPIO_Label=T_SWCLK
+PA14.Locked=true
+PA14.Signal=SYS_JTCK-SWCLK
+PA15.Locked=true
+PA15.Signal=S_TIM2_CH1
+PA2.Locked=true
+PA2.Signal=ADCx_IN7
+PA3.GPIOParameters=GPIO_Label
+PA3.GPIO_Label=QSPI_BK_SCK
+PA3.Locked=true
+PA3.Signal=QUADSPI_CLK
+PA4.Locked=true
+PA4.Signal=SPI1_NSS
+PA5.Locked=true
+PA5.Signal=ADCx_IN10
+PA6.Locked=true
+PA6.Signal=LPUART1_CTS
+PA7.Locked=true
+PA7.Mode=Full_Duplex_Master
+PA7.Signal=SPI1_MOSI
+PA8.GPIOParameters=GPIO_Label
+PA8.GPIO_Label=SAI1_CK2
+PA8.Locked=true
+PA8.Signal=SAI1_CK2
+PA9.GPIOParameters=GPIO_Label
+PA9.GPIO_Label=SAI1_D2
+PA9.Locked=true
+PA9.Signal=SAI1_D2
+PB10.Locked=true
+PB10.Signal=S_TIM2_CH3
+PB11.GPIOParameters=GPIO_Label
+PB11.GPIO_Label=I2C3_SDA
+PB11.Locked=true
+PB11.Mode=I2C
+PB11.Signal=I2C3_SDA
+PB12.Locked=true
+PB12.Signal=LPUART1_RTS
+PB13.GPIOParameters=GPIO_Label
+PB13.GPIO_Label=I2C3_SCL
+PB13.Locked=true
+PB13.Mode=I2C
+PB13.Signal=I2C3_SCL
+PB14.Locked=true
+PB14.Signal=SPI2_MISO
+PB15.Locked=true
+PB15.Signal=SPI2_MOSI
+PB2.Locked=true
+PB2.Signal=GPIO_Input
+PB3.GPIOParameters=GPIO_Label
+PB3.GPIO_Label=T_SWO
+PB3.Locked=true
+PB3.Signal=SYS_JTDO-SWO
+PB4.Locked=true
+PB4.Mode=Full_Duplex_Master
+PB4.Signal=SPI1_MISO
+PB5.GPIOParameters=GPIO_Label
+PB5.GPIO_Label=LPUART1_TX_MCU
+PB5.Locked=true
+PB5.Signal=LPUART1_TX
+PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
+PB6.GPIO_Label=VCP_TX
+PB6.GPIO_PuPd=GPIO_PULLUP
+PB6.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB6.Locked=true
+PB6.Mode=Asynchronous
+PB6.Signal=USART1_TX
+PB7.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
+PB7.GPIO_Label=VCP_RX
+PB7.GPIO_PuPd=GPIO_PULLUP
+PB7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB7.Locked=true
+PB7.Mode=Asynchronous
+PB7.Signal=USART1_RX
+PB8.Locked=true
+PB8.Signal=I2C1_SCL
+PB9.GPIOParameters=GPIO_Label
+PB9.GPIO_Label=QSPI_BK_IO0
+PB9.Locked=true
+PB9.Signal=QUADSPI_BK1_IO0
+PC0.GPIOParameters=GPIO_Label
+PC0.GPIO_Label=LPUART1_RX_MCU
+PC0.Locked=true
+PC0.Signal=LPUART1_RX
+PC1.Locked=true
+PC1.Signal=ADCx_IN2
+PC10.Locked=true
+PC10.Signal=GPIO_Input
+PC11.Locked=true
+PC11.Signal=GPIO_Input
+PC12.GPIOParameters=GPIO_Label
+PC12.GPIO_Label=User-B1
+PC12.Locked=true
+PC12.Signal=SYS_WKUP3
+PC13.GPIOParameters=GPIO_Label
+PC13.GPIO_Label=User-B2
+PC13.Locked=true
+PC13.Signal=SYS_WKUP2
+PC2.Locked=true
+PC2.Signal=GPIO_Input
+PC3.Locked=true
+PC3.Signal=ADCx_IN4
+PC4.Locked=true
+PC4.Signal=ADCx_IN13
+PC5.Locked=true
+PC5.Signal=ADCx_IN14
+PC6.GPIOParameters=GPIO_Label
+PC6.GPIO_Label=TSC_G4_IO1
+PC6.Locked=true
+PC6.Signal=TSC_G4_IO1
+PC7.GPIOParameters=GPIO_Label
+PC7.GPIO_Label=TSC_G4_IO2
+PC7.Locked=true
+PC7.Signal=TSC_G4_IO2
+PC8.GPIOParameters=GPIO_Label
+PC8.GPIO_Label=RST_DISP
+PC8.Locked=true
+PC8.Signal=GPIO_Output
+PC9.GPIOParameters=GPIO_Label
+PC9.GPIO_Label=D/C_DISP
+PC9.Locked=true
+PC9.Signal=GPIO_Output
+PCC.Ble.ConnectionInterval=1000.0
+PCC.Ble.DataLength=6
+PCC.Ble.IsUsed=false
+PCC.Ble.Mode=NOT_SELECTED
+PCC.Ble.PowerLevel=Min
+PCC.Zigbee.IsUsed=false
+PCC.Zigbee.Mode=Sleepy End Device
+PCC.Zigbee.Payload=15
+PCC.Zigbee.PoolPeriodicity=480.0
+PCC.Zigbee.PowerLevel=Min
+PCC.Zigbee.RequestPeriodicity=1500.0
+PD0.Locked=true
+PD0.Signal=SPI2_NSS
+PD1.Locked=true
+PD1.Signal=SPI2_SCK
+PD10.GPIOParameters=GPIO_Label
+PD10.GPIO_Label=TSC_G6_IO1
+PD10.Locked=true
+PD10.Signal=TSC_G6_IO1
+PD11.GPIOParameters=GPIO_Label
+PD11.GPIO_Label=TSC_G6_IO2
+PD11.Locked=true
+PD11.Signal=TSC_G6_IO2
+PD12.Locked=true
+PD12.Signal=GPIO_Input
+PD13.Locked=true
+PD13.Signal=GPIO_Input
+PD14.Locked=true
+PD14.Signal=S_TIM1_CH1
+PD15.Locked=true
+PD15.Signal=S_TIM1_CH2
+PD2.GPIOParameters=GPIO_Label
+PD2.GPIO_Label=INT1
+PD2.Locked=true
+PD2.Signal=GPXTI2
+PD3.GPIOParameters=GPIO_Label
+PD3.GPIO_Label=QSPI_BK_NCS
+PD3.Locked=true
+PD3.Signal=QUADSPI_BK1_NCS
+PD4.Locked=true
+PD4.Signal=GPIO_Input
+PD5.GPIOParameters=GPIO_Label
+PD5.GPIO_Label=QSPI_BK_IO1
+PD5.Locked=true
+PD5.Signal=QUADSPI_BK1_IO1
+PD6.GPIOParameters=GPIO_Label
+PD6.GPIO_Label=QSPI_BK_IO2
+PD6.Locked=true
+PD6.Signal=QUADSPI_BK1_IO2
+PD8.Locked=true
+PD8.Signal=GPIO_Output
+PD9.GPIOParameters=GPIO_Label
+PD9.GPIO_Label=INT2
+PD9.Locked=true
+PD9.Signal=GPXTI9
+PE0.Locked=true
+PE0.Signal=S_TIM16_CH1
+PE1.GPIOParameters=GPIO_Label
+PE1.GPIO_Label=DRDY
+PE1.Locked=true
+PE1.Signal=GPIO_Input
+PE2.GPIOParameters=GPIO_Label
+PE2.GPIO_Label=GPIO_SELECT1
+PE2.Locked=true
+PE2.Signal=GPIO_Output
+PE3.Locked=true
+PE3.Signal=GPXTI3
+PE4.Locked=true
+PE4.Signal=GPIO_Input
+PH0.GPIOParameters=GPIO_Label
+PH0.GPIO_Label=CS_DISP
+PH0.Locked=true
+PH0.Signal=GPIO_Output
+PH1.GPIOParameters=GPIO_Label
+PH1.GPIO_Label=GPIO_SELECT2
+PH1.Locked=true
+PH1.Signal=GPIO_Output
+PinOutPanel.CurrentBGAView=Top
+PinOutPanel.RotationAngle=0
+ProjectManager.AskForMigrate=true
+ProjectManager.BackupPrevious=false
+ProjectManager.CompilerOptimize=6
+ProjectManager.ComputerToolchain=false
+ProjectManager.CoupleFile=false
+ProjectManager.DeletePrevious=true
+ProjectManager.DeviceId=STM32WB5MMGHx
+ProjectManager.FreePins=false
+ProjectManager.HalAssertFull=false
+ProjectManager.HeapSize=0x400
+ProjectManager.KeepUserCode=true
+ProjectManager.LastFirmware=true
+ProjectManager.LibraryCopy=2
+ProjectManager.MainLocation=Core/Src
+ProjectManager.NoMain=false
+ProjectManager.PreviousToolchain=
+ProjectManager.ProjectBuild=false
+ProjectManager.ProjectFileName=BLE_Sensor.ioc
+ProjectManager.ProjectName=BLE_Sensor
+ProjectManager.RegisterCallBack=
+ProjectManager.StackSize=0x1000
+ProjectManager.TargetToolchain=EWARM V8
+ProjectManager.ToolChainLocation=
+ProjectManager.UnderRoot=false
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_RF_Init-RF-false-HAL-true,5-MX_RTC_Init-RTC-false-HAL-true,6-APPE_Init-STM32_WPAN-false-HAL-false,false-7-MX_I2C3_Init-I2C3-false-HAL-true,false-8-MX_SPI1_Init-SPI1-false-HAL-true,false-9-MX_TIM17_Init-TIM17-false-HAL-true,10-MX_USART1_UART_Init-USART1-true-HAL-false,11-MX_IPCC_Init-IPCC-false-HAL-true,0-MX_HSEM_Init-HSEM-false-HAL-true
+RCC.ADCFreq_Value=16000000
+RCC.AHB2CLKDivider=RCC_SYSCLK_DIV2
+RCC.AHBFreq_Value=64000000
+RCC.APB1Freq_Value=64000000
+RCC.APB1TimFreq_Value=64000000
+RCC.APB2Freq_Value=64000000
+RCC.APB2TimFreq_Value=64000000
+RCC.APB3Freq_Value=16000000
+RCC.Cortex2Freq_Value=32000000
+RCC.CortexFreq_Value=64000000
+RCC.FCLK2Freq_Value=32000000
+RCC.FCLKCortexFreq_Value=64000000
+RCC.FamilyName=M
+RCC.HCLK2Freq_Value=32000000
+RCC.HCLK3Freq_Value=64000000
+RCC.HCLKFreq_Value=64000000
+RCC.HCLKRFFreq_Value=16000000
+RCC.HSE_VALUE=32000000
+RCC.HSI48_VALUE=48000000
+RCC.HSI_VALUE=16000000
+RCC.I2C1Freq_Value=64000000
+RCC.I2C3Freq_Value=64000000
+RCC.IPParameters=ADCFreq_Value,AHB2CLKDivider,AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,Cortex2Freq_Value,CortexFreq_Value,FCLK2Freq_Value,FCLKCortexFreq_Value,FamilyName,HCLK2Freq_Value,HCLK3Freq_Value,HCLKFreq_Value,HCLKRFFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C3Freq_Value,LCDFreq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,MSIClockRange,PLLM,PLLN,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PLLSourceVirtual,PWRFreq_Value,RFWKPClockSelection,RFWKPFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SMPS1Freq_Value,SMPSFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,USBFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value
+RCC.LCDFreq_Value=32768
+RCC.LPTIM1Freq_Value=64000000
+RCC.LPTIM2Freq_Value=64000000
+RCC.LPUART1Freq_Value=64000000
+RCC.LSCOPinFreq_Value=32000
+RCC.LSI_VALUE=32000
+RCC.MCO1PinFreq_Value=64000000
+RCC.MSIClockRange=RCC_MSIRANGE_10
+RCC.PLLM=RCC_PLLM_DIV8
+RCC.PLLN=32
+RCC.PLLPoutputFreq_Value=64000000
+RCC.PLLQoutputFreq_Value=64000000
+RCC.PLLRCLKFreq_Value=64000000
+RCC.PLLSAI1PoutputFreq_Value=16000000
+RCC.PLLSAI1QoutputFreq_Value=16000000
+RCC.PLLSAI1RoutputFreq_Value=16000000
+RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE
+RCC.PWRFreq_Value=64000000
+RCC.RFWKPClockSelection=RCC_RFWKPCLKSOURCE_LSE
+RCC.RFWKPFreq_Value=32768
+RCC.RNGFreq_Value=32000
+RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE
+RCC.RTCFreq_Value=32768
+RCC.SAI1Freq_Value=16000000
+RCC.SMPS1Freq_Value=8000000
+RCC.SMPSFreq_Value=4000000
+RCC.SYSCLKFreq_VALUE=64000000
+RCC.SYSCLKSource=RCC_SYSCLKSOURCE_PLLCLK
+RCC.USART1Freq_Value=64000000
+RCC.USBFreq_Value=16000000
+RCC.VCOInputFreq_Value=4000000
+RCC.VCOOutputFreq_Value=128000000
+RCC.VCOSAI1OutputFreq_Value=32000000
+SH.ADCx_IN10.0=ADC1_IN10
+SH.ADCx_IN10.ConfNb=1
+SH.ADCx_IN13.0=ADC1_IN13
+SH.ADCx_IN13.ConfNb=1
+SH.ADCx_IN14.0=ADC1_IN14
+SH.ADCx_IN14.ConfNb=1
+SH.ADCx_IN2.0=ADC1_IN2
+SH.ADCx_IN2.ConfNb=1
+SH.ADCx_IN4.0=ADC1_IN4
+SH.ADCx_IN4.ConfNb=1
+SH.ADCx_IN5.0=ADC1_IN5
+SH.ADCx_IN5.ConfNb=1
+SH.ADCx_IN7.0=ADC1_IN7
+SH.ADCx_IN7.ConfNb=1
+SH.GPXTI2.0=GPIO_EXTI2
+SH.GPXTI2.ConfNb=1
+SH.GPXTI3.0=GPIO_EXTI3
+SH.GPXTI3.ConfNb=1
+SH.GPXTI9.0=GPIO_EXTI9
+SH.GPXTI9.ConfNb=1
+SH.S_TIM16_CH1.0=TIM16_CH1
+SH.S_TIM16_CH1.ConfNb=1
+SH.S_TIM1_CH1.0=TIM1_CH1
+SH.S_TIM1_CH1.ConfNb=1
+SH.S_TIM1_CH2.0=TIM1_CH2
+SH.S_TIM1_CH2.ConfNb=1
+SH.S_TIM2_CH1.0=TIM2_CH1
+SH.S_TIM2_CH1.ConfNb=1
+SH.S_TIM2_CH3.0=TIM2_CH3
+SH.S_TIM2_CH3.ConfNb=1
+SPI1.CalculateBaudRate=32.0 MBits/s
+SPI1.Direction=SPI_DIRECTION_2LINES
+SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
+SPI1.Mode=SPI_MODE_MASTER
+SPI1.VirtualType=VM_MASTER
+STM32_WPAN.BLE_DBG_APP_EN=0
+STM32_WPAN.BLE_DBG_P2P_STM_EN=0
+STM32_WPAN.CFG_ADV_BD_ADDRESS=0x7257acd87a6c
+STM32_WPAN.CFG_DEBUGGER_SUPPORTED=1
+STM32_WPAN.CFG_DEBUG_APP_TRACE=1
+STM32_WPAN.CFG_DEBUG_BLE_TRACE=1
+STM32_WPAN.CFG_DEBUG_TRACE_LIGHT=1
+STM32_WPAN.CFG_DEBUG_TRACE_UART=hw_uart1
+STM32_WPAN.CFG_GAP_DEVICE_NAME=WB Sensors
+STM32_WPAN.CFG_HW_USART1_ENABLED=1
+STM32_WPAN.CFG_USE_SMPS=0
+STM32_WPAN.CUSTOM_P2P_SERVER=Enabled
+STM32_WPAN.CUSTOM_TEMPLATE=Disabled
+STM32_WPAN.INCLUDE_AD_TYPE_COMPLETE_LOCAL_NAME=1
+STM32_WPAN.IPParameters=CUSTOM_P2P_SERVER,CUSTOM_TEMPLATE,INCLUDE_AD_TYPE_COMPLETE_LOCAL_NAME,CFG_GAP_DEVICE_NAME,NUMBER_OF_SERVICES,SERVICE1_LONG_NAME,SERVICE1_SHORT_NAME,SERVICE1_CHAR1_LONG_NAME,SERVICE1_CHAR1_SHORT_NAME,LOCAL_NAME,LOCAL_NAME_FORMATTED,CFG_USE_SMPS,CFG_ADV_BD_ADDRESS,CFG_HW_USART1_ENABLED,CFG_DEBUGGER_SUPPORTED,CFG_DEBUG_TRACE_UART,CFG_DEBUG_BLE_TRACE,CFG_DEBUG_APP_TRACE,CFG_DEBUG_TRACE_LIGHT,BLE_DBG_APP_EN,BLE_DBG_P2P_STM_EN
+STM32_WPAN.LOCAL_NAME=WB5M DK
+STM32_WPAN.LOCAL_NAME_FORMATTED=,'W','B','5','M',' ','D','K'
+STM32_WPAN.NUMBER_OF_SERVICES=1
+STM32_WPAN.SERVICE1_CHAR1_LONG_NAME=c_test
+STM32_WPAN.SERVICE1_CHAR1_SHORT_NAME=c_tst
+STM32_WPAN.SERVICE1_LONG_NAME=s_test
+STM32_WPAN.SERVICE1_SHORT_NAME=s_tst
+USART1.IPParameters=VirtualMode-Asynchronous
+USART1.VirtualMode-Asynchronous=VM_ASYNC
+VP_HSEM_VS_HSEM.Mode=HSEM_Activate
+VP_HSEM_VS_HSEM.Signal=HSEM_VS_HSEM
+VP_IPCC_VS_IPCC.Mode=IPCC_Activate
+VP_IPCC_VS_IPCC.Signal=IPCC_VS_IPCC
+VP_RCC_V_OSC32_IN.Mode=LSE-External-Clock-Source
+VP_RCC_V_OSC32_IN.Signal=RCC_V_OSC32_IN
+VP_RCC_V_OSC_IN.Mode=HSE-External-Clock-Source
+VP_RCC_V_OSC_IN.Signal=RCC_V_OSC_IN
+VP_RF_VS_RF.Mode=RF_Activate
+VP_RF_VS_RF.Signal=RF_VS_RF
+VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
+VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
+VP_SEQUENCER_VS_SEQUENCER.Mode=SEQUENCER_Enabled
+VP_SEQUENCER_VS_SEQUENCER.Signal=SEQUENCER_VS_SEQUENCER
+VP_STM32_WPAN_VS_BLE_HOST.Mode=STM32_WPAN_Enabled
+VP_STM32_WPAN_VS_BLE_HOST.Signal=STM32_WPAN_VS_BLE_HOST
+VP_SYS_VS_Systick.Mode=SysTick
+VP_SYS_VS_Systick.Signal=SYS_VS_Systick
+VP_TIM17_VS_ClockSourceINT.Mode=Enable_Timer
+VP_TIM17_VS_ClockSourceINT.Signal=TIM17_VS_ClockSourceINT
+VP_TINY_LPM_VS_TINY_LPM.Mode=TINY_LPM_Enabled
+VP_TINY_LPM_VS_TINY_LPM.Signal=TINY_LPM_VS_TINY_LPM
+board=STM32WB5MM-DK
+boardIOC=true
+ProjectManager.Example=BLE_Sensor
+ProjectManager.ExampleSource=CubeFw
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_common.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_common.h
index 3981eb9da..62e8ad603 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_common.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_common.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_common.h
- * Description : App Common application configuration file for STM32WPAN Middleware.
- *
+ ******************************************************************************
+ * @file app_common.h
+ * @author MCD Application Team
+ * @brief App Common application configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -115,5 +114,3 @@ extern "C"{
#endif
#endif /*APP_COMMON_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_conf.h
index bb3a408c3..b7702380a 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_conf.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_conf.h
- * Description : Application configuration file for STM32WPAN Middleware.
+ ******************************************************************************
+ * @file app_conf.h
+ * @author MCD Application Team
+ * @brief Application configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -42,8 +42,7 @@
* Define Advertising parameters
*/
#define CFG_ADV_BD_ADDRESS (0x7257acd87a6c)
-#define CFG_BLE_ADDRESS_TYPE RANDOM_ADDR /**< Bluetooth address types defined in ble_legacy.h */
-/*#define CFG_STATIC_RANDOM_ADDRESS (0xf257acd87a6c)*/ /**< Static Random Address fixed for lifetime of the device */
+#define CFG_BLE_ADDRESS_TYPE PUBLIC_ADDR /**< Bluetooth address types defined in ble_legacy.h */
#define CFG_FAST_CONN_ADV_INTERVAL_MIN (0x80) /**< 80ms */
#define CFG_FAST_CONN_ADV_INTERVAL_MAX (0xA0) /**< 100ms */
@@ -293,6 +292,10 @@
* - SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC
* - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RO
* - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW
+ * - SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV
+ * - SHCI_C2_BLE_INIT_OPTIONS_CS_ALGO2
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2
* - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_1
* - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3
* which are used to set following configuration bits:
@@ -302,11 +305,15 @@
* 0: with service change desc.
* (bit 2): 1: device name Read-Only
* 0: device name R/W
+ * (bit 3): 1: extended advertizing supported [NOT SUPPORTED]
+ * 0: extended advertizing not supported [NOT SUPPORTED]
+ * (bit 4): 1: CS Algo #2 supported
+ * 0: CS Algo #2 not supported
* (bit 7): 1: LE Power Class 1
* 0: LE Power Class 2-3
* other bits: reserved (shall be set to 0)
*/
-#define CFG_BLE_OPTIONS (SHCI_C2_BLE_INIT_OPTIONS_LL_HOST | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
+#define CFG_BLE_OPTIONS (SHCI_C2_BLE_INIT_OPTIONS_LL_HOST | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV | SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2 | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
#define CFG_BLE_MAX_COC_INITIATOR_NBR (32)
@@ -314,6 +321,18 @@
#define CFG_BLE_MAX_TX_POWER (0)
+/**
+ * BLE Rx model configuration flags to be configured with:
+ * - SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_LEGACY
+ * - SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_BLOCKER
+ * which are used to set following configuration bits:
+ * (bit 0): 1: agc_rssi model improved vs RF blockers
+ * 0: Legacy agc_rssi model
+ * other bits: reserved (shall be set to 0)
+ */
+
+#define CFG_BLE_RX_MODEL_CONFIG SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_LEGACY
+
/******************************************************************************
* Transport Layer
******************************************************************************/
@@ -350,7 +369,7 @@
/**
* Select UART interfaces
*/
-#define CFG_DEBUG_TRACE_UART 0
+#define CFG_DEBUG_TRACE_UART hw_uart1
#define CFG_CONSOLE_MENU 0
/******************************************************************************
* USB interface
@@ -461,8 +480,9 @@
#endif
-/** tick timer value in us */
+/** tick timer values */
#define CFG_TS_TICK_VAL DIVR( (CFG_RTCCLK_DIV * 1000000), LSE_VALUE )
+#define CFG_TS_TICK_VAL_PS DIVR( ((uint64_t)CFG_RTCCLK_DIV * 1e12), (uint64_t)LSE_VALUE )
typedef enum
{
@@ -493,12 +513,12 @@ typedef enum
/**
* When set to 1, the traces are enabled in the BLE services
*/
-#define CFG_DEBUG_BLE_TRACE 0
+#define CFG_DEBUG_BLE_TRACE 1
/**
* Enable or Disable traces in application
*/
-#define CFG_DEBUG_APP_TRACE 0
+#define CFG_DEBUG_APP_TRACE 1
#if (CFG_DEBUG_APP_TRACE != 0)
#define APP_DBG_MSG PRINT_MESG_DBG
@@ -524,7 +544,7 @@ typedef enum
* When both are set to 0, no trace are output
* When both are set to 1, CFG_DEBUG_TRACE_FULL is selected
*/
-#define CFG_DEBUG_TRACE_LIGHT 0
+#define CFG_DEBUG_TRACE_LIGHT 1
#define CFG_DEBUG_TRACE_FULL 0
#if (( CFG_DEBUG_TRACE != 0 ) && ( CFG_DEBUG_TRACE_LIGHT == 0 ) && (CFG_DEBUG_TRACE_FULL == 0))
@@ -579,11 +599,11 @@ typedef enum
CFG_TASK_CONN_UPDATE_REG_ID,
#endif
CFG_TASK_HCI_ASYNCH_EVT_ID,
-/* USER CODE BEGIN CFG_Task_Id_With_HCI_Cmd_t */
- CFG_TASK_NOTIFY_ACC_GYRO_MAG_ID,
- CFG_TASK_NOTIFY_ENVIRONMENT_ID,
- CFG_TASK_SW1_BUTTON_PUSHED_ID,
-/* USER CODE END CFG_Task_Id_With_HCI_Cmd_t */
+ /* USER CODE BEGIN CFG_Task_Id_With_HCI_Cmd_t */
+ CFG_TASK_NOTIFY_ACC_GYRO_MAG_ID,
+ CFG_TASK_NOTIFY_ENVIRONMENT_ID,
+ CFG_TASK_SW1_BUTTON_PUSHED_ID,
+ /* USER CODE END CFG_Task_Id_With_HCI_Cmd_t */
CFG_LAST_TASK_ID_WITH_HCICMD, /**< Shall be LAST in the list */
} CFG_Task_Id_With_HCI_Cmd_t;
@@ -592,11 +612,12 @@ typedef enum
{
CFG_FIRST_TASK_ID_WITH_NO_HCICMD = CFG_LAST_TASK_ID_WITH_HCICMD - 1, /**< Shall be FIRST in the list */
CFG_TASK_SYSTEM_HCI_ASYNCH_EVT_ID,
-/* USER CODE BEGIN CFG_Task_Id_With_NO_HCI_Cmd_t */
+ /* USER CODE BEGIN CFG_Task_Id_With_NO_HCI_Cmd_t */
CFG_TASK_GET_MEASURE_TOF_ID,
-/* USER CODE END CFG_Task_Id_With_NO_HCI_Cmd_t */
+ /* USER CODE END CFG_Task_Id_With_NO_HCI_Cmd_t */
CFG_LAST_TASK_ID_WITHO_NO_HCICMD /**< Shall be LAST in the list */
} CFG_Task_Id_With_NO_HCI_Cmd_t;
+
#define CFG_TASK_NBR CFG_LAST_TASK_ID_WITHO_NO_HCICMD
/**
@@ -629,9 +650,9 @@ typedef enum
{
CFG_LPM_APP,
CFG_LPM_APP_BLE,
- /* USER CODE BEGIN CFG_LPM_Id_t */
+ /* USER CODE BEGIN CFG_LPM_Id_t */
- /* USER CODE END CFG_LPM_Id_t */
+ /* USER CODE END CFG_LPM_Id_t */
} CFG_LPM_Id_t;
/******************************************************************************
@@ -642,5 +663,3 @@ typedef enum
#define CFG_OTP_END_ADRESS OTP_AREA_END_ADDR
#endif /*APP_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_debug.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_debug.h
index 9354bf8a9..9237f301f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_debug.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_debug.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_debug.h
- * Description : Header for app_debug.c module
- ******************************************************************************
+ ******************************************************************************
+ * @file app_debug.h
+ * @author MCD Application Team
+ * @brief Header for app_debug.c module
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -65,5 +65,3 @@ extern "C" {
#endif
#endif /*__APP_DEBUG_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_entry.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_entry.h
index fbf12d76c..45d5f3706 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_entry.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_entry.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_entry.h
- * Description : App entry configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ ******************************************************************************
+ * @file app_entry.h
+ * @author MCD Application Team
+ * @brief Interface to the application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -64,6 +64,9 @@ extern "C" {
void MX_APPE_Config( void );
void MX_APPE_Init( void );
void MX_APPE_Process( void );
+ void Init_Exti( void );
+ void Init_Smps( void );
+
/* USER CODE BEGIN EF */
void LED_Deinit(void);
void LED_On(aPwmLedGsData_TypeDef aPwmLedGsData);
@@ -75,5 +78,3 @@ extern "C" {
#endif
#endif /*APP_ENTRY_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_vl53l0x.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_vl53l0x.h
index a06e0a037..fa1a47fca 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_vl53l0x.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/app_vl53l0x.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -39,5 +38,3 @@ void VL53L0X_Start_Measure(void);
void VL53L0X_Stop_Measure(void);
#endif /* __APP_VL53L0X_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
-
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/hw_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/hw_conf.h
index 4f869fdfa..cc426a452 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/hw_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/hw_conf.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : hw_conf.h
- * Description : Hardware configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ ******************************************************************************
+ * @file hw_conf.h
+ * @author MCD Application Team
+ * @brief Configuration of hardware interface
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -162,9 +162,51 @@
#define CFG_HW_LPUART1_ENABLED 0
#define CFG_HW_LPUART1_DMA_TX_SUPPORTED 0
-#define CFG_HW_USART1_ENABLED 0
-#define CFG_HW_USART1_DMA_TX_SUPPORTED 0
+#define CFG_HW_USART1_ENABLED 1
+#define CFG_HW_USART1_DMA_TX_SUPPORTED 1
-#endif /*HW_CONF_H */
+/**
+ * UART1
+ */
+#define CFG_HW_USART1_PREEMPTPRIORITY 0x0F
+#define CFG_HW_USART1_SUBPRIORITY 0
+
+/** < The application shall check the selected source clock is enable */
+#define CFG_HW_USART1_SOURCE_CLOCK RCC_USART1CLKSOURCE_SYSCLK
+
+#define CFG_HW_USART1_BAUDRATE 115200
+#define CFG_HW_USART1_WORDLENGTH UART_WORDLENGTH_8B
+#define CFG_HW_USART1_STOPBITS UART_STOPBITS_1
+#define CFG_HW_USART1_PARITY UART_PARITY_NONE
+#define CFG_HW_USART1_HWFLOWCTL UART_HWCONTROL_NONE
+#define CFG_HW_USART1_MODE UART_MODE_TX_RX
+#define CFG_HW_USART1_ADVFEATUREINIT UART_ADVFEATURE_NO_INIT
+#define CFG_HW_USART1_OVERSAMPLING UART_OVERSAMPLING_8
+
+#define CFG_HW_USART1_TX_PORT_CLK_ENABLE __HAL_RCC_GPIOB_CLK_ENABLE
+#define CFG_HW_USART1_TX_PORT GPIOB
+#define CFG_HW_USART1_TX_PIN GPIO_PIN_6
+#define CFG_HW_USART1_TX_MODE GPIO_MODE_AF_PP
+#define CFG_HW_USART1_TX_PULL GPIO_NOPULL
+#define CFG_HW_USART1_TX_SPEED GPIO_SPEED_FREQ_VERY_HIGH
+#define CFG_HW_USART1_TX_ALTERNATE GPIO_AF7_USART1
+
+#define CFG_HW_USART1_RX_PORT_CLK_ENABLE __HAL_RCC_GPIOB_CLK_ENABLE
+#define CFG_HW_USART1_RX_PORT GPIOB
+#define CFG_HW_USART1_RX_PIN GPIO_PIN_7
+#define CFG_HW_USART1_RX_MODE GPIO_MODE_AF_PP
+#define CFG_HW_USART1_RX_PULL GPIO_NOPULL
+#define CFG_HW_USART1_RX_SPEED GPIO_SPEED_FREQ_VERY_HIGH
+#define CFG_HW_USART1_RX_ALTERNATE GPIO_AF7_USART1
+
+#define CFG_HW_USART1_DMA_TX_PREEMPTPRIORITY 0x0F
+#define CFG_HW_USART1_DMA_TX_SUBPRIORITY 0
+
+#define CFG_HW_USART1_DMAMUX_CLK_ENABLE __HAL_RCC_DMAMUX1_CLK_ENABLE
+#define CFG_HW_USART1_DMA_CLK_ENABLE __HAL_RCC_DMA2_CLK_ENABLE
+#define CFG_HW_USART1_TX_DMA_REQ DMA_REQUEST_USART1_TX
+#define CFG_HW_USART1_TX_DMA_CHANNEL DMA2_Channel4
+#define CFG_HW_USART1_TX_DMA_IRQn DMA2_Channel4_IRQn
+#define CFG_HW_USART1_DMA_TX_IRQHandler DMA2_Channel4_IRQHandler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
+#endif /*HW_CONF_H */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/hw_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/hw_if.h
index 92a787b69..403bf1ed7 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/hw_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/hw_if.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -150,7 +149,7 @@ extern "C" {
* @param pTimerId: Timer Id returned to the user to request operation (start, stop, delete)
* @param TimerMode: Mode of the virtual timer (Single shot or repeated)
* @param pTimerCallBack: Callback when the virtual timer expires
- * @retval HW_TS_ReturnStatus_t: Return whether the creation is sucessful or not
+ * @retval HW_TS_ReturnStatus_t: Return whether the creation is successful or not
*/
HW_TS_ReturnStatus_t HW_TS_Create(uint32_t TimerProcessID, uint8_t *pTimerId, HW_TS_Mode_t TimerMode, HW_TS_pTimerCb_t pTimerCallBack);
@@ -249,5 +248,3 @@ extern "C" {
#endif
#endif /*HW_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/main.h
index 246fca241..ab3c3a4b0 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/main.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/main.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -133,6 +132,7 @@ void Error_Handler(void);
#define TSC_G6_IO2_GPIO_Port GPIOD
#define RST_DISP_Pin GPIO_PIN_8
#define RST_DISP_GPIO_Port GPIOC
+void MX_USART1_UART_Init(void);
/* USER CODE BEGIN Private defines */
/* USER CODE END Private defines */
@@ -142,5 +142,3 @@ void Error_Handler(void);
#endif
#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/s25fl128s_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/s25fl128s_conf.h
index 32976a8d2..ea1c853e5 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/s25fl128s_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/s25fl128s_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -32,12 +31,14 @@
* @{
*/
-#define CONF_S25FL128S_READ_ENHANCE 0 /* MMP performance enhance read enable/disable */
-#define CONF_QSPI_DUMMY_CLOCK 8U
+#define CONF_S25FL128S_READ_ENHANCE 0 /* MMP performance enhance read enable/disable */
+#define CONF_QSPI_DUMMY_CLOCK 8U
/* Dummy cycles for STR read mode */
-#define S25FL128S_DUMMY_CYCLES_READ_QUAD 8U
-#define S25FL128S_DUMMY_CYCLES_READ 8U
+#define S25FL128S_DUMMY_CYCLES_READ_QUAD 8U
+#define S25FL128S_DUMMY_CYCLES_READ 8U
+#define S25FL128S_DUMMY_CYCLES_READ_DUAL_INOUT 4U
+#define S25FL128S_DUMMY_CYCLES_READ_QUAD_INOUT 6U
#ifdef __cplusplus
}
@@ -48,5 +49,3 @@
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32_lpm_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32_lpm_if.h
index e1aecd591..45c31caa5 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32_lpm_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32_lpm_if.h
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
-******************************************************************************
-* @file stm32_lpm_if.h
-* @brief Header for stm32_lpm_if.c module (device specific LP management)
-******************************************************************************
-* @attention
-*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @file stm32_lpm_if.h
+ * @author MCD Application Team
+ * @brief Header for stm32_lpm_if.c module (device specific LP management)
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -77,5 +77,3 @@ void PWR_ExitSleepMode( void );
#endif
#endif /*__STM32_LPM_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wb5mm_dk_conf.h
index a275b2e37..9d250ab07 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wb5mm_dk_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wb5mm_dk_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -92,5 +91,3 @@ extern "C" {
#endif
#endif /* STM32WB5MM_DK_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wbxx_hal_conf.h
index 8d5b6ec74..0de7f34ea 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wbxx_hal_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wbxx_hal_conf.h
@@ -1,3 +1,4 @@
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32wbxx_hal_conf.h
@@ -6,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32WBxx_HAL_CONF_H
@@ -46,10 +47,10 @@
/*#define HAL_LPTIM_MODULE_ENABLED */
/*#define HAL_PCD_MODULE_ENABLED */
/*#define HAL_PKA_MODULE_ENABLED */
-#define HAL_QSPI_MODULE_ENABLED
+/*#define HAL_QSPI_MODULE_ENABLED */
/*#define HAL_RNG_MODULE_ENABLED */
#define HAL_RTC_MODULE_ENABLED
-#define HAL_SAI_MODULE_ENABLED
+/*#define HAL_SAI_MODULE_ENABLED */
/*#define HAL_SMBUS_MODULE_ENABLED */
/*#define HAL_SMARTCARD_MODULE_ENABLED */
#define HAL_SPI_MODULE_ENABLED
@@ -349,5 +350,3 @@
#endif
#endif /* __STM32WBxx_HAL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wbxx_it.h
index 7e4b463cc..8f1edd8c4 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wbxx_it.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/stm32wbxx_it.h
@@ -6,15 +6,14 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
+ ******************************************************************************
*/
/* USER CODE END Header */
@@ -56,7 +55,9 @@ void SVC_Handler(void);
void DebugMon_Handler(void);
void PendSV_Handler(void);
void SysTick_Handler(void);
+void USART1_IRQHandler(void);
void HSEM_IRQHandler(void);
+void DMA2_Channel4_IRQHandler(void);
/* USER CODE BEGIN EFP */
void IPCC_C1_RX_IRQHandler(void);
void IPCC_C1_TX_IRQHandler(void);
@@ -70,5 +71,3 @@ void PUSH_BUTTON_SW_EXTI_IRQHandler(void);
#endif
#endif /* __STM32WBxx_IT_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/utilities_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/utilities_conf.h
index 4edfbbacf..c34a6ca79 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/utilities_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Inc/utilities_conf.h
@@ -1,21 +1,20 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : utilities_conf.h
- * Description : Configuration file for STM32 Utilities.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file utilities_conf.h
+ * @author MCD Application Team
+ * @brief Configuration file for STM32 Utilities.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- *****************************************************************************
+ ******************************************************************************
*/
/* USER CODE END Header */
@@ -64,5 +63,3 @@ extern "C" {
#endif
#endif /*UTILITIES_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_debug.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_debug.c
index bcd949c20..a9d1bfeab 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_debug.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_debug.c
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_debug.c
- * Description : Debug capabilities source file for STM32WPAN Middleware
- ******************************************************************************
+ ******************************************************************************
+ * @file app_debug.c
+ * @author MCD Application Team
+ * @brief Debug capabilities source file for STM32WPAN Middleware
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -43,7 +43,7 @@ typedef PACKED_STRUCT
/* Private defines -----------------------------------------------------------*/
/* USER CODE BEGIN PD */
#define GPIO_NBR_OF_RF_SIGNALS 9
-#define GPIO_CFG_NBR_OF_FEATURES 34
+#define GPIO_CFG_NBR_OF_FEATURES 38
#define NBR_OF_TRACES_CONFIG_PARAMETERS 4
#define NBR_OF_GENERAL_CONFIG_PARAMETERS 4
@@ -130,8 +130,16 @@ static const APPD_GpioConfig_t aGpioConfigList[GPIO_CFG_NBR_OF_FEATURES] =
/* From v1.4.0 */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* NVMA_START - Set on Entry / Reset on Exit */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_EOP - Set on Entry / Reset on Exit */
+/* From v1.5.0 */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_WRITE - Set on Entry / Reset on Exit */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_ERASE - Set on Entry / Reset on Exit */
+/* From v1.6.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_RESCHEDULE_EVENT - Set on Entry / Reset on Exit */
+/* From v1.8.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_LLD_CMD_RX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_LLD_ACK_TX - Set on Entry / Reset on Exit */
+/* From v1.9.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_ASYNCH_EVENT_NACKED - Set on Entry / Reset on Exit */
};
/**
@@ -171,7 +179,11 @@ static void APPD_BleDtbCfg( void );
void APPD_Init( void )
{
/* USER CODE BEGIN APPD_Init */
+#if (CFG_DEBUG_TRACE == 1)
+ debug_trace_enabled = 1;
+#else
debug_trace_enabled = 0;
+#endif
#if (CFG_DEBUGGER_SUPPORTED == 1)
/**
@@ -412,5 +424,3 @@ void DbgOutputTraces( uint8_t *p_data, uint16_t size, void (*cb)(void) )
return;
}
#endif
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_entry.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_entry.c
index 847036f2f..9c1b10c47 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_entry.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_entry.c
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_entry.c
- * Description : Entry application source file for STM32WPAN Middleware
- ******************************************************************************
+ ******************************************************************************
+ * @file app_entry.c
+ * @author MCD Application Team
+ * @brief Entry point of the Application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -29,6 +29,8 @@
#include "shci_tl.h"
#include "stm32_lpm.h"
#include "app_debug.h"
+#include "dbg_trace.h"
+#include "shci.h"
#include "otp.h"
/* Private includes -----------------------------------------------------------*/
@@ -66,16 +68,18 @@ PLACE_IN_SECTION("MB_MEM2") ALIGN(4) static uint8_t BleSpareEvtBuffer[sizeof(TL_
/* Private functions prototypes-----------------------------------------------*/
static void Config_HSE(void);
static void Reset_Device( void );
+#if ( CFG_HW_RESET_BY_FW == 1 )
static void Reset_IPCC( void );
static void Reset_BackupDomain( void );
+#endif /* CFG_HW_RESET_BY_FW */
static void System_Init( void );
static void SystemPower_Config( void );
static void appe_Tl_Init( void );
static void APPE_SysStatusNot( SHCI_TL_CmdStatus_t status );
static void APPE_SysUserEvtRx( void * pPayload );
-static void Init_Exti( void );
+static void APPE_SysEvtReadyProcessing( void * pPayload );
+static void APPE_SysEvtError( void * pPayload);
static void Init_Rtc( void );
-static void Init_Smps( void );
/* USER CODE BEGIN PFP */
static void Button_Init( void );
@@ -153,6 +157,33 @@ void MX_APPE_Init( void )
/* USER CODE END APPE_Init_2 */
return;
}
+
+void Init_Smps( void )
+{
+#if (CFG_USE_SMPS != 0)
+ /**
+ * Configure and enable SMPS
+ *
+ * The SMPS configuration is not yet supported by CubeMx
+ * when SMPS output voltage is set to 1.4V, the RF output power is limited to 3.7dBm
+ * the SMPS output voltage shall be increased for higher RF output power
+ */
+ LL_PWR_SMPS_SetStartupCurrent(LL_PWR_SMPS_STARTUP_CURRENT_80MA);
+ LL_PWR_SMPS_SetOutputVoltageLevel(LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
+ LL_PWR_SMPS_Enable();
+#endif
+
+ return;
+}
+
+void Init_Exti( void )
+{
+ /* Enable IPCC(36), HSEM(38) wakeup interrupts on CPU1 */
+ LL_EXTI_EnableIT_32_63( LL_EXTI_LINE_36 & LL_EXTI_LINE_38 );
+
+ return;
+}
+
/* USER CODE BEGIN FD */
void LED_Deinit(void)
@@ -198,11 +229,12 @@ static void Reset_Device( void )
Reset_BackupDomain();
Reset_IPCC();
-#endif
+#endif /* CFG_HW_RESET_BY_FW */
return;
}
+#if ( CFG_HW_RESET_BY_FW == 1 )
static void Reset_BackupDomain( void )
{
if ((LL_RCC_IsActiveFlag_PINRST() != FALSE) && (LL_RCC_IsActiveFlag_SFTRST() == FALSE))
@@ -258,6 +290,7 @@ static void Reset_IPCC( void )
return;
}
+#endif /* CFG_HW_RESET_BY_FW */
static void Config_HSE(void)
{
@@ -286,33 +319,6 @@ static void System_Init( void )
return;
}
-static void Init_Smps( void )
-{
-#if (CFG_USE_SMPS != 0)
- /**
- * Configure and enable SMPS
- *
- * The SMPS configuration is not yet supported by CubeMx
- * when SMPS output voltage is set to 1.4V, the RF output power is limited to 3.7dBm
- * the SMPS output voltage shall be increased for higher RF output power
- */
- LL_PWR_SMPS_SetStartupCurrent(LL_PWR_SMPS_STARTUP_CURRENT_80MA);
- LL_PWR_SMPS_SetOutputVoltageLevel(LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
- LL_PWR_SMPS_Enable();
-#endif
-
- return;
-}
-
-static void Init_Exti( void )
-{
- /**< Disable all wakeup interrupt on CPU1 except IPCC(36), HSEM(38) */
- LL_EXTI_DisableIT_0_31(~0);
- LL_EXTI_DisableIT_32_63( (~0) & (~(LL_EXTI_LINE_36 | LL_EXTI_LINE_38)) );
-
- return;
-}
-
static void Init_Rtc( void )
{
/* Disable RTC registers write protection */
@@ -325,6 +331,7 @@ static void Init_Rtc( void )
return;
}
+
/**
* @brief Configure the system for power optimization
*
@@ -397,12 +404,151 @@ static void APPE_SysStatusNot( SHCI_TL_CmdStatus_t status )
*/
static void APPE_SysUserEvtRx( void * pPayload )
{
- UNUSED(pPayload);
- /* Traces channel initialization */
- APPD_EnableCPU2( );
+ TL_AsynchEvt_t *p_sys_event;
+ WirelessFwInfo_t WirelessInfo;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+
+ /* Read the firmware version of both the wireless firmware and the FUS */
+ SHCI_GetWirelessFwInfo( &WirelessInfo );
+ APP_DBG_MSG("Wireless Firmware version %d.%d.%d\n", WirelessInfo.VersionMajor, WirelessInfo.VersionMinor, WirelessInfo.VersionSub);
+ APP_DBG_MSG("Wireless Firmware build %d\n", WirelessInfo.VersionReleaseType);
+ APP_DBG_MSG("FUS version %d.%d.%d\n\n", WirelessInfo.FusVersionMajor, WirelessInfo.FusVersionMinor, WirelessInfo.FusVersionSub);
+
+ switch(p_sys_event->subevtcode)
+ {
+ case SHCI_SUB_EVT_CODE_READY:
+ APPE_SysEvtReadyProcessing(pPayload);
+ break;
+
+ case SHCI_SUB_EVT_ERROR_NOTIF:
+ APPE_SysEvtError(pPayload);
+ break;
+
+ case SHCI_SUB_EVT_BLE_NVM_RAM_UPDATE:
+ APP_DBG_MSG("-- BLE NVM RAM HAS BEEN UPDATED BY CMO+ \n");
+ APP_DBG_MSG("SHCI_SUB_EVT_BLE_NVM_RAM_UPDATE : StartAddress = %lx , Size = %ld\n",
+ ((SHCI_C2_BleNvmRamUpdate_Evt_t*)p_sys_event->payload)->StartAddress,
+ ((SHCI_C2_BleNvmRamUpdate_Evt_t*)p_sys_event->payload)->Size);
+ break;
+
+ case SHCI_SUB_EVT_NVM_START_WRITE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_START_WRITE : NumberOfWords = %ld\n",
+ ((SHCI_C2_NvmStartWrite_Evt_t*)p_sys_event->payload)->NumberOfWords);
+ break;
+
+ case SHCI_SUB_EVT_NVM_END_WRITE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_END_WRITE\n");
+ break;
+
+ case SHCI_SUB_EVT_NVM_START_ERASE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_START_ERASE : NumberOfSectors = %ld\n",
+ ((SHCI_C2_NvmStartErase_Evt_t*)p_sys_event->payload)->NumberOfSectors);
+ break;
+
+ case SHCI_SUB_EVT_NVM_END_ERASE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_END_ERASE\n");
+ break;
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+/**
+ * @brief Notify a system error coming from the M0 firmware
+ * @param ErrorCode : errorCode detected by the M0 firmware
+ *
+ * @retval None
+ */
+static void APPE_SysEvtError( void * pPayload)
+{
+ TL_AsynchEvt_t *p_sys_event;
+ SCHI_SystemErrCode_t *p_sys_error_code;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+ p_sys_error_code = (SCHI_SystemErrCode_t*) p_sys_event->payload;
+
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON %x \n",(*p_sys_error_code));
+
+ if ((*p_sys_error_code) == ERR_BLE_INIT)
+ {
+ /* Error during BLE stack initialization */
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON - ERR_BLE_INIT \n");
+ }
+ else
+ {
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON - BLE ERROR \n");
+ }
+ return;
+}
+
+static void APPE_SysEvtReadyProcessing( void * pPayload )
+{
+ TL_AsynchEvt_t *p_sys_event;
+ SHCI_C2_Ready_Evt_t *p_sys_ready_event;
+
+ SHCI_C2_CONFIG_Cmd_Param_t config_param = {0};
+ uint32_t RevisionID=0;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+ p_sys_ready_event = (SHCI_C2_Ready_Evt_t*) p_sys_event->payload;
+
+ if(p_sys_ready_event->sysevt_ready_rsp == WIRELESS_FW_RUNNING)
+ {
+ /**
+ * The wireless firmware is running on the CPU2
+ */
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - WIRELESS_FW_RUNNING \n");
+
+ /* Traces channel initialization */
+ APPD_EnableCPU2( );
+
+ /* Enable all events Notification */
+ config_param.PayloadCmdSize = SHCI_C2_CONFIG_PAYLOAD_CMD_SIZE;
+ config_param.EvtMask1 = SHCI_C2_CONFIG_EVTMASK1_BIT0_ERROR_NOTIF_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT1_BLE_NVM_RAM_UPDATE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT2_THREAD_NVM_RAM_UPDATE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT3_NVM_START_WRITE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT4_NVM_END_WRITE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT5_NVM_START_ERASE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT6_NVM_END_ERASE_ENABLE;
+
+ /* Read revision identifier */
+ /**
+ * @brief Return the device revision identifier
+ * @note This field indicates the revision of the device.
+ * @rmtoll DBGMCU_IDCODE REV_ID LL_DBGMCU_GetRevisionID
+ * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF
+ */
+ RevisionID = LL_DBGMCU_GetRevisionID();
+
+ APP_DBG_MSG("DBGMCU_GetRevisionID= %lx \n\n", RevisionID);
+
+ config_param.RevisionID = RevisionID;
+ (void)SHCI_C2_Config(&config_param);
+
+ APP_BLE_Init( );
+ UTIL_LPM_SetOffMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE);
+ }
+ else if (p_sys_ready_event->sysevt_ready_rsp == FUS_FW_RUNNING)
+ {
+ /**
+ * The FUS firmware is running on the CPU2
+ * In the scope of this application, there should be no case when we get here
+ */
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - FUS_FW_RUNNING \n");
+
+ /* The packet shall not be released as this is not supported by the FUS */
+ ((tSHCI_UserEvtRxParam*)pPayload)->status = SHCI_TL_UserEventFlow_Disable;
+ }
+ else
+ {
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - UNEXPECTED CASE \n");
+ }
- APP_BLE_Init( );
- UTIL_LPM_SetOffMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE);
return;
}
@@ -486,6 +632,8 @@ void UTIL_SEQ_Idle( void )
void UTIL_SEQ_EvtIdle( UTIL_SEQ_bm_t task_id_bm, UTIL_SEQ_bm_t evt_waited_bm )
{
UTIL_SEQ_Run( UTIL_SEQ_DEFAULT );
+
+ return;
}
void shci_notify_asynch_evt(void* pdata)
@@ -523,4 +671,3 @@ void HAL_GPIO_EXTI_Callback( uint16_t GPIO_Pin )
}
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_vl53l0x.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_vl53l0x.c
index ec2b10a7a..aa2d759c8 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_vl53l0x.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/app_vl53l0x.c
@@ -1,22 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* @file app_vl53l0x.c
* @author MCD Application Team
* @brief Proximity Application
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -32,10 +31,6 @@
#define DISTANCE_MAX_PROXIMITY 2000 /* 2m */
#define PROXIMITY_I2C_ADDRESS 0x53U
-#define VL53L0X_XSHUT_PIN GPIO_PIN_6
-#define VL53L0X_XSHUT_GPIO_PORT GPIOB
-#define VL53L0X_XSHUT_GPIO_CLK_ENABLE() __HAL_RCC_GPIOB_CLK_ENABLE()
-#define VL53L0X_XSHUT_GPIO_CLK_DISABLE() __HAL_RCC_GPIOB_CLK_DISABLE()
/* Private variables ---------------------------------------------------------*/
@@ -50,7 +45,6 @@ uint8_t VL53L0X_PROXIMITY_Update_Timer_Id;
/* Private function prototypes -----------------------------------------------*/
static void VL53L0X_PROXIMITY_Update_Timer_Callback(void);
-static void VL53L0X_PROXIMITY_MspInit(void);
/**
* @brief VL53L0X proximity sensor Initialization.
@@ -62,7 +56,6 @@ void VL53L0X_PROXIMITY_Init(void)
/* Initialize IO interface */
STM32WB5MM_DK_I2C_Init();
- VL53L0X_PROXIMITY_MspInit();
memset(&VL53L0X_DeviceInfo, 0, sizeof(VL53L0X_DeviceInfo_t));
@@ -159,24 +152,3 @@ void VL53L0X_PROXIMITY_PrintValue(void){
BSP_LCD_Refresh(0);
}
-/**
- * @brief VL53L0X proximity sensor Msp Initialization.
- */
-static void VL53L0X_PROXIMITY_MspInit(void)
-{
- GPIO_InitTypeDef gpio_config = {0};
-
- VL53L0X_XSHUT_GPIO_CLK_ENABLE();
-
- /* Configure GPIO pin : VL53L0X_XSHUT_PIN */
- gpio_config.Pin = VL53L0X_XSHUT_PIN;
- gpio_config.Mode = GPIO_MODE_OUTPUT_PP;
- gpio_config.Pull = GPIO_PULLUP;
- gpio_config.Speed = GPIO_SPEED_FREQ_HIGH;
- HAL_GPIO_Init(VL53L0X_XSHUT_GPIO_PORT, &gpio_config);
-
- HAL_GPIO_WritePin(VL53L0X_XSHUT_GPIO_PORT, VL53L0X_XSHUT_PIN, GPIO_PIN_SET);
-
- HAL_Delay(1000);
-}
-
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/hw_timerserver.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/hw_timerserver.c
index c0af6a14a..23a5bcdc6 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/hw_timerserver.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/hw_timerserver.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : hw_timerserver.c
- * Description : Hardware timerserver source file for STM32WPAN Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file hw_timerserver.c
+ * @author MCD Application Team
+ * @brief Hardware timerserver source file for STM32WPAN Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -891,5 +890,3 @@ __weak void HW_TS_RTC_Int_AppNot(uint32_t TimerProcessID, uint8_t TimerID, HW_TS
return;
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/hw_uart.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/hw_uart.c
new file mode 100644
index 000000000..f40ac113e
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/hw_uart.c
@@ -0,0 +1,317 @@
+/* USER CODE BEGIN Header */
+/**
+ ******************************************************************************
+ * @file Src/hw_uart.c
+ * @author MCD Application Team
+ * @brief HW UART source file for STM32WPAN Middleware.
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
+/* USER CODE END Header */
+
+/* Includes ------------------------------------------------------------------*/
+#include "app_common.h"
+#include "hw_conf.h"
+#if (CFG_HW_LPUART1_ENABLED == 1)
+extern UART_HandleTypeDef hlpuart1;
+#endif
+#if (CFG_HW_USART1_ENABLED == 1)
+extern UART_HandleTypeDef huart1;
+#endif
+
+/* Macros --------------------------------------------------------------------*/
+#define HW_UART_RX_IT(__HANDLE__, __USART_BASE__) \
+ do{ \
+ HW_##__HANDLE__##RxCb = cb; \
+ (__HANDLE__).Instance = (__USART_BASE__); \
+ HAL_UART_Receive_IT(&(__HANDLE__), p_data, size); \
+ } while(0)
+
+#define HW_UART_TX_IT(__HANDLE__, __USART_BASE__) \
+ do{ \
+ HW_##__HANDLE__##TxCb = cb; \
+ (__HANDLE__).Instance = (__USART_BASE__); \
+ HAL_UART_Transmit_IT(&(__HANDLE__), p_data, size); \
+ } while(0)
+
+#define HW_UART_TX(__HANDLE__, __USART_BASE__) \
+ do{ \
+ (__HANDLE__).Instance = (__USART_BASE__); \
+ hal_status = HAL_UART_Transmit(&(__HANDLE__), p_data, size, timeout); \
+ } while(0)
+
+/* Variables -----------------------------------------------------------------*/
+#if (CFG_HW_USART1_ENABLED == 1)
+#if (CFG_HW_USART1_DMA_TX_SUPPORTED == 1)
+ DMA_HandleTypeDef HW_hdma_huart1_tx ={0};
+#endif
+ void (*HW_huart1RxCb)(void);
+ void (*HW_huart1TxCb)(void);
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+#if (CFG_HW_LPUART1_DMA_TX_SUPPORTED == 1)
+ DMA_HandleTypeDef HW_hdma_hlpuart1_tx ={0};
+#endif
+ void (*HW_hlpuart1RxCb)(void);
+ void (*HW_hlpuart1TxCb)(void);
+#endif
+
+void HW_UART_Receive_IT(hw_uart_id_t hw_uart_id, uint8_t *p_data, uint16_t size, void (*cb)(void))
+{
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case hw_uart1:
+ HW_UART_RX_IT(huart1, USART1);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case hw_lpuart1:
+ HW_UART_RX_IT(hlpuart1, LPUART1);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+void HW_UART_Transmit_IT(hw_uart_id_t hw_uart_id, uint8_t *p_data, uint16_t size, void (*cb)(void))
+{
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case hw_uart1:
+ HW_UART_TX_IT(huart1, USART1);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case hw_lpuart1:
+ HW_UART_TX_IT(hlpuart1, LPUART1);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+hw_status_t HW_UART_Transmit(hw_uart_id_t hw_uart_id, uint8_t *p_data, uint16_t size, uint32_t timeout)
+{
+ HAL_StatusTypeDef hal_status = HAL_OK;
+ hw_status_t hw_status = hw_uart_ok;
+
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case hw_uart1:
+ HW_UART_TX(huart1, USART1);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case hw_lpuart1:
+ HW_UART_TX(hlpuart1, LPUART1);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ switch (hal_status)
+ {
+ case HAL_OK:
+ hw_status = hw_uart_ok;
+ break;
+
+ case HAL_ERROR:
+ hw_status = hw_uart_error;
+ break;
+
+ case HAL_BUSY:
+ hw_status = hw_uart_busy;
+ break;
+
+ case HAL_TIMEOUT:
+ hw_status = hw_uart_to;
+ break;
+
+ default:
+ break;
+ }
+
+ return hw_status;
+}
+
+hw_status_t HW_UART_Transmit_DMA(hw_uart_id_t hw_uart_id, uint8_t *p_data, uint16_t size, void (*cb)(void))
+{
+ HAL_StatusTypeDef hal_status = HAL_OK;
+ hw_status_t hw_status = hw_uart_ok;
+
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case hw_uart1:
+ HW_huart1TxCb = cb;
+ huart1.Instance = USART1;
+ hal_status = HAL_UART_Transmit_DMA(&huart1, p_data, size);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case hw_lpuart1:
+ HW_hlpuart1TxCb = cb;
+ hlpuart1.Instance = LPUART1;
+ hal_status = HAL_UART_Transmit_DMA(&hlpuart1, p_data, size);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ switch (hal_status)
+ {
+ case HAL_OK:
+ hw_status = hw_uart_ok;
+ break;
+
+ case HAL_ERROR:
+ hw_status = hw_uart_error;
+ break;
+
+ case HAL_BUSY:
+ hw_status = hw_uart_busy;
+ break;
+
+ case HAL_TIMEOUT:
+ hw_status = hw_uart_to;
+ break;
+
+ default:
+ break;
+ }
+
+ return hw_status;
+}
+
+void HW_UART_Interrupt_Handler(hw_uart_id_t hw_uart_id)
+{
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case hw_uart1:
+ HAL_UART_IRQHandler(&huart1);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case hw_lpuart1:
+ HAL_UART_IRQHandler(&hlpuart1);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+void HW_UART_DMA_Interrupt_Handler(hw_uart_id_t hw_uart_id)
+{
+ switch (hw_uart_id)
+ {
+#if (CFG_HW_USART1_DMA_TX_SUPPORTED == 1)
+ case hw_uart1:
+ HAL_DMA_IRQHandler(huart1.hdmatx);
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_DMA_TX_SUPPORTED == 1)
+ case hw_lpuart1:
+ HAL_DMA_IRQHandler(hlpuart1.hdmatx);
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
+{
+ switch ((uint32_t)huart->Instance)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case (uint32_t)USART1:
+ if(HW_huart1RxCb)
+ {
+ HW_huart1RxCb();
+ }
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case (uint32_t)LPUART1:
+ if(HW_hlpuart1RxCb)
+ {
+ HW_hlpuart1RxCb();
+ }
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
+{
+ switch ((uint32_t)huart->Instance)
+ {
+#if (CFG_HW_USART1_ENABLED == 1)
+ case (uint32_t)USART1:
+ if(HW_huart1TxCb)
+ {
+ HW_huart1TxCb();
+ }
+ break;
+#endif
+
+#if (CFG_HW_LPUART1_ENABLED == 1)
+ case (uint32_t)LPUART1:
+ if(HW_hlpuart1TxCb)
+ {
+ HW_hlpuart1TxCb();
+ }
+ break;
+#endif
+
+ default:
+ break;
+ }
+
+ return;
+}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/main.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/main.c
index 58fb1e5b4..f98b907a4 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/main.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/main.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -24,6 +23,8 @@
/* USER CODE BEGIN Includes */
#include "stm32_lpm.h"
#include "stm32_seq.h"
+#include "dbg_trace.h"
+#include "hw_conf.h"
#include "otp.h"
/* USER CODE END Includes */
@@ -46,13 +47,18 @@ IPCC_HandleTypeDef hipcc;
RTC_HandleTypeDef hrtc;
+UART_HandleTypeDef huart1;
+DMA_HandleTypeDef hdma_usart1_tx;
+
/* USER CODE BEGIN PV */
/* USER CODE END PV */
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
+void PeriphCommonClock_Config(void);
static void MX_GPIO_Init(void);
+static void MX_DMA_Init(void);
static void MX_RF_Init(void);
static void MX_RTC_Init(void);
static void MX_IPCC_Init(void);
@@ -73,8 +79,6 @@ int main(void)
{
/* USER CODE BEGIN 1 */
-
-
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
@@ -91,6 +95,9 @@ int main(void)
/* Configure the system clock */
SystemClock_Config();
+/* Configure the peripherals common clocks */
+ PeriphCommonClock_Config();
+
/* IPCC initialisation */
MX_IPCC_Init();
@@ -99,10 +106,11 @@ int main(void)
/* Initialize all configured peripherals */
MX_GPIO_Init();
+ MX_DMA_Init();
MX_RF_Init();
MX_RTC_Init();
/* USER CODE BEGIN 2 */
-
+
/* USER CODE END 2 */
/* Init code for STM32_WPAN */
@@ -127,7 +135,6 @@ void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
- RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
/** Configure LSE Drive Capability
*/
@@ -172,17 +179,23 @@ void SystemClock_Config(void)
{
Error_Handler();
}
- /** Initializes the peripherals clocks
+}
+
+/**
+ * @brief Peripherals Common Clock Configuration
+ * @retval None
+ */
+void PeriphCommonClock_Config(void)
+{
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+
+ /** Initializes the peripherals clock
*/
- PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS|RCC_PERIPHCLK_RFWAKEUP
- |RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_USART1
- |RCC_PERIPHCLK_I2C3;
- PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
- PeriphClkInitStruct.I2c3ClockSelection = RCC_I2C3CLKSOURCE_PCLK1;
- PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS|RCC_PERIPHCLK_RFWAKEUP;
PeriphClkInitStruct.RFWakeUpClockSelection = RCC_RFWKPCLKSOURCE_LSE;
PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSI;
PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE1;
+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
@@ -288,6 +301,71 @@ static void MX_RTC_Init(void)
}
/**
+ * @brief USART1 Initialization Function
+ * @param None
+ * @retval None
+ */
+void MX_USART1_UART_Init(void)
+{
+
+ /* USER CODE BEGIN USART1_Init 0 */
+
+ /* USER CODE END USART1_Init 0 */
+
+ /* USER CODE BEGIN USART1_Init 1 */
+
+ /* USER CODE END USART1_Init 1 */
+ huart1.Instance = USART1;
+ huart1.Init.BaudRate = 115200;
+ huart1.Init.WordLength = UART_WORDLENGTH_8B;
+ huart1.Init.StopBits = UART_STOPBITS_1;
+ huart1.Init.Parity = UART_PARITY_NONE;
+ huart1.Init.Mode = UART_MODE_TX_RX;
+ huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
+ huart1.Init.OverSampling = UART_OVERSAMPLING_8;
+ huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
+ huart1.Init.ClockPrescaler = UART_PRESCALER_DIV1;
+ huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
+ if (HAL_UART_Init(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_UARTEx_SetTxFifoThreshold(&huart1, UART_TXFIFO_THRESHOLD_1_8) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_UARTEx_SetRxFifoThreshold(&huart1, UART_RXFIFO_THRESHOLD_1_8) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ if (HAL_UARTEx_DisableFifoMode(&huart1) != HAL_OK)
+ {
+ Error_Handler();
+ }
+ /* USER CODE BEGIN USART1_Init 2 */
+
+ /* USER CODE END USART1_Init 2 */
+
+}
+
+/**
+ * Enable DMA controller clock
+ */
+static void MX_DMA_Init(void)
+{
+
+ /* DMA controller clock enable */
+ __HAL_RCC_DMAMUX1_CLK_ENABLE();
+ __HAL_RCC_DMA2_CLK_ENABLE();
+
+ /* DMA interrupt init */
+ /* DMA2_Channel4_IRQn interrupt configuration */
+ HAL_NVIC_SetPriority(DMA2_Channel4_IRQn, 15, 0);
+ HAL_NVIC_EnableIRQ(DMA2_Channel4_IRQn);
+
+}
+
+/**
* @brief GPIO Initialization Function
* @param None
* @retval None
@@ -334,6 +412,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+ /*Configure GPIO pin : QSPI_BK_IO0_Pin */
+ GPIO_InitStruct.Pin = QSPI_BK_IO0_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+ HAL_GPIO_Init(QSPI_BK_IO0_GPIO_Port, &GPIO_InitStruct);
+
/*Configure GPIO pin : LPUART1_RX_MCU_Pin */
GPIO_InitStruct.Pin = LPUART1_RX_MCU_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -342,6 +428,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
HAL_GPIO_Init(LPUART1_RX_MCU_GPIO_Port, &GPIO_InitStruct);
+ /*Configure GPIO pin : PB8 */
+ GPIO_InitStruct.Pin = GPIO_PIN_8;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
+ HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
/*Configure GPIO pins : LPUART1_TX_MCU_Pin PB12 */
GPIO_InitStruct.Pin = LPUART1_TX_MCU_Pin|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -358,6 +452,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ /*Configure GPIO pin : PA10 */
+ GPIO_InitStruct.Pin = GPIO_PIN_10;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
/*Configure GPIO pins : USB_P_Pin USB_N_Pin */
GPIO_InitStruct.Pin = USB_P_Pin|USB_N_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -426,6 +528,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ /*Configure GPIO pin : QSPI_BK_SCK_Pin */
+ GPIO_InitStruct.Pin = QSPI_BK_SCK_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+ HAL_GPIO_Init(QSPI_BK_SCK_GPIO_Port, &GPIO_InitStruct);
+
/*Configure GPIO pins : CS_DISP_Pin GPIO_SELECT2_Pin */
GPIO_InitStruct.Pin = CS_DISP_Pin|GPIO_SELECT2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
@@ -460,6 +570,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+ /*Configure GPIO pins : QSPI_BK_NCS_Pin QSPI_BK_IO1_Pin QSPI_BK_IO2_Pin */
+ GPIO_InitStruct.Pin = QSPI_BK_NCS_Pin|QSPI_BK_IO1_Pin|QSPI_BK_IO2_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
/*Configure GPIO pin : PE3 */
GPIO_InitStruct.Pin = GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
@@ -535,5 +653,3 @@ void assert_failed(uint8_t *file, uint32_t line)
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32_lpm_if.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32_lpm_if.c
index fba978d88..8018ad626 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32_lpm_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32_lpm_if.c
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ***************************************************************************************
- * File Name : stm32_lpm_if.c
- * Description : Low layer function to enter/exit low power modes (stop, sleep).
- ***************************************************************************************
+ ******************************************************************************
+ * @file stm32_lpm_if.c
+ * @author MCD Application Team
+ * @brief Low layer function to enter/exit low power modes (stop, sleep).
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -277,19 +277,11 @@ static void EnterLowPower( void )
/* Release ENTRY_STOP_MODE semaphore */
LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
}
else
{
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
@@ -355,5 +347,3 @@ static void Switch_On_HSI( void )
/* USER CODE END Private_Functions */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
-
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32wbxx_hal_msp.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32wbxx_hal_msp.c
index 31d46f6d5..eadbabe53 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32wbxx_hal_msp.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32wbxx_hal_msp.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -24,6 +23,7 @@
/* USER CODE BEGIN Includes */
/* USER CODE END Includes */
+extern DMA_HandleTypeDef hdma_usart1_tx;
/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN TD */
@@ -67,6 +67,8 @@ void HAL_MspInit(void)
/* USER CODE END MspInit 0 */
+ __HAL_RCC_HSEM_CLK_ENABLE();
+
/* System interrupt init*/
/* Peripheral interrupt init */
@@ -131,11 +133,21 @@ void HAL_IPCC_MspDeInit(IPCC_HandleTypeDef* hipcc)
*/
void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
{
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
if(hrtc->Instance==RTC)
{
/* USER CODE BEGIN RTC_MspInit 0 */
/* USER CODE END RTC_MspInit 0 */
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
+ PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
/* Peripheral clock enable */
__HAL_RCC_RTC_ENABLE();
__HAL_RCC_RTCAPB_CLK_ENABLE();
@@ -169,8 +181,107 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
}
+/**
+* @brief UART MSP Initialization
+* This function configures the hardware resources used in this example
+* @param huart: UART handle pointer
+* @retval None
+*/
+void HAL_UART_MspInit(UART_HandleTypeDef* huart)
+{
+ GPIO_InitTypeDef GPIO_InitStruct = {0};
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+ if(huart->Instance==USART1)
+ {
+ /* USER CODE BEGIN USART1_MspInit 0 */
+
+ /* USER CODE END USART1_MspInit 0 */
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART1;
+ PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ /* Peripheral clock enable */
+ __HAL_RCC_USART1_CLK_ENABLE();
+
+ __HAL_RCC_GPIOB_CLK_ENABLE();
+ /**USART1 GPIO Configuration
+ PB7 ------> USART1_RX
+ PB6 ------> USART1_TX
+ */
+ GPIO_InitStruct.Pin = VCP_RX_Pin|VCP_TX_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_PULLUP;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;
+ GPIO_InitStruct.Alternate = GPIO_AF7_USART1;
+ HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
+ /* USART1 DMA Init */
+ /* USART1_TX Init */
+ hdma_usart1_tx.Instance = DMA2_Channel4;
+ hdma_usart1_tx.Init.Request = DMA_REQUEST_USART1_TX;
+ hdma_usart1_tx.Init.Direction = DMA_MEMORY_TO_PERIPH;
+ hdma_usart1_tx.Init.PeriphInc = DMA_PINC_DISABLE;
+ hdma_usart1_tx.Init.MemInc = DMA_MINC_ENABLE;
+ hdma_usart1_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;
+ hdma_usart1_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;
+ hdma_usart1_tx.Init.Mode = DMA_NORMAL;
+ hdma_usart1_tx.Init.Priority = DMA_PRIORITY_LOW;
+ if (HAL_DMA_Init(&hdma_usart1_tx) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
+ __HAL_LINKDMA(huart,hdmatx,hdma_usart1_tx);
+
+ /* USART1 interrupt Init */
+ HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
+ HAL_NVIC_EnableIRQ(USART1_IRQn);
+ /* USER CODE BEGIN USART1_MspInit 1 */
+
+ /* USER CODE END USART1_MspInit 1 */
+ }
+
+}
+
+/**
+* @brief UART MSP De-Initialization
+* This function freeze the hardware resources used in this example
+* @param huart: UART handle pointer
+* @retval None
+*/
+void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
+{
+ if(huart->Instance==USART1)
+ {
+ /* USER CODE BEGIN USART1_MspDeInit 0 */
+
+ /* USER CODE END USART1_MspDeInit 0 */
+ /* Peripheral clock disable */
+ __HAL_RCC_USART1_CLK_DISABLE();
+
+ /**USART1 GPIO Configuration
+ PB7 ------> USART1_RX
+ PB6 ------> USART1_TX
+ */
+ HAL_GPIO_DeInit(GPIOB, VCP_RX_Pin|VCP_TX_Pin);
+
+ /* USART1 DMA DeInit */
+ HAL_DMA_DeInit(huart->hdmatx);
+
+ /* USART1 interrupt DeInit */
+ HAL_NVIC_DisableIRQ(USART1_IRQn);
+ /* USER CODE BEGIN USART1_MspDeInit 1 */
+
+ /* USER CODE END USART1_MspDeInit 1 */
+ }
+
+}
+
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32wbxx_it.c
index 035cde9ca..56ec2bf5e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32wbxx_it.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/stm32wbxx_it.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -57,7 +56,8 @@
/* USER CODE END 0 */
/* External variables --------------------------------------------------------*/
-
+extern DMA_HandleTypeDef hdma_usart1_tx;
+extern UART_HandleTypeDef huart1;
/* USER CODE BEGIN EV */
/* USER CODE END EV */
@@ -201,6 +201,20 @@ void SysTick_Handler(void)
/******************************************************************************/
/**
+ * @brief This function handles USART1 global interrupt.
+ */
+void USART1_IRQHandler(void)
+{
+ /* USER CODE BEGIN USART1_IRQn 0 */
+
+ /* USER CODE END USART1_IRQn 0 */
+ HAL_UART_IRQHandler(&huart1);
+ /* USER CODE BEGIN USART1_IRQn 1 */
+
+ /* USER CODE END USART1_IRQn 1 */
+}
+
+/**
* @brief This function handles HSEM global interrupt.
*/
void HSEM_IRQHandler(void)
@@ -214,6 +228,20 @@ void HSEM_IRQHandler(void)
/* USER CODE END HSEM_IRQn 1 */
}
+/**
+ * @brief This function handles DMA2 channel4 global interrupt.
+ */
+void DMA2_Channel4_IRQHandler(void)
+{
+ /* USER CODE BEGIN DMA2_Channel4_IRQn 0 */
+
+ /* USER CODE END DMA2_Channel4_IRQn 0 */
+ HAL_DMA_IRQHandler(&hdma_usart1_tx);
+ /* USER CODE BEGIN DMA2_Channel4_IRQn 1 */
+
+ /* USER CODE END DMA2_Channel4_IRQn 1 */
+}
+
/* USER CODE BEGIN 1 */
/**
@@ -271,4 +299,3 @@ void RTC_WKUP_IRQHandler(void)
}
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/system_stm32wbxx.c
index 39ef4f59f..734856a7b 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/system_stm32wbxx.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/system_stm32wbxx.c
@@ -60,13 +60,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -365,5 +364,3 @@ void SystemCoreClockUpdate(void)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api.c
index d96b0332f..1dc5f475f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api.c
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api.h
index 88260a27a..67762d8f9 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c
index 3e1827a96..ba8243293 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.c
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h
index 53ff76838..7757e76d0 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_calibration.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.c
index 30d394241..1d7d30081 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.c
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.h
index 4d8fc4c4c..b019419b3 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_core.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c
index 0597dc369..27ff440ce 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.c
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h
index 75da46a21..a1f0f6657 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_ranging.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.c
index b35c1f9d0..8b1e814f6 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.c
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.h
index 4c9c4c450..5b77fb51b 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_api_strings.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_def.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_def.h
index 48b8b64ef..6416e01ca 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_def.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_def.h
@@ -5,13 +5,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_device.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_device.h
index 3c7daa1ba..20842e60f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_device.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_device.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h
index dc65a788f..3ee4534cf 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_interrupt_threshold_settings.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_platform.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_platform.h
index fe40bf378..c4c3a12f8 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_platform.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_platform.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -42,5 +41,3 @@
#endif
#endif /* __VL53L0X_PLATFORM_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.h
index 3e20c8e91..07d2b0643 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_platform_log.h
@@ -1,14 +1,15 @@
/**
******************************************************************************
+ * @file vl53l0x_platform_log.h
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tof.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tof.c
index 1d0851b76..9ef7bc0f7 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tof.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tof.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -329,5 +328,3 @@ void SetupSingleShot(VL53L0X_Dev_t Dev)
Dev.LeakyFirst=1;
}
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tof.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tof.h
index a5fc1ea9a..a1caf711a 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tof.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tof.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -229,5 +228,3 @@ void SetupSingleShot(VL53L0X_Dev_t Dev);
#endif
#endif /* __VL53L0X_TOF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tuning.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tuning.h
index 6bfebf3d6..3bee119ac 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tuning.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_tuning.h
@@ -2,13 +2,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_types.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_types.h
index 17495ce26..53f930f3e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_types.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/Core/Src/vl53l0x/vl53l0x_types.h
@@ -5,13 +5,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/BLE_Sensor.ewp b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/BLE_Sensor.ewp
index 0fb9b84af..fc41e4053 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/BLE_Sensor.ewp
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/BLE_Sensor.ewp
@@ -1,1376 +1,1359 @@
<?xml version="1.0" encoding="UTF-8"?>
<project>
- <fileVersion>3</fileVersion>
- <configuration>
- <name>BLE_Sensor</name>
- <toolchain>
- <name>ARM</name>
- </toolchain>
+ <fileVersion>3</fileVersion>
+ <configuration>
+ <name>BLE_Sensor</name>
+ <toolchain>
+ <name>ARM</name>
+ </toolchain>
+ <debug>1</debug>
+ <settings>
+ <name>General</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <version>30</version>
+ <wantNonLocal>1</wantNonLocal>
<debug>1</debug>
- <settings>
- <name>General</name>
- <archiveVersion>3</archiveVersion>
- <data>
- <version>30</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>ExePath</name>
- <state>BLE_Sensor/Exe</state>
- </option>
- <option>
- <name>ObjPath</name>
- <state>BLE_Sensor/Obj</state>
- </option>
- <option>
- <name>ListPath</name>
- <state>BLE_Sensor/List</state>
- </option>
- <option>
- <name>GEndianMode</name>
- <state>0</state>
- </option>
- <option>
- <name>Input description</name>
- <state>Full formatting, with multibyte support.</state>
- </option>
- <option>
- <name>Output description</name>
- <state>Full formatting, with multibyte support.</state>
- </option>
- <option>
- <name>GOutputBinary</name>
- <state>0</state>
- </option>
- <option>
- <name>OGCoreOrChip</name>
- <state>1</state>
- </option>
- <option>
- <name>GRuntimeLibSelect</name>
- <version>0</version>
- <state>2</state>
- </option>
- <option>
- <name>GRuntimeLibSelectSlave</name>
- <version>0</version>
- <state>2</state>
- </option>
- <option>
- <name>RTDescription</name>
- <state>Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.</state>
- </option>
- <option>
- <name>OGProductVersion</name>
- <state>4.41A</state>
- </option>
- <option>
- <name>OGLastSavedByProductVersion</name>
- <state>8.20.2.14834</state>
- </option>
- <option>
- <name>GeneralEnableMisra</name>
- <state>0</state>
- </option>
- <option>
- <name>GeneralMisraVerbose</name>
- <state>0</state>
- </option>
- <option>
- <name>OGChipSelectEditMenu</name>
- <state>STM32WB5MMG ST STM32WB5MMG</state>
- </option>
- <option>
- <name>GenLowLevelInterface</name>
- <state>1</state>
- </option>
- <option>
- <name>GEndianModeBE</name>
- <state>1</state>
- </option>
- <option>
- <name>OGBufferedTerminalOutput</name>
- <state>0</state>
- </option>
- <option>
- <name>GenStdoutInterface</name>
- <state>0</state>
- </option>
- <option>
- <name>GeneralMisraRules98</name>
- <version>0</version>
- <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
- </option>
- <option>
- <name>GeneralMisraVer</name>
- <state>0</state>
- </option>
- <option>
- <name>GeneralMisraRules04</name>
- <version>0</version>
- <state>011111111111111110111111111111011111111111111011110100111111111111111111111111111111111111111111101111111111111011111111111111111111111111111</state>
- </option>
- <option>
- <name>RTConfigPath2</name>
- <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Full.h</state>
- </option>
- <option>
- <name>GBECoreSlave</name>
- <version>26</version>
- <state>39</state>
- </option>
- <option>
- <name>OGUseCmsis</name>
- <state>0</state>
- </option>
- <option>
- <name>OGUseCmsisDspLib</name>
- <state>0</state>
- </option>
- <option>
- <name>GRuntimeLibThreads</name>
- <state>0</state>
- </option>
- <option>
- <name>CoreVariant</name>
- <version>26</version>
- <state>39</state>
- </option>
- <option>
- <name>GFPUDeviceSlave</name>
- <state>STM32WB5MMG ST STM32WB5MMG</state>
- </option>
- <option>
- <name>FPU2</name>
- <version>0</version>
- <state>4</state>
- </option>
- <option>
- <name>NrRegs</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>NEON</name>
- <state>0</state>
- </option>
- <option>
- <name>GFPUCoreSlave2</name>
- <version>26</version>
- <state>39</state>
- </option>
- <option>
- <name>OGCMSISPackSelectDevice</name>
- </option>
- <option>
- <name>OgLibHeap</name>
- <state>0</state>
- </option>
- <option>
- <name>OGLibAdditionalLocale</name>
- <state>0</state>
- </option>
- <option>
- <name>OGPrintfVariant</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>OGPrintfMultibyteSupport</name>
- <state>1</state>
- </option>
- <option>
- <name>OGScanfVariant</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>OGScanfMultibyteSupport</name>
- <state>1</state>
- </option>
- <option>
- <name>GenLocaleTags</name>
- <state></state>
- </option>
- <option>
- <name>GenLocaleDisplayOnly</name>
- <state></state>
- </option>
- <option>
- <name>DSPExtension</name>
- <state>1</state>
- </option>
- <option>
- <name>TrustZone</name>
- <state>0</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>ICCARM</name>
- <archiveVersion>2</archiveVersion>
- <data>
- <version>34</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>CCOptimizationNoSizeConstraints</name>
- <state>0</state>
- </option>
- <option>
- <name>CCDefines</name>
- <state>USE_HAL_DRIVER</state>
- <state>STM32WB5Mxx</state>
- <state>STM32WL55MM_DK</state>
- </option>
- <option>
- <name>CCPreprocFile</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPreprocComments</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPreprocLine</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListCFile</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListCMnemonics</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListCMessages</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListAssFile</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListAssSource</name>
- <state>0</state>
- </option>
- <option>
- <name>CCEnableRemarks</name>
- <state>0</state>
- </option>
- <option>
- <name>CCDiagSuppress</name>
- <state></state>
- </option>
- <option>
- <name>CCDiagRemark</name>
- <state></state>
- </option>
- <option>
- <name>CCDiagWarning</name>
- <state></state>
- </option>
- <option>
- <name>CCDiagError</name>
- <state></state>
- </option>
- <option>
- <name>CCObjPrefix</name>
- <state>1</state>
- </option>
- <option>
- <name>CCAllowList</name>
- <version>1</version>
- <state>11111110</state>
- </option>
- <option>
- <name>CCDebugInfo</name>
- <state>1</state>
- </option>
- <option>
- <name>IEndianMode</name>
- <state>1</state>
- </option>
- <option>
- <name>IProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>IExtraOptionsCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>IExtraOptions</name>
- <state></state>
- </option>
- <option>
- <name>CCLangConformance</name>
- <state>0</state>
- </option>
- <option>
- <name>CCSignedPlainChar</name>
- <state>1</state>
- </option>
- <option>
- <name>CCRequirePrototypes</name>
- <state>0</state>
- </option>
- <option>
- <name>CCDiagWarnAreErr</name>
- <state>0</state>
- </option>
- <option>
- <name>CCCompilerRuntimeInfo</name>
- <state>0</state>
- </option>
- <option>
- <name>IFpuProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>OutputFile</name>
- <state>$FILE_BNAME$.o</state>
- </option>
- <option>
- <name>CCLibConfigHeader</name>
- <state>1</state>
- </option>
- <option>
- <name>PreInclude</name>
- <state></state>
- </option>
- <option>
- <name>CompilerMisraOverride</name>
- <state>0</state>
- </option>
- <option>
- <name>CCIncludePath2</name>
- <state>$PROJ_DIR$/../Core/Inc</state>
- <state>$PROJ_DIR$/../STM32_WPAN/App</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/lpm/tiny_lpm</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/utilities</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/sequencer</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Include</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/STM32WB5MM-DK</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/ssd1315</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/Common</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/Fonts</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/LCD</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/ism330dhcx</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_Audio/Addons/PDM/Inc</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/DSP/Source/FilteringFunctions</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/DSP/Include</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/stts22h</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/s25fl128s</state>
- <state>$PROJ_DIR$/../Core/Src/vl53l0x</state>
- </option>
- <option>
- <name>CCStdIncCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>CCCodeSection</name>
- <state>.text</state>
- </option>
- <option>
- <name>IProcessorMode2</name>
- <state>1</state>
- </option>
- <option>
- <name>CCOptLevel</name>
- <state>3</state>
- </option>
- <option>
- <name>CCOptStrategy</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>CCOptLevelSlave</name>
- <state>3</state>
- </option>
- <option>
- <name>CompilerMisraRules98</name>
- <version>0</version>
- <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
- </option>
- <option>
- <name>CompilerMisraRules04</name>
- <version>0</version>
- <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
- </option>
- <option>
- <name>CCPosIndRopi</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPosIndRwpi</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPosIndNoDynInit</name>
- <state>0</state>
- </option>
- <option>
- <name>IccLang</name>
- <state>0</state>
- </option>
- <option>
- <name>IccCDialect</name>
- <state>1</state>
- </option>
- <option>
- <name>IccAllowVLA</name>
- <state>0</state>
- </option>
- <option>
- <name>IccStaticDestr</name>
- <state>0</state>
- </option>
- <option>
- <name>IccCppInlineSemantics</name>
- <state>0</state>
- </option>
- <option>
- <name>IccCmsis</name>
- <state>1</state>
- </option>
- <option>
- <name>IccFloatSemantics</name>
- <state>0</state>
- </option>
- <option>
- <name>CCNoLiteralPool</name>
- <state>0</state>
- </option>
- <option>
- <name>CCOptStrategySlave</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>CCGuardCalls</name>
- <state>1</state>
- </option>
- <option>
- <name>CCEncSource</name>
- <state>0</state>
- </option>
- <option>
- <name>CCEncOutput</name>
- <state>0</state>
- </option>
- <option>
- <name>CCEncOutputBom</name>
- <state>1</state>
- </option>
- <option>
- <name>CCEncInput</name>
- <state>0</state>
- </option>
- <option>
- <name>IccExceptions2</name>
- <state>0</state>
- </option>
- <option>
- <name>IccRTTI2</name>
- <state>0</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>AARM</name>
- <archiveVersion>2</archiveVersion>
- <data>
- <version>10</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>AObjPrefix</name>
- <state>1</state>
- </option>
- <option>
- <name>AEndian</name>
- <state>1</state>
- </option>
- <option>
- <name>ACaseSensitivity</name>
- <state>1</state>
- </option>
- <option>
- <name>MacroChars</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>AWarnEnable</name>
- <state>0</state>
- </option>
- <option>
- <name>AWarnWhat</name>
- <state>0</state>
- </option>
- <option>
- <name>AWarnOne</name>
- <state></state>
- </option>
- <option>
- <name>AWarnRange1</name>
- <state></state>
- </option>
- <option>
- <name>AWarnRange2</name>
- <state></state>
- </option>
- <option>
- <name>ADebug</name>
- <state>1</state>
- </option>
- <option>
- <name>AltRegisterNames</name>
- <state>0</state>
- </option>
- <option>
- <name>ADefines</name>
- <state></state>
- </option>
- <option>
- <name>AList</name>
- <state>0</state>
- </option>
- <option>
- <name>AListHeader</name>
- <state>1</state>
- </option>
- <option>
- <name>AListing</name>
- <state>1</state>
- </option>
- <option>
- <name>Includes</name>
- <state>0</state>
- </option>
- <option>
- <name>MacDefs</name>
- <state>0</state>
- </option>
- <option>
- <name>MacExps</name>
- <state>1</state>
- </option>
- <option>
- <name>MacExec</name>
- <state>0</state>
- </option>
- <option>
- <name>OnlyAssed</name>
- <state>0</state>
- </option>
- <option>
- <name>MultiLine</name>
- <state>0</state>
- </option>
- <option>
- <name>PageLengthCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>PageLength</name>
- <state>80</state>
- </option>
- <option>
- <name>TabSpacing</name>
- <state>8</state>
- </option>
- <option>
- <name>AXRef</name>
- <state>0</state>
- </option>
- <option>
- <name>AXRefDefines</name>
- <state>0</state>
- </option>
- <option>
- <name>AXRefInternal</name>
- <state>0</state>
- </option>
- <option>
- <name>AXRefDual</name>
- <state>0</state>
- </option>
- <option>
- <name>AProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>AFpuProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>AOutputFile</name>
- <state>$FILE_BNAME$.o</state>
- </option>
- <option>
- <name>ALimitErrorsCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>ALimitErrorsEdit</name>
- <state>100</state>
- </option>
- <option>
- <name>AIgnoreStdInclude</name>
- <state>0</state>
- </option>
- <option>
- <name>AUserIncludes</name>
- <state></state>
- </option>
- <option>
- <name>AExtraOptionsCheckV2</name>
- <state>0</state>
- </option>
- <option>
- <name>AExtraOptionsV2</name>
- <state></state>
- </option>
- <option>
- <name>AsmNoLiteralPool</name>
- <state>0</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>OBJCOPY</name>
- <archiveVersion>0</archiveVersion>
- <data>
- <version>1</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>OOCOutputFormat</name>
- <version>3</version>
- <state>1</state>
- </option>
- <option>
- <name>OCOutputOverride</name>
- <state>1</state>
- </option>
- <option>
- <name>OOCOutputFile</name>
- <state>BLE_Sensor.hex</state>
- </option>
- <option>
- <name>OOCCommandLineProducer</name>
- <state>1</state>
- </option>
- <option>
- <name>OOCObjCopyEnable</name>
- <state>1</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>CUSTOM</name>
- <archiveVersion>3</archiveVersion>
- <data>
- <extensions></extensions>
- <cmdline></cmdline>
- <hasPrio>0</hasPrio>
- </data>
- </settings>
- <settings>
- <name>BICOMP</name>
- <archiveVersion>0</archiveVersion>
- <data />
- </settings>
- <settings>
- <name>BUILDACTION</name>
- <archiveVersion>1</archiveVersion>
- <data>
- <prebuild></prebuild>
- <postbuild></postbuild>
- </data>
- </settings>
- <settings>
- <name>ILINK</name>
- <archiveVersion>0</archiveVersion>
- <data>
- <version>20</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>IlinkLibIOConfig</name>
- <state>1</state>
- </option>
- <option>
- <name>XLinkMisraHandler</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkInputFileSlave</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkOutputFile</name>
- <state>BLE_Sensor.out</state>
- </option>
- <option>
- <name>IlinkDebugInfoEnable</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkKeepSymbols</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinaryFile</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinarySymbol</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinarySegment</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinaryAlign</name>
- <state></state>
- </option>
- <option>
- <name>IlinkDefines</name>
- <state></state>
- </option>
- <option>
- <name>IlinkConfigDefines</name>
- <state></state>
- </option>
- <option>
- <name>IlinkMapFile</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkLogFile</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogInitialization</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogModule</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogSection</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogVeneer</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkIcfOverride</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkIcfFile</name>
- <state>$PROJ_DIR$/stm32wb5mxx_flash_cm4.icf</state>
- </option>
- <option>
- <name>IlinkIcfFileSlave</name>
- <state></state>
- </option>
- <option>
- <name>IlinkEnableRemarks</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkSuppressDiags</name>
- <state></state>
- </option>
- <option>
- <name>IlinkTreatAsRem</name>
- <state></state>
- </option>
- <option>
- <name>IlinkTreatAsWarn</name>
- <state></state>
- </option>
- <option>
- <name>IlinkTreatAsErr</name>
- <state></state>
- </option>
- <option>
- <name>IlinkWarningsAreErrors</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkUseExtraOptions</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkExtraOptions</name>
- <state></state>
- </option>
- <option>
- <name>IlinkLowLevelInterfaceSlave</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkAutoLibEnable</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkAdditionalLibs</name>
- <state></state>
- </option>
- <option>
- <name>IlinkOverrideProgramEntryLabel</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkProgramEntryLabelSelect</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkProgramEntryLabel</name>
- <state>__iar_program_start</state>
- </option>
- <option>
- <name>DoFill</name>
- <state>0</state>
- </option>
- <option>
- <name>FillerByte</name>
- <state>0xFF</state>
- </option>
- <option>
- <name>FillerStart</name>
- <state>0x0</state>
- </option>
- <option>
- <name>FillerEnd</name>
- <state>0x0</state>
- </option>
- <option>
- <name>CrcSize</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>CrcAlign</name>
- <state>1</state>
- </option>
- <option>
- <name>CrcPoly</name>
- <state>0x11021</state>
- </option>
- <option>
- <name>CrcCompl</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>CrcBitOrder</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>CrcInitialValue</name>
- <state>0x0</state>
- </option>
- <option>
- <name>DoCrc</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkBE8Slave</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkBufferedTerminalOutput</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkStdoutInterfaceSlave</name>
- <state>1</state>
- </option>
- <option>
- <name>CrcFullSize</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkIElfToolPostProcess</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogAutoLibSelect</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogRedirSymbols</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogUnusedFragments</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkCrcReverseByteOrder</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkCrcUseAsInput</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptInline</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkOptExceptionsAllow</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptExceptionsForce</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkCmsis</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptMergeDuplSections</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkOptUseVfe</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptForceVfe</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkStackAnalysisEnable</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkStackControlFile</name>
- <state></state>
- </option>
- <option>
- <name>IlinkStackCallGraphFile</name>
- <state></state>
- </option>
- <option>
- <name>CrcAlgorithm</name>
- <version>1</version>
- <state>1</state>
- </option>
- <option>
- <name>CrcUnitSize</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>IlinkThreadsSlave</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkLogCallGraph</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkIcfFile_AltDefault</name>
- <state></state>
- </option>
- <option>
- <name>IlinkEncInput</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkEncOutput</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkEncOutputBom</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkHeapSelect</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkLocaleSelect</name>
- <state>1</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>IARCHIVE</name>
- <archiveVersion>0</archiveVersion>
- <data>
- <version>0</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>IarchiveInputs</name>
- <state></state>
- </option>
- <option>
- <name>IarchiveOverride</name>
- <state>0</state>
- </option>
- <option>
- <name>IarchiveOutput</name>
- <state>###Unitialized###</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>BILINK</name>
- <archiveVersion>0</archiveVersion>
- <data />
- </settings>
- </configuration>
- <group>
- <name>Application</name>
- <group>
- <name>EWARM</name>
- <file>
- <name>$PROJ_DIR$\startup_stm32wb5mxx_cm4.s</name>
- </file>
- </group>
- <group>
- <name>User</name>
- <group>
- <name>Core</name>
- <group>
- <name>vl53l0x</name>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api_calibration.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api_core.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api_ranging.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api_strings.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_platform_log.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_tof.c</name>
- </file>
- </group>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\app_debug.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\app_entry.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\app_vl53l0x.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\hw_timerserver.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\main.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\stm32_lpm_if.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_hal_msp.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_it.c</name>
- </file>
- </group>
- <group>
- <name>STM32_WPAN</name>
- <group>
- <name>App</name>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\App\app_ble.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\App\env_server_app.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\App\motenv_server_app.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\App\motion_server_app.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\App\p2p_server_app.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\App\wb5m_sensor_stm.c</name>
- </file>
- </group>
- <group>
- <name>Target</name>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\Target\hw_ipcc.c</name>
- </file>
- </group>
- </group>
- </group>
- </group>
+ <option>
+ <name>ExePath</name>
+ <state>BLE_Sensor/Exe</state>
+ </option>
+ <option>
+ <name>ObjPath</name>
+ <state>BLE_Sensor/Obj</state>
+ </option>
+ <option>
+ <name>ListPath</name>
+ <state>BLE_Sensor/List</state>
+ </option>
+ <option>
+ <name>GEndianMode</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Input description</name>
+ <state>Full formatting, with multibyte support.</state>
+ </option>
+ <option>
+ <name>Output description</name>
+ <state>Full formatting, with multibyte support.</state>
+ </option>
+ <option>
+ <name>GOutputBinary</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGCoreOrChip</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelect</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelectSlave</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>RTDescription</name>
+ <state>Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.</state>
+ </option>
+ <option>
+ <name>OGProductVersion</name>
+ <state>4.41A</state>
+ </option>
+ <option>
+ <name>OGLastSavedByProductVersion</name>
+ <state>8.20.2.14834</state>
+ </option>
+ <option>
+ <name>GeneralEnableMisra</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraVerbose</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGChipSelectEditMenu</name>
+ <state>STM32WB5MMG ST STM32WB5MMG</state>
+ </option>
+ <option>
+ <name>GenLowLevelInterface</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GEndianModeBE</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGBufferedTerminalOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GenStdoutInterface</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>GeneralMisraVer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules04</name>
+ <version>0</version>
+ <state>011111111111111110111111111111011111111111111011110100111111111111111111111111111111111111111111101111111111111011111111111111111111111111111</state>
+ </option>
+ <option>
+ <name>RTConfigPath2</name>
+ <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Full.h</state>
+ </option>
+ <option>
+ <name>GBECoreSlave</name>
+ <version>26</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>OGUseCmsis</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGUseCmsisDspLib</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GRuntimeLibThreads</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CoreVariant</name>
+ <version>26</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>GFPUDeviceSlave</name>
+ <state>STM32WB5MMG ST STM32WB5MMG</state>
+ </option>
+ <option>
+ <name>FPU2</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>NrRegs</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>NEON</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GFPUCoreSlave2</name>
+ <version>26</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>OGCMSISPackSelectDevice</name>
+ </option>
+ <option>
+ <name>OgLibHeap</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGLibAdditionalLocale</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGPrintfVariant</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGPrintfMultibyteSupport</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGScanfVariant</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGScanfMultibyteSupport</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GenLocaleTags</name>
+ <state></state>
+ </option>
+ <option>
+ <name>GenLocaleDisplayOnly</name>
+ <state></state>
+ </option>
+ <option>
+ <name>DSPExtension</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>TrustZone</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ICCARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>34</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CCOptimizationNoSizeConstraints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDefines</name>
+ <state>USE_HAL_DRIVER</state>
+ <state>STM32WB5Mxx</state>
+ <state>USE_STM32WB5M_DK</state>
+ </option>
+ <option>
+ <name>CCPreprocFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocComments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMnemonics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMessages</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagSuppress</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagRemark</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagWarning</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagError</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCAllowList</name>
+ <version>1</version>
+ <state>11111110</state>
+ </option>
+ <option>
+ <name>CCDebugInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IEndianMode</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IExtraOptionsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCLangConformance</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSignedPlainChar</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCRequirePrototypes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagWarnAreErr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCompilerRuntimeInfo</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.o</state>
+ </option>
+ <option>
+ <name>CCLibConfigHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>PreInclude</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CompilerMisraOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$/../Core/Inc</state>
+ <state>$PROJ_DIR$/../STM32_WPAN/App</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/lpm/tiny_lpm</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/utilities</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/sequencer</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Include</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/STM32WB5MM-DK</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/ssd1315</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/Common</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/Fonts</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/LCD</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/ism330dhcx</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/DSP/Source/FilteringFunctions</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/DSP/Include</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/stts22h</state>
+ <state>$PROJ_DIR$/../Core/Src/vl53l0x</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCodeSection</name>
+ <state>.text</state>
+ </option>
+ <option>
+ <name>IProcessorMode2</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevel</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CCOptStrategy</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevelSlave</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules04</name>
+ <version>0</version>
+ <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+ </option>
+ <option>
+ <name>CCPosIndRopi</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPosIndRwpi</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPosIndNoDynInit</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccLang</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCDialect</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IccAllowVLA</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccStaticDestr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCppInlineSemantics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCmsis</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IccFloatSemantics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCNoLiteralPool</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCOptStrategySlave</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCGuardCalls</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEncSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEncOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEncOutputBom</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEncInput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccExceptions2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccRTTI2</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>AARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>10</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>AObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AEndian</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ACaseSensitivity</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacroChars</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnWhat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnOne</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ADebug</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AltRegisterNames</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ADefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AList</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AListHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AListing</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Includes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacDefs</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacExps</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacExec</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OnlyAssed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MultiLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>TabSpacing</name>
+ <state>8</state>
+ </option>
+ <option>
+ <name>AXRef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDefines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefInternal</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDual</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AOutputFile</name>
+ <state>$FILE_BNAME$.o</state>
+ </option>
+ <option>
+ <name>ALimitErrorsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ALimitErrorsEdit</name>
+ <state>100</state>
+ </option>
+ <option>
+ <name>AIgnoreStdInclude</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AUserIncludes</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AExtraOptionsCheckV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AExtraOptionsV2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AsmNoLiteralPool</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>OBJCOPY</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>OOCOutputFormat</name>
+ <version>3</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCOutputOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OOCOutputFile</name>
+ <state>BLE_Sensor.hex</state>
+ </option>
+ <option>
+ <name>OOCCommandLineProducer</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OOCObjCopyEnable</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CUSTOM</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <extensions></extensions>
+ <cmdline></cmdline>
+ <hasPrio>0</hasPrio>
+ </data>
+ </settings>
+ <settings>
+ <name>BICOMP</name>
+ <archiveVersion>0</archiveVersion>
+ <data></data>
+ </settings>
+ <settings>
+ <name>BUILDACTION</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <prebuild></prebuild>
+ <postbuild></postbuild>
+ </data>
+ </settings>
+ <settings>
+ <name>ILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>20</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>IlinkLibIOConfig</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XLinkMisraHandler</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkInputFileSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOutputFile</name>
+ <state>BLE_Sensor.out</state>
+ </option>
+ <option>
+ <name>IlinkDebugInfoEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkKeepSymbols</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinaryFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinarySymbol</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinarySegment</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinaryAlign</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkConfigDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkMapFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLogFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogInitialization</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogModule</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogSection</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogVeneer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIcfOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkIcfFile</name>
+ <state>$PROJ_DIR$/stm32wb5mxx_flash_cm4.icf</state>
+ </option>
+ <option>
+ <name>IlinkIcfFileSlave</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkSuppressDiags</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsRem</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsWarn</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsErr</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkWarningsAreErrors</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkUseExtraOptions</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkLowLevelInterfaceSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkAutoLibEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkAdditionalLibs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkOverrideProgramEntryLabel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkProgramEntryLabelSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkProgramEntryLabel</name>
+ <state>__iar_program_start</state>
+ </option>
+ <option>
+ <name>DoFill</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FillerByte</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>FillerStart</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>FillerEnd</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>CrcSize</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcPoly</name>
+ <state>0x11021</state>
+ </option>
+ <option>
+ <name>CrcCompl</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcBitOrder</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>DoCrc</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkBE8Slave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkBufferedTerminalOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkStdoutInterfaceSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcFullSize</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIElfToolPostProcess</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogAutoLibSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogRedirSymbols</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogUnusedFragments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCrcReverseByteOrder</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCrcUseAsInput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptInline</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOptExceptionsAllow</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptExceptionsForce</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCmsis</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptMergeDuplSections</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOptUseVfe</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptForceVfe</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkStackAnalysisEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkStackControlFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkStackCallGraphFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CrcAlgorithm</name>
+ <version>1</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcUnitSize</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkThreadsSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLogCallGraph</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIcfFile_AltDefault</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkEncInput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkEncOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkEncOutputBom</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkHeapSelect</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLocaleSelect</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>IARCHIVE</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>IarchiveInputs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IarchiveOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IarchiveOutput</name>
+ <state>###Unitialized###</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>BILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data></data>
+ </settings>
+ </configuration>
+ <group>
+ <name>Application</name>
<group>
- <name>Doc</name>
- <file>
- <name>$PROJ_DIR$\..\readme.txt</name>
- </file>
+ <name>EWARM</name>
+ <file>
+ <name>$PROJ_DIR$\startup_stm32wb5mxx_cm4.s</name>
+ </file>
</group>
<group>
- <name>Drivers</name>
- <group>
- <name>BSP</name>
- <group>
- <name>Components</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ism330dhcx\ism330dhcx.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ism330dhcx\ism330dhcx_reg.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\s25fl128s\s25fl128s.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315_reg.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\stts22h\stts22h.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\stts22h\stts22h_reg.c</name>
- </file>
- </group>
- <group>
- <name>STM32WB5MM-DK</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_audio.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_bus.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_env_sensors.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_env_sensors_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_lcd.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_motion_sensors.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_motion_sensors_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_qspi.c</name>
- </file>
- </group>
- </group>
+ <name>User</name>
+ <group>
+ <name>Core</name>
<group>
- <name>CMSIS</name>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\system_stm32wbxx.c</name>
- </file>
+ <name>vl53l0x</name>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api_calibration.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api_core.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api_ranging.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_api_strings.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_platform_log.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\vl53l0x\vl53l0x_tof.c</name>
+ </file>
</group>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_vl53l0x.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\main.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_entry.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_debug.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\hw_timerserver.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\hw_uart.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32_lpm_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_it.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_hal_msp.c</name>
+ </file>
+ </group>
+ <group>
+ <name>STM32_WPAN</name>
<group>
- <name>STM32WBxx_HAL_Driver</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_cortex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_exti.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_gpio.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_hsem.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_ipcc.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_qspi.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_sai.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_sai_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart_ex.c</name>
- </file>
+ <name>App</name>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\App\env_server_app.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\App\motenv_server_app.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\App\wb5m_sensor_stm.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\App\motion_server_app.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\App\app_ble.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\App\p2p_server_app.c</name>
+ </file>
</group>
- </group>
- <group>
- <name>Middlewares</name>
<group>
- <name>STM32_WPAN</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gap_aci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gatt_aci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hal_aci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hci_le.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_l2cap_aci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\dbg_trace.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl_if.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\template\osal.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\otp.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\p2p_stm.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\shci\shci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl_if.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_list.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_queue.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\svc_ctl.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\tl_mbox.c</name>
- </file>
+ <name>Target</name>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\Target\hw_ipcc.c</name>
+ </file>
</group>
+ </group>
</group>
+ </group>
+ <group>
+ <name>Doc</name>
+ <file>
+ <name>$PROJ_DIR$\..\readme.txt</name>
+ </file>
+ </group>
+ <group>
+ <name>Drivers</name>
<group>
- <name>Utilities</name>
+ <name>BSP</name>
+ <group>
+ <name>Components</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ism330dhcx\ism330dhcx.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ism330dhcx\ism330dhcx_reg.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315_reg.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\stts22h\stts22h.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\stts22h\stts22h_reg.c</name>
+ </file>
+ </group>
+ <group>
+ <name>STM32WB5MM-DK</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_bus.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_env_sensors.c</name>
+ </file>
<file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\LCD\stm32_lcd.c</name>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_env_sensors_ex.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\lpm\tiny_lpm\stm32_lpm.c</name>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_lcd.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\sequencer\stm32_seq.c</name>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_motion_sensors.c</name>
</file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_motion_sensors_ex.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>CMSIS</name>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\system_stm32wbxx.c</name>
+ </file>
+ </group>
+ <group>
+ <name>STM32WBxx_HAL_Driver</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_hsem.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_gpio.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_cortex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_exti.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_ipcc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart_ex.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>Middlewares</name>
+ <group>
+ <name>STM32_WPAN</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\tl_mbox.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\shci\shci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\dbg_trace.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\otp.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_list.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_queue.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\template\osal.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gap_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gatt_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hal_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hci_le.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_l2cap_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\p2p_stm.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\svc_ctl.c</name>
+ </file>
</group>
+ </group>
+ <group>
+ <name>Utilities</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\LCD\stm32_lcd.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\lpm\tiny_lpm\stm32_lpm.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\sequencer\stm32_seq.c</name>
+ </file>
+ </group>
</project>
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/startup_stm32wb5mxx_cm4.s
index 0619c6516..690ee250e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/startup_stm32wb5mxx_cm4.s
@@ -16,13 +16,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;
@@ -83,7 +82,7 @@ __vector_table
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -514,4 +513,3 @@ DMAMUX1_OVR_IRQHandler
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/stm32wb5mxx_flash_cm4.icf b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/stm32wb5mxx_flash_cm4.icf
index 6a7a123fc..f13848f65 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/stm32wb5mxx_flash_cm4.icf
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/stm32wb5mxx_flash_cm4.icf
@@ -11,7 +11,7 @@ define symbol __ICFEDIT_region_RAM_start__ = 0x20000008;
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
-define symbol __ICFEDIT_size_heap__ = 0x400;
+define symbol __ICFEDIT_size_heap__ = 0x400;
/**** End of ICF editor section. ###ICF###*/
define symbol __ICFEDIT_region_RAM_SHARED_start__ = 0x20030000;
@@ -21,6 +21,7 @@ define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region RAM_SHARED_region = mem:[from __ICFEDIT_region_RAM_SHARED_start__ to __ICFEDIT_region_RAM_SHARED_end__];
+define region Total_RAM_region = RAM_region | RAM_SHARED_region ;
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
@@ -32,9 +33,10 @@ do not initialize { section .noinit,
section MB_MEM1 };
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
+place at address mem:__ICFEDIT_region_RAM_SHARED_start__ { section MAPPING_TABLE };
place in ROM_region { readonly };
-place in RAM_region { readwrite,block CSTACK, block HEAP };
-place in RAM_SHARED_region { first section MAPPING_TABLE};
+place in RAM_region { block CSTACK, block HEAP };
place in RAM_SHARED_region { section MB_MEM1};
place in RAM_SHARED_region { section MB_MEM2};
+place in Total_RAM_region { readwrite };
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/stm32wb5mxx_sram_cm4.icf b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/stm32wb5mxx_sram_cm4.icf
deleted file mode 100644
index 36cf3e51a..000000000
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/EWARM/stm32wb5mxx_sram_cm4.icf
+++ /dev/null
@@ -1,39 +0,0 @@
-/*###ICF### Section handled by ICF editor, don't touch! ****/
-/*-Editor annotation file-*/
-/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
-/*-Specials-*/
-define symbol __ICFEDIT_intvec_start__ = 0x20000000;
-/*-Memory Regions-*/
-/***** RAM dedicated to M4 *****/
-define symbol __ICFEDIT_region_ROM_start__ = 0x20000000;
-define symbol __ICFEDIT_region_ROM_end__ = 0x20017FFF;
-
-define symbol __ICFEDIT_region_RAM_start__ = 0x20018000 ;
-define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF ;
-
-/***** RAM2a *****/
-define symbol __ICFEDIT_region_RAM_SHARED_start__ = 0x20030000 ;
-define symbol __ICFEDIT_region_RAM_SHARED_end__ = 0x20037FFF ;
-
-/*-Sizes-*/
-define symbol __ICFEDIT_size_cstack__ = 0x1000;
-define symbol __ICFEDIT_size_heap__ = 0x400;
-/**** End of ICF editor section. ###ICF###*/
-
-
-define memory mem with size = 4G;
-define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
-define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
-
-
-define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
-define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
-
-initialize by copy { readwrite };
-do not initialize { section .noinit };
-
-place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
-
-place in ROM_region { readonly };
-place in RAM_region { readwrite,
- block CSTACK, block HEAP };
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/BLE_Sensor.uvoptx b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/BLE_Sensor.uvoptx
index 1ef458431..f4b6f7c8e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/BLE_Sensor.uvoptx
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/BLE_Sensor.uvoptx
@@ -214,6 +214,18 @@
</File>
<File>
<GroupNumber>2</GroupNumber>
+ <FileNumber>2</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/hw_uart.c</PathWithFileName>
+ <FilenameWithoutPath>hw_uart.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
<FileNumber>3</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
@@ -542,18 +554,6 @@
</File>
<File>
<GroupNumber>7</GroupNumber>
- <FileNumber>27</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>../../../../../../Drivers/BSP/Components/s25fl128s/s25fl128s.c</PathWithFileName>
- <FilenameWithoutPath>s25fl128s.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>7</GroupNumber>
<FileNumber>28</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
@@ -692,18 +692,6 @@
<RteFlg>0</RteFlg>
<bShared>0</bShared>
</File>
- <File>
- <GroupNumber>8</GroupNumber>
- <FileNumber>39</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_qspi.c</PathWithFileName>
- <FilenameWithoutPath>stm32wb5mm_dk_qspi.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
</Group>
<Group>
@@ -902,18 +890,6 @@
</File>
<File>
<GroupNumber>10</GroupNumber>
- <FileNumber>55</FileNumber>
- <FileType>1</FileType>
- <tvExp>0</tvExp>
- <tvExpOptDlg>0</tvExpOptDlg>
- <bDave2>0</bDave2>
- <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_qspi.c</PathWithFileName>
- <FilenameWithoutPath>stm32wbxx_hal_qspi.c</FilenameWithoutPath>
- <RteFlg>0</RteFlg>
- <bShared>0</bShared>
- </File>
- <File>
- <GroupNumber>10</GroupNumber>
<FileNumber>56</FileNumber>
<FileType>1</FileType>
<tvExp>0</tvExp>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/BLE_Sensor.uvprojx b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/BLE_Sensor.uvprojx
index cdecd7f22..b456b05ea 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/BLE_Sensor.uvprojx
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/BLE_Sensor.uvprojx
@@ -337,9 +337,9 @@
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls>--diag_suppress 1296</MiscControls>
- <Define>USE_HAL_DRIVER,STM32WB5Mxx,STM32WL55MM_DK</Define>
+ <Define>USE_HAL_DRIVER,STM32WB5Mxx,USE_STM32WB5M_DK</Define>
<Undefine></Undefine>
- <IncludePath>../Core/Inc;../STM32_WPAN/App;../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc;../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy;../../../../../../Utilities/lpm/tiny_lpm;../../../../../../Middlewares/ST/STM32_WPAN;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci;../../../../../../Middlewares/ST/STM32_WPAN/utilities;../../../../../../Middlewares/ST/STM32_WPAN/ble/core;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template;../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc;../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src;../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include;../../../../../../Utilities/sequencer;../../../../../../Middlewares/ST/STM32_WPAN/ble;../../../../../../Drivers/CMSIS/Include;../../../../../../Drivers/BSP/STM32WB5MM-DK;../../../../../../Drivers/BSP/Components/ssd1315;../../../../../../Drivers/BSP/Components/Common;../../../../../../Utilities/Fonts;../../../../../../Utilities/LCD;../../../../../../Drivers/BSP/Components/ism330dhcx;../../../../../../Middlewares/ST/STM32_Audio/Addons/PDM/Inc;../../../../../../Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc;../../../../../../Drivers/CMSIS/DSP/Source/FilteringFunctions;../../../../../../Drivers/CMSIS/DSP/Include;../../../../../../Drivers/BSP/Components/stts22h;../../../../../../Drivers/BSP/Components/s25fl128s;../Core/Src/vl53l0x</IncludePath>
+ <IncludePath>../Core/Inc;../STM32_WPAN/App;../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc;../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy;../../../../../../Utilities/lpm/tiny_lpm;../../../../../../Middlewares/ST/STM32_WPAN;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci;../../../../../../Middlewares/ST/STM32_WPAN/utilities;../../../../../../Middlewares/ST/STM32_WPAN/ble/core;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template;../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc;../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src;../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include;../../../../../../Utilities/sequencer;../../../../../../Middlewares/ST/STM32_WPAN/ble;../../../../../../Drivers/CMSIS/Include;../../../../../../Drivers/BSP/STM32WB5MM-DK;../../../../../../Drivers/BSP/Components/ssd1315;../../../../../../Drivers/BSP/Components/Common;../../../../../../Utilities/Fonts;../../../../../../Utilities/LCD;../../../../../../Drivers/BSP/Components/ism330dhcx;../../../../../../Middlewares/ST/STM32_Audio/Addons/PDM/Inc;../../../../../../Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc;../../../../../../Drivers/CMSIS/DSP/Source/FilteringFunctions;../../../../../../Drivers/CMSIS/DSP/Include;../../../../../../Drivers/BSP/Components/stts22h;../Core/Src/vl53l0x</IncludePath>
</VariousControls>
</Cads>
<Aads>
@@ -400,6 +400,11 @@
<FilePath>../Core/Src/app_debug.c</FilePath>
</File>
<File>
+ <FileName>hw_uart.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/hw_uart.c</FilePath>
+ </File>
+ <File>
<FileName>app_entry.c</FileName>
<FileType>1</FileType>
<FilePath>../Core/Src/app_entry.c</FilePath>
@@ -545,11 +550,6 @@
<FilePath>../../../../../../Drivers/BSP/Components/ism330dhcx/ism330dhcx_reg.c</FilePath>
</File>
<File>
- <FileName>s25fl128s.c</FileName>
- <FileType>1</FileType>
- <FilePath>../../../../../../Drivers/BSP/Components/s25fl128s/s25fl128s.c</FilePath>
- </File>
- <File>
<FileName>ssd1315.c</FileName>
<FileType>1</FileType>
<FilePath>../../../../../../Drivers/BSP/Components/ssd1315/ssd1315.c</FilePath>
@@ -609,11 +609,6 @@
<FileType>1</FileType>
<FilePath>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_motion_sensors_ex.c</FilePath>
</File>
- <File>
- <FileName>stm32wb5mm_dk_qspi.c</FileName>
- <FileType>1</FileType>
- <FilePath>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_qspi.c</FilePath>
- </File>
</Files>
</Group>
<Group>
@@ -700,11 +695,6 @@
<FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pwr_ex.c</FilePath>
</File>
<File>
- <FileName>stm32wbxx_hal_qspi.c</FileName>
- <FileType>1</FileType>
- <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_qspi.c</FilePath>
- </File>
- <File>
<FileName>stm32wbxx_hal_rcc.c</FileName>
<FileType>1</FileType>
<FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rcc.c</FilePath>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/startup_stm32wb5mxx_cm4.s
index f04432d7b..6a51d2123 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/startup_stm32wb5mxx_cm4.s
@@ -14,12 +14,12 @@
;******************************************************************************
;* @attention
;*
-;* Copyright (c) 2019 STMicroelectronics. All rights reserved.
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
@@ -84,7 +84,7 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -365,4 +365,3 @@ __user_initial_stackheap
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct
index 9d4d446ba..938d9f592 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/MDK-ARM/stm32wb5mxx_flash_cm4.sct
@@ -11,11 +11,16 @@ LR_IROM1 0x08000000 0x00080000 { ; load region size_region
RW_IRAM1 0x20000008 0x2FFF8 { ; RW data
.ANY (+RW +ZI)
}
- RW_RAM_SHARED 0x20030000 0x2800 { ; RW data
- *(MAPPING_TABLE)
- *(MB_MEM1)
- *(MB_MEM2)
- }
+
+ RW_RAM_SHARED1 0x20030000 0x28 { ; RW data
+ *(MAPPING_TABLE)
+ }
+ RW_RAM_SHARED2 0x20030028 0x27D8 { ; RW data
+ *(MB_MEM1)
+ *(MB_MEM2)
+ .ANY (+RW +ZI)
+ }
+
}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/.cproject b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/.cproject
index 02002d6cf..b99535e0c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/.cproject
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/.cproject
@@ -47,7 +47,7 @@
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1670975299" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="STM32WB5MM-DK" valueType="string"/>
- <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1765278351" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../Core/Inc | ../../STM32_WPAN/App | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/CMSIS/Include | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/Fonts | ../../../../../../../Utilities/LCD | ../../../../../../../Drivers/BSP/Components/ism330dhcx | ../../../../../../../Middlewares/ST/STM32_Audio/Addons/PDM/Inc | ../../../../../../../Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc | ../../../../../../../Drivers/CMSIS/DSP/Source/FilteringFunctions | ../../../../../../../Drivers/CMSIS/DSP/Include | ../../../../../../../Drivers/BSP/Components/stts22h | ../../../../../../../Drivers/BSP/Components/s25fl128s | ../../Core/Src/vl53l0x || || || STM32WL55MM_DK | STM32WB5Mxx | USE_HAL_DRIVER || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || Size || || || None" valueType="string"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1765278351" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../Core/Inc | ../../STM32_WPAN/App | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/CMSIS/Include | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/Fonts | ../../../../../../../Utilities/LCD | ../../../../../../../Drivers/BSP/Components/ism330dhcx | ../../../../../../../Middlewares/ST/STM32_Audio/Addons/PDM/Inc | ../../../../../../../Middlewares/ST/STM32_USB_Device_Library/Class/AUDIO/Inc | ../../../../../../../Drivers/CMSIS/DSP/Source/FilteringFunctions | ../../../../../../../Drivers/CMSIS/DSP/Include | ../../../../../../../Drivers/BSP/Components/stts22h | ../../../../../../../Drivers/BSP/Components/s25fl128s | ../../Core/Src/vl53l0x || || || USE_STM32WB5M_DK | STM32WB5Mxx | USE_HAL_DRIVER || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || Size || || || None" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex.1311499757" name="Convert to Intel Hex file (-O ihex)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex" useByScannerDiscovery="false" value="true" valueType="boolean"/>
@@ -75,7 +75,7 @@
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.2101069904" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="STM32WL55MM_DK"/>
+ <listOptionValue builtIn="false" value="USE_STM32WB5M_DK"/>
<listOptionValue builtIn="false" value="STM32WB5Mxx"/>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/.project b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/.project
index fd5a9c2c5..bb7000239 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/.project
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/.project
@@ -31,6 +31,11 @@
</natures>
<linkedResources>
<link>
+ <name>BLE_Sensor.ioc</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/BLE_Sensor.ioc</locationURI>
+ </link>
+ <link>
<name>Doc/readme.txt</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/readme.txt</locationURI>
@@ -126,11 +131,6 @@
<locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pwr_ex.c</locationURI>
</link>
<link>
- <name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_qspi.c</name>
- <type>1</type>
- <locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_qspi.c</locationURI>
- </link>
- <link>
<name>Drivers/STM32WBxx_HAL_Driver/stm32wbxx_hal_rcc.c</name>
<type>1</type>
<locationURI>PARENT-6-PROJECT_LOC/Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rcc.c</locationURI>
@@ -301,6 +301,11 @@
<locationURI>PARENT-1-PROJECT_LOC/Core/Src/hw_timerserver.c</locationURI>
</link>
<link>
+ <name>Application/User/Core/hw_uart.c</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/Core/Src/hw_uart.c</locationURI>
+ </link>
+ <link>
<name>Application/User/Core/main.c</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/Core/Src/main.c</locationURI>
@@ -331,11 +336,6 @@
<locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/Components/ism330dhcx/ism330dhcx_reg.c</locationURI>
</link>
<link>
- <name>Drivers/BSP/Components/s25fl128s.c</name>
- <type>1</type>
- <locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/Components/s25fl128s/s25fl128s.c</locationURI>
- </link>
- <link>
<name>Drivers/BSP/Components/ssd1315.c</name>
<type>1</type>
<locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/Components/ssd1315/ssd1315.c</locationURI>
@@ -361,11 +361,6 @@
<locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk.c</locationURI>
</link>
<link>
- <name>Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_audio.c</name>
- <type>1</type>
- <locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_audio.c</locationURI>
- </link>
- <link>
<name>Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c</name>
<type>1</type>
<locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c</locationURI>
@@ -396,11 +391,6 @@
<locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_motion_sensors_ex.c</locationURI>
</link>
<link>
- <name>Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_qspi.c</name>
- <type>1</type>
- <locationURI>PARENT-6-PROJECT_LOC/Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_qspi.c</locationURI>
- </link>
- <link>
<name>Application/User/Core/vl53l0x/vl53l0x_api.c</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/Core/Src/vl53l0x/vl53l0x_api.c</locationURI>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
index 891ce5b9a..18f06244f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -14,13 +14,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
-* This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,7 +92,7 @@ LoopFillZerobss:
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
-/* Call the clock system intitialization function.*/
+/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
@@ -442,4 +441,3 @@ g_pfnVectors:
.weak DMAMUX1_OVR_IRQHandler
.thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/User/Core/syscalls.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/User/Core/syscalls.c
index bc0dd6c06..c921fd873 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/User/Core/syscalls.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/User/Core/syscalls.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
@@ -7,19 +7,18 @@
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <sys/stat.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/User/Core/sysmem.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/User/Core/sysmem.c
index d7cc52cd4..dda5abe79 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/User/Core/sysmem.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/Application/User/Core/sysmem.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
@@ -7,19 +7,18 @@
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <errno.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
index f0c35b387..04d57d8aa 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -15,30 +15,14 @@
** of any kind.
**
*****************************************************************************
+** @attention
**
-** <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
+** Copyright (c) 2019 STMicroelectronics.
+** All rights reserved.
**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-** 1. Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** 3. Neither the name of STMicroelectronics nor the names of its contributors
-** may be used to endorse or promote products derived from this software
-** without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
**
*****************************************************************************
*/
@@ -145,7 +129,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/app_ble.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/app_ble.c
index 8a00afc6c..e6967a0ac 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/app_ble.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/app_ble.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/app_ble.c
- * Description : Application file for BLE Middleware.
- *
- *****************************************************************************
+ ******************************************************************************
+ * @file app_ble.c
+ * @author MCD Application Team
+ * @brief BLE Application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -367,6 +366,12 @@ static void Connection_Interval_Update_Req( void );
/* USER CODE END PFP */
+/* External variables --------------------------------------------------------*/
+
+/* USER CODE BEGIN EV */
+
+/* USER CODE END EV */
+
/* Functions Definition ------------------------------------------------------*/
void APP_BLE_Init( void )
{
@@ -383,26 +388,27 @@ void APP_BLE_Init( void )
{
{{0,0,0}}, /**< Header unused */
{0, /** pBleBufferAddress not used */
- 0, /** BleBufferSize not used */
- CFG_BLE_NUM_GATT_ATTRIBUTES,
- CFG_BLE_NUM_GATT_SERVICES,
- CFG_BLE_ATT_VALUE_ARRAY_SIZE,
- CFG_BLE_NUM_LINK,
- CFG_BLE_DATA_LENGTH_EXTENSION,
- CFG_BLE_PREPARE_WRITE_LIST_SIZE,
- CFG_BLE_MBLOCK_COUNT,
- CFG_BLE_MAX_ATT_MTU,
- CFG_BLE_SLAVE_SCA,
- CFG_BLE_MASTER_SCA,
- CFG_BLE_LSE_SOURCE,
- CFG_BLE_MAX_CONN_EVENT_LENGTH,
- CFG_BLE_HSE_STARTUP_TIME,
- CFG_BLE_VITERBI_MODE,
- CFG_BLE_OPTIONS,
- 0,
- CFG_BLE_MAX_COC_INITIATOR_NBR,
- CFG_BLE_MIN_TX_POWER,
- CFG_BLE_MAX_TX_POWER}
+ 0, /** BleBufferSize not used */
+ CFG_BLE_NUM_GATT_ATTRIBUTES,
+ CFG_BLE_NUM_GATT_SERVICES,
+ CFG_BLE_ATT_VALUE_ARRAY_SIZE,
+ CFG_BLE_NUM_LINK,
+ CFG_BLE_DATA_LENGTH_EXTENSION,
+ CFG_BLE_PREPARE_WRITE_LIST_SIZE,
+ CFG_BLE_MBLOCK_COUNT,
+ CFG_BLE_MAX_ATT_MTU,
+ CFG_BLE_SLAVE_SCA,
+ CFG_BLE_MASTER_SCA,
+ CFG_BLE_LSE_SOURCE,
+ CFG_BLE_MAX_CONN_EVENT_LENGTH,
+ CFG_BLE_HSE_STARTUP_TIME,
+ CFG_BLE_VITERBI_MODE,
+ CFG_BLE_OPTIONS,
+ 0,
+ CFG_BLE_MAX_COC_INITIATOR_NBR,
+ CFG_BLE_MIN_TX_POWER,
+ CFG_BLE_MAX_TX_POWER,
+ CFG_BLE_RX_MODEL_CONFIG}
};
/**
@@ -502,7 +508,7 @@ void APP_BLE_Init( void )
Adv_Request(APP_BLE_FAST_ADV);
/* USER CODE BEGIN APP_BLE_Init_2 */
- /* Displays the board informations: MAC Address, Stack version, FUS version*/
+ /* Displays the board information: MAC Address, Stack version, FUS version*/
if (SHCI_GetWirelessFwInfo(p_wireless_info) != SHCI_Success)
{
// Error
@@ -765,7 +771,6 @@ static void Ble_Hci_Gap_Gatt_Init(void){
uint8_t role;
uint16_t gap_service_handle, gap_dev_name_char_handle, gap_appearance_char_handle;
const uint8_t *bd_addr;
- uint32_t srd_bd_addr[2];
uint16_t appearance[1] = { BLE_CFG_GAP_APPEARANCE };
/**
@@ -783,6 +788,7 @@ static void Ble_Hci_Gap_Gatt_Init(void){
CONFIG_DATA_PUBADDR_LEN,
(uint8_t*) bd_addr);
+#if (CFG_BLE_ADDRESS_TYPE == PUBLIC_ADDR)
/* BLE MAC in ADV Packet */
manuf_data[ sizeof(manuf_data)-6] = bd_addr[5];
manuf_data[ sizeof(manuf_data)-5] = bd_addr[4];
@@ -790,6 +796,7 @@ static void Ble_Hci_Gap_Gatt_Init(void){
manuf_data[ sizeof(manuf_data)-3] = bd_addr[2];
manuf_data[ sizeof(manuf_data)-2] = bd_addr[1];
manuf_data[ sizeof(manuf_data)-1] = bd_addr[0];
+#endif
/**
* Static random Address
@@ -797,19 +804,65 @@ static void Ble_Hci_Gap_Gatt_Init(void){
* The lowest 32bits is read from the UDN to differentiate between devices
* The RNG may be used to provide a random number on each power on
*/
- srd_bd_addr[1] = 0x0000ED6E;
- srd_bd_addr[0] = LL_FLASH_GetUDN( );
+#if defined(CFG_STATIC_RANDOM_ADDRESS)
+ srd_bd_addr[0] = CFG_STATIC_RANDOM_ADDRESS & 0xFFFFFFFF;
+ srd_bd_addr[1] = (uint32_t)((uint64_t)CFG_STATIC_RANDOM_ADDRESS >> 32);
+ srd_bd_addr[1] |= 0xC000; /* The two upper bits shall be set to 1 */
+#elif (CFG_BLE_ADDRESS_TYPE == RANDOM_ADDR)
+ /* Get RNG semaphore */
+ while( LL_HSEM_1StepLock( HSEM, CFG_HW_RNG_SEMID ) );
+
+ /* Enable RNG */
+ __HAL_RNG_ENABLE(&hrng);
+
+ /* Enable HSI48 oscillator */
+ LL_RCC_HSI48_Enable();
+ /* Wait until HSI48 is ready */
+ while( ! LL_RCC_HSI48_IsReady( ) );
+
+ if (HAL_RNG_GenerateRandomNumber(&hrng, &srd_bd_addr[1]) != HAL_OK)
+ {
+ /* Random number generation error */
+ Error_Handler();
+ }
+ if (HAL_RNG_GenerateRandomNumber(&hrng, &srd_bd_addr[0]) != HAL_OK)
+ {
+ /* Random number generation error */
+ Error_Handler();
+ }
+ srd_bd_addr[1] |= 0xC000; /* The two upper bits shall be set to 1 */
+
+ /* Disable HSI48 oscillator */
+ LL_RCC_HSI48_Disable();
+
+ /* Disable RNG */
+ __HAL_RNG_DISABLE(&hrng);
+
+ /* Release RNG semaphore */
+ LL_HSEM_ReleaseLock( HSEM, CFG_HW_RNG_SEMID, 0 );
+#endif
+
+#if (CFG_BLE_ADDRESS_TYPE == STATIC_RANDOM_ADDR)
+ /* BLE MAC in ADV Packet */
+ manuf_data[ sizeof(manuf_data)-6] = srd_bd_addr[1] >> 8 ;
+ manuf_data[ sizeof(manuf_data)-5] = srd_bd_addr[1];
+ manuf_data[ sizeof(manuf_data)-4] = srd_bd_addr[0] >> 24;
+ manuf_data[ sizeof(manuf_data)-3] = srd_bd_addr[0] >> 16;
+ manuf_data[ sizeof(manuf_data)-2] = srd_bd_addr[0] >> 8;
+ manuf_data[ sizeof(manuf_data)-1] = srd_bd_addr[0];
+
aci_hal_write_config_data( CONFIG_DATA_RANDOM_ADDRESS_OFFSET, CONFIG_DATA_RANDOM_ADDRESS_LEN, (uint8_t*)srd_bd_addr );
+#endif
/**
* Write Identity root key used to derive LTK and CSRK
*/
- aci_hal_write_config_data( CONFIG_DATA_IR_OFFSET, CONFIG_DATA_IR_LEN, (uint8_t*)BLE_CFG_IR_VALUE );
+ aci_hal_write_config_data( CONFIG_DATA_IR_OFFSET, CONFIG_DATA_IR_LEN, (uint8_t*)BLE_CFG_IR_VALUE );
- /**
+ /**
* Write Encryption root key used to derive LTK and CSRK
*/
- aci_hal_write_config_data( CONFIG_DATA_ER_OFFSET, CONFIG_DATA_ER_LEN, (uint8_t*)BLE_CFG_ER_VALUE );
+ aci_hal_write_config_data( CONFIG_DATA_ER_OFFSET, CONFIG_DATA_ER_LEN, (uint8_t*)BLE_CFG_ER_VALUE );
/**
* Set TX Power to 0dBm.
@@ -837,9 +890,16 @@ static void Ble_Hci_Gap_Gatt_Init(void){
if (role > 0)
{
const char *name = "WB5M DK";
- aci_gap_init(role, 0,
+ aci_gap_init(role,
+#if ((CFG_BLE_ADDRESS_TYPE == RESOLVABLE_PRIVATE_ADDR) || (CFG_BLE_ADDRESS_TYPE == NON_RESOLVABLE_PRIVATE_ADDR))
+ 2,
+#else
+ 0,
+#endif
APPBLE_GAP_DEVICE_NAME_LENGTH,
- &gap_service_handle, &gap_dev_name_char_handle, &gap_appearance_char_handle);
+ &gap_service_handle,
+ &gap_dev_name_char_handle,
+ &gap_appearance_char_handle);
if (aci_gatt_update_char_value(gap_service_handle, gap_dev_name_char_handle, 0, strlen(name), (uint8_t *) name))
{
@@ -884,7 +944,7 @@ static void Ble_Hci_Gap_Gatt_Init(void){
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMax,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Use_Fixed_Pin,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Fixed_Pin,
- PUBLIC_ADDR
+ CFG_BLE_ADDRESS_TYPE
);
/**
@@ -942,7 +1002,7 @@ static void Adv_Request(APP_BLE_ConnStatus_t New_Status)
ADV_IND,
Min_Inter,
Max_Inter,
- PUBLIC_ADDR,
+ CFG_BLE_ADDRESS_TYPE,
NO_WHITE_LIST_USE, /* use white list */
sizeof(local_name),
(uint8_t*) &local_name,
@@ -1175,6 +1235,8 @@ static void BLE_UserEvtRx( void * pPayload )
{
pParam->status = HCI_TL_UserEventFlow_Disable;
}
+
+ return;
}
static void BLE_StatusNot( HCI_TL_CmdStatus_t status )
@@ -1217,4 +1279,3 @@ void SVCCTL_ResumeUserEventFlow( void )
/* USER CODE BEGIN FD_WRAP_FUNCTIONS */
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/app_ble.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/app_ble.h
index 23d298bff..447ae8792 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/app_ble.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/app_ble.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/app_ble.h
- * Description : Application configuration file for BLE Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file app_ble.h
+ * @author MCD Application Team
+ * @brief Header for ble application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -81,5 +80,3 @@ void APP_BLE_Key_Button1_Action(void);
#endif
#endif /*APP_BLE_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/ble_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/ble_conf.h
index 77ace79d3..a4b917c4e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/ble_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/ble_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/ble_conf.h
- * Description : Configuration file for BLE Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file ble_conf.h
+ * @author MCD Application Team
+ * @brief Configuration file for BLE Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -69,4 +68,3 @@
#define BLE_CFG_OTA_REBOOT_CHAR 0/**< REBOOT OTA MODE CHARACTERISTIC */
#endif /*BLE_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/ble_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/ble_dbg_conf.h
index 7e393c676..91f670e3c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/ble_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/ble_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/ble_dbg_conf.h
- * Description : Debug configuration file for BLE Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file ble_dbg_conf.h
+ * @author MCD Application Team
+ * @brief Debug configuration file for BLE Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -197,5 +196,3 @@
#endif
#endif /*__BLE_DBG_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/env_server_app.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/env_server_app.c
index 1c316d98f..9fcc33290 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/env_server_app.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/env_server_app.c
@@ -1,20 +1,20 @@
/**
- ******************************************************************************
- * File Name : env_server_app.c
- * Description : Handle HW/Environmental Service/Char
- ******************************************************************************
+ ******************************************************************************
+ * File Name : env_server_app.c
+ * Description : Handle HW/Environmental Service/Char
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+
/* Includes ------------------------------------------------------------------*/
#include "app_common.h"
#include "ble.h"
@@ -231,4 +231,3 @@ static void EnvSensor_GetCaps(void)
}
}
- /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/env_server_app.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/env_server_app.h
index 00de406d7..4b9c04ee2 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/env_server_app.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/env_server_app.h
@@ -1,17 +1,16 @@
/**
- ******************************************************************************
- * File Name : env_server_app.h
- * Description : Handle HW/Environmental Service/Char
- ******************************************************************************
+ ******************************************************************************
+ * File Name : env_server_app.h
+ * Description : Handle HW/Environmental Service/Char
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -40,4 +39,3 @@ void ENV_Update(void);
#endif /* ENV_SERVER_APP_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motenv_server_app.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motenv_server_app.c
index b7e871957..07058a531 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motenv_server_app.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motenv_server_app.c
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : motenv_server_app.c
- * Description : MOTENV Server Application
- ******************************************************************************
+ ******************************************************************************
+ * File Name : motenv_server_app.c
+ * Description : MOTENV Server Application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -248,5 +247,4 @@ static void MOTENV_APP_context_Init(void)
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
/* USER CODE END UserCode */
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motenv_server_app.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motenv_server_app.h
index 35d67cb70..b060988e2 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motenv_server_app.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motenv_server_app.h
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : motenv_server_app.h
- * Description : MOTENV Server Application
- ******************************************************************************
+ ******************************************************************************
+ * File Name : motenv_server_app.h
+ * Description : MOTENV Server Application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -81,5 +80,4 @@ void MOTENV_APP_HandleDisconnection( void );
#endif /*__MOTENV_SERVER_APP_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
/* USER CODE END UserCode*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motion_server_app.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motion_server_app.c
index 0cea1fe23..7b1fcbf7f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motion_server_app.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motion_server_app.c
@@ -1,17 +1,16 @@
/**
- ******************************************************************************
- * File Name : motion_server_app.c
- * Description : Handle HW/Motion (Acc/Gyro/Mag) Service/Char
- ******************************************************************************
+ ******************************************************************************
+ * File Name : motion_server_app.c
+ * Description : Handle HW/Motion (Acc/Gyro/Mag) Service/Char
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -243,4 +242,3 @@ static void MOTION_GetCaps(void)
}
}
- /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motion_server_app.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motion_server_app.h
index 7bd6dccf6..d960ef7bf 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motion_server_app.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/motion_server_app.h
@@ -1,17 +1,16 @@
/**
- ******************************************************************************
- * File Name : motion_server_app.h
- * Description : Handle Motion (Acc/Gyro/Mag) Service
- ******************************************************************************
+ ******************************************************************************
+ * File Name : motion_server_app.h
+ * Description : Handle Motion (Acc/Gyro/Mag) Service
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -39,4 +38,3 @@ void MOTION_Send_Notification_Task(void);
#endif /* MOTION_SERVER_APP_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/p2p_server_app.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/p2p_server_app.c
index 184ef2074..00e692c12 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/p2p_server_app.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/p2p_server_app.c
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/p2p_server_app.c
- * Description : P2P Server Application
- ******************************************************************************
+ ******************************************************************************
+ * File Name : App/p2p_server_app.c
+ * Description : P2P Server Application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -45,7 +44,7 @@
typedef struct
{
- uint8_t Notification_Status; /* used to chek if P2P Server is enabled to Notify */
+ uint8_t Notification_Status; /* used to check if P2P Server is enabled to Notify */
P2P_LedCharValue_t LedControl;
P2P_ButtonCharValue_t ButtonControl;
uint16_t ConnectionHandle;
@@ -412,4 +411,3 @@ void P2PS_Send_Notification(void)
/* USER CODE END FD_LOCAL_FUNCTIONS*/
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/p2p_server_app.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/p2p_server_app.h
index 056e99139..ed1420bb0 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/p2p_server_app.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/p2p_server_app.h
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/p2p_server_app.h
- * Description : Header for p2p_server_app.c module
- ******************************************************************************
+ ******************************************************************************
+ * File Name : App/p2p_server_app.h
+ * Description : Header for p2p_server_app.c module
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -77,4 +76,3 @@ typedef struct
#endif /*__P2P_SERVER_APP_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/tl_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/tl_dbg_conf.h
index bd808a41b..04ed3d88d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/tl_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/tl_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/tl_dbg_conf.h
- * Description : Debug configuration file for stm32wpan transport layer interface.
- *
+ ******************************************************************************
+ * @file tl_dbg_conf.h
+ * @author MCD Application Team
+ * @brief Debug configuration file for stm32wpan transport layer interface.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -132,5 +131,3 @@ extern "C" {
#endif
#endif /*__TL_DBG_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/wb5m_sensor_stm.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/wb5m_sensor_stm.c
index 03af6601b..7dc7fc9cf 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/wb5m_sensor_stm.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/wb5m_sensor_stm.c
@@ -5,17 +5,16 @@
* @brief MOTENV Service (Custom STM)
******************************************************************************
* @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes ------------------------------------------------------------------*/
@@ -288,5 +287,3 @@ tBleStatus MOTENV_STM_App_Update_Char(uint16_t UUID, uint8_t payloadLen, uint8_t
return result;
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/wb5m_sensor_stm.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/wb5m_sensor_stm.h
index b80ceccfe..4cf6975f4 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/wb5m_sensor_stm.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/App/wb5m_sensor_stm.h
@@ -6,17 +6,16 @@
* @brief Header for motenv_stm.c module
******************************************************************************
* @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -87,5 +86,3 @@ tBleStatus MOTENV_STM_App_Update_Char(uint16_t UUID, uint8_t payloadLen, uint8_t
#endif
#endif /* MOTENV_STM_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/Target/hw_ipcc.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/Target/hw_ipcc.c
index afa62b179..9a37e5370 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/Target/hw_ipcc.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/STM32_WPAN/Target/hw_ipcc.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : Target/hw_ipcc.c
- * Description : Hardware IPCC source file for STM32WPAN Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file hw_ipcc.c
+ * @author MCD Application Team
+ * @brief Hardware IPCC source file for STM32WPAN Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -164,10 +163,6 @@ void HW_IPCC_Tx_Handler( void )
HW_IPCC_ZIGBEE_CmdEvtHandler();
}
#endif /* ZIGBEE_WB */
- else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
- {
- HW_IPCC_SYS_CmdEvtHandler();
- }
else if (HW_IPCC_TX_PENDING( HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ))
{
HW_IPCC_MM_FreeBufHandler();
@@ -672,4 +667,3 @@ static void HW_IPCC_TRACES_EvtHandler( void )
__weak void HW_IPCC_TRACES_EvtNot( void ){};
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/readme.txt b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/readme.txt
index dd0cb64b5..364013375 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_Sensor/readme.txt
@@ -8,20 +8,26 @@
* @brief Description of the BLE_Sensor application
******************************************************************************
*
- * Copyright (c) 2021 STMicroelectronics. All rights reserved.
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@endverbatim
@par Application Description
-This example is to demonstrate capabilities of STM32WB5MM Discovery Kit with the use of board sensors.
-Several demonstrations are available in this project : Environmental, Plot Data, LED Control, RSSI, Debug Console
+This example is to demonstrate capabilities of STM32WB5MM Discovery Kit with the use of board sensors.
+
+Several demonstrations are available in this project : Environmental, Plot Data, LED Control, RSSI, Debug Console.
+
+
+@par Keywords
+
+Connectivity, BLE, Sensors, IPCC, HSEM, RTC, UART, PWR, BLE protocol, BLE profile, Dual core
@par Directory contents
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/.extSettings b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/.extSettings
index 8bafa9b25..45631b545 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/.extSettings
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/.extSettings
@@ -1,8 +1,7 @@
[ProjectFiles]
HeaderPath=..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK;..\..\..\..\..\..\Drivers\BSP\Components\ssd1315;..\..\..\..\..\..\Drivers\BSP\Components\Common;..\..\..\..\..\..\Utilities\Fonts;..\..\..\..\..\..\Utilities\LCD;
[Others]
-Define=STM32WL55MM_DK
-HALModule=IPCC;
+Define=USE_STM32WB5M_DK
[Groups]
Drivers/BSP/STM32WB5MM-DK=../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_lcd.c;../../../../../../Drivers/BSP/Components/ssd1315/ssd1315.c;../../../../../../Drivers/BSP/Components/ssd1315/ssd1315_reg.c;
Doc=../readme.txt;
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/BLE_TransparentMode.ioc b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/BLE_TransparentMode.ioc
new file mode 100644
index 000000000..0499f7659
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/BLE_TransparentMode.ioc
@@ -0,0 +1,515 @@
+#MicroXplorer Configuration settings - do not modify
+Dma.Request0=USART1_TX
+Dma.RequestsNb=1
+Dma.USART1_TX.0.Direction=DMA_MEMORY_TO_PERIPH
+Dma.USART1_TX.0.EventEnable=DISABLE
+Dma.USART1_TX.0.Instance=DMA2_Channel4
+Dma.USART1_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART1_TX.0.MemInc=DMA_MINC_ENABLE
+Dma.USART1_TX.0.Mode=DMA_NORMAL
+Dma.USART1_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART1_TX.0.PeriphInc=DMA_PINC_DISABLE
+Dma.USART1_TX.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.USART1_TX.0.Priority=DMA_PRIORITY_LOW
+Dma.USART1_TX.0.RequestNumber=1
+Dma.USART1_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.USART1_TX.0.SignalID=NONE
+Dma.USART1_TX.0.SyncEnable=DISABLE
+Dma.USART1_TX.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.USART1_TX.0.SyncRequestNumber=1
+Dma.USART1_TX.0.SyncSignalID=NONE
+File.Version=6
+GPIO.groupedBy=Group By Peripherals
+I2C3.IPParameters=Timing
+I2C3.Timing=0x00707CBB
+KeepUserPlacement=false
+Mcu.Family=STM32WB
+Mcu.IP0=DMA
+Mcu.IP1=HSEM
+Mcu.IP10=STM32_WPAN
+Mcu.IP11=SYS
+Mcu.IP12=TIM17
+Mcu.IP13=TINY_LPM
+Mcu.IP14=USART1
+Mcu.IP2=I2C3
+Mcu.IP3=IPCC
+Mcu.IP4=NVIC
+Mcu.IP5=RCC
+Mcu.IP6=RF
+Mcu.IP7=RTC
+Mcu.IP8=SEQUENCER
+Mcu.IP9=SPI1
+Mcu.IPNb=15
+Mcu.Name=STM32WB5MMGHx
+Mcu.Package=LGA86
+Mcu.Pin0=PA2
+Mcu.Pin1=PA1
+Mcu.Pin10=PB5
+Mcu.Pin11=PB4
+Mcu.Pin12=PB3
+Mcu.Pin13=PC10
+Mcu.Pin14=PC11
+Mcu.Pin15=PC12
+Mcu.Pin16=PA13
+Mcu.Pin17=PA14
+Mcu.Pin18=PA15
+Mcu.Pin19=PA10
+Mcu.Pin2=PA0
+Mcu.Pin20=PA12
+Mcu.Pin21=PA11
+Mcu.Pin22=PD0
+Mcu.Pin23=PD1
+Mcu.Pin24=PB13
+Mcu.Pin25=PC6
+Mcu.Pin26=PB14
+Mcu.Pin27=PB15
+Mcu.Pin28=PB6
+Mcu.Pin29=PC13
+Mcu.Pin3=PC3
+Mcu.Pin30=PB12
+Mcu.Pin31=PE4
+Mcu.Pin32=PC5
+Mcu.Pin33=PB11
+Mcu.Pin34=PB10
+Mcu.Pin35=PB2
+Mcu.Pin36=PC4
+Mcu.Pin37=PA8
+Mcu.Pin38=PA9
+Mcu.Pin39=PA7
+Mcu.Pin4=PC2
+Mcu.Pin40=PA6
+Mcu.Pin41=PA5
+Mcu.Pin42=PA4
+Mcu.Pin43=PA3
+Mcu.Pin44=PH0
+Mcu.Pin45=PH1
+Mcu.Pin46=PD14
+Mcu.Pin47=PE1
+Mcu.Pin48=PD13
+Mcu.Pin49=PD12
+Mcu.Pin5=PC1
+Mcu.Pin50=PD2
+Mcu.Pin51=PC9
+Mcu.Pin52=PD3
+Mcu.Pin53=PC7
+Mcu.Pin54=PE3
+Mcu.Pin55=PD4
+Mcu.Pin56=PD9
+Mcu.Pin57=PD8
+Mcu.Pin58=PD15
+Mcu.Pin59=PD10
+Mcu.Pin6=PB9
+Mcu.Pin60=PE2
+Mcu.Pin61=PE0
+Mcu.Pin62=PD5
+Mcu.Pin63=PD6
+Mcu.Pin64=PD11
+Mcu.Pin65=PC8
+Mcu.Pin66=VP_HSEM_VS_HSEM
+Mcu.Pin67=VP_IPCC_VS_IPCC
+Mcu.Pin68=VP_RCC_V_OSC_IN
+Mcu.Pin69=VP_RCC_V_OSC32_IN
+Mcu.Pin7=PC0
+Mcu.Pin70=VP_RF_VS_RF
+Mcu.Pin71=VP_RTC_VS_RTC_Activate
+Mcu.Pin72=VP_SEQUENCER_VS_SEQUENCER
+Mcu.Pin73=VP_STM32_WPAN_VS_BLE_HOST
+Mcu.Pin74=VP_SYS_VS_Systick
+Mcu.Pin75=VP_TIM17_VS_ClockSourceINT
+Mcu.Pin76=VP_TINY_LPM_VS_TINY_LPM
+Mcu.Pin8=PB8
+Mcu.Pin9=PB7
+Mcu.PinsNb=77
+Mcu.ThirdPartyNb=0
+Mcu.UserConstants=
+Mcu.UserName=STM32WB5MMGHx
+MxCube.Version=6.4.0
+MxDb.Version=DB.6.0.40
+NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.DMA2_Channel4_IRQn=true\:15\:0\:true\:false\:true\:false\:true
+NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.ForceEnableDMAVector=true
+NVIC.HSEM_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
+NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+PA0.Locked=true
+PA0.Signal=ADCx_IN5
+PA1.Locked=true
+PA1.Mode=Full_Duplex_Master
+PA1.Signal=SPI1_SCK
+PA10.Locked=true
+PA10.Signal=I2C1_SDA
+PA11.GPIOParameters=GPIO_Label
+PA11.GPIO_Label=USB_N
+PA11.Locked=true
+PA11.Signal=USB_DM
+PA12.GPIOParameters=GPIO_Label
+PA12.GPIO_Label=USB_P
+PA12.Locked=true
+PA12.Signal=USB_DP
+PA13.GPIOParameters=GPIO_Label
+PA13.GPIO_Label=T_SWDIO
+PA13.Locked=true
+PA13.Signal=SYS_JTMS-SWDIO
+PA14.GPIOParameters=GPIO_Label
+PA14.GPIO_Label=T_SWCLK
+PA14.Locked=true
+PA14.Signal=SYS_JTCK-SWCLK
+PA15.Locked=true
+PA15.Signal=S_TIM2_CH1
+PA2.Locked=true
+PA2.Signal=ADCx_IN7
+PA3.GPIOParameters=GPIO_Label
+PA3.GPIO_Label=QSPI_BK_SCK
+PA3.Locked=true
+PA3.Signal=QUADSPI_CLK
+PA4.Locked=true
+PA4.Signal=SPI1_NSS
+PA5.Locked=true
+PA5.Signal=ADCx_IN10
+PA6.Locked=true
+PA6.Signal=LPUART1_CTS
+PA7.Locked=true
+PA7.Mode=Full_Duplex_Master
+PA7.Signal=SPI1_MOSI
+PA8.GPIOParameters=GPIO_Label
+PA8.GPIO_Label=SAI1_CK2
+PA8.Locked=true
+PA8.Signal=SAI1_CK2
+PA9.GPIOParameters=GPIO_Label
+PA9.GPIO_Label=SAI1_D2
+PA9.Locked=true
+PA9.Signal=SAI1_D2
+PB10.Locked=true
+PB10.Signal=S_TIM2_CH3
+PB11.GPIOParameters=GPIO_Label
+PB11.GPIO_Label=I2C3_SDA
+PB11.Locked=true
+PB11.Mode=I2C
+PB11.Signal=I2C3_SDA
+PB12.Locked=true
+PB12.Signal=LPUART1_RTS
+PB13.GPIOParameters=GPIO_Label
+PB13.GPIO_Label=I2C3_SCL
+PB13.Locked=true
+PB13.Mode=I2C
+PB13.Signal=I2C3_SCL
+PB14.Locked=true
+PB14.Signal=SPI2_MISO
+PB15.Locked=true
+PB15.Signal=SPI2_MOSI
+PB2.Locked=true
+PB2.Signal=GPIO_Input
+PB3.GPIOParameters=GPIO_Label
+PB3.GPIO_Label=T_SWO
+PB3.Locked=true
+PB3.Signal=SYS_JTDO-SWO
+PB4.Locked=true
+PB4.Mode=Full_Duplex_Master
+PB4.Signal=SPI1_MISO
+PB5.GPIOParameters=GPIO_Label
+PB5.GPIO_Label=LPUART1_TX_MCU
+PB5.Locked=true
+PB5.Signal=LPUART1_TX
+PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
+PB6.GPIO_Label=VCP_TX
+PB6.GPIO_PuPd=GPIO_PULLUP
+PB6.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB6.Locked=true
+PB6.Mode=Asynchronous
+PB6.Signal=USART1_TX
+PB7.GPIOParameters=GPIO_ModeDefaultPP,GPIO_Speed,GPIO_PuPd,GPIO_Label
+PB7.GPIO_Label=VCP_RX
+PB7.GPIO_ModeDefaultPP=GPIO_MODE_AF_PP
+PB7.GPIO_PuPd=GPIO_PULLUP
+PB7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB7.Locked=true
+PB7.Mode=Asynchronous
+PB7.Signal=USART1_RX
+PB8.Locked=true
+PB8.Signal=I2C1_SCL
+PB9.GPIOParameters=GPIO_Label
+PB9.GPIO_Label=QSPI_BK_IO0
+PB9.Locked=true
+PB9.Signal=QUADSPI_BK1_IO0
+PC0.GPIOParameters=GPIO_Label
+PC0.GPIO_Label=LPUART1_RX_MCU
+PC0.Locked=true
+PC0.Signal=LPUART1_RX
+PC1.Locked=true
+PC1.Signal=ADCx_IN2
+PC10.Locked=true
+PC10.Signal=GPIO_Input
+PC11.Locked=true
+PC11.Signal=GPIO_Input
+PC12.GPIOParameters=GPIO_Label
+PC12.GPIO_Label=User-B1
+PC12.Locked=true
+PC12.Signal=SYS_WKUP3
+PC13.GPIOParameters=GPIO_Label
+PC13.GPIO_Label=User-B2
+PC13.Locked=true
+PC13.Signal=SYS_WKUP2
+PC2.Locked=true
+PC2.Signal=GPIO_Input
+PC3.Locked=true
+PC3.Signal=ADCx_IN4
+PC4.Locked=true
+PC4.Signal=ADCx_IN13
+PC5.Locked=true
+PC5.Signal=ADCx_IN14
+PC6.GPIOParameters=GPIO_Label
+PC6.GPIO_Label=TSC_G4_IO1
+PC6.Locked=true
+PC6.Signal=TSC_G4_IO1
+PC7.GPIOParameters=GPIO_Label
+PC7.GPIO_Label=TSC_G4_IO2
+PC7.Locked=true
+PC7.Signal=TSC_G4_IO2
+PC8.GPIOParameters=GPIO_Label
+PC8.GPIO_Label=RST_DISP
+PC8.Locked=true
+PC8.Signal=GPIO_Output
+PC9.GPIOParameters=GPIO_Label
+PC9.GPIO_Label=D/C_DISP
+PC9.Locked=true
+PC9.Signal=GPIO_Output
+PCC.Ble.ConnectionInterval=1000.0
+PCC.Ble.DataLength=6
+PCC.Ble.IsUsed=false
+PCC.Ble.Mode=NOT_SELECTED
+PCC.Ble.PowerLevel=Min
+PCC.Zigbee.IsUsed=false
+PCC.Zigbee.Mode=Sleepy End Device
+PCC.Zigbee.Payload=15
+PCC.Zigbee.PoolPeriodicity=480.0
+PCC.Zigbee.PowerLevel=Min
+PCC.Zigbee.RequestPeriodicity=1500.0
+PD0.Locked=true
+PD0.Signal=SPI2_NSS
+PD1.Locked=true
+PD1.Signal=SPI2_SCK
+PD10.GPIOParameters=GPIO_Label
+PD10.GPIO_Label=TSC_G6_IO1
+PD10.Locked=true
+PD10.Signal=TSC_G6_IO1
+PD11.GPIOParameters=GPIO_Label
+PD11.GPIO_Label=TSC_G6_IO2
+PD11.Locked=true
+PD11.Signal=TSC_G6_IO2
+PD12.Locked=true
+PD12.Signal=GPIO_Input
+PD13.Locked=true
+PD13.Signal=GPIO_Input
+PD14.Locked=true
+PD14.Signal=S_TIM1_CH1
+PD15.Locked=true
+PD15.Signal=S_TIM1_CH2
+PD2.GPIOParameters=GPIO_Label
+PD2.GPIO_Label=INT1
+PD2.Locked=true
+PD2.Signal=GPXTI2
+PD3.GPIOParameters=GPIO_Label
+PD3.GPIO_Label=QSPI_BK_NCS
+PD3.Locked=true
+PD3.Signal=QUADSPI_BK1_NCS
+PD4.Locked=true
+PD4.Signal=GPIO_Input
+PD5.GPIOParameters=GPIO_Label
+PD5.GPIO_Label=QSPI_BK_IO1
+PD5.Locked=true
+PD5.Signal=QUADSPI_BK1_IO1
+PD6.GPIOParameters=GPIO_Label
+PD6.GPIO_Label=QSPI_BK_IO2
+PD6.Locked=true
+PD6.Signal=QUADSPI_BK1_IO2
+PD8.Locked=true
+PD8.Signal=GPIO_Output
+PD9.GPIOParameters=GPIO_Label
+PD9.GPIO_Label=INT2
+PD9.Locked=true
+PD9.Signal=GPXTI9
+PE0.Locked=true
+PE0.Signal=S_TIM16_CH1
+PE1.GPIOParameters=GPIO_Label
+PE1.GPIO_Label=DRDY
+PE1.Locked=true
+PE1.Signal=GPIO_Input
+PE2.GPIOParameters=GPIO_Label
+PE2.GPIO_Label=GPIO_SELECT1
+PE2.Locked=true
+PE2.Signal=GPIO_Output
+PE3.Locked=true
+PE3.Signal=GPXTI3
+PE4.Locked=true
+PE4.Signal=GPIO_Input
+PH0.GPIOParameters=GPIO_Label
+PH0.GPIO_Label=CS_DISP
+PH0.Locked=true
+PH0.Signal=GPIO_Output
+PH1.GPIOParameters=GPIO_Label
+PH1.GPIO_Label=GPIO_SELECT2
+PH1.Locked=true
+PH1.Signal=GPIO_Output
+PinOutPanel.CurrentBGAView=Top
+PinOutPanel.RotationAngle=0
+ProjectManager.AskForMigrate=true
+ProjectManager.BackupPrevious=false
+ProjectManager.CompilerOptimize=6
+ProjectManager.ComputerToolchain=false
+ProjectManager.CoupleFile=false
+ProjectManager.DeletePrevious=true
+ProjectManager.DeviceId=STM32WB5MMGHx
+ProjectManager.FreePins=false
+ProjectManager.HalAssertFull=false
+ProjectManager.HeapSize=0x400
+ProjectManager.KeepUserCode=true
+ProjectManager.LastFirmware=false
+ProjectManager.LibraryCopy=2
+ProjectManager.MainLocation=Core/Src
+ProjectManager.NoMain=false
+ProjectManager.PreviousToolchain=
+ProjectManager.ProjectBuild=false
+ProjectManager.ProjectFileName=BLE_TransparentMode.ioc
+ProjectManager.ProjectName=BLE_TransparentMode
+ProjectManager.RegisterCallBack=
+ProjectManager.StackSize=0x1000
+ProjectManager.TargetToolchain=EWARM V8
+ProjectManager.ToolChainLocation=
+ProjectManager.UnderRoot=false
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_RF_Init-RF-false-HAL-true,5-MX_RTC_Init-RTC-false-HAL-true,false-6-MX_TIM17_Init-TIM17-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-false,8-APPE_Init-STM32_WPAN-false-HAL-false,false-9-MX_I2C3_Init-I2C3-false-HAL-true,false-10-MX_SPI1_Init-SPI1-false-HAL-true,11-MX_IPCC_Init-IPCC-false-HAL-true,0-MX_HSEM_Init-HSEM-false-HAL-true
+RCC.AHBFreq_Value=32000000
+RCC.APB1Freq_Value=32000000
+RCC.APB1TimFreq_Value=32000000
+RCC.APB2Freq_Value=32000000
+RCC.APB2TimFreq_Value=32000000
+RCC.APB3Freq_Value=16000000
+RCC.Cortex2Freq_Value=32000000
+RCC.CortexFreq_Value=32000000
+RCC.FCLK2Freq_Value=32000000
+RCC.FCLKCortexFreq_Value=32000000
+RCC.FamilyName=M
+RCC.HCLK2Freq_Value=32000000
+RCC.HCLK3Freq_Value=32000000
+RCC.HCLKFreq_Value=32000000
+RCC.HCLKRFFreq_Value=16000000
+RCC.HSE_VALUE=32000000
+RCC.HSI48_VALUE=48000000
+RCC.HSI_VALUE=16000000
+RCC.I2C1Freq_Value=32000000
+RCC.I2C3Freq_Value=32000000
+RCC.IPParameters=AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,Cortex2Freq_Value,CortexFreq_Value,FCLK2Freq_Value,FCLKCortexFreq_Value,FamilyName,HCLK2Freq_Value,HCLK3Freq_Value,HCLKFreq_Value,HCLKRFFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C3Freq_Value,LCDFreq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PWRFreq_Value,RFWKPClockSelection,RFWKPFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SMPS1Freq_Value,SMPSCLockSelectionVirtual,SMPSFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value
+RCC.LCDFreq_Value=32768
+RCC.LPTIM1Freq_Value=32000000
+RCC.LPTIM2Freq_Value=32000000
+RCC.LPUART1Freq_Value=32000000
+RCC.LSCOPinFreq_Value=32000
+RCC.LSI_VALUE=32000
+RCC.MCO1PinFreq_Value=32000000
+RCC.PLLPoutputFreq_Value=16000000
+RCC.PLLQoutputFreq_Value=16000000
+RCC.PLLRCLKFreq_Value=16000000
+RCC.PLLSAI1PoutputFreq_Value=16000000
+RCC.PLLSAI1QoutputFreq_Value=16000000
+RCC.PLLSAI1RoutputFreq_Value=16000000
+RCC.PWRFreq_Value=32000000
+RCC.RFWKPClockSelection=RCC_RFWKPCLKSOURCE_LSE
+RCC.RFWKPFreq_Value=32768
+RCC.RNGFreq_Value=32000
+RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE
+RCC.RTCFreq_Value=32768
+RCC.SAI1Freq_Value=16000000
+RCC.SMPS1Freq_Value=16000000
+RCC.SMPSCLockSelectionVirtual=RCC_SMPSCLKSOURCE_HSE
+RCC.SMPSFreq_Value=8000000
+RCC.SYSCLKFreq_VALUE=32000000
+RCC.SYSCLKSource=RCC_SYSCLKSOURCE_HSE
+RCC.USART1Freq_Value=32000000
+RCC.VCOInputFreq_Value=4000000
+RCC.VCOOutputFreq_Value=32000000
+RCC.VCOSAI1OutputFreq_Value=32000000
+SH.ADCx_IN10.0=ADC1_IN10
+SH.ADCx_IN10.ConfNb=1
+SH.ADCx_IN13.0=ADC1_IN13
+SH.ADCx_IN13.ConfNb=1
+SH.ADCx_IN14.0=ADC1_IN14
+SH.ADCx_IN14.ConfNb=1
+SH.ADCx_IN2.0=ADC1_IN2
+SH.ADCx_IN2.ConfNb=1
+SH.ADCx_IN4.0=ADC1_IN4
+SH.ADCx_IN4.ConfNb=1
+SH.ADCx_IN5.0=ADC1_IN5
+SH.ADCx_IN5.ConfNb=1
+SH.ADCx_IN7.0=ADC1_IN7
+SH.ADCx_IN7.ConfNb=1
+SH.GPXTI2.0=GPIO_EXTI2
+SH.GPXTI2.ConfNb=1
+SH.GPXTI3.0=GPIO_EXTI3
+SH.GPXTI3.ConfNb=1
+SH.GPXTI9.0=GPIO_EXTI9
+SH.GPXTI9.ConfNb=1
+SH.S_TIM16_CH1.0=TIM16_CH1
+SH.S_TIM16_CH1.ConfNb=1
+SH.S_TIM1_CH1.0=TIM1_CH1
+SH.S_TIM1_CH1.ConfNb=1
+SH.S_TIM1_CH2.0=TIM1_CH2
+SH.S_TIM1_CH2.ConfNb=1
+SH.S_TIM2_CH1.0=TIM2_CH1
+SH.S_TIM2_CH1.ConfNb=1
+SH.S_TIM2_CH3.0=TIM2_CH3
+SH.S_TIM2_CH3.ConfNb=1
+SPI1.CalculateBaudRate=16.0 MBits/s
+SPI1.Direction=SPI_DIRECTION_2LINES
+SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
+SPI1.Mode=SPI_MODE_MASTER
+SPI1.VirtualType=VM_MASTER
+STM32_WPAN.BLE_APPLICATION_TYPE=TRANSPARENT_MODE
+STM32_WPAN.BLE_CFG_SVC_MAX_NBR_CB=7
+STM32_WPAN.CFG_ADV_BD_ADDRESS=0x7257acd87a6c
+STM32_WPAN.CFG_BONDING_MODE=1
+STM32_WPAN.CFG_DEBUGGER_SUPPORTED=1
+STM32_WPAN.CFG_DEBUG_APP_TRACE=1
+STM32_WPAN.CFG_DEBUG_BLE_TRACE=1
+STM32_WPAN.CFG_DEBUG_TRACE_LIGHT=1
+STM32_WPAN.CFG_HW_LPUART1_ENABLED=1
+STM32_WPAN.CFG_HW_USART1_ENABLED=1
+STM32_WPAN.CFG_LPM_SUPPORTED=0
+STM32_WPAN.CFG_UART_GUI=hw_uart1
+STM32_WPAN.CFG_USE_SMPS=0
+STM32_WPAN.IPParameters=BLE_CFG_SVC_MAX_NBR_CB,CFG_HW_USART1_ENABLED,CFG_DEBUGGER_SUPPORTED,CFG_LPM_SUPPORTED,CFG_ADV_BD_ADDRESS,CFG_BONDING_MODE,CFG_DEBUG_TRACE_LIGHT,CFG_DEBUG_BLE_TRACE,CFG_DEBUG_APP_TRACE,CFG_USE_SMPS,BLE_APPLICATION_TYPE,CFG_HW_LPUART1_ENABLED,CFG_UART_GUI
+USART1.IPParameters=VirtualMode-Asynchronous,OverSampling
+USART1.OverSampling=UART_OVERSAMPLING_8
+USART1.VirtualMode-Asynchronous=VM_ASYNC
+VP_HSEM_VS_HSEM.Mode=HSEM_Activate
+VP_HSEM_VS_HSEM.Signal=HSEM_VS_HSEM
+VP_IPCC_VS_IPCC.Mode=IPCC_Activate
+VP_IPCC_VS_IPCC.Signal=IPCC_VS_IPCC
+VP_RCC_V_OSC32_IN.Mode=LSE-External-Clock-Source
+VP_RCC_V_OSC32_IN.Signal=RCC_V_OSC32_IN
+VP_RCC_V_OSC_IN.Mode=HSE-External-Clock-Source
+VP_RCC_V_OSC_IN.Signal=RCC_V_OSC_IN
+VP_RF_VS_RF.Mode=RF_Activate
+VP_RF_VS_RF.Signal=RF_VS_RF
+VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
+VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
+VP_SEQUENCER_VS_SEQUENCER.Mode=SEQUENCER_Enabled
+VP_SEQUENCER_VS_SEQUENCER.Signal=SEQUENCER_VS_SEQUENCER
+VP_STM32_WPAN_VS_BLE_HOST.Mode=STM32_WPAN_Enabled
+VP_STM32_WPAN_VS_BLE_HOST.Signal=STM32_WPAN_VS_BLE_HOST
+VP_SYS_VS_Systick.Mode=SysTick
+VP_SYS_VS_Systick.Signal=SYS_VS_Systick
+VP_TIM17_VS_ClockSourceINT.Mode=Enable_Timer
+VP_TIM17_VS_ClockSourceINT.Signal=TIM17_VS_ClockSourceINT
+VP_TINY_LPM_VS_TINY_LPM.Mode=TINY_LPM_Enabled
+VP_TINY_LPM_VS_TINY_LPM.Signal=TINY_LPM_VS_TINY_LPM
+board=STM32WB5MM-DK
+boardIOC=true
+ProjectManager.Example=BLE_TransparentMode
+ProjectManager.ExampleSource=CubeFw
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_common.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_common.h
index 3981eb9da..62e8ad603 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_common.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_common.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_common.h
- * Description : App Common application configuration file for STM32WPAN Middleware.
- *
+ ******************************************************************************
+ * @file app_common.h
+ * @author MCD Application Team
+ * @brief App Common application configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -115,5 +114,3 @@ extern "C"{
#endif
#endif /*APP_COMMON_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_conf.h
index f47fedf5e..91c8b45f6 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_conf.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_conf.h
- * Description : Application configuration file for STM32WPAN Middleware.
+ ******************************************************************************
+ * @file app_conf.h
+ * @author MCD Application Team
+ * @brief Application configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -31,9 +31,6 @@
* Application Config
******************************************************************************/
-#define CFG_BLE_ADDRESS_TYPE RANDOM_ADDR /**< Bluetooth address types defined in ble_legacy.h */
-/*#define CFG_STATIC_RANDOM_ADDRESS (0xf257acd87a6c)*/ /**< Static Random Address fixed for lifetime of the device */
-
/**
* Define Secure Connections Support
*/
@@ -219,6 +216,10 @@
* - SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC
* - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RO
* - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW
+ * - SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV
+ * - SHCI_C2_BLE_INIT_OPTIONS_CS_ALGO2
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2
* - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_1
* - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3
* which are used to set following configuration bits:
@@ -228,11 +229,15 @@
* 0: with service change desc.
* (bit 2): 1: device name Read-Only
* 0: device name R/W
+ * (bit 3): 1: extended advertizing supported [NOT SUPPORTED]
+ * 0: extended advertizing not supported [NOT SUPPORTED]
+ * (bit 4): 1: CS Algo #2 supported
+ * 0: CS Algo #2 not supported
* (bit 7): 1: LE Power Class 1
* 0: LE Power Class 2-3
* other bits: reserved (shall be set to 0)
*/
-#define CFG_BLE_OPTIONS (SHCI_C2_BLE_INIT_OPTIONS_LL_HOST | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
+#define CFG_BLE_OPTIONS (SHCI_C2_BLE_INIT_OPTIONS_LL_HOST | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV | SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2 | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
#define CFG_BLE_MAX_COC_INITIATOR_NBR (32)
@@ -240,6 +245,18 @@
#define CFG_BLE_MAX_TX_POWER (0)
+/**
+ * BLE Rx model configuration flags to be configured with:
+ * - SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_LEGACY
+ * - SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_BLOCKER
+ * which are used to set following configuration bits:
+ * (bit 0): 1: agc_rssi model improved vs RF blockers
+ * 0: Legacy agc_rssi model
+ * other bits: reserved (shall be set to 0)
+ */
+
+#define CFG_BLE_RX_MODEL_CONFIG SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_LEGACY
+
/******************************************************************************
* Transport Layer
******************************************************************************/
@@ -387,8 +404,9 @@
#endif
-/** tick timer value in us */
+/** tick timer values */
#define CFG_TS_TICK_VAL DIVR( (CFG_RTCCLK_DIV * 1000000), LSE_VALUE )
+#define CFG_TS_TICK_VAL_PS DIVR( ((uint64_t)CFG_RTCCLK_DIV * 1e12), (uint64_t)LSE_VALUE )
typedef enum
{
@@ -507,10 +525,10 @@ typedef enum
CFG_TASK_HCI_ACL_DATA_ID,
CFG_TASK_SYS_LOCAL_CMD_ID,
CFG_TASK_TX_TO_HOST_ID,
-/* USER CODE BEGIN CFG_Task_Id_With_HCI_Cmd_t */
- CFG_TASK_SW_BUTTON_PUSHED_ID,
+ /* USER CODE BEGIN CFG_Task_Id_With_HCI_Cmd_t */
+ CFG_TASK_SW_BUTTON_PUSHED_ID,
-/* USER CODE END CFG_Task_Id_With_HCI_Cmd_t */
+ /* USER CODE END CFG_Task_Id_With_HCI_Cmd_t */
CFG_LAST_TASK_ID_WITH_HCICMD, /**< Shall be LAST in the list */
} CFG_Task_Id_With_HCI_Cmd_t;
@@ -519,11 +537,12 @@ typedef enum
{
CFG_FIRST_TASK_ID_WITH_NO_HCICMD = CFG_LAST_TASK_ID_WITH_HCICMD - 1, /**< Shall be FIRST in the list */
CFG_TASK_SYSTEM_HCI_ASYNCH_EVT_ID,
-/* USER CODE BEGIN CFG_Task_Id_With_NO_HCI_Cmd_t */
+ /* USER CODE BEGIN CFG_Task_Id_With_NO_HCI_Cmd_t */
-/* USER CODE END CFG_Task_Id_With_NO_HCI_Cmd_t */
+ /* USER CODE END CFG_Task_Id_With_NO_HCI_Cmd_t */
CFG_LAST_TASK_ID_WITHO_NO_HCICMD /**< Shall be LAST in the list */
} CFG_Task_Id_With_NO_HCI_Cmd_t;
+
#define CFG_TASK_NBR CFG_LAST_TASK_ID_WITHO_NO_HCICMD
/**
@@ -555,9 +574,9 @@ typedef enum
{
CFG_LPM_APP,
CFG_LPM_APP_BLE,
- /* USER CODE BEGIN CFG_LPM_Id_t */
+ /* USER CODE BEGIN CFG_LPM_Id_t */
- /* USER CODE END CFG_LPM_Id_t */
+ /* USER CODE END CFG_LPM_Id_t */
} CFG_LPM_Id_t;
/******************************************************************************
@@ -568,5 +587,3 @@ typedef enum
#define CFG_OTP_END_ADRESS OTP_AREA_END_ADDR
#endif /*APP_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_debug.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_debug.h
index 9354bf8a9..9237f301f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_debug.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_debug.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_debug.h
- * Description : Header for app_debug.c module
- ******************************************************************************
+ ******************************************************************************
+ * @file app_debug.h
+ * @author MCD Application Team
+ * @brief Header for app_debug.c module
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -65,5 +65,3 @@ extern "C" {
#endif
#endif /*__APP_DEBUG_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_entry.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_entry.h
index f559a7d8e..752734d7e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_entry.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/app_entry.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_entry.h
- * Description : App entry configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ ******************************************************************************
+ * @file app_entry.h
+ * @author MCD Application Team
+ * @brief Interface to the application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -60,6 +60,9 @@ extern "C" {
void MX_APPE_Config( void );
void MX_APPE_Init( void );
void MX_APPE_Process( void );
+ void Init_Exti( void );
+ void Init_Smps( void );
+
/* USER CODE BEGIN EF */
void LED_Deinit(void);
void LED_On(aPwmLedGsData_TypeDef aPwmLedGsData);
@@ -71,5 +74,3 @@ extern "C" {
#endif
#endif /*APP_ENTRY_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/hw_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/hw_conf.h
index 9ea733a63..cc426a452 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/hw_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/hw_conf.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : hw_conf.h
- * Description : Hardware configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ ******************************************************************************
+ * @file hw_conf.h
+ * @author MCD Application Team
+ * @brief Configuration of hardware interface
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -210,5 +210,3 @@
#define CFG_HW_USART1_DMA_TX_IRQHandler DMA2_Channel4_IRQHandler
#endif /*HW_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/hw_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/hw_if.h
index 8d481bc18..8394a102b 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/hw_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/hw_if.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -147,7 +146,7 @@ extern "C" {
* @param pTimerId: Timer Id returned to the user to request operation (start, stop, delete)
* @param TimerMode: Mode of the virtual timer (Single shot or repeated)
* @param pTimerCallBack: Callback when the virtual timer expires
- * @retval HW_TS_ReturnStatus_t: Return whether the creation is sucessful or not
+ * @retval HW_TS_ReturnStatus_t: Return whether the creation is successful or not
*/
HW_TS_ReturnStatus_t HW_TS_Create(uint32_t TimerProcessID, uint8_t *pTimerId, HW_TS_Mode_t TimerMode, HW_TS_pTimerCb_t pTimerCallBack);
@@ -246,5 +245,3 @@ extern "C" {
#endif
#endif /*HW_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/main.h
index 8891ce567..613df2d6c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/main.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/main.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -144,5 +143,3 @@ void MX_USART1_UART_Init(void);
#endif
#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32_lpm_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32_lpm_if.h
index e1aecd591..45c31caa5 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32_lpm_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32_lpm_if.h
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
-******************************************************************************
-* @file stm32_lpm_if.h
-* @brief Header for stm32_lpm_if.c module (device specific LP management)
-******************************************************************************
-* @attention
-*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @file stm32_lpm_if.h
+ * @author MCD Application Team
+ * @brief Header for stm32_lpm_if.c module (device specific LP management)
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -77,5 +77,3 @@ void PWR_ExitSleepMode( void );
#endif
#endif /*__STM32_LPM_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wb5mm_dk_conf.h
index 12589916a..9aefd8c2d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wb5mm_dk_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wb5mm_dk_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -92,5 +91,3 @@ extern "C" {
#endif
#endif /* STM32WB5MM_DK_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wbxx_hal_conf.h
index 291c8a9e9..0de7f34ea 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wbxx_hal_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wbxx_hal_conf.h
@@ -1,3 +1,4 @@
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32wbxx_hal_conf.h
@@ -6,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32WBxx_HAL_CONF_H
@@ -46,7 +47,7 @@
/*#define HAL_LPTIM_MODULE_ENABLED */
/*#define HAL_PCD_MODULE_ENABLED */
/*#define HAL_PKA_MODULE_ENABLED */
-#define HAL_QSPI_MODULE_ENABLED
+/*#define HAL_QSPI_MODULE_ENABLED */
/*#define HAL_RNG_MODULE_ENABLED */
#define HAL_RTC_MODULE_ENABLED
/*#define HAL_SAI_MODULE_ENABLED */
@@ -349,5 +350,3 @@
#endif
#endif /* __STM32WBxx_HAL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wbxx_it.h
index 8fac8fb82..8f1edd8c4 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wbxx_it.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/stm32wbxx_it.h
@@ -6,15 +6,14 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
+ ******************************************************************************
*/
/* USER CODE END Header */
@@ -72,5 +71,3 @@ void PUSH_BUTTON_SW_EXTI_IRQHandler(void);
#endif
#endif /* __STM32WBxx_IT_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/utilities_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/utilities_conf.h
index 4edfbbacf..c34a6ca79 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/utilities_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Inc/utilities_conf.h
@@ -1,21 +1,20 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : utilities_conf.h
- * Description : Configuration file for STM32 Utilities.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file utilities_conf.h
+ * @author MCD Application Team
+ * @brief Configuration file for STM32 Utilities.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- *****************************************************************************
+ ******************************************************************************
*/
/* USER CODE END Header */
@@ -64,5 +63,3 @@ extern "C" {
#endif
#endif /*UTILITIES_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/app_debug.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/app_debug.c
index 7b2d278a5..ebdc12e32 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/app_debug.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/app_debug.c
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_debug.c
- * Description : Debug capabilities source file for STM32WPAN Middleware
- ******************************************************************************
+ ******************************************************************************
+ * @file app_debug.c
+ * @author MCD Application Team
+ * @brief Debug capabilities source file for STM32WPAN Middleware
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -43,7 +43,7 @@ typedef PACKED_STRUCT
/* Private defines -----------------------------------------------------------*/
/* USER CODE BEGIN PD */
#define GPIO_NBR_OF_RF_SIGNALS 9
-#define GPIO_CFG_NBR_OF_FEATURES 34
+#define GPIO_CFG_NBR_OF_FEATURES 38
#define NBR_OF_TRACES_CONFIG_PARAMETERS 4
#define NBR_OF_GENERAL_CONFIG_PARAMETERS 4
@@ -128,8 +128,16 @@ static const APPD_GpioConfig_t aGpioConfigList[GPIO_CFG_NBR_OF_FEATURES] =
/* From v1.4.0 */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* NVMA_START - Set on Entry / Reset on Exit */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_EOP - Set on Entry / Reset on Exit */
+/* From v1.5.0 */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_WRITE - Set on Entry / Reset on Exit */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_ERASE - Set on Entry / Reset on Exit */
+/* From v1.6.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_RESCHEDULE_EVENT - Set on Entry / Reset on Exit */
+/* From v1.8.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_LLD_CMD_RX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_LLD_ACK_TX - Set on Entry / Reset on Exit */
+/* From v1.9.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_ASYNCH_EVENT_NACKED - Set on Entry / Reset on Exit */
};
/**
@@ -408,5 +416,3 @@ void DbgOutputTraces( uint8_t *p_data, uint16_t size, void (*cb)(void) )
return;
}
#endif
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/app_entry.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/app_entry.c
index 29ead0543..139015193 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/app_entry.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/app_entry.c
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_entry.c
- * Description : Entry application source file for STM32WPAN Middleware
- ******************************************************************************
+ ******************************************************************************
+ * @file app_entry.c
+ * @author MCD Application Team
+ * @brief Entry point of the Application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -73,16 +73,16 @@ static tListNode SysEvtQueue;
/* Private functions prototypes-----------------------------------------------*/
static void Config_HSE(void);
static void Reset_Device( void );
+#if ( CFG_HW_RESET_BY_FW == 1 )
static void Reset_IPCC( void );
static void Reset_BackupDomain( void );
+#endif /* CFG_HW_RESET_BY_FW */
static void System_Init( void );
static void SystemPower_Config( void );
static void appe_Tl_Init( void );
static void APPE_SysUserEvtRx( TL_EvtPacket_t * p_evt_rx );
static void shci_user_evt_proc( void );
-static void Init_Exti( void );
static void Init_Rtc( void );
-static void Init_Smps( void );
/* USER CODE BEGIN PFP */
static void Button_Init( void );
@@ -159,6 +159,33 @@ void MX_APPE_Init( void )
/* USER CODE END APPE_Init_2 */
return;
}
+
+void Init_Smps( void )
+{
+#if (CFG_USE_SMPS != 0)
+ /**
+ * Configure and enable SMPS
+ *
+ * The SMPS configuration is not yet supported by CubeMx
+ * when SMPS output voltage is set to 1.4V, the RF output power is limited to 3.7dBm
+ * the SMPS output voltage shall be increased for higher RF output power
+ */
+ LL_PWR_SMPS_SetStartupCurrent(LL_PWR_SMPS_STARTUP_CURRENT_80MA);
+ LL_PWR_SMPS_SetOutputVoltageLevel(LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
+ LL_PWR_SMPS_Enable();
+#endif
+
+ return;
+}
+
+void Init_Exti( void )
+{
+ /* Enable IPCC(36), HSEM(38) wakeup interrupts on CPU1 */
+ LL_EXTI_EnableIT_32_63( LL_EXTI_LINE_36 & LL_EXTI_LINE_38 );
+
+ return;
+}
+
/* USER CODE BEGIN FD */
void LED_Deinit(void)
@@ -204,11 +231,12 @@ static void Reset_Device( void )
Reset_BackupDomain();
Reset_IPCC();
-#endif
+#endif /* CFG_HW_RESET_BY_FW */
return;
}
+#if ( CFG_HW_RESET_BY_FW == 1 )
static void Reset_BackupDomain( void )
{
if ((LL_RCC_IsActiveFlag_PINRST() != FALSE) && (LL_RCC_IsActiveFlag_SFTRST() == FALSE))
@@ -264,6 +292,7 @@ static void Reset_IPCC( void )
return;
}
+#endif /* CFG_HW_RESET_BY_FW */
static void Config_HSE(void)
{
@@ -292,33 +321,6 @@ static void System_Init( void )
return;
}
-static void Init_Smps( void )
-{
-#if (CFG_USE_SMPS != 0)
- /**
- * Configure and enable SMPS
- *
- * The SMPS configuration is not yet supported by CubeMx
- * when SMPS output voltage is set to 1.4V, the RF output power is limited to 3.7dBm
- * the SMPS output voltage shall be increased for higher RF output power
- */
- LL_PWR_SMPS_SetStartupCurrent(LL_PWR_SMPS_STARTUP_CURRENT_80MA);
- LL_PWR_SMPS_SetOutputVoltageLevel(LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
- LL_PWR_SMPS_Enable();
-#endif
-
- return;
-}
-
-static void Init_Exti( void )
-{
- /**< Disable all wakeup interrupt on CPU1 except IPCC(36), HSEM(38) */
- LL_EXTI_DisableIT_0_31(~0);
- LL_EXTI_DisableIT_32_63( (~0) & (~(LL_EXTI_LINE_36 | LL_EXTI_LINE_38)) );
-
- return;
-}
-
static void Init_Rtc( void )
{
/* Disable RTC registers write protection */
@@ -331,6 +333,7 @@ static void Init_Rtc( void )
return;
}
+
/**
* @brief Configure the system for power optimization
*
@@ -413,6 +416,8 @@ static void shci_user_evt_proc ( void )
TL_MM_EvtDone( p_evt_rx );
TM_Init( );
+
+ return;
}
/* USER CODE BEGIN FD_LOCAL_FUNCTIONS */
@@ -497,6 +502,8 @@ void UTIL_SEQ_Idle( void )
void UTIL_SEQ_EvtIdle( UTIL_SEQ_bm_t task_id_bm, UTIL_SEQ_bm_t evt_waited_bm )
{
UTIL_SEQ_Run( UTIL_SEQ_DEFAULT );
+
+ return;
}
/* USER CODE BEGIN FD_WRAP_FUNCTIONS */
@@ -519,4 +526,3 @@ void HAL_GPIO_EXTI_Callback( uint16_t GPIO_Pin )
return;
}
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/hw_timerserver.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/hw_timerserver.c
index c0af6a14a..23a5bcdc6 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/hw_timerserver.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/hw_timerserver.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : hw_timerserver.c
- * Description : Hardware timerserver source file for STM32WPAN Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file hw_timerserver.c
+ * @author MCD Application Team
+ * @brief Hardware timerserver source file for STM32WPAN Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -891,5 +890,3 @@ __weak void HW_TS_RTC_Int_AppNot(uint32_t TimerProcessID, uint8_t TimerID, HW_TS
return;
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/hw_uart.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/hw_uart.c
index 6ae6ff9f9..43c681c1c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/hw_uart.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/hw_uart.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : Src/hw_uart.c
- * Description : HW UART source file for STM32WPAN Middleware.
- *
+ ******************************************************************************
+ * @file hw_uart.c
+ * @author MCD Application Team
+ * @brief HW UART source file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -316,5 +315,3 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
return;
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/main.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/main.c
index 1ad603641..92becf44e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/main.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/main.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -57,6 +56,7 @@ DMA_HandleTypeDef hdma_usart1_tx;
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
+void PeriphCommonClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_RF_Init(void);
@@ -93,6 +93,9 @@ int main(void)
/* Configure the system clock */
SystemClock_Config();
+/* Configure the peripherals common clocks */
+ PeriphCommonClock_Config();
+
/* IPCC initialisation */
MX_IPCC_Init();
@@ -132,7 +135,6 @@ void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
- RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
/** Configure LSE Drive Capability
*/
@@ -171,17 +173,23 @@ void SystemClock_Config(void)
{
Error_Handler();
}
- /** Initializes the peripherals clocks
+}
+
+/**
+ * @brief Peripherals Common Clock Configuration
+ * @retval None
+ */
+void PeriphCommonClock_Config(void)
+{
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+
+ /** Initializes the peripherals clock
*/
- PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS|RCC_PERIPHCLK_RFWAKEUP
- |RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_USART1
- |RCC_PERIPHCLK_I2C3;
- PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
- PeriphClkInitStruct.I2c3ClockSelection = RCC_I2C3CLKSOURCE_PCLK1;
- PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS|RCC_PERIPHCLK_RFWAKEUP;
PeriphClkInitStruct.RFWakeUpClockSelection = RCC_RFWKPCLKSOURCE_LSE;
PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSE;
PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE0;
+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
@@ -398,6 +406,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+ /*Configure GPIO pin : QSPI_BK_IO0_Pin */
+ GPIO_InitStruct.Pin = QSPI_BK_IO0_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+ HAL_GPIO_Init(QSPI_BK_IO0_GPIO_Port, &GPIO_InitStruct);
+
/*Configure GPIO pin : LPUART1_RX_MCU_Pin */
GPIO_InitStruct.Pin = LPUART1_RX_MCU_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -406,6 +422,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
HAL_GPIO_Init(LPUART1_RX_MCU_GPIO_Port, &GPIO_InitStruct);
+ /*Configure GPIO pin : PB8 */
+ GPIO_InitStruct.Pin = GPIO_PIN_8;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
+ HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
/*Configure GPIO pins : LPUART1_TX_MCU_Pin PB12 */
GPIO_InitStruct.Pin = LPUART1_TX_MCU_Pin|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -422,6 +446,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ /*Configure GPIO pin : PA10 */
+ GPIO_InitStruct.Pin = GPIO_PIN_10;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
/*Configure GPIO pins : USB_P_Pin USB_N_Pin */
GPIO_InitStruct.Pin = USB_P_Pin|USB_N_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -490,6 +522,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ /*Configure GPIO pin : QSPI_BK_SCK_Pin */
+ GPIO_InitStruct.Pin = QSPI_BK_SCK_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+ HAL_GPIO_Init(QSPI_BK_SCK_GPIO_Port, &GPIO_InitStruct);
+
/*Configure GPIO pins : CS_DISP_Pin GPIO_SELECT2_Pin */
GPIO_InitStruct.Pin = CS_DISP_Pin|GPIO_SELECT2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
@@ -524,6 +564,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+ /*Configure GPIO pins : QSPI_BK_NCS_Pin QSPI_BK_IO1_Pin QSPI_BK_IO2_Pin */
+ GPIO_InitStruct.Pin = QSPI_BK_NCS_Pin|QSPI_BK_IO1_Pin|QSPI_BK_IO2_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
/*Configure GPIO pin : PE3 */
GPIO_InitStruct.Pin = GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
@@ -644,5 +692,3 @@ void assert_failed(uint8_t *file, uint32_t line)
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32_lpm_if.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32_lpm_if.c
index fba978d88..8018ad626 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32_lpm_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32_lpm_if.c
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ***************************************************************************************
- * File Name : stm32_lpm_if.c
- * Description : Low layer function to enter/exit low power modes (stop, sleep).
- ***************************************************************************************
+ ******************************************************************************
+ * @file stm32_lpm_if.c
+ * @author MCD Application Team
+ * @brief Low layer function to enter/exit low power modes (stop, sleep).
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -277,19 +277,11 @@ static void EnterLowPower( void )
/* Release ENTRY_STOP_MODE semaphore */
LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
}
else
{
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
@@ -355,5 +347,3 @@ static void Switch_On_HSI( void )
/* USER CODE END Private_Functions */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
-
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32wbxx_hal_msp.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32wbxx_hal_msp.c
index 7f1912e2e..874d96dec 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32wbxx_hal_msp.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32wbxx_hal_msp.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -68,6 +67,8 @@ void HAL_MspInit(void)
/* USER CODE END MspInit 0 */
+ __HAL_RCC_HSEM_CLK_ENABLE();
+
/* System interrupt init*/
/* Peripheral interrupt init */
@@ -132,6 +133,7 @@ void HAL_IPCC_MspDeInit(IPCC_HandleTypeDef* hipcc)
*/
void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
{
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
if(hrtc->Instance==RTC)
{
/* USER CODE BEGIN RTC_MspInit 0 */
@@ -145,6 +147,15 @@ void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
__HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE); /**< Select LSI as RTC Input */
/* USER CODE END RTC_MspInit 0 */
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
+ PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
/* Peripheral clock enable */
__HAL_RCC_RTC_ENABLE();
__HAL_RCC_RTCAPB_CLK_ENABLE();
@@ -187,11 +198,21 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
if(huart->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspInit 0 */
/* USER CODE END USART1_MspInit 0 */
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART1;
+ PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
/* Peripheral clock enable */
__HAL_RCC_USART1_CLK_ENABLE();
@@ -271,5 +292,3 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32wbxx_it.c
index 0bb03a68c..b4b17424d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32wbxx_it.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/stm32wbxx_it.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -299,4 +298,3 @@ void TIM1_TRG_COM_TIM17_IRQHandler(void)
}
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/system_stm32wbxx.c
index 706ee9182..f53552c59 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/system_stm32wbxx.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/Core/Src/system_stm32wbxx.c
@@ -60,13 +60,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -355,5 +354,3 @@ void SystemCoreClockUpdate(void)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/BLE_TransparentMode.ewp b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/BLE_TransparentMode.ewp
index 11811e7c8..c52bae211 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/BLE_TransparentMode.ewp
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/BLE_TransparentMode.ewp
@@ -1,1262 +1,1257 @@
<?xml version="1.0" encoding="UTF-8"?>
<project>
- <fileVersion>3</fileVersion>
- <configuration>
- <name>BLE_TransparentMode</name>
- <toolchain>
- <name>ARM</name>
- </toolchain>
+ <fileVersion>3</fileVersion>
+ <configuration>
+ <name>BLE_TransparentMode</name>
+ <toolchain>
+ <name>ARM</name>
+ </toolchain>
+ <debug>1</debug>
+ <settings>
+ <name>General</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <version>30</version>
+ <wantNonLocal>1</wantNonLocal>
<debug>1</debug>
- <settings>
- <name>General</name>
- <archiveVersion>3</archiveVersion>
- <data>
- <version>30</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>ExePath</name>
- <state>BLE_TransparentMode/Exe</state>
- </option>
- <option>
- <name>ObjPath</name>
- <state>BLE_TransparentMode/Obj</state>
- </option>
- <option>
- <name>ListPath</name>
- <state>BLE_TransparentMode/List</state>
- </option>
- <option>
- <name>GEndianMode</name>
- <state>0</state>
- </option>
- <option>
- <name>Input description</name>
- <state>Full formatting, with multibyte support.</state>
- </option>
- <option>
- <name>Output description</name>
- <state>Full formatting, with multibyte support.</state>
- </option>
- <option>
- <name>GOutputBinary</name>
- <state>0</state>
- </option>
- <option>
- <name>OGCoreOrChip</name>
- <state>1</state>
- </option>
- <option>
- <name>GRuntimeLibSelect</name>
- <version>0</version>
- <state>2</state>
- </option>
- <option>
- <name>GRuntimeLibSelectSlave</name>
- <version>0</version>
- <state>2</state>
- </option>
- <option>
- <name>RTDescription</name>
- <state>Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.</state>
- </option>
- <option>
- <name>OGProductVersion</name>
- <state>4.41A</state>
- </option>
- <option>
- <name>OGLastSavedByProductVersion</name>
- <state>8.20.2.14834</state>
- </option>
- <option>
- <name>GeneralEnableMisra</name>
- <state>0</state>
- </option>
- <option>
- <name>GeneralMisraVerbose</name>
- <state>0</state>
- </option>
- <option>
- <name>OGChipSelectEditMenu</name>
- <state>STM32WB5MMG ST STM32WB5MMG</state>
- </option>
- <option>
- <name>GenLowLevelInterface</name>
- <state>1</state>
- </option>
- <option>
- <name>GEndianModeBE</name>
- <state>1</state>
- </option>
- <option>
- <name>OGBufferedTerminalOutput</name>
- <state>0</state>
- </option>
- <option>
- <name>GenStdoutInterface</name>
- <state>0</state>
- </option>
- <option>
- <name>GeneralMisraRules98</name>
- <version>0</version>
- <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
- </option>
- <option>
- <name>GeneralMisraVer</name>
- <state>0</state>
- </option>
- <option>
- <name>GeneralMisraRules04</name>
- <version>0</version>
- <state>011111111111111110111111111111011111111111111011110100111111111111111111111111111111111111111111101111111111111011111111111111111111111111111</state>
- </option>
- <option>
- <name>RTConfigPath2</name>
- <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Full.h</state>
- </option>
- <option>
- <name>GBECoreSlave</name>
- <version>26</version>
- <state>39</state>
- </option>
- <option>
- <name>OGUseCmsis</name>
- <state>0</state>
- </option>
- <option>
- <name>OGUseCmsisDspLib</name>
- <state>0</state>
- </option>
- <option>
- <name>GRuntimeLibThreads</name>
- <state>0</state>
- </option>
- <option>
- <name>CoreVariant</name>
- <version>26</version>
- <state>39</state>
- </option>
- <option>
- <name>GFPUDeviceSlave</name>
- <state>STM32WB5MMG ST STM32WB5MMG</state>
- </option>
- <option>
- <name>FPU2</name>
- <version>0</version>
- <state>4</state>
- </option>
- <option>
- <name>NrRegs</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>NEON</name>
- <state>0</state>
- </option>
- <option>
- <name>GFPUCoreSlave2</name>
- <version>26</version>
- <state>39</state>
- </option>
- <option>
- <name>OGCMSISPackSelectDevice</name>
- </option>
- <option>
- <name>OgLibHeap</name>
- <state>0</state>
- </option>
- <option>
- <name>OGLibAdditionalLocale</name>
- <state>0</state>
- </option>
- <option>
- <name>OGPrintfVariant</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>OGPrintfMultibyteSupport</name>
- <state>1</state>
- </option>
- <option>
- <name>OGScanfVariant</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>OGScanfMultibyteSupport</name>
- <state>1</state>
- </option>
- <option>
- <name>GenLocaleTags</name>
- <state></state>
- </option>
- <option>
- <name>GenLocaleDisplayOnly</name>
- <state></state>
- </option>
- <option>
- <name>DSPExtension</name>
- <state>1</state>
- </option>
- <option>
- <name>TrustZone</name>
- <state>0</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>ICCARM</name>
- <archiveVersion>2</archiveVersion>
- <data>
- <version>34</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>CCOptimizationNoSizeConstraints</name>
- <state>0</state>
- </option>
- <option>
- <name>CCDefines</name>
- <state>STM32WL55MM_DK</state>
- <state>USE_HAL_DRIVER</state>
- <state>STM32WB5Mxx</state>
- </option>
- <option>
- <name>CCPreprocFile</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPreprocComments</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPreprocLine</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListCFile</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListCMnemonics</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListCMessages</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListAssFile</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListAssSource</name>
- <state>0</state>
- </option>
- <option>
- <name>CCEnableRemarks</name>
- <state>0</state>
- </option>
- <option>
- <name>CCDiagSuppress</name>
- <state></state>
- </option>
- <option>
- <name>CCDiagRemark</name>
- <state></state>
- </option>
- <option>
- <name>CCDiagWarning</name>
- <state></state>
- </option>
- <option>
- <name>CCDiagError</name>
- <state></state>
- </option>
- <option>
- <name>CCObjPrefix</name>
- <state>1</state>
- </option>
- <option>
- <name>CCAllowList</name>
- <version>1</version>
- <state>11111110</state>
- </option>
- <option>
- <name>CCDebugInfo</name>
- <state>1</state>
- </option>
- <option>
- <name>IEndianMode</name>
- <state>1</state>
- </option>
- <option>
- <name>IProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>IExtraOptionsCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>IExtraOptions</name>
- <state></state>
- </option>
- <option>
- <name>CCLangConformance</name>
- <state>0</state>
- </option>
- <option>
- <name>CCSignedPlainChar</name>
- <state>1</state>
- </option>
- <option>
- <name>CCRequirePrototypes</name>
- <state>0</state>
- </option>
- <option>
- <name>CCDiagWarnAreErr</name>
- <state>0</state>
- </option>
- <option>
- <name>CCCompilerRuntimeInfo</name>
- <state>0</state>
- </option>
- <option>
- <name>IFpuProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>OutputFile</name>
- <state>$FILE_BNAME$.o</state>
- </option>
- <option>
- <name>CCLibConfigHeader</name>
- <state>1</state>
- </option>
- <option>
- <name>PreInclude</name>
- <state></state>
- </option>
- <option>
- <name>CompilerMisraOverride</name>
- <state>0</state>
- </option>
- <option>
- <name>CCIncludePath2</name>
- <state>$PROJ_DIR$/../Core/Inc</state>
- <state>$PROJ_DIR$/../STM32_WPAN/App</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/lpm/tiny_lpm</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/utilities</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/vcp</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/sequencer</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Include</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/STM32WB5MM-DK</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/ssd1315</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/Common</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/Fonts</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/LCD</state>
- </option>
- <option>
- <name>CCStdIncCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>CCCodeSection</name>
- <state>.text</state>
- </option>
- <option>
- <name>IProcessorMode2</name>
- <state>1</state>
- </option>
- <option>
- <name>CCOptLevel</name>
- <state>3</state>
- </option>
- <option>
- <name>CCOptStrategy</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>CCOptLevelSlave</name>
- <state>3</state>
- </option>
- <option>
- <name>CompilerMisraRules98</name>
- <version>0</version>
- <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
- </option>
- <option>
- <name>CompilerMisraRules04</name>
- <version>0</version>
- <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
- </option>
- <option>
- <name>CCPosIndRopi</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPosIndRwpi</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPosIndNoDynInit</name>
- <state>0</state>
- </option>
- <option>
- <name>IccLang</name>
- <state>0</state>
- </option>
- <option>
- <name>IccCDialect</name>
- <state>1</state>
- </option>
- <option>
- <name>IccAllowVLA</name>
- <state>0</state>
- </option>
- <option>
- <name>IccStaticDestr</name>
- <state>0</state>
- </option>
- <option>
- <name>IccCppInlineSemantics</name>
- <state>0</state>
- </option>
- <option>
- <name>IccCmsis</name>
- <state>1</state>
- </option>
- <option>
- <name>IccFloatSemantics</name>
- <state>0</state>
- </option>
- <option>
- <name>CCNoLiteralPool</name>
- <state>0</state>
- </option>
- <option>
- <name>CCOptStrategySlave</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>CCGuardCalls</name>
- <state>1</state>
- </option>
- <option>
- <name>CCEncSource</name>
- <state>0</state>
- </option>
- <option>
- <name>CCEncOutput</name>
- <state>0</state>
- </option>
- <option>
- <name>CCEncOutputBom</name>
- <state>1</state>
- </option>
- <option>
- <name>CCEncInput</name>
- <state>0</state>
- </option>
- <option>
- <name>IccExceptions2</name>
- <state>0</state>
- </option>
- <option>
- <name>IccRTTI2</name>
- <state>0</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>AARM</name>
- <archiveVersion>2</archiveVersion>
- <data>
- <version>10</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>AObjPrefix</name>
- <state>1</state>
- </option>
- <option>
- <name>AEndian</name>
- <state>1</state>
- </option>
- <option>
- <name>ACaseSensitivity</name>
- <state>1</state>
- </option>
- <option>
- <name>MacroChars</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>AWarnEnable</name>
- <state>0</state>
- </option>
- <option>
- <name>AWarnWhat</name>
- <state>0</state>
- </option>
- <option>
- <name>AWarnOne</name>
- <state></state>
- </option>
- <option>
- <name>AWarnRange1</name>
- <state></state>
- </option>
- <option>
- <name>AWarnRange2</name>
- <state></state>
- </option>
- <option>
- <name>ADebug</name>
- <state>1</state>
- </option>
- <option>
- <name>AltRegisterNames</name>
- <state>0</state>
- </option>
- <option>
- <name>ADefines</name>
- <state></state>
- </option>
- <option>
- <name>AList</name>
- <state>0</state>
- </option>
- <option>
- <name>AListHeader</name>
- <state>1</state>
- </option>
- <option>
- <name>AListing</name>
- <state>1</state>
- </option>
- <option>
- <name>Includes</name>
- <state>0</state>
- </option>
- <option>
- <name>MacDefs</name>
- <state>0</state>
- </option>
- <option>
- <name>MacExps</name>
- <state>1</state>
- </option>
- <option>
- <name>MacExec</name>
- <state>0</state>
- </option>
- <option>
- <name>OnlyAssed</name>
- <state>0</state>
- </option>
- <option>
- <name>MultiLine</name>
- <state>0</state>
- </option>
- <option>
- <name>PageLengthCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>PageLength</name>
- <state>80</state>
- </option>
- <option>
- <name>TabSpacing</name>
- <state>8</state>
- </option>
- <option>
- <name>AXRef</name>
- <state>0</state>
- </option>
- <option>
- <name>AXRefDefines</name>
- <state>0</state>
- </option>
- <option>
- <name>AXRefInternal</name>
- <state>0</state>
- </option>
- <option>
- <name>AXRefDual</name>
- <state>0</state>
- </option>
- <option>
- <name>AProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>AFpuProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>AOutputFile</name>
- <state>$FILE_BNAME$.o</state>
- </option>
- <option>
- <name>ALimitErrorsCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>ALimitErrorsEdit</name>
- <state>100</state>
- </option>
- <option>
- <name>AIgnoreStdInclude</name>
- <state>0</state>
- </option>
- <option>
- <name>AUserIncludes</name>
- <state></state>
- </option>
- <option>
- <name>AExtraOptionsCheckV2</name>
- <state>0</state>
- </option>
- <option>
- <name>AExtraOptionsV2</name>
- <state></state>
- </option>
- <option>
- <name>AsmNoLiteralPool</name>
- <state>0</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>OBJCOPY</name>
- <archiveVersion>0</archiveVersion>
- <data>
- <version>1</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>OOCOutputFormat</name>
- <version>3</version>
- <state>1</state>
- </option>
- <option>
- <name>OCOutputOverride</name>
- <state>1</state>
- </option>
- <option>
- <name>OOCOutputFile</name>
- <state>BLE_TransparentMode.hex</state>
- </option>
- <option>
- <name>OOCCommandLineProducer</name>
- <state>1</state>
- </option>
- <option>
- <name>OOCObjCopyEnable</name>
- <state>1</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>CUSTOM</name>
- <archiveVersion>3</archiveVersion>
- <data>
- <extensions></extensions>
- <cmdline></cmdline>
- <hasPrio>0</hasPrio>
- </data>
- </settings>
- <settings>
- <name>BICOMP</name>
- <archiveVersion>0</archiveVersion>
- <data />
- </settings>
- <settings>
- <name>BUILDACTION</name>
- <archiveVersion>1</archiveVersion>
- <data>
- <prebuild></prebuild>
- <postbuild></postbuild>
- </data>
- </settings>
- <settings>
- <name>ILINK</name>
- <archiveVersion>0</archiveVersion>
- <data>
- <version>20</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>IlinkLibIOConfig</name>
- <state>1</state>
- </option>
- <option>
- <name>XLinkMisraHandler</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkInputFileSlave</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkOutputFile</name>
- <state>BLE_TransparentMode.out</state>
- </option>
- <option>
- <name>IlinkDebugInfoEnable</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkKeepSymbols</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinaryFile</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinarySymbol</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinarySegment</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinaryAlign</name>
- <state></state>
- </option>
- <option>
- <name>IlinkDefines</name>
- <state></state>
- </option>
- <option>
- <name>IlinkConfigDefines</name>
- <state></state>
- </option>
- <option>
- <name>IlinkMapFile</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkLogFile</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogInitialization</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogModule</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogSection</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogVeneer</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkIcfOverride</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkIcfFile</name>
- <state>$PROJ_DIR$/stm32wb5mxx_flash_cm4.icf</state>
- </option>
- <option>
- <name>IlinkIcfFileSlave</name>
- <state></state>
- </option>
- <option>
- <name>IlinkEnableRemarks</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkSuppressDiags</name>
- <state></state>
- </option>
- <option>
- <name>IlinkTreatAsRem</name>
- <state></state>
- </option>
- <option>
- <name>IlinkTreatAsWarn</name>
- <state></state>
- </option>
- <option>
- <name>IlinkTreatAsErr</name>
- <state></state>
- </option>
- <option>
- <name>IlinkWarningsAreErrors</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkUseExtraOptions</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkExtraOptions</name>
- <state></state>
- </option>
- <option>
- <name>IlinkLowLevelInterfaceSlave</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkAutoLibEnable</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkAdditionalLibs</name>
- <state></state>
- </option>
- <option>
- <name>IlinkOverrideProgramEntryLabel</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkProgramEntryLabelSelect</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkProgramEntryLabel</name>
- <state>__iar_program_start</state>
- </option>
- <option>
- <name>DoFill</name>
- <state>0</state>
- </option>
- <option>
- <name>FillerByte</name>
- <state>0xFF</state>
- </option>
- <option>
- <name>FillerStart</name>
- <state>0x0</state>
- </option>
- <option>
- <name>FillerEnd</name>
- <state>0x0</state>
- </option>
- <option>
- <name>CrcSize</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>CrcAlign</name>
- <state>1</state>
- </option>
- <option>
- <name>CrcPoly</name>
- <state>0x11021</state>
- </option>
- <option>
- <name>CrcCompl</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>CrcBitOrder</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>CrcInitialValue</name>
- <state>0x0</state>
- </option>
- <option>
- <name>DoCrc</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkBE8Slave</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkBufferedTerminalOutput</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkStdoutInterfaceSlave</name>
- <state>1</state>
- </option>
- <option>
- <name>CrcFullSize</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkIElfToolPostProcess</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogAutoLibSelect</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogRedirSymbols</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogUnusedFragments</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkCrcReverseByteOrder</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkCrcUseAsInput</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptInline</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkOptExceptionsAllow</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptExceptionsForce</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkCmsis</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptMergeDuplSections</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkOptUseVfe</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptForceVfe</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkStackAnalysisEnable</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkStackControlFile</name>
- <state></state>
- </option>
- <option>
- <name>IlinkStackCallGraphFile</name>
- <state></state>
- </option>
- <option>
- <name>CrcAlgorithm</name>
- <version>1</version>
- <state>1</state>
- </option>
- <option>
- <name>CrcUnitSize</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>IlinkThreadsSlave</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkLogCallGraph</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkIcfFile_AltDefault</name>
- <state></state>
- </option>
- <option>
- <name>IlinkEncInput</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkEncOutput</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkEncOutputBom</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkHeapSelect</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkLocaleSelect</name>
- <state>1</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>IARCHIVE</name>
- <archiveVersion>0</archiveVersion>
- <data>
- <version>0</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>IarchiveInputs</name>
- <state></state>
- </option>
- <option>
- <name>IarchiveOverride</name>
- <state>0</state>
- </option>
- <option>
- <name>IarchiveOutput</name>
- <state>###Unitialized###</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>BILINK</name>
- <archiveVersion>0</archiveVersion>
- <data />
- </settings>
- </configuration>
+ <option>
+ <name>ExePath</name>
+ <state>BLE_TransparentMode/Exe</state>
+ </option>
+ <option>
+ <name>ObjPath</name>
+ <state>BLE_TransparentMode/Obj</state>
+ </option>
+ <option>
+ <name>ListPath</name>
+ <state>BLE_TransparentMode/List</state>
+ </option>
+ <option>
+ <name>GEndianMode</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Input description</name>
+ <state>Full formatting, with multibyte support.</state>
+ </option>
+ <option>
+ <name>Output description</name>
+ <state>Full formatting, with multibyte support.</state>
+ </option>
+ <option>
+ <name>GOutputBinary</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGCoreOrChip</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelect</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelectSlave</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>RTDescription</name>
+ <state>Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.</state>
+ </option>
+ <option>
+ <name>OGProductVersion</name>
+ <state>4.41A</state>
+ </option>
+ <option>
+ <name>OGLastSavedByProductVersion</name>
+ <state>8.20.2.14834</state>
+ </option>
+ <option>
+ <name>GeneralEnableMisra</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraVerbose</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGChipSelectEditMenu</name>
+ <state>STM32WB5MMG ST STM32WB5MMG</state>
+ </option>
+ <option>
+ <name>GenLowLevelInterface</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GEndianModeBE</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGBufferedTerminalOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GenStdoutInterface</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>GeneralMisraVer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules04</name>
+ <version>0</version>
+ <state>011111111111111110111111111111011111111111111011110100111111111111111111111111111111111111111111101111111111111011111111111111111111111111111</state>
+ </option>
+ <option>
+ <name>RTConfigPath2</name>
+ <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Full.h</state>
+ </option>
+ <option>
+ <name>GBECoreSlave</name>
+ <version>26</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>OGUseCmsis</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGUseCmsisDspLib</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GRuntimeLibThreads</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CoreVariant</name>
+ <version>26</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>GFPUDeviceSlave</name>
+ <state>STM32WB5MMG ST STM32WB5MMG</state>
+ </option>
+ <option>
+ <name>FPU2</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>NrRegs</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>NEON</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GFPUCoreSlave2</name>
+ <version>26</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>OGCMSISPackSelectDevice</name>
+ </option>
+ <option>
+ <name>OgLibHeap</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGLibAdditionalLocale</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGPrintfVariant</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGPrintfMultibyteSupport</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGScanfVariant</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGScanfMultibyteSupport</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GenLocaleTags</name>
+ <state></state>
+ </option>
+ <option>
+ <name>GenLocaleDisplayOnly</name>
+ <state></state>
+ </option>
+ <option>
+ <name>DSPExtension</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>TrustZone</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ICCARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>34</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CCOptimizationNoSizeConstraints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDefines</name>
+ <state>USE_STM32WB5M_DK</state>
+ <state>USE_HAL_DRIVER</state>
+ <state>STM32WB5Mxx</state>
+ </option>
+ <option>
+ <name>CCPreprocFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocComments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMnemonics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMessages</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagSuppress</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagRemark</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagWarning</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagError</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCAllowList</name>
+ <version>1</version>
+ <state>11111110</state>
+ </option>
+ <option>
+ <name>CCDebugInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IEndianMode</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IExtraOptionsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCLangConformance</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSignedPlainChar</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCRequirePrototypes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagWarnAreErr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCompilerRuntimeInfo</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.o</state>
+ </option>
+ <option>
+ <name>CCLibConfigHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>PreInclude</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CompilerMisraOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$/../Core/Inc</state>
+ <state>$PROJ_DIR$/../STM32_WPAN/App</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/lpm/tiny_lpm</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/utilities</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/vcp</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/sequencer</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Include</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/STM32WB5MM-DK</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/ssd1315</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/Common</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/Fonts</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/LCD</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCodeSection</name>
+ <state>.text</state>
+ </option>
+ <option>
+ <name>IProcessorMode2</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevel</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CCOptStrategy</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevelSlave</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules04</name>
+ <version>0</version>
+ <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+ </option>
+ <option>
+ <name>CCPosIndRopi</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPosIndRwpi</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPosIndNoDynInit</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccLang</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCDialect</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IccAllowVLA</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccStaticDestr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCppInlineSemantics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCmsis</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IccFloatSemantics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCNoLiteralPool</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCOptStrategySlave</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCGuardCalls</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEncSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEncOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEncOutputBom</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEncInput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccExceptions2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccRTTI2</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>AARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>10</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>AObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AEndian</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ACaseSensitivity</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacroChars</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnWhat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnOne</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ADebug</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AltRegisterNames</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ADefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AList</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AListHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AListing</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Includes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacDefs</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacExps</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacExec</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OnlyAssed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MultiLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>TabSpacing</name>
+ <state>8</state>
+ </option>
+ <option>
+ <name>AXRef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDefines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefInternal</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDual</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AOutputFile</name>
+ <state>$FILE_BNAME$.o</state>
+ </option>
+ <option>
+ <name>ALimitErrorsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ALimitErrorsEdit</name>
+ <state>100</state>
+ </option>
+ <option>
+ <name>AIgnoreStdInclude</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AUserIncludes</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AExtraOptionsCheckV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AExtraOptionsV2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AsmNoLiteralPool</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>OBJCOPY</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>OOCOutputFormat</name>
+ <version>3</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCOutputOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OOCOutputFile</name>
+ <state>BLE_TransparentMode.hex</state>
+ </option>
+ <option>
+ <name>OOCCommandLineProducer</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OOCObjCopyEnable</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CUSTOM</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <extensions></extensions>
+ <cmdline></cmdline>
+ <hasPrio>0</hasPrio>
+ </data>
+ </settings>
+ <settings>
+ <name>BICOMP</name>
+ <archiveVersion>0</archiveVersion>
+ <data></data>
+ </settings>
+ <settings>
+ <name>BUILDACTION</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <prebuild></prebuild>
+ <postbuild></postbuild>
+ </data>
+ </settings>
+ <settings>
+ <name>ILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>20</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>IlinkLibIOConfig</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XLinkMisraHandler</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkInputFileSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOutputFile</name>
+ <state>BLE_TransparentMode.out</state>
+ </option>
+ <option>
+ <name>IlinkDebugInfoEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkKeepSymbols</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinaryFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinarySymbol</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinarySegment</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinaryAlign</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkConfigDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkMapFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLogFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogInitialization</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogModule</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogSection</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogVeneer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIcfOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkIcfFile</name>
+ <state>$PROJ_DIR$/stm32wb5mxx_flash_cm4.icf</state>
+ </option>
+ <option>
+ <name>IlinkIcfFileSlave</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkSuppressDiags</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsRem</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsWarn</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsErr</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkWarningsAreErrors</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkUseExtraOptions</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkLowLevelInterfaceSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkAutoLibEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkAdditionalLibs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkOverrideProgramEntryLabel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkProgramEntryLabelSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkProgramEntryLabel</name>
+ <state>__iar_program_start</state>
+ </option>
+ <option>
+ <name>DoFill</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FillerByte</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>FillerStart</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>FillerEnd</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>CrcSize</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcPoly</name>
+ <state>0x11021</state>
+ </option>
+ <option>
+ <name>CrcCompl</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcBitOrder</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>DoCrc</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkBE8Slave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkBufferedTerminalOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkStdoutInterfaceSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcFullSize</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIElfToolPostProcess</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogAutoLibSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogRedirSymbols</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogUnusedFragments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCrcReverseByteOrder</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCrcUseAsInput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptInline</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOptExceptionsAllow</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptExceptionsForce</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCmsis</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptMergeDuplSections</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOptUseVfe</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptForceVfe</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkStackAnalysisEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkStackControlFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkStackCallGraphFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CrcAlgorithm</name>
+ <version>1</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcUnitSize</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkThreadsSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLogCallGraph</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIcfFile_AltDefault</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkEncInput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkEncOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkEncOutputBom</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkHeapSelect</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLocaleSelect</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>IARCHIVE</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>IarchiveInputs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IarchiveOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IarchiveOutput</name>
+ <state>###Unitialized###</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>BILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data></data>
+ </settings>
+ </configuration>
+ <group>
+ <name>Application</name>
<group>
- <name>Application</name>
- <group>
- <name>EWARM</name>
- <file>
- <name>$PROJ_DIR$\startup_stm32wb5mxx_cm4.s</name>
- </file>
- </group>
- <group>
- <name>User</name>
- <group>
- <name>Core</name>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\app_debug.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\app_entry.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\hw_timerserver.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\hw_uart.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\main.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\stm32_lpm_if.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_hal_msp.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_it.c</name>
- </file>
- </group>
- <group>
- <name>STM32_WPAN</name>
- <group>
- <name>App</name>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\App\tm.c</name>
- </file>
- </group>
- <group>
- <name>Target</name>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\Target\hw_ipcc.c</name>
- </file>
- </group>
- </group>
- </group>
+ <name>EWARM</name>
+ <file>
+ <name>$PROJ_DIR$\startup_stm32wb5mxx_cm4.s</name>
+ </file>
</group>
<group>
- <name>Doc</name>
+ <name>User</name>
+ <group>
+ <name>Core</name>
<file>
- <name>$PROJ_DIR$\..\readme.txt</name>
+ <name>$PROJ_DIR$\..\Core\Src\main.c</name>
</file>
- </group>
- <group>
- <name>Drivers</name>
- <group>
- <name>BSP</name>
- <group>
- <name>STM32WB5MM-DK</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315_reg.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_bus.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_lcd.c</name>
- </file>
- </group>
- </group>
- <group>
- <name>CMSIS</name>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\system_stm32wbxx.c</name>
- </file>
- </group>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_entry.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_debug.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\hw_timerserver.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\hw_uart.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32_lpm_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_it.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_hal_msp.c</name>
+ </file>
+ </group>
+ <group>
+ <name>STM32_WPAN</name>
<group>
- <name>STM32WBxx_HAL_Driver</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_cortex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_exti.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_gpio.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_hsem.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_ipcc.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_qspi.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart_ex.c</name>
- </file>
+ <name>App</name>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\App\tm.c</name>
+ </file>
</group>
- </group>
- <group>
- <name>Middlewares</name>
<group>
- <name>STM32_WPAN</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\dbg_trace.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\lhci\lhci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\template\osal.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\otp.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\shci\shci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_list.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_queue.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\svc_ctl.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\tl_mbox.c</name>
- </file>
+ <name>Target</name>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\Target\hw_ipcc.c</name>
+ </file>
</group>
+ </group>
</group>
+ </group>
+ <group>
+ <name>Doc</name>
+ <file>
+ <name>$PROJ_DIR$\..\readme.txt</name>
+ </file>
+ </group>
+ <group>
+ <name>Drivers</name>
<group>
- <name>Utilities</name>
+ <name>BSP</name>
+ <group>
+ <name>STM32WB5MM-DK</name>
<file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\LCD\stm32_lcd.c</name>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\lpm\tiny_lpm\stm32_lpm.c</name>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_bus.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\sequencer\stm32_seq.c</name>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_lcd.c</name>
</file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315_reg.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>CMSIS</name>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\system_stm32wbxx.c</name>
+ </file>
+ </group>
+ <group>
+ <name>STM32WBxx_HAL_Driver</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_hsem.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_gpio.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_cortex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_exti.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_ipcc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart_ex.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>Middlewares</name>
+ <group>
+ <name>STM32_WPAN</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\tl_mbox.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\shci\shci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\dbg_trace.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\otp.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_list.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_queue.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\template\osal.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\lhci\lhci.c</name>
+ </file>
</group>
+ </group>
+ <group>
+ <name>Utilities</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\LCD\stm32_lcd.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\lpm\tiny_lpm\stm32_lpm.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\sequencer\stm32_seq.c</name>
+ </file>
+ </group>
</project>
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/startup_stm32wb5mxx_cm4.s
index 6d2a51d5a..690ee250e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/startup_stm32wb5mxx_cm4.s
@@ -16,13 +16,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under BSD 3-Clause license,
-;* the "License"; You may not use this file except in compliance with the
-;* License. You may obtain a copy of the License at:
-;* opensource.org/licenses/BSD-3-Clause
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;
@@ -83,7 +82,7 @@ __vector_table
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -514,4 +513,3 @@ DMAMUX1_OVR_IRQHandler
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/stm32wb5mxx_flash_cm4.icf b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/stm32wb5mxx_flash_cm4.icf
index 6a7a123fc..f13848f65 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/stm32wb5mxx_flash_cm4.icf
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/stm32wb5mxx_flash_cm4.icf
@@ -11,7 +11,7 @@ define symbol __ICFEDIT_region_RAM_start__ = 0x20000008;
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
-define symbol __ICFEDIT_size_heap__ = 0x400;
+define symbol __ICFEDIT_size_heap__ = 0x400;
/**** End of ICF editor section. ###ICF###*/
define symbol __ICFEDIT_region_RAM_SHARED_start__ = 0x20030000;
@@ -21,6 +21,7 @@ define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region RAM_SHARED_region = mem:[from __ICFEDIT_region_RAM_SHARED_start__ to __ICFEDIT_region_RAM_SHARED_end__];
+define region Total_RAM_region = RAM_region | RAM_SHARED_region ;
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
@@ -32,9 +33,10 @@ do not initialize { section .noinit,
section MB_MEM1 };
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
+place at address mem:__ICFEDIT_region_RAM_SHARED_start__ { section MAPPING_TABLE };
place in ROM_region { readonly };
-place in RAM_region { readwrite,block CSTACK, block HEAP };
-place in RAM_SHARED_region { first section MAPPING_TABLE};
+place in RAM_region { block CSTACK, block HEAP };
place in RAM_SHARED_region { section MB_MEM1};
place in RAM_SHARED_region { section MB_MEM2};
+place in Total_RAM_region { readwrite };
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/stm32wb5mxx_sram_cm4.icf b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/stm32wb5mxx_sram_cm4.icf
deleted file mode 100644
index 36cf3e51a..000000000
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/EWARM/stm32wb5mxx_sram_cm4.icf
+++ /dev/null
@@ -1,39 +0,0 @@
-/*###ICF### Section handled by ICF editor, don't touch! ****/
-/*-Editor annotation file-*/
-/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
-/*-Specials-*/
-define symbol __ICFEDIT_intvec_start__ = 0x20000000;
-/*-Memory Regions-*/
-/***** RAM dedicated to M4 *****/
-define symbol __ICFEDIT_region_ROM_start__ = 0x20000000;
-define symbol __ICFEDIT_region_ROM_end__ = 0x20017FFF;
-
-define symbol __ICFEDIT_region_RAM_start__ = 0x20018000 ;
-define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF ;
-
-/***** RAM2a *****/
-define symbol __ICFEDIT_region_RAM_SHARED_start__ = 0x20030000 ;
-define symbol __ICFEDIT_region_RAM_SHARED_end__ = 0x20037FFF ;
-
-/*-Sizes-*/
-define symbol __ICFEDIT_size_cstack__ = 0x1000;
-define symbol __ICFEDIT_size_heap__ = 0x400;
-/**** End of ICF editor section. ###ICF###*/
-
-
-define memory mem with size = 4G;
-define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
-define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
-
-
-define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
-define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
-
-initialize by copy { readwrite };
-do not initialize { section .noinit };
-
-place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
-
-place in ROM_region { readonly };
-place in RAM_region { readwrite,
- block CSTACK, block HEAP };
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/BLE_TransparentMode.uvprojx b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/BLE_TransparentMode.uvprojx
index e3971226a..cb3eec778 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/BLE_TransparentMode.uvprojx
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/BLE_TransparentMode.uvprojx
@@ -337,7 +337,7 @@
<v6Rtti>0</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
- <Define>STM32WL55MM_DK,USE_HAL_DRIVER,STM32WB5Mxx</Define>
+ <Define>USE_STM32WB5M_DK,USE_HAL_DRIVER,STM32WB5Mxx</Define>
<Undefine></Undefine>
<IncludePath>../Core/Inc;../STM32_WPAN/App;../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc;../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy;../../../../../../Utilities/lpm/tiny_lpm;../../../../../../Middlewares/ST/STM32_WPAN;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci;../../../../../../Middlewares/ST/STM32_WPAN/utilities;../../../../../../Middlewares/ST/STM32_WPAN/ble/core;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template;../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc;../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/vcp;../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include;../../../../../../Utilities/sequencer;../../../../../../Middlewares/ST/STM32_WPAN/ble;../../../../../../Drivers/CMSIS/Include;../../../../../../Drivers/BSP/STM32WB5MM-DK;../../../../../../Drivers/BSP/Components/ssd1315;../../../../../../Drivers/BSP/Components/Common;../../../../../../Utilities/Fonts;../../../../../../Utilities/LCD</IncludePath>
</VariousControls>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/startup_stm32wb5mxx_cm4.s
index f04432d7b..6a51d2123 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/startup_stm32wb5mxx_cm4.s
@@ -14,12 +14,12 @@
;******************************************************************************
;* @attention
;*
-;* Copyright (c) 2019 STMicroelectronics. All rights reserved.
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
@@ -84,7 +84,7 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -365,4 +365,3 @@ __user_initial_stackheap
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/stm32wb5mxx_flash_cm4.sct b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/stm32wb5mxx_flash_cm4.sct
index 9d4d446ba..938d9f592 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/stm32wb5mxx_flash_cm4.sct
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/MDK-ARM/stm32wb5mxx_flash_cm4.sct
@@ -11,11 +11,16 @@ LR_IROM1 0x08000000 0x00080000 { ; load region size_region
RW_IRAM1 0x20000008 0x2FFF8 { ; RW data
.ANY (+RW +ZI)
}
- RW_RAM_SHARED 0x20030000 0x2800 { ; RW data
- *(MAPPING_TABLE)
- *(MB_MEM1)
- *(MB_MEM2)
- }
+
+ RW_RAM_SHARED1 0x20030000 0x28 { ; RW data
+ *(MAPPING_TABLE)
+ }
+ RW_RAM_SHARED2 0x20030028 0x27D8 { ; RW data
+ *(MB_MEM1)
+ *(MB_MEM2)
+ .ANY (+RW +ZI)
+ }
+
}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/.cproject b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/.cproject
index c39326785..ea80bb90c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/.cproject
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/.cproject
@@ -47,7 +47,7 @@
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.56749877" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="STM32WB5MM-DK" valueType="string"/>
- <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1953857514" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../Core/Inc | ../../STM32_WPAN/App | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/vcp | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/CMSIS/Include | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/Fonts | ../../../../../../../Utilities/LCD || || || STM32WL55MM_DK | STM32WB5Mxx | USE_HAL_DRIVER || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || || || || None" valueType="string"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1953857514" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Debug || true || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../Core/Inc | ../../STM32_WPAN/App | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/vcp | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/CMSIS/Include | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/Fonts | ../../../../../../../Utilities/LCD || || || USE_STM32WB5M_DK | STM32WB5Mxx | USE_HAL_DRIVER || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || || || || None" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex.543427452" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex" value="true" valueType="boolean"/>
@@ -75,7 +75,7 @@
<listOptionValue builtIn="false" value="DEBUG"/>
- <listOptionValue builtIn="false" value="STM32WL55MM_DK"/>
+ <listOptionValue builtIn="false" value="USE_STM32WB5M_DK"/>
<listOptionValue builtIn="false" value="STM32WB5Mxx"/>
@@ -239,7 +239,7 @@
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1221372077" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="STM32WB5MM-DK" valueType="string"/>
- <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1893795009" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../Core/Inc | ../../STM32_WPAN/App | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/vcp | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/CMSIS/Include | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/Fonts | ../../../../../../../Utilities/LCD || || || STM32WL55MM_DK | STM32WB5Mxx | USE_HAL_DRIVER || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || Size || || || None" valueType="string"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1893795009" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../Core/Inc | ../../STM32_WPAN/App | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/lhci | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/vcp | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/CMSIS/Include | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/Fonts | ../../../../../../../Utilities/LCD || || || USE_STM32WB5M_DK | STM32WB5Mxx | USE_HAL_DRIVER || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || Size || || || None" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex.338381303" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex" value="true" valueType="boolean"/>
@@ -265,7 +265,7 @@
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.707941006" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="STM32WL55MM_DK"/>
+ <listOptionValue builtIn="false" value="USE_STM32WB5M_DK"/>
<listOptionValue builtIn="false" value="STM32WB5Mxx"/>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/.project b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/.project
index 60f44cc65..008d667a3 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/.project
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/.project
@@ -31,6 +31,11 @@
</natures>
<linkedResources>
<link>
+ <name>BLE_TransparentMode.ioc</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/BLE_TransparentMode.ioc</locationURI>
+ </link>
+ <link>
<name>Doc/readme.txt</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/readme.txt</locationURI>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
index 891ce5b9a..18f06244f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -14,13 +14,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
-* This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,7 +92,7 @@ LoopFillZerobss:
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
-/* Call the clock system intitialization function.*/
+/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
@@ -442,4 +441,3 @@ g_pfnVectors:
.weak DMAMUX1_OVR_IRQHandler
.thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/User/Core/syscalls.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/User/Core/syscalls.c
index bc0dd6c06..c921fd873 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/User/Core/syscalls.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/User/Core/syscalls.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
@@ -7,19 +7,18 @@
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <sys/stat.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/User/Core/sysmem.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/User/Core/sysmem.c
index d7cc52cd4..dda5abe79 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/User/Core/sysmem.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/Application/User/Core/sysmem.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
@@ -7,19 +7,18 @@
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <errno.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
index f0c35b387..04d57d8aa 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -15,30 +15,14 @@
** of any kind.
**
*****************************************************************************
+** @attention
**
-** <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
+** Copyright (c) 2019 STMicroelectronics.
+** All rights reserved.
**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-** 1. Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** 3. Neither the name of STMicroelectronics nor the names of its contributors
-** may be used to endorse or promote products derived from this software
-** without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
**
*****************************************************************************
*/
@@ -145,7 +129,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/ble_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/ble_conf.h
index df9cd8ec0..10e38a30d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/ble_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/ble_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/ble_conf.h
- * Description : Configuration file for BLE Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file ble_conf.h
+ * @author MCD Application Team
+ * @brief Configuration file for BLE Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -91,4 +90,3 @@
#define BLE_CFG_GAP_APPEARANCE (BLE_CFG_UNKNOWN_APPEARANCE)
#endif /*BLE_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/ble_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/ble_dbg_conf.h
index 7e393c676..91f670e3c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/ble_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/ble_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/ble_dbg_conf.h
- * Description : Debug configuration file for BLE Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file ble_dbg_conf.h
+ * @author MCD Application Team
+ * @brief Debug configuration file for BLE Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -197,5 +196,3 @@
#endif
#endif /*__BLE_DBG_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tl_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tl_dbg_conf.h
index bd808a41b..04ed3d88d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tl_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tl_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/tl_dbg_conf.h
- * Description : Debug configuration file for stm32wpan transport layer interface.
- *
+ ******************************************************************************
+ * @file tl_dbg_conf.h
+ * @author MCD Application Team
+ * @brief Debug configuration file for stm32wpan transport layer interface.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -132,5 +131,3 @@ extern "C" {
#endif
#endif /*__TL_DBG_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tm.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tm.c
index 4cd7ca6a0..6d49db221 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tm.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tm.c
@@ -1,22 +1,20 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/tm.c
- * Description : Transparent mode
- ******************************************************************************
- * * @attention
+ ******************************************************************************
+ * File Name : App/tm.c
+ * Description : Transparent mode
+ ******************************************************************************
+ * @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
-
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -180,7 +178,7 @@ void TM_Init( void )
HW_UART_Receive_IT(CFG_UART_GUI, pHostRx, 1, RxCpltCallback);
/* USER CODE BEGIN TM_Init_2 */
- /* Displays the board and app informations: Application Name, Stack version, FUS version*/
+ /* Displays the board and app information: Application Name, Stack version, FUS version*/
if (SHCI_GetWirelessFwInfo(p_wireless_info) != SHCI_Success)
{
// Error
@@ -549,4 +547,3 @@ void shci_send( uint16_t cmd_code, uint8_t len_cmd_payload, uint8_t * p_cmd_payl
/* USER CODE END FD_WRAP_FUNCTIONS*/
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tm.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tm.h
index 54ec1a975..ae3a144e8 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tm.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/App/tm.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,4 +92,3 @@ extern "C" {
#endif /*__TM_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/hw_ipcc.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/hw_ipcc.c
index afa62b179..9a37e5370 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/hw_ipcc.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/STM32_WPAN/Target/hw_ipcc.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : Target/hw_ipcc.c
- * Description : Hardware IPCC source file for STM32WPAN Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file hw_ipcc.c
+ * @author MCD Application Team
+ * @brief Hardware IPCC source file for STM32WPAN Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -164,10 +163,6 @@ void HW_IPCC_Tx_Handler( void )
HW_IPCC_ZIGBEE_CmdEvtHandler();
}
#endif /* ZIGBEE_WB */
- else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
- {
- HW_IPCC_SYS_CmdEvtHandler();
- }
else if (HW_IPCC_TX_PENDING( HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ))
{
HW_IPCC_MM_FreeBufHandler();
@@ -672,4 +667,3 @@ static void HW_IPCC_TRACES_EvtHandler( void )
__weak void HW_IPCC_TRACES_EvtNot( void ){};
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/readme.txt b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/readme.txt
index 82b14153d..8898773b6 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_TransparentMode/readme.txt
@@ -8,12 +8,12 @@
* @brief Description of the Transparent Mode application.
******************************************************************************
*
- * Copyright (c) 2021 STMicroelectronics. All rights reserved.
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@endverbatim
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/.extSettings b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/.extSettings
index 8bafa9b25..45631b545 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/.extSettings
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/.extSettings
@@ -1,8 +1,7 @@
[ProjectFiles]
HeaderPath=..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK;..\..\..\..\..\..\Drivers\BSP\Components\ssd1315;..\..\..\..\..\..\Drivers\BSP\Components\Common;..\..\..\..\..\..\Utilities\Fonts;..\..\..\..\..\..\Utilities\LCD;
[Others]
-Define=STM32WL55MM_DK
-HALModule=IPCC;
+Define=USE_STM32WB5M_DK
[Groups]
Drivers/BSP/STM32WB5MM-DK=../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c;../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_lcd.c;../../../../../../Drivers/BSP/Components/ssd1315/ssd1315.c;../../../../../../Drivers/BSP/Components/ssd1315/ssd1315_reg.c;
Doc=../readme.txt;
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/BLE_p2pServer.ioc b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/BLE_p2pServer.ioc
new file mode 100644
index 000000000..46cf90b3c
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/BLE_p2pServer.ioc
@@ -0,0 +1,517 @@
+#MicroXplorer Configuration settings - do not modify
+Dma.Request0=USART1_TX
+Dma.RequestsNb=1
+Dma.USART1_TX.0.Direction=DMA_MEMORY_TO_PERIPH
+Dma.USART1_TX.0.EventEnable=DISABLE
+Dma.USART1_TX.0.Instance=DMA2_Channel4
+Dma.USART1_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
+Dma.USART1_TX.0.MemInc=DMA_MINC_ENABLE
+Dma.USART1_TX.0.Mode=DMA_NORMAL
+Dma.USART1_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
+Dma.USART1_TX.0.PeriphInc=DMA_PINC_DISABLE
+Dma.USART1_TX.0.Polarity=HAL_DMAMUX_REQ_GEN_RISING
+Dma.USART1_TX.0.Priority=DMA_PRIORITY_LOW
+Dma.USART1_TX.0.RequestNumber=1
+Dma.USART1_TX.0.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,SignalID,Polarity,RequestNumber,SyncSignalID,SyncPolarity,SyncEnable,EventEnable,SyncRequestNumber
+Dma.USART1_TX.0.SignalID=NONE
+Dma.USART1_TX.0.SyncEnable=DISABLE
+Dma.USART1_TX.0.SyncPolarity=HAL_DMAMUX_SYNC_NO_EVENT
+Dma.USART1_TX.0.SyncRequestNumber=1
+Dma.USART1_TX.0.SyncSignalID=NONE
+File.Version=6
+GPIO.groupedBy=Group By Peripherals
+I2C3.IPParameters=Timing
+I2C3.Timing=0x00707CBB
+KeepUserPlacement=false
+Mcu.Family=STM32WB
+Mcu.IP0=DMA
+Mcu.IP1=HSEM
+Mcu.IP10=STM32_WPAN
+Mcu.IP11=SYS
+Mcu.IP12=TIM17
+Mcu.IP13=TINY_LPM
+Mcu.IP14=USART1
+Mcu.IP2=I2C3
+Mcu.IP3=IPCC
+Mcu.IP4=NVIC
+Mcu.IP5=RCC
+Mcu.IP6=RF
+Mcu.IP7=RTC
+Mcu.IP8=SEQUENCER
+Mcu.IP9=SPI1
+Mcu.IPNb=15
+Mcu.Name=STM32WB5MMGHx
+Mcu.Package=LGA86
+Mcu.Pin0=PA2
+Mcu.Pin1=PA1
+Mcu.Pin10=PB5
+Mcu.Pin11=PB4
+Mcu.Pin12=PB3
+Mcu.Pin13=PC10
+Mcu.Pin14=PC11
+Mcu.Pin15=PC12
+Mcu.Pin16=PA13
+Mcu.Pin17=PA14
+Mcu.Pin18=PA15
+Mcu.Pin19=PA10
+Mcu.Pin2=PA0
+Mcu.Pin20=PA12
+Mcu.Pin21=PA11
+Mcu.Pin22=PD0
+Mcu.Pin23=PD1
+Mcu.Pin24=PB13
+Mcu.Pin25=PC6
+Mcu.Pin26=PB14
+Mcu.Pin27=PB15
+Mcu.Pin28=PB6
+Mcu.Pin29=PC13
+Mcu.Pin3=PC3
+Mcu.Pin30=PB12
+Mcu.Pin31=PE4
+Mcu.Pin32=PC5
+Mcu.Pin33=PB11
+Mcu.Pin34=PB10
+Mcu.Pin35=PB2
+Mcu.Pin36=PC4
+Mcu.Pin37=PA8
+Mcu.Pin38=PA9
+Mcu.Pin39=PA7
+Mcu.Pin4=PC2
+Mcu.Pin40=PA6
+Mcu.Pin41=PA5
+Mcu.Pin42=PA4
+Mcu.Pin43=PA3
+Mcu.Pin44=PH0
+Mcu.Pin45=PH1
+Mcu.Pin46=PD14
+Mcu.Pin47=PE1
+Mcu.Pin48=PD13
+Mcu.Pin49=PD12
+Mcu.Pin5=PC1
+Mcu.Pin50=PD2
+Mcu.Pin51=PC9
+Mcu.Pin52=PD3
+Mcu.Pin53=PC7
+Mcu.Pin54=PE3
+Mcu.Pin55=PD4
+Mcu.Pin56=PD9
+Mcu.Pin57=PD8
+Mcu.Pin58=PD15
+Mcu.Pin59=PD10
+Mcu.Pin6=PB9
+Mcu.Pin60=PE2
+Mcu.Pin61=PE0
+Mcu.Pin62=PD5
+Mcu.Pin63=PD6
+Mcu.Pin64=PD11
+Mcu.Pin65=PC8
+Mcu.Pin66=VP_HSEM_VS_HSEM
+Mcu.Pin67=VP_IPCC_VS_IPCC
+Mcu.Pin68=VP_RCC_V_OSC_IN
+Mcu.Pin69=VP_RCC_V_OSC32_IN
+Mcu.Pin7=PC0
+Mcu.Pin70=VP_RF_VS_RF
+Mcu.Pin71=VP_RTC_VS_RTC_Activate
+Mcu.Pin72=VP_SEQUENCER_VS_SEQUENCER
+Mcu.Pin73=VP_STM32_WPAN_VS_BLE_HOST
+Mcu.Pin74=VP_SYS_VS_Systick
+Mcu.Pin75=VP_TIM17_VS_ClockSourceINT
+Mcu.Pin76=VP_TINY_LPM_VS_TINY_LPM
+Mcu.Pin8=PB8
+Mcu.Pin9=PB7
+Mcu.PinsNb=77
+Mcu.ThirdPartyNb=0
+Mcu.UserConstants=
+Mcu.UserName=STM32WB5MMGHx
+MxCube.Version=6.4.0
+MxDb.Version=DB.6.0.40
+NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.DMA2_Channel4_IRQn=true\:15\:0\:true\:false\:true\:false\:true
+NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.ForceEnableDMAVector=true
+NVIC.HSEM_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.HardFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.MemoryManagement_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4
+NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+NVIC.SysTick_IRQn=true\:0\:0\:false\:false\:true\:false\:true
+NVIC.USART1_IRQn=true\:0\:0\:false\:false\:true\:true\:true
+NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
+PA0.Locked=true
+PA0.Signal=ADCx_IN5
+PA1.Locked=true
+PA1.Mode=Full_Duplex_Master
+PA1.Signal=SPI1_SCK
+PA10.Locked=true
+PA10.Signal=I2C1_SDA
+PA11.GPIOParameters=GPIO_Label
+PA11.GPIO_Label=USB_N
+PA11.Locked=true
+PA11.Signal=USB_DM
+PA12.GPIOParameters=GPIO_Label
+PA12.GPIO_Label=USB_P
+PA12.Locked=true
+PA12.Signal=USB_DP
+PA13.GPIOParameters=GPIO_Label
+PA13.GPIO_Label=T_SWDIO
+PA13.Locked=true
+PA13.Signal=SYS_JTMS-SWDIO
+PA14.GPIOParameters=GPIO_Label
+PA14.GPIO_Label=T_SWCLK
+PA14.Locked=true
+PA14.Signal=SYS_JTCK-SWCLK
+PA15.Locked=true
+PA15.Signal=S_TIM2_CH1
+PA2.Locked=true
+PA2.Signal=ADCx_IN7
+PA3.GPIOParameters=GPIO_Label
+PA3.GPIO_Label=QSPI_BK_SCK
+PA3.Locked=true
+PA3.Signal=QUADSPI_CLK
+PA4.Locked=true
+PA4.Signal=SPI1_NSS
+PA5.Locked=true
+PA5.Signal=ADCx_IN10
+PA6.Locked=true
+PA6.Signal=LPUART1_CTS
+PA7.Locked=true
+PA7.Mode=Full_Duplex_Master
+PA7.Signal=SPI1_MOSI
+PA8.GPIOParameters=GPIO_Label
+PA8.GPIO_Label=SAI1_CK2
+PA8.Locked=true
+PA8.Signal=SAI1_CK2
+PA9.GPIOParameters=GPIO_Label
+PA9.GPIO_Label=SAI1_D2
+PA9.Locked=true
+PA9.Signal=SAI1_D2
+PB10.Locked=true
+PB10.Signal=S_TIM2_CH3
+PB11.GPIOParameters=GPIO_Label
+PB11.GPIO_Label=I2C3_SDA
+PB11.Locked=true
+PB11.Mode=I2C
+PB11.Signal=I2C3_SDA
+PB12.Locked=true
+PB12.Signal=LPUART1_RTS
+PB13.GPIOParameters=GPIO_Label
+PB13.GPIO_Label=I2C3_SCL
+PB13.Locked=true
+PB13.Mode=I2C
+PB13.Signal=I2C3_SCL
+PB14.Locked=true
+PB14.Signal=SPI2_MISO
+PB15.Locked=true
+PB15.Signal=SPI2_MOSI
+PB2.Locked=true
+PB2.Signal=GPIO_Input
+PB3.GPIOParameters=GPIO_Label
+PB3.GPIO_Label=T_SWO
+PB3.Locked=true
+PB3.Signal=SYS_JTDO-SWO
+PB4.Locked=true
+PB4.Mode=Full_Duplex_Master
+PB4.Signal=SPI1_MISO
+PB5.GPIOParameters=GPIO_Label
+PB5.GPIO_Label=LPUART1_TX_MCU
+PB5.Locked=true
+PB5.Signal=LPUART1_TX
+PB6.GPIOParameters=GPIO_Speed,GPIO_PuPd,GPIO_Label
+PB6.GPIO_Label=VCP_TX
+PB6.GPIO_PuPd=GPIO_PULLUP
+PB6.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB6.Locked=true
+PB6.Mode=Asynchronous
+PB6.Signal=USART1_TX
+PB7.GPIOParameters=GPIO_ModeDefaultPP,GPIO_Speed,GPIO_PuPd,GPIO_Label
+PB7.GPIO_Label=VCP_RX
+PB7.GPIO_ModeDefaultPP=GPIO_MODE_AF_PP
+PB7.GPIO_PuPd=GPIO_PULLUP
+PB7.GPIO_Speed=GPIO_SPEED_FREQ_VERY_HIGH
+PB7.Locked=true
+PB7.Mode=Asynchronous
+PB7.Signal=USART1_RX
+PB8.Locked=true
+PB8.Signal=I2C1_SCL
+PB9.GPIOParameters=GPIO_Label
+PB9.GPIO_Label=QSPI_BK_IO0
+PB9.Locked=true
+PB9.Signal=QUADSPI_BK1_IO0
+PC0.GPIOParameters=GPIO_Label
+PC0.GPIO_Label=LPUART1_RX_MCU
+PC0.Locked=true
+PC0.Signal=LPUART1_RX
+PC1.Locked=true
+PC1.Signal=ADCx_IN2
+PC10.Locked=true
+PC10.Signal=GPIO_Input
+PC11.Locked=true
+PC11.Signal=GPIO_Input
+PC12.GPIOParameters=GPIO_Label
+PC12.GPIO_Label=User-B1
+PC12.Locked=true
+PC12.Signal=SYS_WKUP3
+PC13.GPIOParameters=GPIO_Label
+PC13.GPIO_Label=User-B2
+PC13.Locked=true
+PC13.Signal=SYS_WKUP2
+PC2.Locked=true
+PC2.Signal=GPIO_Input
+PC3.Locked=true
+PC3.Signal=ADCx_IN4
+PC4.Locked=true
+PC4.Signal=ADCx_IN13
+PC5.Locked=true
+PC5.Signal=ADCx_IN14
+PC6.GPIOParameters=GPIO_Label
+PC6.GPIO_Label=TSC_G4_IO1
+PC6.Locked=true
+PC6.Signal=TSC_G4_IO1
+PC7.GPIOParameters=GPIO_Label
+PC7.GPIO_Label=TSC_G4_IO2
+PC7.Locked=true
+PC7.Signal=TSC_G4_IO2
+PC8.GPIOParameters=GPIO_Label
+PC8.GPIO_Label=RST_DISP
+PC8.Locked=true
+PC8.Signal=GPIO_Output
+PC9.GPIOParameters=GPIO_Label
+PC9.GPIO_Label=D/C_DISP
+PC9.Locked=true
+PC9.Signal=GPIO_Output
+PCC.Ble.ConnectionInterval=1000.0
+PCC.Ble.DataLength=6
+PCC.Ble.IsUsed=false
+PCC.Ble.Mode=NOT_SELECTED
+PCC.Ble.PowerLevel=Min
+PCC.Zigbee.IsUsed=false
+PCC.Zigbee.Mode=Sleepy End Device
+PCC.Zigbee.Payload=15
+PCC.Zigbee.PoolPeriodicity=480.0
+PCC.Zigbee.PowerLevel=Min
+PCC.Zigbee.RequestPeriodicity=1500.0
+PD0.Locked=true
+PD0.Signal=SPI2_NSS
+PD1.Locked=true
+PD1.Signal=SPI2_SCK
+PD10.GPIOParameters=GPIO_Label
+PD10.GPIO_Label=TSC_G6_IO1
+PD10.Locked=true
+PD10.Signal=TSC_G6_IO1
+PD11.GPIOParameters=GPIO_Label
+PD11.GPIO_Label=TSC_G6_IO2
+PD11.Locked=true
+PD11.Signal=TSC_G6_IO2
+PD12.Locked=true
+PD12.Signal=GPIO_Input
+PD13.Locked=true
+PD13.Signal=GPIO_Input
+PD14.Locked=true
+PD14.Signal=S_TIM1_CH1
+PD15.Locked=true
+PD15.Signal=S_TIM1_CH2
+PD2.GPIOParameters=GPIO_Label
+PD2.GPIO_Label=INT1
+PD2.Locked=true
+PD2.Signal=GPXTI2
+PD3.GPIOParameters=GPIO_Label
+PD3.GPIO_Label=QSPI_BK_NCS
+PD3.Locked=true
+PD3.Signal=QUADSPI_BK1_NCS
+PD4.Locked=true
+PD4.Signal=GPIO_Input
+PD5.GPIOParameters=GPIO_Label
+PD5.GPIO_Label=QSPI_BK_IO1
+PD5.Locked=true
+PD5.Signal=QUADSPI_BK1_IO1
+PD6.GPIOParameters=GPIO_Label
+PD6.GPIO_Label=QSPI_BK_IO2
+PD6.Locked=true
+PD6.Signal=QUADSPI_BK1_IO2
+PD8.Locked=true
+PD8.Signal=GPIO_Output
+PD9.GPIOParameters=GPIO_Label
+PD9.GPIO_Label=INT2
+PD9.Locked=true
+PD9.Signal=GPXTI9
+PE0.Locked=true
+PE0.Signal=S_TIM16_CH1
+PE1.GPIOParameters=GPIO_Label
+PE1.GPIO_Label=DRDY
+PE1.Locked=true
+PE1.Signal=GPIO_Input
+PE2.GPIOParameters=GPIO_Label
+PE2.GPIO_Label=GPIO_SELECT1
+PE2.Locked=true
+PE2.Signal=GPIO_Output
+PE3.Locked=true
+PE3.Signal=GPXTI3
+PE4.Locked=true
+PE4.Signal=GPIO_Input
+PH0.GPIOParameters=GPIO_Label
+PH0.GPIO_Label=CS_DISP
+PH0.Locked=true
+PH0.Signal=GPIO_Output
+PH1.GPIOParameters=GPIO_Label
+PH1.GPIO_Label=GPIO_SELECT2
+PH1.Locked=true
+PH1.Signal=GPIO_Output
+PinOutPanel.CurrentBGAView=Top
+PinOutPanel.RotationAngle=0
+ProjectManager.AskForMigrate=true
+ProjectManager.BackupPrevious=false
+ProjectManager.CompilerOptimize=6
+ProjectManager.ComputerToolchain=false
+ProjectManager.CoupleFile=false
+ProjectManager.DeletePrevious=true
+ProjectManager.DeviceId=STM32WB5MMGHx
+ProjectManager.FreePins=false
+ProjectManager.HalAssertFull=false
+ProjectManager.HeapSize=0x400
+ProjectManager.KeepUserCode=true
+ProjectManager.LastFirmware=false
+ProjectManager.LibraryCopy=2
+ProjectManager.MainLocation=Core/Src
+ProjectManager.NoMain=false
+ProjectManager.PreviousToolchain=
+ProjectManager.ProjectBuild=false
+ProjectManager.ProjectFileName=BLE_p2pServer.ioc
+ProjectManager.ProjectName=BLE_p2pServer
+ProjectManager.RegisterCallBack=
+ProjectManager.StackSize=0x1000
+ProjectManager.TargetToolchain=EWARM V8
+ProjectManager.ToolChainLocation=
+ProjectManager.UnderRoot=false
+ProjectManager.functionlistsort=1-MX_GPIO_Init-GPIO-false-HAL-true,2-MX_DMA_Init-DMA-false-HAL-true,3-SystemClock_Config-RCC-false-HAL-false,4-MX_RF_Init-RF-false-HAL-true,5-MX_RTC_Init-RTC-false-HAL-true,false-6-MX_TIM17_Init-TIM17-false-HAL-true,7-MX_USART1_UART_Init-USART1-false-HAL-false,8-APPE_Init-STM32_WPAN-false-HAL-false,false-9-MX_I2C3_Init-I2C3-false-HAL-true,false-10-MX_SPI1_Init-SPI1-false-HAL-true,11-MX_IPCC_Init-IPCC-false-HAL-true,0-MX_HSEM_Init-HSEM-false-HAL-true
+RCC.AHBFreq_Value=32000000
+RCC.APB1Freq_Value=32000000
+RCC.APB1TimFreq_Value=32000000
+RCC.APB2Freq_Value=32000000
+RCC.APB2TimFreq_Value=32000000
+RCC.APB3Freq_Value=16000000
+RCC.Cortex2Freq_Value=32000000
+RCC.CortexFreq_Value=32000000
+RCC.FCLK2Freq_Value=32000000
+RCC.FCLKCortexFreq_Value=32000000
+RCC.FamilyName=M
+RCC.HCLK2Freq_Value=32000000
+RCC.HCLK3Freq_Value=32000000
+RCC.HCLKFreq_Value=32000000
+RCC.HCLKRFFreq_Value=16000000
+RCC.HSE_VALUE=32000000
+RCC.HSI48_VALUE=48000000
+RCC.HSI_VALUE=16000000
+RCC.I2C1Freq_Value=32000000
+RCC.I2C3Freq_Value=32000000
+RCC.IPParameters=AHBFreq_Value,APB1Freq_Value,APB1TimFreq_Value,APB2Freq_Value,APB2TimFreq_Value,APB3Freq_Value,Cortex2Freq_Value,CortexFreq_Value,FCLK2Freq_Value,FCLKCortexFreq_Value,FamilyName,HCLK2Freq_Value,HCLK3Freq_Value,HCLKFreq_Value,HCLKRFFreq_Value,HSE_VALUE,HSI48_VALUE,HSI_VALUE,I2C1Freq_Value,I2C3Freq_Value,LCDFreq_Value,LPTIM1Freq_Value,LPTIM2Freq_Value,LPUART1Freq_Value,LSCOPinFreq_Value,LSI_VALUE,MCO1PinFreq_Value,PLLPoutputFreq_Value,PLLQoutputFreq_Value,PLLRCLKFreq_Value,PLLSAI1PoutputFreq_Value,PLLSAI1QoutputFreq_Value,PLLSAI1RoutputFreq_Value,PWRFreq_Value,RFWKPClockSelection,RFWKPFreq_Value,RNGFreq_Value,RTCClockSelection,RTCFreq_Value,SAI1Freq_Value,SMPS1Freq_Value,SMPSCLockSelectionVirtual,SMPSFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,USART1Freq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAI1OutputFreq_Value
+RCC.LCDFreq_Value=32768
+RCC.LPTIM1Freq_Value=32000000
+RCC.LPTIM2Freq_Value=32000000
+RCC.LPUART1Freq_Value=32000000
+RCC.LSCOPinFreq_Value=32000
+RCC.LSI_VALUE=32000
+RCC.MCO1PinFreq_Value=32000000
+RCC.PLLPoutputFreq_Value=16000000
+RCC.PLLQoutputFreq_Value=16000000
+RCC.PLLRCLKFreq_Value=16000000
+RCC.PLLSAI1PoutputFreq_Value=16000000
+RCC.PLLSAI1QoutputFreq_Value=16000000
+RCC.PLLSAI1RoutputFreq_Value=16000000
+RCC.PWRFreq_Value=32000000
+RCC.RFWKPClockSelection=RCC_RFWKPCLKSOURCE_LSE
+RCC.RFWKPFreq_Value=32768
+RCC.RNGFreq_Value=32000
+RCC.RTCClockSelection=RCC_RTCCLKSOURCE_LSE
+RCC.RTCFreq_Value=32768
+RCC.SAI1Freq_Value=16000000
+RCC.SMPS1Freq_Value=16000000
+RCC.SMPSCLockSelectionVirtual=RCC_SMPSCLKSOURCE_HSE
+RCC.SMPSFreq_Value=8000000
+RCC.SYSCLKFreq_VALUE=32000000
+RCC.SYSCLKSource=RCC_SYSCLKSOURCE_HSE
+RCC.USART1Freq_Value=32000000
+RCC.VCOInputFreq_Value=4000000
+RCC.VCOOutputFreq_Value=32000000
+RCC.VCOSAI1OutputFreq_Value=32000000
+SH.ADCx_IN10.0=ADC1_IN10
+SH.ADCx_IN10.ConfNb=1
+SH.ADCx_IN13.0=ADC1_IN13
+SH.ADCx_IN13.ConfNb=1
+SH.ADCx_IN14.0=ADC1_IN14
+SH.ADCx_IN14.ConfNb=1
+SH.ADCx_IN2.0=ADC1_IN2
+SH.ADCx_IN2.ConfNb=1
+SH.ADCx_IN4.0=ADC1_IN4
+SH.ADCx_IN4.ConfNb=1
+SH.ADCx_IN5.0=ADC1_IN5
+SH.ADCx_IN5.ConfNb=1
+SH.ADCx_IN7.0=ADC1_IN7
+SH.ADCx_IN7.ConfNb=1
+SH.GPXTI2.0=GPIO_EXTI2
+SH.GPXTI2.ConfNb=1
+SH.GPXTI3.0=GPIO_EXTI3
+SH.GPXTI3.ConfNb=1
+SH.GPXTI9.0=GPIO_EXTI9
+SH.GPXTI9.ConfNb=1
+SH.S_TIM16_CH1.0=TIM16_CH1
+SH.S_TIM16_CH1.ConfNb=1
+SH.S_TIM1_CH1.0=TIM1_CH1
+SH.S_TIM1_CH1.ConfNb=1
+SH.S_TIM1_CH2.0=TIM1_CH2
+SH.S_TIM1_CH2.ConfNb=1
+SH.S_TIM2_CH1.0=TIM2_CH1
+SH.S_TIM2_CH1.ConfNb=1
+SH.S_TIM2_CH3.0=TIM2_CH3
+SH.S_TIM2_CH3.ConfNb=1
+SPI1.CalculateBaudRate=16.0 MBits/s
+SPI1.Direction=SPI_DIRECTION_2LINES
+SPI1.IPParameters=VirtualType,Mode,Direction,CalculateBaudRate
+SPI1.Mode=SPI_MODE_MASTER
+SPI1.VirtualType=VM_MASTER
+STM32_WPAN.BLE_CFG_SVC_MAX_NBR_CB=1
+STM32_WPAN.BLE_DBG_P2P_STM_EN=1
+STM32_WPAN.BT_SIG_HEART_RATE_SENSOR=Disabled
+STM32_WPAN.CFG_ADV_BD_ADDRESS=0x7257acd87a6c
+STM32_WPAN.CFG_BONDING_MODE=1
+STM32_WPAN.CFG_DEBUGGER_SUPPORTED=1
+STM32_WPAN.CFG_DEBUG_APP_TRACE=1
+STM32_WPAN.CFG_DEBUG_BLE_TRACE=1
+STM32_WPAN.CFG_DEBUG_TRACE_LIGHT=1
+STM32_WPAN.CFG_DEBUG_TRACE_UART=hw_uart1
+STM32_WPAN.CFG_HW_USART1_ENABLED=1
+STM32_WPAN.CFG_LPM_SUPPORTED=0
+STM32_WPAN.CFG_USE_SMPS=0
+STM32_WPAN.CUSTOM_P2P_SERVER=Enabled
+STM32_WPAN.IPParameters=CUSTOM_P2P_SERVER,BT_SIG_HEART_RATE_SENSOR,BLE_CFG_SVC_MAX_NBR_CB,CFG_HW_USART1_ENABLED,CFG_DEBUGGER_SUPPORTED,CFG_DEBUG_TRACE_UART,CFG_LPM_SUPPORTED,CFG_ADV_BD_ADDRESS,CFG_BONDING_MODE,CFG_DEBUG_TRACE_LIGHT,CFG_DEBUG_BLE_TRACE,CFG_DEBUG_APP_TRACE,CFG_USE_SMPS,L2CAP_REQUEST_NEW_CONN_PARAM,BLE_DBG_P2P_STM_EN
+STM32_WPAN.L2CAP_REQUEST_NEW_CONN_PARAM=1
+USART1.IPParameters=VirtualMode-Asynchronous,OverSampling
+USART1.OverSampling=UART_OVERSAMPLING_8
+USART1.VirtualMode-Asynchronous=VM_ASYNC
+VP_HSEM_VS_HSEM.Mode=HSEM_Activate
+VP_HSEM_VS_HSEM.Signal=HSEM_VS_HSEM
+VP_IPCC_VS_IPCC.Mode=IPCC_Activate
+VP_IPCC_VS_IPCC.Signal=IPCC_VS_IPCC
+VP_RCC_V_OSC32_IN.Mode=LSE-External-Clock-Source
+VP_RCC_V_OSC32_IN.Signal=RCC_V_OSC32_IN
+VP_RCC_V_OSC_IN.Mode=HSE-External-Clock-Source
+VP_RCC_V_OSC_IN.Signal=RCC_V_OSC_IN
+VP_RF_VS_RF.Mode=RF_Activate
+VP_RF_VS_RF.Signal=RF_VS_RF
+VP_RTC_VS_RTC_Activate.Mode=RTC_Enabled
+VP_RTC_VS_RTC_Activate.Signal=RTC_VS_RTC_Activate
+VP_SEQUENCER_VS_SEQUENCER.Mode=SEQUENCER_Enabled
+VP_SEQUENCER_VS_SEQUENCER.Signal=SEQUENCER_VS_SEQUENCER
+VP_STM32_WPAN_VS_BLE_HOST.Mode=STM32_WPAN_Enabled
+VP_STM32_WPAN_VS_BLE_HOST.Signal=STM32_WPAN_VS_BLE_HOST
+VP_SYS_VS_Systick.Mode=SysTick
+VP_SYS_VS_Systick.Signal=SYS_VS_Systick
+VP_TIM17_VS_ClockSourceINT.Mode=Enable_Timer
+VP_TIM17_VS_ClockSourceINT.Signal=TIM17_VS_ClockSourceINT
+VP_TINY_LPM_VS_TINY_LPM.Mode=TINY_LPM_Enabled
+VP_TINY_LPM_VS_TINY_LPM.Signal=TINY_LPM_VS_TINY_LPM
+board=STM32WB5MM-DK
+boardIOC=true
+ProjectManager.Example=BLE_p2pServer
+ProjectManager.ExampleSource=CubeFw
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_common.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_common.h
index 3981eb9da..62e8ad603 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_common.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_common.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_common.h
- * Description : App Common application configuration file for STM32WPAN Middleware.
- *
+ ******************************************************************************
+ * @file app_common.h
+ * @author MCD Application Team
+ * @brief App Common application configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -115,5 +114,3 @@ extern "C"{
#endif
#endif /*APP_COMMON_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_conf.h
index a0777317a..da925850c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_conf.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_conf.h
- * Description : Application configuration file for STM32WPAN Middleware.
+ ******************************************************************************
+ * @file app_conf.h
+ * @author MCD Application Team
+ * @brief Application configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -42,8 +42,7 @@
* Define Advertising parameters
*/
#define CFG_ADV_BD_ADDRESS (0x7257acd87a6c)
-#define CFG_BLE_ADDRESS_TYPE RANDOM_ADDR /**< Bluetooth address types defined in ble_legacy.h */
-/*#define CFG_STATIC_RANDOM_ADDRESS (0xf257acd87a6c)*/ /**< Static Random Address fixed for lifetime of the device */
+#define CFG_BLE_ADDRESS_TYPE PUBLIC_ADDR /**< Bluetooth address types defined in ble_legacy.h */
#define CFG_FAST_CONN_ADV_INTERVAL_MIN (0x80) /**< 80ms */
#define CFG_FAST_CONN_ADV_INTERVAL_MAX (0xA0) /**< 100ms */
@@ -293,6 +292,10 @@
* - SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC
* - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RO
* - SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW
+ * - SHCI_C2_BLE_INIT_OPTIONS_EXT_ADV
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV
+ * - SHCI_C2_BLE_INIT_OPTIONS_CS_ALGO2
+ * - SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2
* - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_1
* - SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3
* which are used to set following configuration bits:
@@ -302,11 +305,15 @@
* 0: with service change desc.
* (bit 2): 1: device name Read-Only
* 0: device name R/W
+ * (bit 3): 1: extended advertizing supported [NOT SUPPORTED]
+ * 0: extended advertizing not supported [NOT SUPPORTED]
+ * (bit 4): 1: CS Algo #2 supported
+ * 0: CS Algo #2 not supported
* (bit 7): 1: LE Power Class 1
* 0: LE Power Class 2-3
* other bits: reserved (shall be set to 0)
*/
-#define CFG_BLE_OPTIONS (SHCI_C2_BLE_INIT_OPTIONS_LL_HOST | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
+#define CFG_BLE_OPTIONS (SHCI_C2_BLE_INIT_OPTIONS_LL_HOST | SHCI_C2_BLE_INIT_OPTIONS_WITH_SVC_CHANGE_DESC | SHCI_C2_BLE_INIT_OPTIONS_DEVICE_NAME_RW | SHCI_C2_BLE_INIT_OPTIONS_NO_EXT_ADV | SHCI_C2_BLE_INIT_OPTIONS_NO_CS_ALGO2 | SHCI_C2_BLE_INIT_OPTIONS_POWER_CLASS_2_3)
#define CFG_BLE_MAX_COC_INITIATOR_NBR (32)
@@ -314,6 +321,18 @@
#define CFG_BLE_MAX_TX_POWER (0)
+/**
+ * BLE Rx model configuration flags to be configured with:
+ * - SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_LEGACY
+ * - SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_BLOCKER
+ * which are used to set following configuration bits:
+ * (bit 0): 1: agc_rssi model improved vs RF blockers
+ * 0: Legacy agc_rssi model
+ * other bits: reserved (shall be set to 0)
+ */
+
+#define CFG_BLE_RX_MODEL_CONFIG SHCI_C2_BLE_INIT_RX_MODEL_AGC_RSSI_LEGACY
+
/******************************************************************************
* Transport Layer
******************************************************************************/
@@ -461,8 +480,9 @@
#endif
-/** tick timer value in us */
+/** tick timer values */
#define CFG_TS_TICK_VAL DIVR( (CFG_RTCCLK_DIV * 1000000), LSE_VALUE )
+#define CFG_TS_TICK_VAL_PS DIVR( ((uint64_t)CFG_RTCCLK_DIV * 1e12), (uint64_t)LSE_VALUE )
typedef enum
{
@@ -579,9 +599,9 @@ typedef enum
CFG_TASK_CONN_UPDATE_REG_ID,
#endif
CFG_TASK_HCI_ASYNCH_EVT_ID,
-/* USER CODE BEGIN CFG_Task_Id_With_HCI_Cmd_t */
+ /* USER CODE BEGIN CFG_Task_Id_With_HCI_Cmd_t */
CFG_TASK_SW1_BUTTON_PUSHED_ID,
-/* USER CODE END CFG_Task_Id_With_HCI_Cmd_t */
+ /* USER CODE END CFG_Task_Id_With_HCI_Cmd_t */
CFG_LAST_TASK_ID_WITH_HCICMD, /**< Shall be LAST in the list */
} CFG_Task_Id_With_HCI_Cmd_t;
@@ -590,11 +610,12 @@ typedef enum
{
CFG_FIRST_TASK_ID_WITH_NO_HCICMD = CFG_LAST_TASK_ID_WITH_HCICMD - 1, /**< Shall be FIRST in the list */
CFG_TASK_SYSTEM_HCI_ASYNCH_EVT_ID,
-/* USER CODE BEGIN CFG_Task_Id_With_NO_HCI_Cmd_t */
+ /* USER CODE BEGIN CFG_Task_Id_With_NO_HCI_Cmd_t */
-/* USER CODE END CFG_Task_Id_With_NO_HCI_Cmd_t */
+ /* USER CODE END CFG_Task_Id_With_NO_HCI_Cmd_t */
CFG_LAST_TASK_ID_WITHO_NO_HCICMD /**< Shall be LAST in the list */
} CFG_Task_Id_With_NO_HCI_Cmd_t;
+
#define CFG_TASK_NBR CFG_LAST_TASK_ID_WITHO_NO_HCICMD
/**
@@ -627,9 +648,9 @@ typedef enum
{
CFG_LPM_APP,
CFG_LPM_APP_BLE,
- /* USER CODE BEGIN CFG_LPM_Id_t */
+ /* USER CODE BEGIN CFG_LPM_Id_t */
- /* USER CODE END CFG_LPM_Id_t */
+ /* USER CODE END CFG_LPM_Id_t */
} CFG_LPM_Id_t;
/******************************************************************************
@@ -640,5 +661,3 @@ typedef enum
#define CFG_OTP_END_ADRESS OTP_AREA_END_ADDR
#endif /*APP_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_debug.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_debug.h
index 9354bf8a9..9237f301f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_debug.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_debug.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_debug.h
- * Description : Header for app_debug.c module
- ******************************************************************************
+ ******************************************************************************
+ * @file app_debug.h
+ * @author MCD Application Team
+ * @brief Header for app_debug.c module
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -65,5 +65,3 @@ extern "C" {
#endif
#endif /*__APP_DEBUG_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_entry.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_entry.h
index f559a7d8e..752734d7e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_entry.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/app_entry.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_entry.h
- * Description : App entry configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ ******************************************************************************
+ * @file app_entry.h
+ * @author MCD Application Team
+ * @brief Interface to the application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -60,6 +60,9 @@ extern "C" {
void MX_APPE_Config( void );
void MX_APPE_Init( void );
void MX_APPE_Process( void );
+ void Init_Exti( void );
+ void Init_Smps( void );
+
/* USER CODE BEGIN EF */
void LED_Deinit(void);
void LED_On(aPwmLedGsData_TypeDef aPwmLedGsData);
@@ -71,5 +74,3 @@ extern "C" {
#endif
#endif /*APP_ENTRY_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/hw_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/hw_conf.h
index 9ea733a63..cc426a452 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/hw_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/hw_conf.h
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : hw_conf.h
- * Description : Hardware configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ ******************************************************************************
+ * @file hw_conf.h
+ * @author MCD Application Team
+ * @brief Configuration of hardware interface
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -210,5 +210,3 @@
#define CFG_HW_USART1_DMA_TX_IRQHandler DMA2_Channel4_IRQHandler
#endif /*HW_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/hw_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/hw_if.h
index 92a787b69..403bf1ed7 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/hw_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/hw_if.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -150,7 +149,7 @@ extern "C" {
* @param pTimerId: Timer Id returned to the user to request operation (start, stop, delete)
* @param TimerMode: Mode of the virtual timer (Single shot or repeated)
* @param pTimerCallBack: Callback when the virtual timer expires
- * @retval HW_TS_ReturnStatus_t: Return whether the creation is sucessful or not
+ * @retval HW_TS_ReturnStatus_t: Return whether the creation is successful or not
*/
HW_TS_ReturnStatus_t HW_TS_Create(uint32_t TimerProcessID, uint8_t *pTimerId, HW_TS_Mode_t TimerMode, HW_TS_pTimerCb_t pTimerCallBack);
@@ -249,5 +248,3 @@ extern "C" {
#endif
#endif /*HW_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/main.h
index b9fc88585..c3bab57e6 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/main.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/main.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -145,5 +144,3 @@ void MX_USART1_UART_Init(void);
#endif
#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32_lpm_if.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32_lpm_if.h
index e1aecd591..45c31caa5 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32_lpm_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32_lpm_if.h
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
-******************************************************************************
-* @file stm32_lpm_if.h
-* @brief Header for stm32_lpm_if.c module (device specific LP management)
-******************************************************************************
-* @attention
-*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @file stm32_lpm_if.h
+ * @author MCD Application Team
+ * @brief Header for stm32_lpm_if.c module (device specific LP management)
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -77,5 +77,3 @@ void PWR_ExitSleepMode( void );
#endif
#endif /*__STM32_LPM_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wb5mm_dk_conf.h
index 12589916a..9aefd8c2d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wb5mm_dk_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wb5mm_dk_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -92,5 +91,3 @@ extern "C" {
#endif
#endif /* STM32WB5MM_DK_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wbxx_hal_conf.h
index 291c8a9e9..0de7f34ea 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wbxx_hal_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wbxx_hal_conf.h
@@ -1,3 +1,4 @@
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32wbxx_hal_conf.h
@@ -6,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32WBxx_HAL_CONF_H
@@ -46,7 +47,7 @@
/*#define HAL_LPTIM_MODULE_ENABLED */
/*#define HAL_PCD_MODULE_ENABLED */
/*#define HAL_PKA_MODULE_ENABLED */
-#define HAL_QSPI_MODULE_ENABLED
+/*#define HAL_QSPI_MODULE_ENABLED */
/*#define HAL_RNG_MODULE_ENABLED */
#define HAL_RTC_MODULE_ENABLED
/*#define HAL_SAI_MODULE_ENABLED */
@@ -349,5 +350,3 @@
#endif
#endif /* __STM32WBxx_HAL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wbxx_it.h
index 8fac8fb82..8f1edd8c4 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wbxx_it.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/stm32wbxx_it.h
@@ -6,15 +6,14 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
+ ******************************************************************************
*/
/* USER CODE END Header */
@@ -72,5 +71,3 @@ void PUSH_BUTTON_SW_EXTI_IRQHandler(void);
#endif
#endif /* __STM32WBxx_IT_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/utilities_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/utilities_conf.h
index 4edfbbacf..c34a6ca79 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/utilities_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Inc/utilities_conf.h
@@ -1,21 +1,20 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : utilities_conf.h
- * Description : Configuration file for STM32 Utilities.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file utilities_conf.h
+ * @author MCD Application Team
+ * @brief Configuration file for STM32 Utilities.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- *****************************************************************************
+ ******************************************************************************
*/
/* USER CODE END Header */
@@ -64,5 +63,3 @@ extern "C" {
#endif
#endif /*UTILITIES_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/app_debug.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/app_debug.c
index 7b2d278a5..ebdc12e32 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/app_debug.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/app_debug.c
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_debug.c
- * Description : Debug capabilities source file for STM32WPAN Middleware
- ******************************************************************************
+ ******************************************************************************
+ * @file app_debug.c
+ * @author MCD Application Team
+ * @brief Debug capabilities source file for STM32WPAN Middleware
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -43,7 +43,7 @@ typedef PACKED_STRUCT
/* Private defines -----------------------------------------------------------*/
/* USER CODE BEGIN PD */
#define GPIO_NBR_OF_RF_SIGNALS 9
-#define GPIO_CFG_NBR_OF_FEATURES 34
+#define GPIO_CFG_NBR_OF_FEATURES 38
#define NBR_OF_TRACES_CONFIG_PARAMETERS 4
#define NBR_OF_GENERAL_CONFIG_PARAMETERS 4
@@ -128,8 +128,16 @@ static const APPD_GpioConfig_t aGpioConfigList[GPIO_CFG_NBR_OF_FEATURES] =
/* From v1.4.0 */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* NVMA_START - Set on Entry / Reset on Exit */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_EOP - Set on Entry / Reset on Exit */
+/* From v1.5.0 */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_WRITE - Set on Entry / Reset on Exit */
{ GPIOA, LL_GPIO_PIN_0, 0, 0}, /* FLASH_ERASE - Set on Entry / Reset on Exit */
+/* From v1.6.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_RESCHEDULE_EVENT - Set on Entry / Reset on Exit */
+/* From v1.8.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_LLD_CMD_RX - Set on Entry / Reset on Exit */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* IPCC_BLE_LLD_ACK_TX - Set on Entry / Reset on Exit */
+/* From v1.9.0 */
+ { GPIOA, LL_GPIO_PIN_0, 0, 0}, /* BLE_ASYNCH_EVENT_NACKED - Set on Entry / Reset on Exit */
};
/**
@@ -408,5 +416,3 @@ void DbgOutputTraces( uint8_t *p_data, uint16_t size, void (*cb)(void) )
return;
}
#endif
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/app_entry.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/app_entry.c
index 0d34dee6a..58333eb6b 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/app_entry.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/app_entry.c
@@ -1,21 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : app_entry.c
- * Description : Entry application source file for STM32WPAN Middleware
- ******************************************************************************
+ ******************************************************************************
+ * @file app_entry.c
+ * @author MCD Application Team
+ * @brief Entry point of the Application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -29,6 +29,8 @@
#include "shci_tl.h"
#include "stm32_lpm.h"
#include "app_debug.h"
+#include "dbg_trace.h"
+#include "shci.h"
#include "otp.h"
/* Private includes -----------------------------------------------------------*/
@@ -67,16 +69,18 @@ PLACE_IN_SECTION("MB_MEM2") ALIGN(4) static uint8_t BleSpareEvtBuffer[sizeof(TL_
/* Private functions prototypes-----------------------------------------------*/
static void Config_HSE(void);
static void Reset_Device( void );
+#if ( CFG_HW_RESET_BY_FW == 1 )
static void Reset_IPCC( void );
static void Reset_BackupDomain( void );
+#endif /* CFG_HW_RESET_BY_FW */
static void System_Init( void );
static void SystemPower_Config( void );
static void appe_Tl_Init( void );
static void APPE_SysStatusNot( SHCI_TL_CmdStatus_t status );
static void APPE_SysUserEvtRx( void * pPayload );
-static void Init_Exti( void );
+static void APPE_SysEvtReadyProcessing( void * pPayload );
+static void APPE_SysEvtError( void * pPayload);
static void Init_Rtc( void );
-static void Init_Smps( void );
/* USER CODE BEGIN PFP */
static void Button_Init( void );
@@ -155,6 +159,33 @@ void MX_APPE_Init( void )
/* USER CODE END APPE_Init_2 */
return;
}
+
+void Init_Smps( void )
+{
+#if (CFG_USE_SMPS != 0)
+ /**
+ * Configure and enable SMPS
+ *
+ * The SMPS configuration is not yet supported by CubeMx
+ * when SMPS output voltage is set to 1.4V, the RF output power is limited to 3.7dBm
+ * the SMPS output voltage shall be increased for higher RF output power
+ */
+ LL_PWR_SMPS_SetStartupCurrent(LL_PWR_SMPS_STARTUP_CURRENT_80MA);
+ LL_PWR_SMPS_SetOutputVoltageLevel(LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
+ LL_PWR_SMPS_Enable();
+#endif
+
+ return;
+}
+
+void Init_Exti( void )
+{
+ /* Enable IPCC(36), HSEM(38) wakeup interrupts on CPU1 */
+ LL_EXTI_EnableIT_32_63( LL_EXTI_LINE_36 & LL_EXTI_LINE_38 );
+
+ return;
+}
+
/* USER CODE BEGIN FD */
void LED_Deinit(void)
@@ -200,11 +231,12 @@ static void Reset_Device( void )
Reset_BackupDomain();
Reset_IPCC();
-#endif
+#endif /* CFG_HW_RESET_BY_FW */
return;
}
+#if ( CFG_HW_RESET_BY_FW == 1 )
static void Reset_BackupDomain( void )
{
if ((LL_RCC_IsActiveFlag_PINRST() != FALSE) && (LL_RCC_IsActiveFlag_SFTRST() == FALSE))
@@ -260,6 +292,7 @@ static void Reset_IPCC( void )
return;
}
+#endif /* CFG_HW_RESET_BY_FW */
static void Config_HSE(void)
{
@@ -288,33 +321,6 @@ static void System_Init( void )
return;
}
-static void Init_Smps( void )
-{
-#if (CFG_USE_SMPS != 0)
- /**
- * Configure and enable SMPS
- *
- * The SMPS configuration is not yet supported by CubeMx
- * when SMPS output voltage is set to 1.4V, the RF output power is limited to 3.7dBm
- * the SMPS output voltage shall be increased for higher RF output power
- */
- LL_PWR_SMPS_SetStartupCurrent(LL_PWR_SMPS_STARTUP_CURRENT_80MA);
- LL_PWR_SMPS_SetOutputVoltageLevel(LL_PWR_SMPS_OUTPUT_VOLTAGE_1V40);
- LL_PWR_SMPS_Enable();
-#endif
-
- return;
-}
-
-static void Init_Exti( void )
-{
- /**< Disable all wakeup interrupt on CPU1 except IPCC(36), HSEM(38) */
- LL_EXTI_DisableIT_0_31(~0);
- LL_EXTI_DisableIT_32_63( (~0) & (~(LL_EXTI_LINE_36 | LL_EXTI_LINE_38)) );
-
- return;
-}
-
static void Init_Rtc( void )
{
/* Disable RTC registers write protection */
@@ -327,6 +333,7 @@ static void Init_Rtc( void )
return;
}
+
/**
* @brief Configure the system for power optimization
*
@@ -399,12 +406,151 @@ static void APPE_SysStatusNot( SHCI_TL_CmdStatus_t status )
*/
static void APPE_SysUserEvtRx( void * pPayload )
{
- UNUSED(pPayload);
- /* Traces channel initialization */
- APPD_EnableCPU2( );
+ TL_AsynchEvt_t *p_sys_event;
+ WirelessFwInfo_t WirelessInfo;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+
+ /* Read the firmware version of both the wireless firmware and the FUS */
+ SHCI_GetWirelessFwInfo( &WirelessInfo );
+ APP_DBG_MSG("Wireless Firmware version %d.%d.%d\n", WirelessInfo.VersionMajor, WirelessInfo.VersionMinor, WirelessInfo.VersionSub);
+ APP_DBG_MSG("Wireless Firmware build %d\n", WirelessInfo.VersionReleaseType);
+ APP_DBG_MSG("FUS version %d.%d.%d\n\n", WirelessInfo.FusVersionMajor, WirelessInfo.FusVersionMinor, WirelessInfo.FusVersionSub);
+
+ switch(p_sys_event->subevtcode)
+ {
+ case SHCI_SUB_EVT_CODE_READY:
+ APPE_SysEvtReadyProcessing(pPayload);
+ break;
+
+ case SHCI_SUB_EVT_ERROR_NOTIF:
+ APPE_SysEvtError(pPayload);
+ break;
+
+ case SHCI_SUB_EVT_BLE_NVM_RAM_UPDATE:
+ APP_DBG_MSG("-- BLE NVM RAM HAS BEEN UPDATED BY CMO+ \n");
+ APP_DBG_MSG("SHCI_SUB_EVT_BLE_NVM_RAM_UPDATE : StartAddress = %lx , Size = %ld\n",
+ ((SHCI_C2_BleNvmRamUpdate_Evt_t*)p_sys_event->payload)->StartAddress,
+ ((SHCI_C2_BleNvmRamUpdate_Evt_t*)p_sys_event->payload)->Size);
+ break;
+
+ case SHCI_SUB_EVT_NVM_START_WRITE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_START_WRITE : NumberOfWords = %ld\n",
+ ((SHCI_C2_NvmStartWrite_Evt_t*)p_sys_event->payload)->NumberOfWords);
+ break;
+
+ case SHCI_SUB_EVT_NVM_END_WRITE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_END_WRITE\n");
+ break;
+
+ case SHCI_SUB_EVT_NVM_START_ERASE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_START_ERASE : NumberOfSectors = %ld\n",
+ ((SHCI_C2_NvmStartErase_Evt_t*)p_sys_event->payload)->NumberOfSectors);
+ break;
+
+ case SHCI_SUB_EVT_NVM_END_ERASE:
+ APP_DBG_MSG("SHCI_SUB_EVT_NVM_END_ERASE\n");
+ break;
+
+ default:
+ break;
+ }
+
+ return;
+}
+
+/**
+ * @brief Notify a system error coming from the M0 firmware
+ * @param ErrorCode : errorCode detected by the M0 firmware
+ *
+ * @retval None
+ */
+static void APPE_SysEvtError( void * pPayload)
+{
+ TL_AsynchEvt_t *p_sys_event;
+ SCHI_SystemErrCode_t *p_sys_error_code;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+ p_sys_error_code = (SCHI_SystemErrCode_t*) p_sys_event->payload;
+
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON %x \n",(*p_sys_error_code));
+
+ if ((*p_sys_error_code) == ERR_BLE_INIT)
+ {
+ /* Error during BLE stack initialization */
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON - ERR_BLE_INIT \n");
+ }
+ else
+ {
+ APP_DBG_MSG("SHCI_SUB_EVT_ERROR_NOTIF WITH REASON - BLE ERROR \n");
+ }
+ return;
+}
+
+static void APPE_SysEvtReadyProcessing( void * pPayload )
+{
+ TL_AsynchEvt_t *p_sys_event;
+ SHCI_C2_Ready_Evt_t *p_sys_ready_event;
+
+ SHCI_C2_CONFIG_Cmd_Param_t config_param = {0};
+ uint32_t RevisionID=0;
+
+ p_sys_event = (TL_AsynchEvt_t*)(((tSHCI_UserEvtRxParam*)pPayload)->pckt->evtserial.evt.payload);
+ p_sys_ready_event = (SHCI_C2_Ready_Evt_t*) p_sys_event->payload;
+
+ if(p_sys_ready_event->sysevt_ready_rsp == WIRELESS_FW_RUNNING)
+ {
+ /**
+ * The wireless firmware is running on the CPU2
+ */
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - WIRELESS_FW_RUNNING \n");
+
+ /* Traces channel initialization */
+ APPD_EnableCPU2( );
+
+ /* Enable all events Notification */
+ config_param.PayloadCmdSize = SHCI_C2_CONFIG_PAYLOAD_CMD_SIZE;
+ config_param.EvtMask1 = SHCI_C2_CONFIG_EVTMASK1_BIT0_ERROR_NOTIF_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT1_BLE_NVM_RAM_UPDATE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT2_THREAD_NVM_RAM_UPDATE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT3_NVM_START_WRITE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT4_NVM_END_WRITE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT5_NVM_START_ERASE_ENABLE
+ + SHCI_C2_CONFIG_EVTMASK1_BIT6_NVM_END_ERASE_ENABLE;
+
+ /* Read revision identifier */
+ /**
+ * @brief Return the device revision identifier
+ * @note This field indicates the revision of the device.
+ * @rmtoll DBGMCU_IDCODE REV_ID LL_DBGMCU_GetRevisionID
+ * @retval Values between Min_Data=0x00 and Max_Data=0xFFFF
+ */
+ RevisionID = LL_DBGMCU_GetRevisionID();
+
+ APP_DBG_MSG("DBGMCU_GetRevisionID= %lx \n\n", RevisionID);
+
+ config_param.RevisionID = RevisionID;
+ (void)SHCI_C2_Config(&config_param);
+
+ APP_BLE_Init( );
+ UTIL_LPM_SetOffMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE);
+ }
+ else if (p_sys_ready_event->sysevt_ready_rsp == FUS_FW_RUNNING)
+ {
+ /**
+ * The FUS firmware is running on the CPU2
+ * In the scope of this application, there should be no case when we get here
+ */
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - FUS_FW_RUNNING \n");
+
+ /* The packet shall not be released as this is not supported by the FUS */
+ ((tSHCI_UserEvtRxParam*)pPayload)->status = SHCI_TL_UserEventFlow_Disable;
+ }
+ else
+ {
+ APP_DBG_MSG("SHCI_SUB_EVT_CODE_READY - UNEXPECTED CASE \n");
+ }
- APP_BLE_Init( );
- UTIL_LPM_SetOffMode(1U << CFG_LPM_APP, UTIL_LPM_ENABLE);
return;
}
@@ -488,6 +634,8 @@ void UTIL_SEQ_Idle( void )
void UTIL_SEQ_EvtIdle( UTIL_SEQ_bm_t task_id_bm, UTIL_SEQ_bm_t evt_waited_bm )
{
UTIL_SEQ_Run( UTIL_SEQ_DEFAULT );
+
+ return;
}
void shci_notify_asynch_evt(void* pdata)
@@ -529,4 +677,3 @@ void HAL_GPIO_EXTI_Callback( uint16_t GPIO_Pin )
}
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/hw_timerserver.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/hw_timerserver.c
index c0af6a14a..23a5bcdc6 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/hw_timerserver.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/hw_timerserver.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : hw_timerserver.c
- * Description : Hardware timerserver source file for STM32WPAN Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file hw_timerserver.c
+ * @author MCD Application Team
+ * @brief Hardware timerserver source file for STM32WPAN Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -891,5 +890,3 @@ __weak void HW_TS_RTC_Int_AppNot(uint32_t TimerProcessID, uint8_t TimerID, HW_TS
return;
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/hw_uart.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/hw_uart.c
index 6ae6ff9f9..43c681c1c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/hw_uart.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/hw_uart.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : Src/hw_uart.c
- * Description : HW UART source file for STM32WPAN Middleware.
- *
+ ******************************************************************************
+ * @file hw_uart.c
+ * @author MCD Application Team
+ * @brief HW UART source file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -316,5 +315,3 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
return;
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/main.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/main.c
index 19e4f62e8..ec526efa1 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/main.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/main.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -56,6 +55,7 @@ DMA_HandleTypeDef hdma_usart1_tx;
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
+void PeriphCommonClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_DMA_Init(void);
static void MX_RF_Init(void);
@@ -92,6 +92,9 @@ int main(void)
/* Configure the system clock */
SystemClock_Config();
+/* Configure the peripherals common clocks */
+ PeriphCommonClock_Config();
+
/* IPCC initialisation */
MX_IPCC_Init();
@@ -131,7 +134,6 @@ void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
- RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
/** Configure LSE Drive Capability
*/
@@ -170,17 +172,23 @@ void SystemClock_Config(void)
{
Error_Handler();
}
- /** Initializes the peripherals clocks
+}
+
+/**
+ * @brief Peripherals Common Clock Configuration
+ * @retval None
+ */
+void PeriphCommonClock_Config(void)
+{
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+
+ /** Initializes the peripherals clock
*/
- PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS|RCC_PERIPHCLK_RFWAKEUP
- |RCC_PERIPHCLK_RTC|RCC_PERIPHCLK_USART1
- |RCC_PERIPHCLK_I2C3;
- PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
- PeriphClkInitStruct.I2c3ClockSelection = RCC_I2C3CLKSOURCE_PCLK1;
- PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS|RCC_PERIPHCLK_RFWAKEUP;
PeriphClkInitStruct.RFWakeUpClockSelection = RCC_RFWKPCLKSOURCE_LSE;
PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSE;
PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE0;
+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
@@ -403,6 +411,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Pull = GPIO_NOPULL;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+ /*Configure GPIO pin : QSPI_BK_IO0_Pin */
+ GPIO_InitStruct.Pin = QSPI_BK_IO0_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+ HAL_GPIO_Init(QSPI_BK_IO0_GPIO_Port, &GPIO_InitStruct);
+
/*Configure GPIO pin : LPUART1_RX_MCU_Pin */
GPIO_InitStruct.Pin = LPUART1_RX_MCU_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -411,6 +427,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
HAL_GPIO_Init(LPUART1_RX_MCU_GPIO_Port, &GPIO_InitStruct);
+ /*Configure GPIO pin : PB8 */
+ GPIO_InitStruct.Pin = GPIO_PIN_8;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
+ HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);
+
/*Configure GPIO pins : LPUART1_TX_MCU_Pin PB12 */
GPIO_InitStruct.Pin = LPUART1_TX_MCU_Pin|GPIO_PIN_12;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -427,6 +451,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF1_TIM2;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ /*Configure GPIO pin : PA10 */
+ GPIO_InitStruct.Pin = GPIO_PIN_10;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF4_I2C1;
+ HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+
/*Configure GPIO pins : USB_P_Pin USB_N_Pin */
GPIO_InitStruct.Pin = USB_P_Pin|USB_N_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
@@ -495,6 +527,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Alternate = GPIO_AF8_LPUART1;
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+ /*Configure GPIO pin : QSPI_BK_SCK_Pin */
+ GPIO_InitStruct.Pin = QSPI_BK_SCK_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+ HAL_GPIO_Init(QSPI_BK_SCK_GPIO_Port, &GPIO_InitStruct);
+
/*Configure GPIO pins : CS_DISP_Pin GPIO_SELECT2_Pin */
GPIO_InitStruct.Pin = CS_DISP_Pin|GPIO_SELECT2_Pin;
GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
@@ -529,6 +569,14 @@ static void MX_GPIO_Init(void)
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
+ /*Configure GPIO pins : QSPI_BK_NCS_Pin QSPI_BK_IO1_Pin QSPI_BK_IO2_Pin */
+ GPIO_InitStruct.Pin = QSPI_BK_NCS_Pin|QSPI_BK_IO1_Pin|QSPI_BK_IO2_Pin;
+ GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
+ GPIO_InitStruct.Pull = GPIO_NOPULL;
+ GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
+ GPIO_InitStruct.Alternate = GPIO_AF10_QUADSPI;
+ HAL_GPIO_Init(GPIOD, &GPIO_InitStruct);
+
/*Configure GPIO pin : PE3 */
GPIO_InitStruct.Pin = GPIO_PIN_3;
GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING;
@@ -649,5 +697,3 @@ void assert_failed(uint8_t *file, uint32_t line)
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32_lpm_if.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32_lpm_if.c
index fba978d88..8018ad626 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32_lpm_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32_lpm_if.c
@@ -1,18 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ***************************************************************************************
- * File Name : stm32_lpm_if.c
- * Description : Low layer function to enter/exit low power modes (stop, sleep).
- ***************************************************************************************
+ ******************************************************************************
+ * @file stm32_lpm_if.c
+ * @author MCD Application Team
+ * @brief Low layer function to enter/exit low power modes (stop, sleep).
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -277,19 +277,11 @@ static void EnterLowPower( void )
/* Release ENTRY_STOP_MODE semaphore */
LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
}
else
{
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
@@ -355,5 +347,3 @@ static void Switch_On_HSI( void )
/* USER CODE END Private_Functions */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
-
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32wbxx_hal_msp.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32wbxx_hal_msp.c
index cd60720b0..61b2e1c97 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32wbxx_hal_msp.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32wbxx_hal_msp.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -68,6 +67,8 @@ void HAL_MspInit(void)
/* USER CODE END MspInit 0 */
+ __HAL_RCC_HSEM_CLK_ENABLE();
+
/* System interrupt init*/
/* Peripheral interrupt init */
@@ -132,6 +133,7 @@ void HAL_IPCC_MspDeInit(IPCC_HandleTypeDef* hipcc)
*/
void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
{
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
if(hrtc->Instance==RTC)
{
/* USER CODE BEGIN RTC_MspInit 0 */
@@ -145,6 +147,15 @@ void HAL_RTC_MspInit(RTC_HandleTypeDef* hrtc)
__HAL_RCC_RTC_CONFIG(RCC_RTCCLKSOURCE_LSE); /**< Select LSI as RTC Input */
/* USER CODE END RTC_MspInit 0 */
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_RTC;
+ PeriphClkInitStruct.RTCClockSelection = RCC_RTCCLKSOURCE_LSE;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
/* Peripheral clock enable */
__HAL_RCC_RTC_ENABLE();
__HAL_RCC_RTCAPB_CLK_ENABLE();
@@ -187,11 +198,21 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
void HAL_UART_MspInit(UART_HandleTypeDef* huart)
{
GPIO_InitTypeDef GPIO_InitStruct = {0};
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
if(huart->Instance==USART1)
{
/* USER CODE BEGIN USART1_MspInit 0 */
/* USER CODE END USART1_MspInit 0 */
+ /** Initializes the peripherals clock
+ */
+ PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_USART1;
+ PeriphClkInitStruct.Usart1ClockSelection = RCC_USART1CLKSOURCE_PCLK2;
+ if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
+ {
+ Error_Handler();
+ }
+
/* Peripheral clock enable */
__HAL_RCC_USART1_CLK_ENABLE();
@@ -271,5 +292,3 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* huart)
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32wbxx_it.c
index b62eea6d9..69eece90f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32wbxx_it.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/stm32wbxx_it.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -298,4 +297,3 @@ void TIM1_TRG_COM_TIM17_IRQHandler(void)
BSP_PWM_LED_IRQHandler();
}
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/system_stm32wbxx.c
index 706ee9182..f53552c59 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/system_stm32wbxx.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/Core/Src/system_stm32wbxx.c
@@ -60,13 +60,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -355,5 +354,3 @@ void SystemCoreClockUpdate(void)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/BLE_p2pServer.ewp b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/BLE_p2pServer.ewp
index 90b6c1561..acb86c8bb 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/BLE_p2pServer.ewp
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/BLE_p2pServer.ewp
@@ -1,1290 +1,1288 @@
<?xml version="1.0" encoding="UTF-8"?>
<project>
- <fileVersion>3</fileVersion>
- <configuration>
- <name>BLE_p2pServer</name>
- <toolchain>
- <name>ARM</name>
- </toolchain>
+ <fileVersion>3</fileVersion>
+ <configuration>
+ <name>BLE_p2pServer</name>
+ <toolchain>
+ <name>ARM</name>
+ </toolchain>
+ <debug>1</debug>
+ <settings>
+ <name>General</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <version>30</version>
+ <wantNonLocal>1</wantNonLocal>
<debug>1</debug>
- <settings>
- <name>General</name>
- <archiveVersion>3</archiveVersion>
- <data>
- <version>30</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>ExePath</name>
- <state>BLE_p2pServer/Exe</state>
- </option>
- <option>
- <name>ObjPath</name>
- <state>BLE_p2pServer/Obj</state>
- </option>
- <option>
- <name>ListPath</name>
- <state>BLE_p2pServer/List</state>
- </option>
- <option>
- <name>GEndianMode</name>
- <state>0</state>
- </option>
- <option>
- <name>Input description</name>
- <state>Full formatting, with multibyte support.</state>
- </option>
- <option>
- <name>Output description</name>
- <state>Full formatting, with multibyte support.</state>
- </option>
- <option>
- <name>GOutputBinary</name>
- <state>0</state>
- </option>
- <option>
- <name>OGCoreOrChip</name>
- <state>1</state>
- </option>
- <option>
- <name>GRuntimeLibSelect</name>
- <version>0</version>
- <state>2</state>
- </option>
- <option>
- <name>GRuntimeLibSelectSlave</name>
- <version>0</version>
- <state>2</state>
- </option>
- <option>
- <name>RTDescription</name>
- <state>Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.</state>
- </option>
- <option>
- <name>OGProductVersion</name>
- <state>4.41A</state>
- </option>
- <option>
- <name>OGLastSavedByProductVersion</name>
- <state>8.20.2.14834</state>
- </option>
- <option>
- <name>GeneralEnableMisra</name>
- <state>0</state>
- </option>
- <option>
- <name>GeneralMisraVerbose</name>
- <state>0</state>
- </option>
- <option>
- <name>OGChipSelectEditMenu</name>
- <state>STM32WB5MMG ST STM32WB5MMG</state>
- </option>
- <option>
- <name>GenLowLevelInterface</name>
- <state>1</state>
- </option>
- <option>
- <name>GEndianModeBE</name>
- <state>1</state>
- </option>
- <option>
- <name>OGBufferedTerminalOutput</name>
- <state>0</state>
- </option>
- <option>
- <name>GenStdoutInterface</name>
- <state>0</state>
- </option>
- <option>
- <name>GeneralMisraRules98</name>
- <version>0</version>
- <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
- </option>
- <option>
- <name>GeneralMisraVer</name>
- <state>0</state>
- </option>
- <option>
- <name>GeneralMisraRules04</name>
- <version>0</version>
- <state>011111111111111110111111111111011111111111111011110100111111111111111111111111111111111111111111101111111111111011111111111111111111111111111</state>
- </option>
- <option>
- <name>RTConfigPath2</name>
- <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Full.h</state>
- </option>
- <option>
- <name>GBECoreSlave</name>
- <version>26</version>
- <state>39</state>
- </option>
- <option>
- <name>OGUseCmsis</name>
- <state>0</state>
- </option>
- <option>
- <name>OGUseCmsisDspLib</name>
- <state>0</state>
- </option>
- <option>
- <name>GRuntimeLibThreads</name>
- <state>0</state>
- </option>
- <option>
- <name>CoreVariant</name>
- <version>26</version>
- <state>39</state>
- </option>
- <option>
- <name>GFPUDeviceSlave</name>
- <state>STM32WB5MMG ST STM32WB5MMG</state>
- </option>
- <option>
- <name>FPU2</name>
- <version>0</version>
- <state>4</state>
- </option>
- <option>
- <name>NrRegs</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>NEON</name>
- <state>0</state>
- </option>
- <option>
- <name>GFPUCoreSlave2</name>
- <version>26</version>
- <state>39</state>
- </option>
- <option>
- <name>OGCMSISPackSelectDevice</name>
- </option>
- <option>
- <name>OgLibHeap</name>
- <state>0</state>
- </option>
- <option>
- <name>OGLibAdditionalLocale</name>
- <state>0</state>
- </option>
- <option>
- <name>OGPrintfVariant</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>OGPrintfMultibyteSupport</name>
- <state>1</state>
- </option>
- <option>
- <name>OGScanfVariant</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>OGScanfMultibyteSupport</name>
- <state>1</state>
- </option>
- <option>
- <name>GenLocaleTags</name>
- <state></state>
- </option>
- <option>
- <name>GenLocaleDisplayOnly</name>
- <state></state>
- </option>
- <option>
- <name>DSPExtension</name>
- <state>1</state>
- </option>
- <option>
- <name>TrustZone</name>
- <state>0</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>ICCARM</name>
- <archiveVersion>2</archiveVersion>
- <data>
- <version>34</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>CCOptimizationNoSizeConstraints</name>
- <state>0</state>
- </option>
- <option>
- <name>CCDefines</name>
- <state>STM32WL55MM_DK</state>
- <state>USE_HAL_DRIVER</state>
- <state>STM32WB5Mxx</state>
- </option>
- <option>
- <name>CCPreprocFile</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPreprocComments</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPreprocLine</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListCFile</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListCMnemonics</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListCMessages</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListAssFile</name>
- <state>0</state>
- </option>
- <option>
- <name>CCListAssSource</name>
- <state>0</state>
- </option>
- <option>
- <name>CCEnableRemarks</name>
- <state>0</state>
- </option>
- <option>
- <name>CCDiagSuppress</name>
- <state></state>
- </option>
- <option>
- <name>CCDiagRemark</name>
- <state></state>
- </option>
- <option>
- <name>CCDiagWarning</name>
- <state></state>
- </option>
- <option>
- <name>CCDiagError</name>
- <state></state>
- </option>
- <option>
- <name>CCObjPrefix</name>
- <state>1</state>
- </option>
- <option>
- <name>CCAllowList</name>
- <version>1</version>
- <state>11111110</state>
- </option>
- <option>
- <name>CCDebugInfo</name>
- <state>1</state>
- </option>
- <option>
- <name>IEndianMode</name>
- <state>1</state>
- </option>
- <option>
- <name>IProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>IExtraOptionsCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>IExtraOptions</name>
- <state></state>
- </option>
- <option>
- <name>CCLangConformance</name>
- <state>0</state>
- </option>
- <option>
- <name>CCSignedPlainChar</name>
- <state>1</state>
- </option>
- <option>
- <name>CCRequirePrototypes</name>
- <state>0</state>
- </option>
- <option>
- <name>CCDiagWarnAreErr</name>
- <state>0</state>
- </option>
- <option>
- <name>CCCompilerRuntimeInfo</name>
- <state>0</state>
- </option>
- <option>
- <name>IFpuProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>OutputFile</name>
- <state>$FILE_BNAME$.o</state>
- </option>
- <option>
- <name>CCLibConfigHeader</name>
- <state>1</state>
- </option>
- <option>
- <name>PreInclude</name>
- <state></state>
- </option>
- <option>
- <name>CompilerMisraOverride</name>
- <state>0</state>
- </option>
- <option>
- <name>CCIncludePath2</name>
- <state>$PROJ_DIR$/../Core/Inc</state>
- <state>$PROJ_DIR$/../STM32_WPAN/App</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/lpm/tiny_lpm</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/utilities</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/sequencer</state>
- <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Include</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/STM32WB5MM-DK</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/ssd1315</state>
- <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/Common</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/Fonts</state>
- <state>$PROJ_DIR$/../../../../../../Utilities/LCD</state>
- </option>
- <option>
- <name>CCStdIncCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>CCCodeSection</name>
- <state>.text</state>
- </option>
- <option>
- <name>IProcessorMode2</name>
- <state>1</state>
- </option>
- <option>
- <name>CCOptLevel</name>
- <state>3</state>
- </option>
- <option>
- <name>CCOptStrategy</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>CCOptLevelSlave</name>
- <state>3</state>
- </option>
- <option>
- <name>CompilerMisraRules98</name>
- <version>0</version>
- <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
- </option>
- <option>
- <name>CompilerMisraRules04</name>
- <version>0</version>
- <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
- </option>
- <option>
- <name>CCPosIndRopi</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPosIndRwpi</name>
- <state>0</state>
- </option>
- <option>
- <name>CCPosIndNoDynInit</name>
- <state>0</state>
- </option>
- <option>
- <name>IccLang</name>
- <state>0</state>
- </option>
- <option>
- <name>IccCDialect</name>
- <state>1</state>
- </option>
- <option>
- <name>IccAllowVLA</name>
- <state>0</state>
- </option>
- <option>
- <name>IccStaticDestr</name>
- <state>0</state>
- </option>
- <option>
- <name>IccCppInlineSemantics</name>
- <state>0</state>
- </option>
- <option>
- <name>IccCmsis</name>
- <state>1</state>
- </option>
- <option>
- <name>IccFloatSemantics</name>
- <state>0</state>
- </option>
- <option>
- <name>CCNoLiteralPool</name>
- <state>0</state>
- </option>
- <option>
- <name>CCOptStrategySlave</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>CCGuardCalls</name>
- <state>1</state>
- </option>
- <option>
- <name>CCEncSource</name>
- <state>0</state>
- </option>
- <option>
- <name>CCEncOutput</name>
- <state>0</state>
- </option>
- <option>
- <name>CCEncOutputBom</name>
- <state>1</state>
- </option>
- <option>
- <name>CCEncInput</name>
- <state>0</state>
- </option>
- <option>
- <name>IccExceptions2</name>
- <state>0</state>
- </option>
- <option>
- <name>IccRTTI2</name>
- <state>0</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>AARM</name>
- <archiveVersion>2</archiveVersion>
- <data>
- <version>10</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>AObjPrefix</name>
- <state>1</state>
- </option>
- <option>
- <name>AEndian</name>
- <state>1</state>
- </option>
- <option>
- <name>ACaseSensitivity</name>
- <state>1</state>
- </option>
- <option>
- <name>MacroChars</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>AWarnEnable</name>
- <state>0</state>
- </option>
- <option>
- <name>AWarnWhat</name>
- <state>0</state>
- </option>
- <option>
- <name>AWarnOne</name>
- <state></state>
- </option>
- <option>
- <name>AWarnRange1</name>
- <state></state>
- </option>
- <option>
- <name>AWarnRange2</name>
- <state></state>
- </option>
- <option>
- <name>ADebug</name>
- <state>1</state>
- </option>
- <option>
- <name>AltRegisterNames</name>
- <state>0</state>
- </option>
- <option>
- <name>ADefines</name>
- <state></state>
- </option>
- <option>
- <name>AList</name>
- <state>0</state>
- </option>
- <option>
- <name>AListHeader</name>
- <state>1</state>
- </option>
- <option>
- <name>AListing</name>
- <state>1</state>
- </option>
- <option>
- <name>Includes</name>
- <state>0</state>
- </option>
- <option>
- <name>MacDefs</name>
- <state>0</state>
- </option>
- <option>
- <name>MacExps</name>
- <state>1</state>
- </option>
- <option>
- <name>MacExec</name>
- <state>0</state>
- </option>
- <option>
- <name>OnlyAssed</name>
- <state>0</state>
- </option>
- <option>
- <name>MultiLine</name>
- <state>0</state>
- </option>
- <option>
- <name>PageLengthCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>PageLength</name>
- <state>80</state>
- </option>
- <option>
- <name>TabSpacing</name>
- <state>8</state>
- </option>
- <option>
- <name>AXRef</name>
- <state>0</state>
- </option>
- <option>
- <name>AXRefDefines</name>
- <state>0</state>
- </option>
- <option>
- <name>AXRefInternal</name>
- <state>0</state>
- </option>
- <option>
- <name>AXRefDual</name>
- <state>0</state>
- </option>
- <option>
- <name>AProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>AFpuProcessor</name>
- <state>1</state>
- </option>
- <option>
- <name>AOutputFile</name>
- <state>$FILE_BNAME$.o</state>
- </option>
- <option>
- <name>ALimitErrorsCheck</name>
- <state>0</state>
- </option>
- <option>
- <name>ALimitErrorsEdit</name>
- <state>100</state>
- </option>
- <option>
- <name>AIgnoreStdInclude</name>
- <state>0</state>
- </option>
- <option>
- <name>AUserIncludes</name>
- <state></state>
- </option>
- <option>
- <name>AExtraOptionsCheckV2</name>
- <state>0</state>
- </option>
- <option>
- <name>AExtraOptionsV2</name>
- <state></state>
- </option>
- <option>
- <name>AsmNoLiteralPool</name>
- <state>0</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>OBJCOPY</name>
- <archiveVersion>0</archiveVersion>
- <data>
- <version>1</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>OOCOutputFormat</name>
- <version>3</version>
- <state>1</state>
- </option>
- <option>
- <name>OCOutputOverride</name>
- <state>1</state>
- </option>
- <option>
- <name>OOCOutputFile</name>
- <state>BLE_p2pServer.hex</state>
- </option>
- <option>
- <name>OOCCommandLineProducer</name>
- <state>1</state>
- </option>
- <option>
- <name>OOCObjCopyEnable</name>
- <state>1</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>CUSTOM</name>
- <archiveVersion>3</archiveVersion>
- <data>
- <extensions></extensions>
- <cmdline></cmdline>
- <hasPrio>0</hasPrio>
- </data>
- </settings>
- <settings>
- <name>BICOMP</name>
- <archiveVersion>0</archiveVersion>
- <data />
- </settings>
- <settings>
- <name>BUILDACTION</name>
- <archiveVersion>1</archiveVersion>
- <data>
- <prebuild></prebuild>
- <postbuild></postbuild>
- </data>
- </settings>
- <settings>
- <name>ILINK</name>
- <archiveVersion>0</archiveVersion>
- <data>
- <version>20</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>IlinkLibIOConfig</name>
- <state>1</state>
- </option>
- <option>
- <name>XLinkMisraHandler</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkInputFileSlave</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkOutputFile</name>
- <state>BLE_p2pServer.out</state>
- </option>
- <option>
- <name>IlinkDebugInfoEnable</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkKeepSymbols</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinaryFile</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinarySymbol</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinarySegment</name>
- <state></state>
- </option>
- <option>
- <name>IlinkRawBinaryAlign</name>
- <state></state>
- </option>
- <option>
- <name>IlinkDefines</name>
- <state></state>
- </option>
- <option>
- <name>IlinkConfigDefines</name>
- <state></state>
- </option>
- <option>
- <name>IlinkMapFile</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkLogFile</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogInitialization</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogModule</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogSection</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogVeneer</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkIcfOverride</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkIcfFile</name>
- <state>$PROJ_DIR$/stm32wb5mxx_flash_cm4.icf</state>
- </option>
- <option>
- <name>IlinkIcfFileSlave</name>
- <state></state>
- </option>
- <option>
- <name>IlinkEnableRemarks</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkSuppressDiags</name>
- <state></state>
- </option>
- <option>
- <name>IlinkTreatAsRem</name>
- <state></state>
- </option>
- <option>
- <name>IlinkTreatAsWarn</name>
- <state></state>
- </option>
- <option>
- <name>IlinkTreatAsErr</name>
- <state></state>
- </option>
- <option>
- <name>IlinkWarningsAreErrors</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkUseExtraOptions</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkExtraOptions</name>
- <state></state>
- </option>
- <option>
- <name>IlinkLowLevelInterfaceSlave</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkAutoLibEnable</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkAdditionalLibs</name>
- <state></state>
- </option>
- <option>
- <name>IlinkOverrideProgramEntryLabel</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkProgramEntryLabelSelect</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkProgramEntryLabel</name>
- <state>__iar_program_start</state>
- </option>
- <option>
- <name>DoFill</name>
- <state>0</state>
- </option>
- <option>
- <name>FillerByte</name>
- <state>0xFF</state>
- </option>
- <option>
- <name>FillerStart</name>
- <state>0x0</state>
- </option>
- <option>
- <name>FillerEnd</name>
- <state>0x0</state>
- </option>
- <option>
- <name>CrcSize</name>
- <version>0</version>
- <state>1</state>
- </option>
- <option>
- <name>CrcAlign</name>
- <state>1</state>
- </option>
- <option>
- <name>CrcPoly</name>
- <state>0x11021</state>
- </option>
- <option>
- <name>CrcCompl</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>CrcBitOrder</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>CrcInitialValue</name>
- <state>0x0</state>
- </option>
- <option>
- <name>DoCrc</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkBE8Slave</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkBufferedTerminalOutput</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkStdoutInterfaceSlave</name>
- <state>1</state>
- </option>
- <option>
- <name>CrcFullSize</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkIElfToolPostProcess</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogAutoLibSelect</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogRedirSymbols</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkLogUnusedFragments</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkCrcReverseByteOrder</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkCrcUseAsInput</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptInline</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkOptExceptionsAllow</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptExceptionsForce</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkCmsis</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptMergeDuplSections</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkOptUseVfe</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkOptForceVfe</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkStackAnalysisEnable</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkStackControlFile</name>
- <state></state>
- </option>
- <option>
- <name>IlinkStackCallGraphFile</name>
- <state></state>
- </option>
- <option>
- <name>CrcAlgorithm</name>
- <version>1</version>
- <state>1</state>
- </option>
- <option>
- <name>CrcUnitSize</name>
- <version>0</version>
- <state>0</state>
- </option>
- <option>
- <name>IlinkThreadsSlave</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkLogCallGraph</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkIcfFile_AltDefault</name>
- <state></state>
- </option>
- <option>
- <name>IlinkEncInput</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkEncOutput</name>
- <state>0</state>
- </option>
- <option>
- <name>IlinkEncOutputBom</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkHeapSelect</name>
- <state>1</state>
- </option>
- <option>
- <name>IlinkLocaleSelect</name>
- <state>1</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>IARCHIVE</name>
- <archiveVersion>0</archiveVersion>
- <data>
- <version>0</version>
- <wantNonLocal>1</wantNonLocal>
- <debug>1</debug>
- <option>
- <name>IarchiveInputs</name>
- <state></state>
- </option>
- <option>
- <name>IarchiveOverride</name>
- <state>0</state>
- </option>
- <option>
- <name>IarchiveOutput</name>
- <state>###Unitialized###</state>
- </option>
- </data>
- </settings>
- <settings>
- <name>BILINK</name>
- <archiveVersion>0</archiveVersion>
- <data />
- </settings>
- </configuration>
+ <option>
+ <name>ExePath</name>
+ <state>BLE_p2pServer/Exe</state>
+ </option>
+ <option>
+ <name>ObjPath</name>
+ <state>BLE_p2pServer/Obj</state>
+ </option>
+ <option>
+ <name>ListPath</name>
+ <state>BLE_p2pServer/List</state>
+ </option>
+ <option>
+ <name>GEndianMode</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>Input description</name>
+ <state>Full formatting, with multibyte support.</state>
+ </option>
+ <option>
+ <name>Output description</name>
+ <state>Full formatting, with multibyte support.</state>
+ </option>
+ <option>
+ <name>GOutputBinary</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGCoreOrChip</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelect</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>GRuntimeLibSelectSlave</name>
+ <version>0</version>
+ <state>2</state>
+ </option>
+ <option>
+ <name>RTDescription</name>
+ <state>Use the full configuration of the C/C++ runtime library. Full locale interface, C locale, file descriptor support, multibytes in printf and scanf, and hex floats in strtod.</state>
+ </option>
+ <option>
+ <name>OGProductVersion</name>
+ <state>4.41A</state>
+ </option>
+ <option>
+ <name>OGLastSavedByProductVersion</name>
+ <state>8.20.2.14834</state>
+ </option>
+ <option>
+ <name>GeneralEnableMisra</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraVerbose</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGChipSelectEditMenu</name>
+ <state>STM32WB5MMG ST STM32WB5MMG</state>
+ </option>
+ <option>
+ <name>GenLowLevelInterface</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GEndianModeBE</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGBufferedTerminalOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GenStdoutInterface</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>GeneralMisraVer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GeneralMisraRules04</name>
+ <version>0</version>
+ <state>011111111111111110111111111111011111111111111011110100111111111111111111111111111111111111111111101111111111111011111111111111111111111111111</state>
+ </option>
+ <option>
+ <name>RTConfigPath2</name>
+ <state>$TOOLKIT_DIR$\INC\c\DLib_Config_Full.h</state>
+ </option>
+ <option>
+ <name>GBECoreSlave</name>
+ <version>26</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>OGUseCmsis</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGUseCmsisDspLib</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GRuntimeLibThreads</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CoreVariant</name>
+ <version>26</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>GFPUDeviceSlave</name>
+ <state>STM32WB5MMG ST STM32WB5MMG</state>
+ </option>
+ <option>
+ <name>FPU2</name>
+ <version>0</version>
+ <state>4</state>
+ </option>
+ <option>
+ <name>NrRegs</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>NEON</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>GFPUCoreSlave2</name>
+ <version>26</version>
+ <state>39</state>
+ </option>
+ <option>
+ <name>OGCMSISPackSelectDevice</name>
+ </option>
+ <option>
+ <name>OgLibHeap</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGLibAdditionalLocale</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OGPrintfVariant</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGPrintfMultibyteSupport</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGScanfVariant</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OGScanfMultibyteSupport</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>GenLocaleTags</name>
+ <state></state>
+ </option>
+ <option>
+ <name>GenLocaleDisplayOnly</name>
+ <state></state>
+ </option>
+ <option>
+ <name>DSPExtension</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>TrustZone</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>ICCARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>34</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>CCOptimizationNoSizeConstraints</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDefines</name>
+ <state>USE_STM32WB5M_DK</state>
+ <state>USE_HAL_DRIVER</state>
+ <state>STM32WB5Mxx</state>
+ </option>
+ <option>
+ <name>CCPreprocFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocComments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPreprocLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMnemonics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListCMessages</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCListAssSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagSuppress</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagRemark</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagWarning</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCDiagError</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCAllowList</name>
+ <version>1</version>
+ <state>11111110</state>
+ </option>
+ <option>
+ <name>CCDebugInfo</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IEndianMode</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IExtraOptionsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CCLangConformance</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCSignedPlainChar</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCRequirePrototypes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCDiagWarnAreErr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCompilerRuntimeInfo</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OutputFile</name>
+ <state>$FILE_BNAME$.o</state>
+ </option>
+ <option>
+ <name>CCLibConfigHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>PreInclude</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CompilerMisraOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCIncludePath2</name>
+ <state>$PROJ_DIR$/../Core/Inc</state>
+ <state>$PROJ_DIR$/../STM32_WPAN/App</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/lpm/tiny_lpm</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/utilities</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/sequencer</state>
+ <state>$PROJ_DIR$/../../../../../../Middlewares/ST/STM32_WPAN/ble</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/CMSIS/Include</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/STM32WB5MM-DK</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/ssd1315</state>
+ <state>$PROJ_DIR$/../../../../../../Drivers/BSP/Components/Common</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/Fonts</state>
+ <state>$PROJ_DIR$/../../../../../../Utilities/LCD</state>
+ </option>
+ <option>
+ <name>CCStdIncCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCCodeSection</name>
+ <state>.text</state>
+ </option>
+ <option>
+ <name>IProcessorMode2</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevel</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CCOptStrategy</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCOptLevelSlave</name>
+ <state>3</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules98</name>
+ <version>0</version>
+ <state>1000111110110101101110011100111111101110011011000101110111101101100111111111111100110011111001110111001111111111111111111111111</state>
+ </option>
+ <option>
+ <name>CompilerMisraRules04</name>
+ <version>0</version>
+ <state>111101110010111111111000110111111111111111111111111110010111101111010101111111111111111111111111101111111011111001111011111011111111111111111</state>
+ </option>
+ <option>
+ <name>CCPosIndRopi</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPosIndRwpi</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCPosIndNoDynInit</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccLang</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCDialect</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IccAllowVLA</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccStaticDestr</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCppInlineSemantics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccCmsis</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IccFloatSemantics</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCNoLiteralPool</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCOptStrategySlave</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCGuardCalls</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEncSource</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEncOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CCEncOutputBom</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CCEncInput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccExceptions2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IccRTTI2</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>AARM</name>
+ <archiveVersion>2</archiveVersion>
+ <data>
+ <version>10</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>AObjPrefix</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AEndian</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>ACaseSensitivity</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacroChars</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnWhat</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AWarnOne</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange1</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AWarnRange2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>ADebug</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AltRegisterNames</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ADefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AList</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AListHeader</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AListing</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>Includes</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacDefs</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MacExps</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>MacExec</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>OnlyAssed</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>MultiLine</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLengthCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>PageLength</name>
+ <state>80</state>
+ </option>
+ <option>
+ <name>TabSpacing</name>
+ <state>8</state>
+ </option>
+ <option>
+ <name>AXRef</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDefines</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefInternal</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AXRefDual</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AFpuProcessor</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>AOutputFile</name>
+ <state>$FILE_BNAME$.o</state>
+ </option>
+ <option>
+ <name>ALimitErrorsCheck</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>ALimitErrorsEdit</name>
+ <state>100</state>
+ </option>
+ <option>
+ <name>AIgnoreStdInclude</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AUserIncludes</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AExtraOptionsCheckV2</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>AExtraOptionsV2</name>
+ <state></state>
+ </option>
+ <option>
+ <name>AsmNoLiteralPool</name>
+ <state>0</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>OBJCOPY</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>1</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>OOCOutputFormat</name>
+ <version>3</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OCOutputOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OOCOutputFile</name>
+ <state>BLE_p2pServer.hex</state>
+ </option>
+ <option>
+ <name>OOCCommandLineProducer</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>OOCObjCopyEnable</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>CUSTOM</name>
+ <archiveVersion>3</archiveVersion>
+ <data>
+ <extensions></extensions>
+ <cmdline></cmdline>
+ <hasPrio>0</hasPrio>
+ </data>
+ </settings>
+ <settings>
+ <name>BICOMP</name>
+ <archiveVersion>0</archiveVersion>
+ <data></data>
+ </settings>
+ <settings>
+ <name>BUILDACTION</name>
+ <archiveVersion>1</archiveVersion>
+ <data>
+ <prebuild></prebuild>
+ <postbuild></postbuild>
+ </data>
+ </settings>
+ <settings>
+ <name>ILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>20</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>IlinkLibIOConfig</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>XLinkMisraHandler</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkInputFileSlave</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOutputFile</name>
+ <state>BLE_p2pServer.out</state>
+ </option>
+ <option>
+ <name>IlinkDebugInfoEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkKeepSymbols</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinaryFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinarySymbol</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinarySegment</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkRawBinaryAlign</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkConfigDefines</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkMapFile</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLogFile</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogInitialization</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogModule</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogSection</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogVeneer</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIcfOverride</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkIcfFile</name>
+ <state>$PROJ_DIR$/stm32wb5mxx_flash_cm4.icf</state>
+ </option>
+ <option>
+ <name>IlinkIcfFileSlave</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkEnableRemarks</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkSuppressDiags</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsRem</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsWarn</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkTreatAsErr</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkWarningsAreErrors</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkUseExtraOptions</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkExtraOptions</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkLowLevelInterfaceSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkAutoLibEnable</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkAdditionalLibs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkOverrideProgramEntryLabel</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkProgramEntryLabelSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkProgramEntryLabel</name>
+ <state>__iar_program_start</state>
+ </option>
+ <option>
+ <name>DoFill</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>FillerByte</name>
+ <state>0xFF</state>
+ </option>
+ <option>
+ <name>FillerStart</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>FillerEnd</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>CrcSize</name>
+ <version>0</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcAlign</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcPoly</name>
+ <state>0x11021</state>
+ </option>
+ <option>
+ <name>CrcCompl</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcBitOrder</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>CrcInitialValue</name>
+ <state>0x0</state>
+ </option>
+ <option>
+ <name>DoCrc</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkBE8Slave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkBufferedTerminalOutput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkStdoutInterfaceSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcFullSize</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIElfToolPostProcess</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogAutoLibSelect</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogRedirSymbols</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkLogUnusedFragments</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCrcReverseByteOrder</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCrcUseAsInput</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptInline</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOptExceptionsAllow</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptExceptionsForce</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkCmsis</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptMergeDuplSections</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkOptUseVfe</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkOptForceVfe</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkStackAnalysisEnable</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkStackControlFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkStackCallGraphFile</name>
+ <state></state>
+ </option>
+ <option>
+ <name>CrcAlgorithm</name>
+ <version>1</version>
+ <state>1</state>
+ </option>
+ <option>
+ <name>CrcUnitSize</name>
+ <version>0</version>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkThreadsSlave</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLogCallGraph</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkIcfFile_AltDefault</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IlinkEncInput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkEncOutput</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IlinkEncOutputBom</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkHeapSelect</name>
+ <state>1</state>
+ </option>
+ <option>
+ <name>IlinkLocaleSelect</name>
+ <state>1</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>IARCHIVE</name>
+ <archiveVersion>0</archiveVersion>
+ <data>
+ <version>0</version>
+ <wantNonLocal>1</wantNonLocal>
+ <debug>1</debug>
+ <option>
+ <name>IarchiveInputs</name>
+ <state></state>
+ </option>
+ <option>
+ <name>IarchiveOverride</name>
+ <state>0</state>
+ </option>
+ <option>
+ <name>IarchiveOutput</name>
+ <state>###Unitialized###</state>
+ </option>
+ </data>
+ </settings>
+ <settings>
+ <name>BILINK</name>
+ <archiveVersion>0</archiveVersion>
+ <data></data>
+ </settings>
+ </configuration>
+ <group>
+ <name>Application</name>
<group>
- <name>Application</name>
- <group>
- <name>EWARM</name>
- <file>
- <name>$PROJ_DIR$\startup_stm32wb5mxx_cm4.s</name>
- </file>
- </group>
- <group>
- <name>User</name>
- <group>
- <name>Core</name>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\app_debug.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\app_entry.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\hw_timerserver.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\hw_uart.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\main.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\stm32_lpm_if.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_hal_msp.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_it.c</name>
- </file>
- </group>
- <group>
- <name>STM32_WPAN</name>
- <group>
- <name>App</name>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\App\app_ble.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\App\p2p_server_app.c</name>
- </file>
- </group>
- <group>
- <name>Target</name>
- <file>
- <name>$PROJ_DIR$\..\STM32_WPAN\Target\hw_ipcc.c</name>
- </file>
- </group>
- </group>
- </group>
+ <name>EWARM</name>
+ <file>
+ <name>$PROJ_DIR$\startup_stm32wb5mxx_cm4.s</name>
+ </file>
</group>
<group>
- <name>Doc</name>
+ <name>User</name>
+ <group>
+ <name>Core</name>
<file>
- <name>$PROJ_DIR$\..\readme.txt</name>
+ <name>$PROJ_DIR$\..\Core\Src\main.c</name>
</file>
- </group>
- <group>
- <name>Drivers</name>
- <group>
- <name>BSP</name>
- <group>
- <name>STM32WB5MM-DK</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315_reg.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_bus.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_lcd.c</name>
- </file>
- </group>
- </group>
- <group>
- <name>CMSIS</name>
- <file>
- <name>$PROJ_DIR$\..\Core\Src\system_stm32wbxx.c</name>
- </file>
- </group>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_entry.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\app_debug.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\hw_timerserver.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\hw_uart.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32_lpm_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_it.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\stm32wbxx_hal_msp.c</name>
+ </file>
+ </group>
+ <group>
+ <name>STM32_WPAN</name>
<group>
- <name>STM32WBxx_HAL_Driver</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_cortex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_exti.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_gpio.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_hsem.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_ipcc.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_qspi.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim_ex.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart_ex.c</name>
- </file>
+ <name>App</name>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\App\app_ble.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\App\p2p_server_app.c</name>
+ </file>
</group>
- </group>
- <group>
- <name>Middlewares</name>
<group>
- <name>STM32_WPAN</name>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gap_aci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gatt_aci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hal_aci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hci_le.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_l2cap_aci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\dbg_trace.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl_if.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\template\osal.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\otp.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\p2p_stm.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\shci\shci.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl_if.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_list.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_queue.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\svc_ctl.c</name>
- </file>
- <file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\tl_mbox.c</name>
- </file>
+ <name>Target</name>
+ <file>
+ <name>$PROJ_DIR$\..\STM32_WPAN\Target\hw_ipcc.c</name>
+ </file>
</group>
+ </group>
</group>
+ </group>
+ <group>
+ <name>Doc</name>
+ <file>
+ <name>$PROJ_DIR$\..\readme.txt</name>
+ </file>
+ </group>
+ <group>
+ <name>Drivers</name>
<group>
- <name>Utilities</name>
+ <name>BSP</name>
+ <group>
+ <name>STM32WB5MM-DK</name>
<file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\LCD\stm32_lcd.c</name>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\lpm\tiny_lpm\stm32_lpm.c</name>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_bus.c</name>
</file>
<file>
- <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\sequencer\stm32_seq.c</name>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\STM32WB5MM-DK\stm32wb5mm_dk_lcd.c</name>
</file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\BSP\Components\ssd1315\ssd1315_reg.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>CMSIS</name>
+ <file>
+ <name>$PROJ_DIR$\..\Core\Src\system_stm32wbxx.c</name>
+ </file>
+ </group>
+ <group>
+ <name>STM32WBxx_HAL_Driver</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_hsem.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rcc_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_flash_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_gpio.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_dma_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_pwr_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_cortex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_exti.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_i2c_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_ipcc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_rtc_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_spi_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_tim_ex.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Drivers\STM32WBxx_HAL_Driver\Src\stm32wbxx_hal_uart_ex.c</name>
+ </file>
+ </group>
+ </group>
+ <group>
+ <name>Middlewares</name>
+ <group>
+ <name>STM32_WPAN</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\tl_mbox.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\shci\shci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\dbg_trace.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\otp.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_list.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\utilities\stm_queue.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\template\osal.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gap_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_gatt_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hal_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_hci_le.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\core\auto\ble_l2cap_aci.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\p2p_stm.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\hci_tl_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\interface\patterns\ble_thread\tl\shci_tl_if.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Middlewares\ST\STM32_WPAN\ble\svc\Src\svc_ctl.c</name>
+ </file>
</group>
+ </group>
+ <group>
+ <name>Utilities</name>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\LCD\stm32_lcd.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\lpm\tiny_lpm\stm32_lpm.c</name>
+ </file>
+ <file>
+ <name>$PROJ_DIR$\..\..\..\..\..\..\Utilities\sequencer\stm32_seq.c</name>
+ </file>
+ </group>
</project>
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/startup_stm32wb5mxx_cm4.s
index 6d2a51d5a..690ee250e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/startup_stm32wb5mxx_cm4.s
@@ -16,13 +16,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under BSD 3-Clause license,
-;* the "License"; You may not use this file except in compliance with the
-;* License. You may obtain a copy of the License at:
-;* opensource.org/licenses/BSD-3-Clause
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;
@@ -83,7 +82,7 @@ __vector_table
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -514,4 +513,3 @@ DMAMUX1_OVR_IRQHandler
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/stm32wb5mxx_flash_cm4.icf b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/stm32wb5mxx_flash_cm4.icf
index 6a7a123fc..f13848f65 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/stm32wb5mxx_flash_cm4.icf
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/stm32wb5mxx_flash_cm4.icf
@@ -11,7 +11,7 @@ define symbol __ICFEDIT_region_RAM_start__ = 0x20000008;
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x1000;
-define symbol __ICFEDIT_size_heap__ = 0x400;
+define symbol __ICFEDIT_size_heap__ = 0x400;
/**** End of ICF editor section. ###ICF###*/
define symbol __ICFEDIT_region_RAM_SHARED_start__ = 0x20030000;
@@ -21,6 +21,7 @@ define memory mem with size = 4G;
define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
define region RAM_SHARED_region = mem:[from __ICFEDIT_region_RAM_SHARED_start__ to __ICFEDIT_region_RAM_SHARED_end__];
+define region Total_RAM_region = RAM_region | RAM_SHARED_region ;
define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
@@ -32,9 +33,10 @@ do not initialize { section .noinit,
section MB_MEM1 };
place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
+place at address mem:__ICFEDIT_region_RAM_SHARED_start__ { section MAPPING_TABLE };
place in ROM_region { readonly };
-place in RAM_region { readwrite,block CSTACK, block HEAP };
-place in RAM_SHARED_region { first section MAPPING_TABLE};
+place in RAM_region { block CSTACK, block HEAP };
place in RAM_SHARED_region { section MB_MEM1};
place in RAM_SHARED_region { section MB_MEM2};
+place in Total_RAM_region { readwrite };
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/stm32wb5mxx_sram_cm4.icf b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/stm32wb5mxx_sram_cm4.icf
deleted file mode 100644
index 36cf3e51a..000000000
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/EWARM/stm32wb5mxx_sram_cm4.icf
+++ /dev/null
@@ -1,39 +0,0 @@
-/*###ICF### Section handled by ICF editor, don't touch! ****/
-/*-Editor annotation file-*/
-/* IcfEditorFile="$TOOLKIT_DIR$\config\ide\IcfEditor\cortex_v1_0.xml" */
-/*-Specials-*/
-define symbol __ICFEDIT_intvec_start__ = 0x20000000;
-/*-Memory Regions-*/
-/***** RAM dedicated to M4 *****/
-define symbol __ICFEDIT_region_ROM_start__ = 0x20000000;
-define symbol __ICFEDIT_region_ROM_end__ = 0x20017FFF;
-
-define symbol __ICFEDIT_region_RAM_start__ = 0x20018000 ;
-define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF ;
-
-/***** RAM2a *****/
-define symbol __ICFEDIT_region_RAM_SHARED_start__ = 0x20030000 ;
-define symbol __ICFEDIT_region_RAM_SHARED_end__ = 0x20037FFF ;
-
-/*-Sizes-*/
-define symbol __ICFEDIT_size_cstack__ = 0x1000;
-define symbol __ICFEDIT_size_heap__ = 0x400;
-/**** End of ICF editor section. ###ICF###*/
-
-
-define memory mem with size = 4G;
-define region ROM_region = mem:[from __ICFEDIT_region_ROM_start__ to __ICFEDIT_region_ROM_end__];
-define region RAM_region = mem:[from __ICFEDIT_region_RAM_start__ to __ICFEDIT_region_RAM_end__];
-
-
-define block CSTACK with alignment = 8, size = __ICFEDIT_size_cstack__ { };
-define block HEAP with alignment = 8, size = __ICFEDIT_size_heap__ { };
-
-initialize by copy { readwrite };
-do not initialize { section .noinit };
-
-place at address mem:__ICFEDIT_intvec_start__ { readonly section .intvec };
-
-place in ROM_region { readonly };
-place in RAM_region { readwrite,
- block CSTACK, block HEAP };
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/BLE_p2pServer.uvoptx b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/BLE_p2pServer.uvoptx
new file mode 100644
index 000000000..065be717f
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/BLE_p2pServer.uvoptx
@@ -0,0 +1,1045 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<ProjectOpt xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_optx.xsd">
+
+ <SchemaVersion>1.0</SchemaVersion>
+
+ <Header>### uVision Project, (C) Keil Software</Header>
+
+ <Extensions>
+ <cExt>*.c</cExt>
+ <aExt>*.s*; *.src; *.a*</aExt>
+ <oExt>*.obj; *.o</oExt>
+ <lExt>*.lib</lExt>
+ <tExt>*.txt; *.h; *.inc</tExt>
+ <pExt>*.plm</pExt>
+ <CppX>*.cpp</CppX>
+ <nMigrate>0</nMigrate>
+ </Extensions>
+
+ <DaveTm>
+ <dwLowDateTime>0</dwLowDateTime>
+ <dwHighDateTime>0</dwHighDateTime>
+ </DaveTm>
+
+ <Target>
+ <TargetName>BLE_p2pServer</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <TargetOption>
+ <CLKADS>12000000</CLKADS>
+ <OPTTT>
+ <gFlags>1</gFlags>
+ <BeepAtEnd>1</BeepAtEnd>
+ <RunSim>0</RunSim>
+ <RunTarget>1</RunTarget>
+ <RunAbUc>0</RunAbUc>
+ </OPTTT>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <FlashByte>65535</FlashByte>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ </OPTHX>
+ <OPTLEX>
+ <PageWidth>79</PageWidth>
+ <PageLength>66</PageLength>
+ <TabStop>8</TabStop>
+ <ListingPath></ListingPath>
+ </OPTLEX>
+ <ListingPage>
+ <CreateCListing>1</CreateCListing>
+ <CreateAListing>1</CreateAListing>
+ <CreateLListing>1</CreateLListing>
+ <CreateIListing>0</CreateIListing>
+ <AsmCond>1</AsmCond>
+ <AsmSymb>1</AsmSymb>
+ <AsmXref>0</AsmXref>
+ <CCond>1</CCond>
+ <CCode>0</CCode>
+ <CListInc>0</CListInc>
+ <CSymb>0</CSymb>
+ <LinkerCodeListing>0</LinkerCodeListing>
+ </ListingPage>
+ <OPTXL>
+ <LMap>1</LMap>
+ <LComments>1</LComments>
+ <LGenerateSymbols>1</LGenerateSymbols>
+ <LLibSym>1</LLibSym>
+ <LLines>1</LLines>
+ <LLocSym>1</LLocSym>
+ <LPubSym>1</LPubSym>
+ <LXref>0</LXref>
+ <LExpSel>0</LExpSel>
+ </OPTXL>
+ <OPTFL>
+ <tvExp>1</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <IsCurrentTarget>1</IsCurrentTarget>
+ </OPTFL>
+ <CpuCode>18</CpuCode>
+ <DebugOpt>
+ <uSim>0</uSim>
+ <uTrg>1</uTrg>
+ <sLdApp>1</sLdApp>
+ <sGomain>1</sGomain>
+ <sRbreak>1</sRbreak>
+ <sRwatch>1</sRwatch>
+ <sRmem>1</sRmem>
+ <sRfunc>1</sRfunc>
+ <sRbox>1</sRbox>
+ <tLdApp>1</tLdApp>
+ <tGomain>1</tGomain>
+ <tRbreak>1</tRbreak>
+ <tRwatch>1</tRwatch>
+ <tRmem>1</tRmem>
+ <tRfunc>1</tRfunc>
+ <tRbox>1</tRbox>
+ <tRtrace>1</tRtrace>
+ <sRSysVw>1</sRSysVw>
+ <tRSysVw>1</tRSysVw>
+ <sRunDeb>0</sRunDeb>
+ <sLrtime>0</sLrtime>
+ <bEvRecOn>1</bEvRecOn>
+ <bSchkAxf>0</bSchkAxf>
+ <bTchkAxf>0</bTchkAxf>
+ <nTsel>6</nTsel>
+ <sDll></sDll>
+ <sDllPa></sDllPa>
+ <sDlgDll></sDlgDll>
+ <sDlgPa></sDlgPa>
+ <sIfile></sIfile>
+ <tDll></tDll>
+ <tDllPa></tDllPa>
+ <tDlgDll></tDlgDll>
+ <tDlgPa></tDlgPa>
+ <tIfile></tIfile>
+ <pMon>STLink\ST-LINKIII-KEIL_SWO.dll</pMon>
+ </DebugOpt>
+ <TargetDriverDllRegistry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>UL2CM3</Key>
+ <Name>UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32WB5x_M4_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32WB5MMGHx$CMSIS\Flash\STM32WB5x_M4_1024.FLM))</Name>
+ </SetRegEntry>
+ <SetRegEntry>
+ <Number>0</Number>
+ <Key>ST-LINKIII-KEIL_SWO</Key>
+ <Name>-U-O142 -O2254 -S0 -C0 -TO18 -TC10000000 -TP21 -TDS8007 -TDT0 -TDC1F -TIEFFFFFFFF -TIP8 -FO7 -FD20000000 -FC1000 -FN1 -FF0STM32WB_M4.FLM -FS08000000 -FL0100000 -FP0($$Device:STM32WB5MMG$CMSIS\Flash\STM32WB_M4.FLM)</Name>
+ </SetRegEntry>
+ </TargetDriverDllRegistry>
+ <Breakpoint/>
+ <Tracepoint>
+ <THDelay>0</THDelay>
+ </Tracepoint>
+ <DebugFlag>
+ <trace>0</trace>
+ <periodic>1</periodic>
+ <aLwin>1</aLwin>
+ <aCover>0</aCover>
+ <aSer1>0</aSer1>
+ <aSer2>0</aSer2>
+ <aPa>0</aPa>
+ <viewmode>1</viewmode>
+ <vrSel>0</vrSel>
+ <aSym>0</aSym>
+ <aTbox>0</aTbox>
+ <AscS1>0</AscS1>
+ <AscS2>0</AscS2>
+ <AscS3>0</AscS3>
+ <aSer3>0</aSer3>
+ <eProf>0</eProf>
+ <aLa>0</aLa>
+ <aPa1>0</aPa1>
+ <AscS4>0</AscS4>
+ <aSer4>0</aSer4>
+ <StkLoc>1</StkLoc>
+ <TrcWin>0</TrcWin>
+ <newCpu>0</newCpu>
+ <uProt>0</uProt>
+ </DebugFlag>
+ <LintExecutable></LintExecutable>
+ <LintConfigFile></LintConfigFile>
+ <bLintAuto>0</bLintAuto>
+ <bAutoGenD>0</bAutoGenD>
+ <LntExFlags>0</LntExFlags>
+ <pMisraName></pMisraName>
+ <pszMrule></pszMrule>
+ <pSingCmds></pSingCmds>
+ <pMultCmds></pMultCmds>
+ <pMisraNamep></pMisraNamep>
+ <pszMrulep></pszMrulep>
+ <pSingCmdsp></pSingCmdsp>
+ <pMultCmdsp></pMultCmdsp>
+ </TargetOption>
+ </Target>
+
+ <Group>
+ <GroupName>Application/MDK-ARM</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>1</GroupNumber>
+ <FileNumber>1</FileNumber>
+ <FileType>2</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>startup_stm32wb5mxx_cm4.s</PathWithFileName>
+ <FilenameWithoutPath>startup_stm32wb5mxx_cm4.s</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Application/User/Core</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>2</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/app_debug.c</PathWithFileName>
+ <FilenameWithoutPath>app_debug.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>3</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/app_entry.c</PathWithFileName>
+ <FilenameWithoutPath>app_entry.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>4</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/hw_timerserver.c</PathWithFileName>
+ <FilenameWithoutPath>hw_timerserver.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>5</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/hw_uart.c</PathWithFileName>
+ <FilenameWithoutPath>hw_uart.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>6</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/main.c</PathWithFileName>
+ <FilenameWithoutPath>main.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>7</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/stm32_lpm_if.c</PathWithFileName>
+ <FilenameWithoutPath>stm32_lpm_if.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>8</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/stm32wbxx_hal_msp.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_msp.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>2</GroupNumber>
+ <FileNumber>9</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/stm32wbxx_it.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_it.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Application/User/STM32_WPAN/App</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>10</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/App/app_ble.c</PathWithFileName>
+ <FilenameWithoutPath>app_ble.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>3</GroupNumber>
+ <FileNumber>11</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/App/p2p_server_app.c</PathWithFileName>
+ <FilenameWithoutPath>p2p_server_app.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Application/User/STM32_WPAN/Target</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>4</GroupNumber>
+ <FileNumber>12</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../STM32_WPAN/Target/hw_ipcc.c</PathWithFileName>
+ <FilenameWithoutPath>hw_ipcc.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Doc</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>5</GroupNumber>
+ <FileNumber>13</FileNumber>
+ <FileType>5</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../readme.txt</PathWithFileName>
+ <FilenameWithoutPath>readme.txt</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Drivers/BSP/STM32WB5MM-DK</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>6</GroupNumber>
+ <FileNumber>14</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/BSP/Components/ssd1315/ssd1315.c</PathWithFileName>
+ <FilenameWithoutPath>ssd1315.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>6</GroupNumber>
+ <FileNumber>15</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/BSP/Components/ssd1315/ssd1315_reg.c</PathWithFileName>
+ <FilenameWithoutPath>ssd1315_reg.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>6</GroupNumber>
+ <FileNumber>16</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wb5mm_dk.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>6</GroupNumber>
+ <FileNumber>17</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wb5mm_dk_bus.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>6</GroupNumber>
+ <FileNumber>18</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_lcd.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wb5mm_dk_lcd.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Drivers/CMSIS</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>7</GroupNumber>
+ <FileNumber>19</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../Core/Src/system_stm32wbxx.c</PathWithFileName>
+ <FilenameWithoutPath>system_stm32wbxx.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Drivers/STM32WBxx_HAL_Driver</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>20</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>21</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_cortex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_cortex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>22</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_dma.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_dma.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>23</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_dma_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_dma_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>24</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_exti.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_exti.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>25</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_flash.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_flash.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>26</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_flash_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_flash_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>27</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_gpio.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_gpio.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>28</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_hsem.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_hsem.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>29</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_i2c.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_i2c.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>30</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_i2c_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_i2c_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>31</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_ipcc.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_ipcc.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>32</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pwr.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_pwr.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>33</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pwr_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_pwr_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>34</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_qspi.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_qspi.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>35</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rcc.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_rcc.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>36</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rcc_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_rcc_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>37</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rtc.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_rtc.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>38</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rtc_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_rtc_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>39</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_spi.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_spi.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>40</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_spi_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_spi_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>41</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_tim.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_tim.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>42</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_tim_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_tim_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>43</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_uart.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_uart.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>8</GroupNumber>
+ <FileNumber>44</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_uart_ex.c</PathWithFileName>
+ <FilenameWithoutPath>stm32wbxx_hal_uart_ex.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Middlewares/STM32_WPAN</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>45</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_gap_aci.c</PathWithFileName>
+ <FilenameWithoutPath>ble_gap_aci.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>46</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_gatt_aci.c</PathWithFileName>
+ <FilenameWithoutPath>ble_gatt_aci.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>47</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_hal_aci.c</PathWithFileName>
+ <FilenameWithoutPath>ble_hal_aci.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>48</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_hci_le.c</PathWithFileName>
+ <FilenameWithoutPath>ble_hci_le.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>49</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_l2cap_aci.c</PathWithFileName>
+ <FilenameWithoutPath>ble_l2cap_aci.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>50</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/utilities/dbg_trace.c</PathWithFileName>
+ <FilenameWithoutPath>dbg_trace.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>51</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/hci_tl.c</PathWithFileName>
+ <FilenameWithoutPath>hci_tl.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>52</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/hci_tl_if.c</PathWithFileName>
+ <FilenameWithoutPath>hci_tl_if.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>53</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template/osal.c</PathWithFileName>
+ <FilenameWithoutPath>osal.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>54</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/utilities/otp.c</PathWithFileName>
+ <FilenameWithoutPath>otp.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>55</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src/p2p_stm.c</PathWithFileName>
+ <FilenameWithoutPath>p2p_stm.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>56</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci/shci.c</PathWithFileName>
+ <FilenameWithoutPath>shci.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>57</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/shci_tl.c</PathWithFileName>
+ <FilenameWithoutPath>shci_tl.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>58</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/shci_tl_if.c</PathWithFileName>
+ <FilenameWithoutPath>shci_tl_if.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>59</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/utilities/stm_list.c</PathWithFileName>
+ <FilenameWithoutPath>stm_list.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>60</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/utilities/stm_queue.c</PathWithFileName>
+ <FilenameWithoutPath>stm_queue.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>61</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src/svc_ctl.c</PathWithFileName>
+ <FilenameWithoutPath>svc_ctl.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>9</GroupNumber>
+ <FileNumber>62</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/tl_mbox.c</PathWithFileName>
+ <FilenameWithoutPath>tl_mbox.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>Utilities</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>0</RteFlg>
+ <File>
+ <GroupNumber>10</GroupNumber>
+ <FileNumber>63</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Utilities/LCD/stm32_lcd.c</PathWithFileName>
+ <FilenameWithoutPath>stm32_lcd.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>10</GroupNumber>
+ <FileNumber>64</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Utilities/lpm/tiny_lpm/stm32_lpm.c</PathWithFileName>
+ <FilenameWithoutPath>stm32_lpm.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ <File>
+ <GroupNumber>10</GroupNumber>
+ <FileNumber>65</FileNumber>
+ <FileType>1</FileType>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <bDave2>0</bDave2>
+ <PathWithFileName>../../../../../../Utilities/sequencer/stm32_seq.c</PathWithFileName>
+ <FilenameWithoutPath>stm32_seq.c</FilenameWithoutPath>
+ <RteFlg>0</RteFlg>
+ <bShared>0</bShared>
+ </File>
+ </Group>
+
+ <Group>
+ <GroupName>::CMSIS</GroupName>
+ <tvExp>0</tvExp>
+ <tvExpOptDlg>0</tvExpOptDlg>
+ <cbSel>0</cbSel>
+ <RteFlg>1</RteFlg>
+ </Group>
+
+</ProjectOpt>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/BLE_p2pServer.uvprojx b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/BLE_p2pServer.uvprojx
new file mode 100644
index 000000000..06e39b1f6
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/BLE_p2pServer.uvprojx
@@ -0,0 +1,793 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
+<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="project_projx.xsd">
+
+ <SchemaVersion>2.1</SchemaVersion>
+
+ <Header>### uVision Project, (C) Keil Software</Header>
+
+ <Targets>
+ <Target>
+ <TargetName>BLE_p2pServer</TargetName>
+ <ToolsetNumber>0x4</ToolsetNumber>
+ <ToolsetName>ARM-ADS</ToolsetName>
+ <pCCUsed>5060750::V5.06 update 6 (build 750)::.\ARMCC</pCCUsed>
+ <uAC6>0</uAC6>
+ <TargetOption>
+ <TargetCommonOption>
+ <Device>STM32WB5MMGHx</Device>
+ <Vendor>STMicroelectronics</Vendor>
+ <PackID>Keil.STM32WBxx_DFP.1.2.0</PackID>
+ <PackURL>http://www.keil.com/pack/</PackURL>
+ <Cpu>IROM(0x08000000-0x807FFFF) IRAM(0x20000008-0x2002FC07) IRAM2(0x20030000-0x200327FF) CLOCK(8000000) FPU2 CPUTYPE("Cortex-M4") TZ</Cpu>
+ <FlashUtilSpec></FlashUtilSpec>
+ <StartupFile></StartupFile>
+ <FlashDriverDll></FlashDriverDll>
+ <DeviceId>0</DeviceId>
+ <RegisterFile></RegisterFile>
+ <MemoryEnv></MemoryEnv>
+ <Cmp></Cmp>
+ <Asm></Asm>
+ <Linker></Linker>
+ <OHString></OHString>
+ <InfinionOptionDll></InfinionOptionDll>
+ <SLE66CMisc></SLE66CMisc>
+ <SLE66AMisc></SLE66AMisc>
+ <SLE66LinkerMisc></SLE66LinkerMisc>
+ <SFDFile>$$Device:STM32WB5MMGHx$CMSIS\SVD\STM32WB55_CM4.svd</SFDFile>
+ <bCustSvd>0</bCustSvd>
+ <UseEnv>0</UseEnv>
+ <BinPath></BinPath>
+ <IncludePath></IncludePath>
+ <LibPath></LibPath>
+ <RegisterFilePath></RegisterFilePath>
+ <DBRegisterFilePath></DBRegisterFilePath>
+ <TargetStatus>
+ <Error>0</Error>
+ <ExitCodeStop>0</ExitCodeStop>
+ <ButtonStop>0</ButtonStop>
+ <NotGenerated>0</NotGenerated>
+ <InvalidFlash>1</InvalidFlash>
+ </TargetStatus>
+ <OutputDirectory>BLE_p2pServer\Exe\</OutputDirectory>
+ <OutputName>BLE_p2pServer</OutputName>
+ <CreateExecutable>1</CreateExecutable>
+ <CreateLib>0</CreateLib>
+ <CreateHexFile>1</CreateHexFile>
+ <DebugInformation>1</DebugInformation>
+ <BrowseInformation>1</BrowseInformation>
+ <ListingPath></ListingPath>
+ <HexFormatSelection>1</HexFormatSelection>
+ <Merge32K>0</Merge32K>
+ <CreateBatchFile>0</CreateBatchFile>
+ <BeforeCompile>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopU1X>0</nStopU1X>
+ <nStopU2X>0</nStopU2X>
+ </BeforeCompile>
+ <BeforeMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopB1X>0</nStopB1X>
+ <nStopB2X>0</nStopB2X>
+ </BeforeMake>
+ <AfterMake>
+ <RunUserProg1>0</RunUserProg1>
+ <RunUserProg2>0</RunUserProg2>
+ <UserProg1Name></UserProg1Name>
+ <UserProg2Name></UserProg2Name>
+ <UserProg1Dos16Mode>0</UserProg1Dos16Mode>
+ <UserProg2Dos16Mode>0</UserProg2Dos16Mode>
+ <nStopA1X>0</nStopA1X>
+ <nStopA2X>0</nStopA2X>
+ </AfterMake>
+ <SelectedForBatchBuild>1</SelectedForBatchBuild>
+ <SVCSIdString></SVCSIdString>
+ </TargetCommonOption>
+ <CommonProperty>
+ <UseCPPCompiler>0</UseCPPCompiler>
+ <RVCTCodeConst>0</RVCTCodeConst>
+ <RVCTZI>0</RVCTZI>
+ <RVCTOtherData>0</RVCTOtherData>
+ <ModuleSelection>0</ModuleSelection>
+ <IncludeInBuild>1</IncludeInBuild>
+ <AlwaysBuild>0</AlwaysBuild>
+ <GenerateAssemblyFile>0</GenerateAssemblyFile>
+ <AssembleAssemblyFile>0</AssembleAssemblyFile>
+ <PublicsOnly>0</PublicsOnly>
+ <StopOnExitCode>3</StopOnExitCode>
+ <CustomArgument></CustomArgument>
+ <IncludeLibraryModules></IncludeLibraryModules>
+ <ComprImg>0</ComprImg>
+ </CommonProperty>
+ <DllOption>
+ <SimDllName>SARMCM3.DLL</SimDllName>
+ <SimDllArguments>-REMAP -MPU</SimDllArguments>
+ <SimDlgDll>DCM.DLL</SimDlgDll>
+ <SimDlgDllArguments>-pCM4</SimDlgDllArguments>
+ <TargetDllName>SARMCM3.DLL</TargetDllName>
+ <TargetDllArguments>-MPU</TargetDllArguments>
+ <TargetDlgDll>TCM.DLL</TargetDlgDll>
+ <TargetDlgDllArguments>-pCM4</TargetDlgDllArguments>
+ </DllOption>
+ <DebugOption>
+ <OPTHX>
+ <HexSelection>1</HexSelection>
+ <HexRangeLowAddress>0</HexRangeLowAddress>
+ <HexRangeHighAddress>0</HexRangeHighAddress>
+ <HexOffset>0</HexOffset>
+ <Oh166RecLen>16</Oh166RecLen>
+ </OPTHX>
+ </DebugOption>
+ <Utilities>
+ <Flash1>
+ <UseTargetDll>1</UseTargetDll>
+ <UseExternalTool>0</UseExternalTool>
+ <RunIndependent>0</RunIndependent>
+ <UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
+ <Capability>1</Capability>
+ <DriverSelection>4101</DriverSelection>
+ </Flash1>
+ <bUseTDR>1</bUseTDR>
+ <Flash2>BIN\UL2V8M.DLL</Flash2>
+ <Flash3></Flash3>
+ <Flash4></Flash4>
+ <pFcarmOut></pFcarmOut>
+ <pFcarmGrp></pFcarmGrp>
+ <pFcArmRoot></pFcArmRoot>
+ <FcArmLst>0</FcArmLst>
+ </Utilities>
+ <TargetArmAds>
+ <ArmAdsMisc>
+ <GenerateListings>0</GenerateListings>
+ <asHll>1</asHll>
+ <asAsm>1</asAsm>
+ <asMacX>1</asMacX>
+ <asSyms>1</asSyms>
+ <asFals>1</asFals>
+ <asDbgD>1</asDbgD>
+ <asForm>1</asForm>
+ <ldLst>0</ldLst>
+ <ldmm>1</ldmm>
+ <ldXref>1</ldXref>
+ <BigEnd>0</BigEnd>
+ <AdsALst>1</AdsALst>
+ <AdsACrf>1</AdsACrf>
+ <AdsANop>0</AdsANop>
+ <AdsANot>0</AdsANot>
+ <AdsLLst>1</AdsLLst>
+ <AdsLmap>1</AdsLmap>
+ <AdsLcgr>1</AdsLcgr>
+ <AdsLsym>1</AdsLsym>
+ <AdsLszi>1</AdsLszi>
+ <AdsLtoi>1</AdsLtoi>
+ <AdsLsun>1</AdsLsun>
+ <AdsLven>1</AdsLven>
+ <AdsLsxf>1</AdsLsxf>
+ <RvctClst>0</RvctClst>
+ <GenPPlst>0</GenPPlst>
+ <AdsCpuType>"Cortex-M4"</AdsCpuType>
+ <RvctDeviceName></RvctDeviceName>
+ <mOS>0</mOS>
+ <uocRom>0</uocRom>
+ <uocRam>0</uocRam>
+ <hadIROM>1</hadIROM>
+ <hadIRAM>1</hadIRAM>
+ <hadXRAM>0</hadXRAM>
+ <uocXRam>0</uocXRam>
+ <RvdsVP>2</RvdsVP>
+ <RvdsMve>0</RvdsMve>
+ <RvdsCdeCp>0</RvdsCdeCp>
+ <hadIRAM2>1</hadIRAM2>
+ <hadIROM2>0</hadIROM2>
+ <StupSel>8</StupSel>
+ <useUlib>1</useUlib>
+ <EndSel>0</EndSel>
+ <uLtcg>0</uLtcg>
+ <nSecure>0</nSecure>
+ <RoSelD>3</RoSelD>
+ <RwSelD>4</RwSelD>
+ <CodeSel>0</CodeSel>
+ <OptFeed>0</OptFeed>
+ <NoZi1>0</NoZi1>
+ <NoZi2>0</NoZi2>
+ <NoZi3>0</NoZi3>
+ <NoZi4>0</NoZi4>
+ <NoZi5>0</NoZi5>
+ <Ro1Chk>0</Ro1Chk>
+ <Ro2Chk>0</Ro2Chk>
+ <Ro3Chk>0</Ro3Chk>
+ <Ir1Chk>1</Ir1Chk>
+ <Ir2Chk>0</Ir2Chk>
+ <Ra1Chk>0</Ra1Chk>
+ <Ra2Chk>0</Ra2Chk>
+ <Ra3Chk>0</Ra3Chk>
+ <Im1Chk>1</Im1Chk>
+ <Im2Chk>1</Im2Chk>
+ <OnChipMemories>
+ <Ocm1>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm1>
+ <Ocm2>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm2>
+ <Ocm3>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm3>
+ <Ocm4>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm4>
+ <Ocm5>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm5>
+ <Ocm6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </Ocm6>
+ <IRAM>
+ <Type>0</Type>
+ <StartAddress>0x20000008</StartAddress>
+ <Size>0x2fc00</Size>
+ </IRAM>
+ <IROM>
+ <Type>1</Type>
+ <StartAddress>0x8000000</StartAddress>
+ <Size>0x80000</Size>
+ </IROM>
+ <XRAM>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </XRAM>
+ <OCR_RVCT1>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT1>
+ <OCR_RVCT2>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT2>
+ <OCR_RVCT3>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT3>
+ <OCR_RVCT4>
+ <Type>1</Type>
+ <StartAddress>0x8000000</StartAddress>
+ <Size>0x80000</Size>
+ </OCR_RVCT4>
+ <OCR_RVCT5>
+ <Type>1</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT5>
+ <OCR_RVCT6>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT6>
+ <OCR_RVCT7>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT7>
+ <OCR_RVCT8>
+ <Type>0</Type>
+ <StartAddress>0x0</StartAddress>
+ <Size>0x0</Size>
+ </OCR_RVCT8>
+ <OCR_RVCT9>
+ <Type>0</Type>
+ <StartAddress>0x20000008</StartAddress>
+ <Size>0x2fc00</Size>
+ </OCR_RVCT9>
+ <OCR_RVCT10>
+ <Type>0</Type>
+ <StartAddress>0x20030000</StartAddress>
+ <Size>0x2800</Size>
+ </OCR_RVCT10>
+ </OnChipMemories>
+ <RvctStartVector></RvctStartVector>
+ </ArmAdsMisc>
+ <Cads>
+ <interw>1</interw>
+ <Optim>4</Optim>
+ <oTime>0</oTime>
+ <SplitLS>0</SplitLS>
+ <OneElfS>1</OneElfS>
+ <Strict>0</Strict>
+ <EnumInt>0</EnumInt>
+ <PlainCh>0</PlainCh>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <wLevel>2</wLevel>
+ <uThumb>0</uThumb>
+ <uSurpInc>0</uSurpInc>
+ <uC99>1</uC99>
+ <uGnu>0</uGnu>
+ <useXO>0</useXO>
+ <v6Lang>5</v6Lang>
+ <v6LangP>3</v6LangP>
+ <vShortEn>1</vShortEn>
+ <vShortWch>1</vShortWch>
+ <v6Lto>0</v6Lto>
+ <v6WtE>0</v6WtE>
+ <v6Rtti>0</v6Rtti>
+ <VariousControls>
+ <MiscControls>--diag_suppress 1296</MiscControls>
+ <Define>USE_STM32WB5M_DK,USE_HAL_DRIVER,STM32WB5Mxx</Define>
+ <Undefine></Undefine>
+ <IncludePath>../Core/Inc;../STM32_WPAN/App;../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc;../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy;../../../../../../Utilities/lpm/tiny_lpm;../../../../../../Middlewares/ST/STM32_WPAN;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl;../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci;../../../../../../Middlewares/ST/STM32_WPAN/utilities;../../../../../../Middlewares/ST/STM32_WPAN/ble/core;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto;../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template;../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc;../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src;../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include;../../../../../../Utilities/sequencer;../../../../../../Middlewares/ST/STM32_WPAN/ble;../../../../../../Drivers/CMSIS/Include;../../../../../../Drivers/BSP/STM32WB5MM-DK;../../../../../../Drivers/BSP/Components/ssd1315;../../../../../../Drivers/BSP/Components/Common;../../../../../../Utilities/Fonts;../../../../../../Utilities/LCD</IncludePath>
+ </VariousControls>
+ </Cads>
+ <Aads>
+ <interw>1</interw>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <thumb>0</thumb>
+ <SplitLS>0</SplitLS>
+ <SwStkChk>0</SwStkChk>
+ <NoWarn>0</NoWarn>
+ <uSurpInc>0</uSurpInc>
+ <useXO>0</useXO>
+ <ClangAsOpt>4</ClangAsOpt>
+ <VariousControls>
+ <MiscControls></MiscControls>
+ <Define></Define>
+ <Undefine></Undefine>
+ <IncludePath></IncludePath>
+ </VariousControls>
+ </Aads>
+ <LDads>
+ <umfTarg>0</umfTarg>
+ <Ropi>0</Ropi>
+ <Rwpi>0</Rwpi>
+ <noStLib>0</noStLib>
+ <RepFail>1</RepFail>
+ <useFile>0</useFile>
+ <TextAddressRange></TextAddressRange>
+ <DataAddressRange></DataAddressRange>
+ <pXoBase></pXoBase>
+ <ScatterFile>stm32wb5mxx_flash_cm4.sct</ScatterFile>
+ <IncludeLibs></IncludeLibs>
+ <IncludeLibsPath></IncludeLibsPath>
+ <Misc></Misc>
+ <LinkerInputFile></LinkerInputFile>
+ <DisabledWarnings></DisabledWarnings>
+ </LDads>
+ </TargetArmAds>
+ </TargetOption>
+ <Groups>
+ <Group>
+ <GroupName>Application/MDK-ARM</GroupName>
+ <Files>
+ <File>
+ <FileName>startup_stm32wb5mxx_cm4.s</FileName>
+ <FileType>2</FileType>
+ <FilePath>startup_stm32wb5mxx_cm4.s</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Application/User/Core</GroupName>
+ <Files>
+ <File>
+ <FileName>app_debug.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/app_debug.c</FilePath>
+ </File>
+ <File>
+ <FileName>app_entry.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/app_entry.c</FilePath>
+ </File>
+ <File>
+ <FileName>hw_timerserver.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/hw_timerserver.c</FilePath>
+ </File>
+ <File>
+ <FileName>hw_uart.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/hw_uart.c</FilePath>
+ </File>
+ <File>
+ <FileName>main.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/main.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32_lpm_if.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/stm32_lpm_if.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_msp.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/stm32wbxx_hal_msp.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_it.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/stm32wbxx_it.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Application/User/STM32_WPAN/App</GroupName>
+ <Files>
+ <File>
+ <FileName>app_ble.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/App/app_ble.c</FilePath>
+ </File>
+ <File>
+ <FileName>p2p_server_app.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/App/p2p_server_app.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Application/User/STM32_WPAN/Target</GroupName>
+ <Files>
+ <File>
+ <FileName>hw_ipcc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../STM32_WPAN/Target/hw_ipcc.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Doc</GroupName>
+ <Files>
+ <File>
+ <FileName>readme.txt</FileName>
+ <FileType>5</FileType>
+ <FilePath>../readme.txt</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Drivers/BSP/STM32WB5MM-DK</GroupName>
+ <Files>
+ <File>
+ <FileName>ssd1315.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/BSP/Components/ssd1315/ssd1315.c</FilePath>
+ </File>
+ <File>
+ <FileName>ssd1315_reg.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/BSP/Components/ssd1315/ssd1315_reg.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wb5mm_dk.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wb5mm_dk_bus.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_bus.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wb5mm_dk_lcd.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/BSP/STM32WB5MM-DK/stm32wb5mm_dk_lcd.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Drivers/CMSIS</GroupName>
+ <Files>
+ <File>
+ <FileName>system_stm32wbxx.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../Core/Src/system_stm32wbxx.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Drivers/STM32WBxx_HAL_Driver</GroupName>
+ <Files>
+ <File>
+ <FileName>stm32wbxx_hal.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_cortex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_cortex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_dma.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_dma.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_dma_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_dma_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_exti.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_exti.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_flash.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_flash.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_flash_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_flash_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_gpio.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_gpio.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_hsem.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_hsem.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_i2c.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_i2c.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_i2c_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_i2c_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_ipcc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_ipcc.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_pwr.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pwr.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_pwr_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_pwr_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_qspi.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_qspi.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_rcc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rcc.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_rcc_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rcc_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_rtc.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rtc.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_rtc_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_rtc_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_spi.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_spi.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_spi_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_spi_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_tim.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_tim.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_tim_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_tim_ex.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_uart.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_uart.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32wbxx_hal_uart_ex.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Drivers/STM32WBxx_HAL_Driver/Src/stm32wbxx_hal_uart_ex.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Middlewares/STM32_WPAN</GroupName>
+ <Files>
+ <File>
+ <FileName>ble_gap_aci.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_gap_aci.c</FilePath>
+ </File>
+ <File>
+ <FileName>ble_gatt_aci.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_gatt_aci.c</FilePath>
+ </File>
+ <File>
+ <FileName>ble_hal_aci.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_hal_aci.c</FilePath>
+ </File>
+ <File>
+ <FileName>ble_hci_le.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_hci_le.c</FilePath>
+ </File>
+ <File>
+ <FileName>ble_l2cap_aci.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto/ble_l2cap_aci.c</FilePath>
+ </File>
+ <File>
+ <FileName>dbg_trace.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/utilities/dbg_trace.c</FilePath>
+ </File>
+ <File>
+ <FileName>hci_tl.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/hci_tl.c</FilePath>
+ </File>
+ <File>
+ <FileName>hci_tl_if.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/hci_tl_if.c</FilePath>
+ </File>
+ <File>
+ <FileName>osal.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template/osal.c</FilePath>
+ </File>
+ <File>
+ <FileName>otp.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/utilities/otp.c</FilePath>
+ </File>
+ <File>
+ <FileName>p2p_stm.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src/p2p_stm.c</FilePath>
+ </File>
+ <File>
+ <FileName>shci.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci/shci.c</FilePath>
+ </File>
+ <File>
+ <FileName>shci_tl.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/shci_tl.c</FilePath>
+ </File>
+ <File>
+ <FileName>shci_tl_if.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/shci_tl_if.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm_list.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/utilities/stm_list.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm_queue.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/utilities/stm_queue.c</FilePath>
+ </File>
+ <File>
+ <FileName>svc_ctl.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src/svc_ctl.c</FilePath>
+ </File>
+ <File>
+ <FileName>tl_mbox.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl/tl_mbox.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>Utilities</GroupName>
+ <Files>
+ <File>
+ <FileName>stm32_lcd.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Utilities/LCD/stm32_lcd.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32_lpm.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Utilities/lpm/tiny_lpm/stm32_lpm.c</FilePath>
+ </File>
+ <File>
+ <FileName>stm32_seq.c</FileName>
+ <FileType>1</FileType>
+ <FilePath>../../../../../../Utilities/sequencer/stm32_seq.c</FilePath>
+ </File>
+ </Files>
+ </Group>
+ <Group>
+ <GroupName>::CMSIS</GroupName>
+ </Group>
+ </Groups>
+ </Target>
+ </Targets>
+
+ <RTE>
+ <apis/>
+ <components>
+ <component Cclass="CMSIS" Cgroup="CORE" Cvendor="ARM" Cversion="4.3.0" condition="CMSIS Core">
+ <package name="CMSIS" schemaVersion="1.3" url="http://www.keil.com/pack/" vendor="ARM" version="4.5.0"/>
+ <targetInfos>
+ <targetInfo name="BLE_p2pServer"/>
+ </targetInfos>
+ </component>
+ </components>
+ <files/>
+ </RTE>
+
+ <LayerInfo>
+ <Layers>
+ <Layer>
+ <LayName>&lt;Project Info&gt;</LayName>
+ <LayDesc></LayDesc>
+ <LayUrl></LayUrl>
+ <LayKeys></LayKeys>
+ <LayCat></LayCat>
+ <LayLic></LayLic>
+ <LayTarg>0</LayTarg>
+ <LayPrjMark>1</LayPrjMark>
+ </Layer>
+ </Layers>
+ </LayerInfo>
+
+</Project>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/startup_stm32wb5mxx_cm4.s
new file mode 100644
index 000000000..6a51d2123
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/startup_stm32wb5mxx_cm4.s
@@ -0,0 +1,367 @@
+;******************************************************************************
+;* File Name : startup_stm32wb5mxx_cm4.s
+;* Author : MCD Application Team
+;* Description : STM32WB5Mxx 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
+;* - Branches to __main in the C library (which eventually
+;* calls main()).
+;* After Reset the CortexM4 processor is in Thread mode,
+;* priority is Privileged, and the Stack is set to Main.
+;* <<< Use Configuration Wizard in Context Menu >>>
+;******************************************************************************
+;* @attention
+;*
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
+;*
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
+;*
+;******************************************************************************
+
+; 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 0x1000
+
+ 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 0x400
+
+ 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_PVM_IRQHandler ; PVD and PVM detector
+ DCD TAMP_STAMP_LSECSS_IRQHandler ; RTC Tamper and TimeStamp Interrupts and LSECSS Interrupts
+ DCD RTC_WKUP_IRQHandler ; RTC Wakeup Interrupt
+ DCD FLASH_IRQHandler ; FLASH global Interrupt
+ DCD RCC_IRQHandler ; RCC Interrupt
+ DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
+ DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
+ DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
+ DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
+ DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
+ DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
+ DCD DMA1_Channel3_IRQHandler ; DMA1 Channel 3 Interrupt
+ DCD DMA1_Channel4_IRQHandler ; DMA1 Channel 4 Interrupt
+ DCD DMA1_Channel5_IRQHandler ; DMA1 Channel 5 Interrupt
+ DCD DMA1_Channel6_IRQHandler ; DMA1 Channel 6 Interrupt
+ DCD DMA1_Channel7_IRQHandler ; DMA1 Channel 7 Interrupt
+ DCD ADC1_IRQHandler ; ADC1 Interrupt
+ DCD USB_HP_IRQHandler ; USB High Priority Interrupt
+ DCD USB_LP_IRQHandler ; USB Low Priority Interrupt
+ DCD C2SEV_PWR_C2H_IRQHandler ; CPU M0+ SEV Interrupt
+ DCD COMP_IRQHandler ; COMP1 and COMP2 Interrupts
+ DCD EXTI9_5_IRQHandler ; EXTI Lines [9:5] Interrupt
+ DCD TIM1_BRK_IRQHandler ; TIM1 Break Interrupt
+ DCD TIM1_UP_TIM16_IRQHandler ; TIM1 Update and TIM16 global Interrupts
+ DCD TIM1_TRG_COM_TIM17_IRQHandler ; TIM1 Trigger and Communication and TIM17 global Interrupts
+ DCD TIM1_CC_IRQHandler ; TIM1 Capture Compare Interrupt
+ DCD TIM2_IRQHandler ; TIM2 Global Interrupt
+ DCD PKA_IRQHandler ; PKA Interrupt
+ DCD I2C1_EV_IRQHandler ; I2C1 Event Interrupt
+ DCD I2C1_ER_IRQHandler ; I2C1 Error Interrupt
+ DCD I2C3_EV_IRQHandler ; I2C3 Event Interrupt
+ DCD I2C3_ER_IRQHandler ; I2C3 Error Interrupt
+ DCD SPI1_IRQHandler ; SPI1 Interrupt
+ DCD SPI2_IRQHandler ; SPI2 Interrupt
+ DCD USART1_IRQHandler ; USART1 Interrupt
+ DCD LPUART1_IRQHandler ; LPUART1 Interrupt
+ DCD SAI1_IRQHandler ; SAI Interrupt
+ DCD TSC_IRQHandler ; TSC Interrupt
+ DCD EXTI15_10_IRQHandler ; EXTI Lines1[15:10 ]Interrupts
+ DCD RTC_Alarm_IRQHandler ; RTC Alarms (A and B) Interrupt
+ DCD CRS_IRQHandler ; CRS interrupt
+ DCD PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler ; WKUP Interrupt from PWR
+ DCD IPCC_C1_RX_IRQHandler ; IPCC CPU1 RX occupied interrupt
+ DCD IPCC_C1_TX_IRQHandler ; IPCC CPU1 RX free interrupt
+ DCD HSEM_IRQHandler ; HSEM0 Interrupt
+ DCD LPTIM1_IRQHandler ; LPTIM1 Interrupt
+ DCD LPTIM2_IRQHandler ; LPTIM2 Interrupt
+ DCD LCD_IRQHandler ; LCD Interrupt
+ DCD QUADSPI_IRQHandler ; QUADSPI Interrupt
+ DCD AES1_IRQHandler ; AES1 Interrupt
+ DCD AES2_IRQHandler ; AES2 Interrupt
+ DCD RNG_IRQHandler ; RNG1 Interrupt
+ DCD FPU_IRQHandler ; FPU Interrupt
+ DCD DMA2_Channel1_IRQHandler ; DMA2 Channel 1 Interrupt
+ DCD DMA2_Channel2_IRQHandler ; DMA2 Channel 2 Interrupt
+ DCD DMA2_Channel3_IRQHandler ; DMA2 Channel 3 Interrupt
+ DCD DMA2_Channel4_IRQHandler ; DMA2 Channel 4 Interrupt
+ DCD DMA2_Channel5_IRQHandler ; DMA2 Channel 5 Interrupt
+ DCD DMA2_Channel6_IRQHandler ; DMA2 Channel 6 Interrupt
+ DCD DMA2_Channel7_IRQHandler ; DMA2 Channel 7 Interrupt
+ DCD DMAMUX1_OVR_IRQHandler ; DMAMUX overrun Interrupt
+
+__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_PVM_IRQHandler [WEAK]
+ EXPORT TAMP_STAMP_LSECSS_IRQHandler [WEAK]
+ EXPORT RTC_WKUP_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 USB_HP_IRQHandler [WEAK]
+ EXPORT USB_LP_IRQHandler [WEAK]
+ EXPORT C2SEV_PWR_C2H_IRQHandler [WEAK]
+ EXPORT COMP_IRQHandler [WEAK]
+ EXPORT EXTI9_5_IRQHandler [WEAK]
+ EXPORT TIM1_BRK_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 PKA_IRQHandler [WEAK]
+ EXPORT I2C1_EV_IRQHandler [WEAK]
+ EXPORT I2C1_ER_IRQHandler [WEAK]
+ EXPORT I2C3_EV_IRQHandler [WEAK]
+ EXPORT I2C3_ER_IRQHandler [WEAK]
+ EXPORT SPI1_IRQHandler [WEAK]
+ EXPORT SPI2_IRQHandler [WEAK]
+ EXPORT USART1_IRQHandler [WEAK]
+ EXPORT LPUART1_IRQHandler [WEAK]
+ EXPORT SAI1_IRQHandler [WEAK]
+ EXPORT TSC_IRQHandler [WEAK]
+ EXPORT EXTI15_10_IRQHandler [WEAK]
+ EXPORT RTC_Alarm_IRQHandler [WEAK]
+ EXPORT CRS_IRQHandler [WEAK]
+ EXPORT PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler [WEAK]
+ EXPORT IPCC_C1_RX_IRQHandler [WEAK]
+ EXPORT IPCC_C1_TX_IRQHandler [WEAK]
+ EXPORT HSEM_IRQHandler [WEAK]
+ EXPORT LPTIM1_IRQHandler [WEAK]
+ EXPORT LPTIM2_IRQHandler [WEAK]
+ EXPORT LCD_IRQHandler [WEAK]
+ EXPORT QUADSPI_IRQHandler [WEAK]
+ EXPORT AES1_IRQHandler [WEAK]
+ EXPORT AES2_IRQHandler [WEAK]
+ EXPORT RNG_IRQHandler [WEAK]
+ EXPORT FPU_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 DMA2_Channel6_IRQHandler [WEAK]
+ EXPORT DMA2_Channel7_IRQHandler [WEAK]
+ EXPORT DMAMUX1_OVR_IRQHandler [WEAK]
+
+WWDG_IRQHandler
+PVD_PVM_IRQHandler
+TAMP_STAMP_LSECSS_IRQHandler
+RTC_WKUP_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
+USB_HP_IRQHandler
+USB_LP_IRQHandler
+C2SEV_PWR_C2H_IRQHandler
+COMP_IRQHandler
+EXTI9_5_IRQHandler
+TIM1_BRK_IRQHandler
+TIM1_UP_TIM16_IRQHandler
+TIM1_TRG_COM_TIM17_IRQHandler
+TIM1_CC_IRQHandler
+TIM2_IRQHandler
+PKA_IRQHandler
+I2C1_EV_IRQHandler
+I2C1_ER_IRQHandler
+I2C3_EV_IRQHandler
+I2C3_ER_IRQHandler
+SPI1_IRQHandler
+SPI2_IRQHandler
+USART1_IRQHandler
+LPUART1_IRQHandler
+SAI1_IRQHandler
+TSC_IRQHandler
+EXTI15_10_IRQHandler
+RTC_Alarm_IRQHandler
+CRS_IRQHandler
+PWR_SOTF_BLEACT_802ACT_RFPHASE_IRQHandler
+IPCC_C1_RX_IRQHandler
+IPCC_C1_TX_IRQHandler
+HSEM_IRQHandler
+LPTIM1_IRQHandler
+LPTIM2_IRQHandler
+LCD_IRQHandler
+QUADSPI_IRQHandler
+AES1_IRQHandler
+AES2_IRQHandler
+RNG_IRQHandler
+FPU_IRQHandler
+DMA2_Channel1_IRQHandler
+DMA2_Channel2_IRQHandler
+DMA2_Channel3_IRQHandler
+DMA2_Channel4_IRQHandler
+DMA2_Channel5_IRQHandler
+DMA2_Channel6_IRQHandler
+DMA2_Channel7_IRQHandler
+DMAMUX1_OVR_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
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/stm32wb5mxx_flash_cm4.sct b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/stm32wb5mxx_flash_cm4.sct
new file mode 100644
index 000000000..938d9f592
--- /dev/null
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/MDK-ARM/stm32wb5mxx_flash_cm4.sct
@@ -0,0 +1,26 @@
+; *************************************************************
+; *** Scatter-Loading Description File generated by uVision ***
+; *************************************************************
+
+LR_IROM1 0x08000000 0x00080000 { ; load region size_region
+ ER_IROM1 0x08000000 0x00080000 { ; load address = execution address
+ *.o (RESET, +First)
+ *(InRoot$$Sections)
+ .ANY (+RO)
+ }
+ RW_IRAM1 0x20000008 0x2FFF8 { ; RW data
+ .ANY (+RW +ZI)
+ }
+
+ RW_RAM_SHARED1 0x20030000 0x28 { ; RW data
+ *(MAPPING_TABLE)
+ }
+ RW_RAM_SHARED2 0x20030028 0x27D8 { ; RW data
+ *(MB_MEM1)
+ *(MB_MEM2)
+ .ANY (+RW +ZI)
+ }
+
+ }
+
+
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/.cproject b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/.cproject
index 0d3491510..5a48ec98d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/.cproject
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/.cproject
@@ -47,7 +47,7 @@
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board.1946282118" name="Board" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.target_board" useByScannerDiscovery="false" value="STM32WB5MM-DK" valueType="string"/>
- <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1351536608" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../Core/Inc | ../../STM32_WPAN/App | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/CMSIS/Include | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/Fonts | ../../../../../../../Utilities/LCD || || || STM32WL55MM_DK | STM32WB5Mxx | USE_HAL_DRIVER || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || Size || || || None" valueType="string"/>
+ <option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults.1351536608" name="Defaults" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.defaults" useByScannerDiscovery="false" value="com.st.stm32cube.ide.common.services.build.inputs.revA.1.0.4 || Release || false || Executable || com.st.stm32cube.ide.mcu.gnu.managedbuild.option.toolchain.value.workspace || STM32WB5MM-DK || 0 || 0 || arm-none-eabi- || ${gnu_tools_for_stm32_compiler_path} || ../../Core/Inc | ../../STM32_WPAN/App | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc | ../../../../../../../Drivers/STM32WBxx_HAL_Driver/Inc/Legacy | ../../../../../../../Utilities/lpm/tiny_lpm | ../../../../../../../Middlewares/ST/STM32_WPAN | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/tl | ../../../../../../../Middlewares/ST/STM32_WPAN/interface/patterns/ble_thread/shci | ../../../../../../../Middlewares/ST/STM32_WPAN/utilities | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/auto | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/core/template | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Inc | ../../../../../../../Middlewares/ST/STM32_WPAN/ble/svc/Src | ../../../../../../../Drivers/CMSIS/Device/ST/STM32WBxx/Include | ../../../../../../../Utilities/sequencer | ../../../../../../../Middlewares/ST/STM32_WPAN/ble | ../../../../../../../Drivers/CMSIS/Include | ../../../../../../../Drivers/BSP/STM32WB5MM-DK | ../../../../../../../Drivers/BSP/Components/ssd1315 | ../../../../../../../Drivers/BSP/Components/Common | ../../../../../../../Utilities/Fonts | ../../../../../../../Utilities/LCD || || || USE_STM32WB5M_DK | STM32WB5Mxx | USE_HAL_DRIVER || || || || || ${workspace_loc:/${ProjName}/STM32WB5MMGHX_FLASH.ld} || true || NonSecure || Size || || || None" valueType="string"/>
<option id="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex.1723783494" name="Convert to Intel Hex file (-O ihex)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.option.converthex" useByScannerDiscovery="false" value="true" valueType="boolean"/>
@@ -73,7 +73,7 @@
<option IS_BUILTIN_EMPTY="false" IS_VALUE_EMPTY="false" id="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols.1528551360" name="Define symbols (-D)" superClass="com.st.stm32cube.ide.mcu.gnu.managedbuild.tool.c.compiler.option.definedsymbols" useByScannerDiscovery="false" valueType="definedSymbols">
- <listOptionValue builtIn="false" value="STM32WL55MM_DK"/>
+ <listOptionValue builtIn="false" value="USE_STM32WB5M_DK"/>
<listOptionValue builtIn="false" value="STM32WB5Mxx"/>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/.project b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/.project
index c5024040c..b9c643b3e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/.project
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/.project
@@ -31,6 +31,11 @@
</natures>
<linkedResources>
<link>
+ <name>BLE_p2pServer.ioc</name>
+ <type>1</type>
+ <locationURI>PARENT-1-PROJECT_LOC/BLE_p2pServer.ioc</locationURI>
+ </link>
+ <link>
<name>Doc/readme.txt</name>
<type>1</type>
<locationURI>PARENT-1-PROJECT_LOC/readme.txt</locationURI>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
index 891ce5b9a..18f06244f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -14,13 +14,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
-* This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,7 +92,7 @@ LoopFillZerobss:
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
-/* Call the clock system intitialization function.*/
+/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
@@ -442,4 +441,3 @@ g_pfnVectors:
.weak DMAMUX1_OVR_IRQHandler
.thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/User/Core/syscalls.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/User/Core/syscalls.c
index bc0dd6c06..c921fd873 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/User/Core/syscalls.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/User/Core/syscalls.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
@@ -7,19 +7,18 @@
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <sys/stat.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/User/Core/sysmem.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/User/Core/sysmem.c
index d7cc52cd4..dda5abe79 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/User/Core/sysmem.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/Application/User/Core/sysmem.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
@@ -7,19 +7,18 @@
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <errno.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
index f0c35b387..04d57d8aa 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -15,30 +15,14 @@
** of any kind.
**
*****************************************************************************
+** @attention
**
-** <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
+** Copyright (c) 2019 STMicroelectronics.
+** All rights reserved.
**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-** 1. Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** 3. Neither the name of STMicroelectronics nor the names of its contributors
-** may be used to endorse or promote products derived from this software
-** without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
**
*****************************************************************************
*/
@@ -145,7 +129,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/app_ble.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/app_ble.c
index babc7ac6e..7202e058a 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/app_ble.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/app_ble.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/app_ble.c
- * Description : Application file for BLE Middleware.
- *
- *****************************************************************************
+ ******************************************************************************
+ * @file app_ble.c
+ * @author MCD Application Team
+ * @brief BLE Application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -366,6 +365,12 @@ static void Connection_Interval_Update_Req( void );
/* USER CODE END PFP */
+/* External variables --------------------------------------------------------*/
+
+/* USER CODE BEGIN EV */
+
+/* USER CODE END EV */
+
/* Functions Definition ------------------------------------------------------*/
void APP_BLE_Init( void )
{
@@ -382,26 +387,27 @@ void APP_BLE_Init( void )
{
{{0,0,0}}, /**< Header unused */
{0, /** pBleBufferAddress not used */
- 0, /** BleBufferSize not used */
- CFG_BLE_NUM_GATT_ATTRIBUTES,
- CFG_BLE_NUM_GATT_SERVICES,
- CFG_BLE_ATT_VALUE_ARRAY_SIZE,
- CFG_BLE_NUM_LINK,
- CFG_BLE_DATA_LENGTH_EXTENSION,
- CFG_BLE_PREPARE_WRITE_LIST_SIZE,
- CFG_BLE_MBLOCK_COUNT,
- CFG_BLE_MAX_ATT_MTU,
- CFG_BLE_SLAVE_SCA,
- CFG_BLE_MASTER_SCA,
- CFG_BLE_LSE_SOURCE,
- CFG_BLE_MAX_CONN_EVENT_LENGTH,
- CFG_BLE_HSE_STARTUP_TIME,
- CFG_BLE_VITERBI_MODE,
- CFG_BLE_OPTIONS,
- 0,
- CFG_BLE_MAX_COC_INITIATOR_NBR,
- CFG_BLE_MIN_TX_POWER,
- CFG_BLE_MAX_TX_POWER}
+ 0, /** BleBufferSize not used */
+ CFG_BLE_NUM_GATT_ATTRIBUTES,
+ CFG_BLE_NUM_GATT_SERVICES,
+ CFG_BLE_ATT_VALUE_ARRAY_SIZE,
+ CFG_BLE_NUM_LINK,
+ CFG_BLE_DATA_LENGTH_EXTENSION,
+ CFG_BLE_PREPARE_WRITE_LIST_SIZE,
+ CFG_BLE_MBLOCK_COUNT,
+ CFG_BLE_MAX_ATT_MTU,
+ CFG_BLE_SLAVE_SCA,
+ CFG_BLE_MASTER_SCA,
+ CFG_BLE_LSE_SOURCE,
+ CFG_BLE_MAX_CONN_EVENT_LENGTH,
+ CFG_BLE_HSE_STARTUP_TIME,
+ CFG_BLE_VITERBI_MODE,
+ CFG_BLE_OPTIONS,
+ 0,
+ CFG_BLE_MAX_COC_INITIATOR_NBR,
+ CFG_BLE_MIN_TX_POWER,
+ CFG_BLE_MAX_TX_POWER,
+ CFG_BLE_RX_MODEL_CONFIG}
};
/**
@@ -498,7 +504,7 @@ void APP_BLE_Init( void )
Adv_Request(APP_BLE_FAST_ADV);
/* USER CODE BEGIN APP_BLE_Init_2 */
- /* Displays the board informations: MAC Address, Stack version, FUS version*/
+ /* Displays the board information: MAC Address, Stack version, FUS version*/
if (SHCI_GetWirelessFwInfo(p_wireless_info) != SHCI_Success)
{
// Error
@@ -842,7 +848,6 @@ static void Ble_Hci_Gap_Gatt_Init(void){
uint8_t role;
uint16_t gap_service_handle, gap_dev_name_char_handle, gap_appearance_char_handle;
const uint8_t *bd_addr;
- uint32_t srd_bd_addr[2];
uint16_t appearance[1] = { BLE_CFG_GAP_APPEARANCE };
/**
@@ -860,6 +865,7 @@ static void Ble_Hci_Gap_Gatt_Init(void){
CONFIG_DATA_PUBADDR_LEN,
(uint8_t*) bd_addr);
+#if (CFG_BLE_ADDRESS_TYPE == PUBLIC_ADDR)
/* BLE MAC in ADV Packet */
manuf_data[ sizeof(manuf_data)-6] = bd_addr[5];
manuf_data[ sizeof(manuf_data)-5] = bd_addr[4];
@@ -867,6 +873,7 @@ static void Ble_Hci_Gap_Gatt_Init(void){
manuf_data[ sizeof(manuf_data)-3] = bd_addr[2];
manuf_data[ sizeof(manuf_data)-2] = bd_addr[1];
manuf_data[ sizeof(manuf_data)-1] = bd_addr[0];
+#endif
/**
* Static random Address
@@ -874,19 +881,65 @@ static void Ble_Hci_Gap_Gatt_Init(void){
* The lowest 32bits is read from the UDN to differentiate between devices
* The RNG may be used to provide a random number on each power on
*/
- srd_bd_addr[1] = 0x0000ED6E;
- srd_bd_addr[0] = LL_FLASH_GetUDN( );
+#if defined(CFG_STATIC_RANDOM_ADDRESS)
+ srd_bd_addr[0] = CFG_STATIC_RANDOM_ADDRESS & 0xFFFFFFFF;
+ srd_bd_addr[1] = (uint32_t)((uint64_t)CFG_STATIC_RANDOM_ADDRESS >> 32);
+ srd_bd_addr[1] |= 0xC000; /* The two upper bits shall be set to 1 */
+#elif (CFG_BLE_ADDRESS_TYPE == RANDOM_ADDR)
+ /* Get RNG semaphore */
+ while( LL_HSEM_1StepLock( HSEM, CFG_HW_RNG_SEMID ) );
+
+ /* Enable RNG */
+ __HAL_RNG_ENABLE(&hrng);
+
+ /* Enable HSI48 oscillator */
+ LL_RCC_HSI48_Enable();
+ /* Wait until HSI48 is ready */
+ while( ! LL_RCC_HSI48_IsReady( ) );
+
+ if (HAL_RNG_GenerateRandomNumber(&hrng, &srd_bd_addr[1]) != HAL_OK)
+ {
+ /* Random number generation error */
+ Error_Handler();
+ }
+ if (HAL_RNG_GenerateRandomNumber(&hrng, &srd_bd_addr[0]) != HAL_OK)
+ {
+ /* Random number generation error */
+ Error_Handler();
+ }
+ srd_bd_addr[1] |= 0xC000; /* The two upper bits shall be set to 1 */
+
+ /* Disable HSI48 oscillator */
+ LL_RCC_HSI48_Disable();
+
+ /* Disable RNG */
+ __HAL_RNG_DISABLE(&hrng);
+
+ /* Release RNG semaphore */
+ LL_HSEM_ReleaseLock( HSEM, CFG_HW_RNG_SEMID, 0 );
+#endif
+
+#if (CFG_BLE_ADDRESS_TYPE == STATIC_RANDOM_ADDR)
+ /* BLE MAC in ADV Packet */
+ manuf_data[ sizeof(manuf_data)-6] = srd_bd_addr[1] >> 8 ;
+ manuf_data[ sizeof(manuf_data)-5] = srd_bd_addr[1];
+ manuf_data[ sizeof(manuf_data)-4] = srd_bd_addr[0] >> 24;
+ manuf_data[ sizeof(manuf_data)-3] = srd_bd_addr[0] >> 16;
+ manuf_data[ sizeof(manuf_data)-2] = srd_bd_addr[0] >> 8;
+ manuf_data[ sizeof(manuf_data)-1] = srd_bd_addr[0];
+
aci_hal_write_config_data( CONFIG_DATA_RANDOM_ADDRESS_OFFSET, CONFIG_DATA_RANDOM_ADDRESS_LEN, (uint8_t*)srd_bd_addr );
+#endif
/**
* Write Identity root key used to derive LTK and CSRK
*/
- aci_hal_write_config_data( CONFIG_DATA_IR_OFFSET, CONFIG_DATA_IR_LEN, (uint8_t*)BLE_CFG_IR_VALUE );
+ aci_hal_write_config_data( CONFIG_DATA_IR_OFFSET, CONFIG_DATA_IR_LEN, (uint8_t*)BLE_CFG_IR_VALUE );
- /**
+ /**
* Write Encryption root key used to derive LTK and CSRK
*/
- aci_hal_write_config_data( CONFIG_DATA_ER_OFFSET, CONFIG_DATA_ER_LEN, (uint8_t*)BLE_CFG_ER_VALUE );
+ aci_hal_write_config_data( CONFIG_DATA_ER_OFFSET, CONFIG_DATA_ER_LEN, (uint8_t*)BLE_CFG_ER_VALUE );
/**
* Set TX Power to 0dBm.
@@ -914,9 +967,16 @@ static void Ble_Hci_Gap_Gatt_Init(void){
if (role > 0)
{
const char *name = "P2PSRV1";
- aci_gap_init(role, 0,
+ aci_gap_init(role,
+#if ((CFG_BLE_ADDRESS_TYPE == RESOLVABLE_PRIVATE_ADDR) || (CFG_BLE_ADDRESS_TYPE == NON_RESOLVABLE_PRIVATE_ADDR))
+ 2,
+#else
+ 0,
+#endif
APPBLE_GAP_DEVICE_NAME_LENGTH,
- &gap_service_handle, &gap_dev_name_char_handle, &gap_appearance_char_handle);
+ &gap_service_handle,
+ &gap_dev_name_char_handle,
+ &gap_appearance_char_handle);
if (aci_gatt_update_char_value(gap_service_handle, gap_dev_name_char_handle, 0, strlen(name), (uint8_t *) name))
{
@@ -961,7 +1021,7 @@ static void Ble_Hci_Gap_Gatt_Init(void){
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.encryptionKeySizeMax,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Use_Fixed_Pin,
BleApplicationContext.BleApplicationContext_legacy.bleSecurityParam.Fixed_Pin,
- PUBLIC_ADDR
+ CFG_BLE_ADDRESS_TYPE
);
/**
@@ -1019,7 +1079,7 @@ static void Adv_Request(APP_BLE_ConnStatus_t New_Status)
ADV_IND,
Min_Inter,
Max_Inter,
- PUBLIC_ADDR,
+ CFG_BLE_ADDRESS_TYPE,
NO_WHITE_LIST_USE, /* use white list */
sizeof(local_name),
(uint8_t*) &local_name,
@@ -1258,6 +1318,8 @@ static void BLE_UserEvtRx( void * pPayload )
{
pParam->status = HCI_TL_UserEventFlow_Disable;
}
+
+ return;
}
static void BLE_StatusNot( HCI_TL_CmdStatus_t status )
@@ -1300,4 +1362,3 @@ void SVCCTL_ResumeUserEventFlow( void )
/* USER CODE BEGIN FD_WRAP_FUNCTIONS */
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/app_ble.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/app_ble.h
index 434c53068..68187f6c2 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/app_ble.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/app_ble.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/app_ble.h
- * Description : Application configuration file for BLE Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file app_ble.h
+ * @author MCD Application Team
+ * @brief Header for ble application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -84,5 +83,3 @@ void APP_BLE_Key_Button2_Action(void);
#endif
#endif /*APP_BLE_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/ble_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/ble_conf.h
index 59768aa0d..746ff3696 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/ble_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/ble_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/ble_conf.h
- * Description : Configuration file for BLE Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file ble_conf.h
+ * @author MCD Application Team
+ * @brief Configuration file for BLE Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -69,4 +68,3 @@
#define BLE_CFG_OTA_REBOOT_CHAR 0/**< REBOOT OTA MODE CHARACTERISTIC */
#endif /*BLE_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/ble_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/ble_dbg_conf.h
index 1721138d4..e54a6cc09 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/ble_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/ble_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/ble_dbg_conf.h
- * Description : Debug configuration file for BLE Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file ble_dbg_conf.h
+ * @author MCD Application Team
+ * @brief Debug configuration file for BLE Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -197,5 +196,3 @@
#endif
#endif /*__BLE_DBG_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/p2p_server_app.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/p2p_server_app.c
index 9713f979b..f00a43ef3 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/p2p_server_app.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/p2p_server_app.c
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/p2p_server_app.c
- * Description : P2P Server Application
- ******************************************************************************
+ ******************************************************************************
+ * File Name : App/p2p_server_app.c
+ * Description : P2P Server Application
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -45,7 +44,7 @@
typedef struct
{
- uint8_t Notification_Status; /* used to chek if P2P Server is enabled to Notify */
+ uint8_t Notification_Status; /* used to check if P2P Server is enabled to Notify */
P2P_LedCharValue_t LedControl;
P2P_ButtonCharValue_t ButtonControl;
uint16_t ConnectionHandle;
@@ -410,4 +409,3 @@ void P2PS_Send_Notification(void)
/* USER CODE END FD_LOCAL_FUNCTIONS*/
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/p2p_server_app.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/p2p_server_app.h
index 234192bd6..8fd85526c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/p2p_server_app.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/p2p_server_app.h
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/p2p_server_app.h
- * Description : Header for p2p_server_app.c module
- ******************************************************************************
+ ******************************************************************************
+ * File Name : App/p2p_server_app.h
+ * Description : Header for p2p_server_app.c module
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -78,4 +77,3 @@ typedef struct
#endif /*__P2P_SERVER_APP_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/tl_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/tl_dbg_conf.h
index bd808a41b..04ed3d88d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/tl_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/App/tl_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/tl_dbg_conf.h
- * Description : Debug configuration file for stm32wpan transport layer interface.
- *
+ ******************************************************************************
+ * @file tl_dbg_conf.h
+ * @author MCD Application Team
+ * @brief Debug configuration file for stm32wpan transport layer interface.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -132,5 +131,3 @@ extern "C" {
#endif
#endif /*__TL_DBG_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/Target/hw_ipcc.c b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/Target/hw_ipcc.c
index afa62b179..9a37e5370 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/Target/hw_ipcc.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/STM32_WPAN/Target/hw_ipcc.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : Target/hw_ipcc.c
- * Description : Hardware IPCC source file for STM32WPAN Middleware.
- *
- ******************************************************************************
+ ******************************************************************************
+ * @file hw_ipcc.c
+ * @author MCD Application Team
+ * @brief Hardware IPCC source file for STM32WPAN Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -164,10 +163,6 @@ void HW_IPCC_Tx_Handler( void )
HW_IPCC_ZIGBEE_CmdEvtHandler();
}
#endif /* ZIGBEE_WB */
- else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
- {
- HW_IPCC_SYS_CmdEvtHandler();
- }
else if (HW_IPCC_TX_PENDING( HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ))
{
HW_IPCC_MM_FreeBufHandler();
@@ -672,4 +667,3 @@ static void HW_IPCC_TRACES_EvtHandler( void )
__weak void HW_IPCC_TRACES_EvtNot( void ){};
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/readme.txt b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/readme.txt
index 0009220ee..5f79045fd 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/BLE/BLE_p2pServer/readme.txt
@@ -8,12 +8,12 @@
* @brief Description of the BLE_p2pServer application
******************************************************************************
*
- * Copyright (c) 2021 STMicroelectronics. All rights reserved.
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@endverbatim
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_common.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_common.h
index 5bb0f82f1..a49e4fde7 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_common.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_common.h
@@ -4,16 +4,15 @@
* File Name : app_common.h
* Description : App Common application configuration file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -121,4 +120,3 @@ extern "C"{
#endif /*APP_COMMON_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_conf.h
index 0b377f727..767cec4cb 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_conf.h
@@ -3,16 +3,16 @@
******************************************************************************
* File Name : app_conf.h
* Description : Application configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ *
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -44,8 +44,8 @@
*/
#define CFG_TL_EVT_QUEUE_LENGTH 20
/**
- * TL_EVENT_FRAME_SIZE is the size of the packets transfered between M0 and M4 through IPCC.
- * Note 1 : thoose packets are first put in a trace queue (see DBG_TRACE_MSG_QUEUE_SIZE) before beeing sent to UART
+ * TL_EVENT_FRAME_SIZE is the size of the packets transferred between M0 and M4 through IPCC.
+ * Note 1 : thoose packets are first put in a trace queue (see DBG_TRACE_MSG_QUEUE_SIZE) before being sent to UART
* Note 2 : Queue size must be higher than a M0 trace buffer max size (see LOG_BUFFER_SIZE_MAX in M0 FW)
*/
#define CFG_TL_MOST_EVENT_PAYLOAD_SIZE 255
@@ -95,7 +95,7 @@
* The higher is the value, the better is the power consumption and the accuracy of the timerserver
* The lower is the value, the finest is the granularity
*
- * CFG_RTC_ASYNCH_PRESCALER: This sets the asynchronous prescaler of the RTC. It should as high as possible ( to ouput
+ * CFG_RTC_ASYNCH_PRESCALER: This sets the asynchronous prescaler of the RTC. It should as high as possible ( to output
* clock as low as possible) but the output clock should be equal or higher frequency compare to the clock feeding
* the wakeup timer. A lower clock speed would impact the accuracy of the timer server.
*
@@ -299,7 +299,7 @@ typedef enum
******************************************************************************/
/**
* Supported requester to the MCU Low Power Manager - can be increased up to 32
- * It lits a bit mapping of all user of the Low Power Manager
+ * It lists a bit mapping of all user of the Low Power Manager
*/
typedef enum
{
@@ -319,4 +319,3 @@ typedef enum
#endif /*APP_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_entry.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_entry.h
index c673adca0..56adfa477 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_entry.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/app_entry.h
@@ -6,17 +6,16 @@
* @brief Interface to the application
******************************************************************************
* @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -70,5 +69,3 @@ extern "C" {
#endif
#endif /*APP_ENTRY_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/hw_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/hw_conf.h
index 07f642288..ed0c3c842 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/hw_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/hw_conf.h
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : hw_conf.h
- * Description : Hardware configuration file for the application.
+ * Description : Hardware configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -110,4 +109,3 @@
#endif /*HW_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/hw_if.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/hw_if.h
index 5cd458dcf..16356876d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/hw_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/hw_if.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -111,5 +110,3 @@ void MX_UART_Deinit(hw_uart_id_t uart);
#endif
#endif /*HW_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/main.h
index 0c024028b..05a9002bb 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/main.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/main.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -103,5 +102,3 @@ void SystemClock_Config_MSI(uint32_t usePLL);
#endif
#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32_lpm_if.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32_lpm_if.h
index dac7e2cbb..293e9912d 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32_lpm_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32_lpm_if.h
@@ -1,20 +1,19 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file stm32_lpm_if.h
* @brief Header for stm32_lpm_if.c module (device specific LP management)
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32_LPM_IF_H
@@ -75,5 +74,3 @@ void PWR_ExitSleepMode( void );
#endif
#endif /*__STM32_LPM_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wb5mm_dk_conf.h
index 346a28f9e..aba9cfdfd 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wb5mm_dk_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wb5mm_dk_conf.h
@@ -8,13 +8,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -94,5 +93,3 @@ extern "C" {
#endif
#endif /* STM32WB5MM_DK_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wbxx_hal_conf.h
index 6f8e72d30..9f44708ad 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wbxx_hal_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wbxx_hal_conf.h
@@ -1,3 +1,4 @@
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32wbxx_hal_conf.h
@@ -6,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef STM32WBxx_HAL_CONF_H
@@ -349,5 +350,3 @@
#endif
#endif /* STM32WBxx_HAL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wbxx_it.h
index 0163f5df9..fec645f44 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wbxx_it.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm32wbxx_it.h
@@ -3,16 +3,15 @@
******************************************************************************
* @file stm32wbxx_it.h
* @brief This file contains the headers of the interrupt handlers.
- *******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -76,5 +75,3 @@ void TIM2_IRQHandler(void);
#endif
#endif /* __STM32WBxx_IT_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm_logging.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm_logging.h
index 119d6e7a0..e60099e7c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm_logging.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/stm_logging.h
@@ -5,13 +5,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/utilities_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/utilities_conf.h
index 4dde3509a..fcab34b06 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/utilities_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Inc/utilities_conf.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -65,4 +64,3 @@ extern "C" {
#endif /*UTILITIES_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/app_entry.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/app_entry.c
index b50bb8205..3d461a482 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/app_entry.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/app_entry.c
@@ -1,22 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* @file app_entry.c
* @author MCD Application Team
* @brief Entry point of the Application
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -428,4 +427,3 @@ void DbgOutputTraces( uint8_t *p_data, uint16_t size, void (*cb)(void) )
/* USER CODE BEGIN FD_WRAP_FUNCTIONS */
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/gpio_lld.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/gpio_lld.c
index 0b3557896..c5db94634 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/gpio_lld.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/gpio_lld.c
@@ -2,36 +2,18 @@
******************************************************************************
* @file gpio_lld.c
* @author MCD Application Team
- * @version $VERSION$
- * @date $DATE$
* @brief This file contains the init of all the GPIOs used by LLD tests.
* It is to be used on both M0 and M4.
******************************************************************************
* @attention
*
- * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
+ * Copyright (c) STMicroelectronics</center></h2>
+(-2021) STMicroelectronics.
+ * All rights reserved.
*
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -51,5 +33,3 @@ void gpio_lld_phy_gpioHardFault_down(void) {
HAL_GPIO_WritePin(GPIO_HARD_FAULT_PORT, GPIO_HARD_FAULT_PIN, GPIO_PIN_RESET);
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/hw_uart.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/hw_uart.c
index 1880fc71b..3031bb27f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/hw_uart.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/hw_uart.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -361,4 +360,3 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/main.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/main.c
index 2007511ca..3aa025dfe 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/main.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/main.c
@@ -1,10 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* @file main.c
* @author MCD Application Team
* @brief RF LLD tests application
*
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
@verbatim
==============================================================================
##### IMPORTANT NOTE #####
@@ -24,18 +35,7 @@
@endverbatim
******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "app_common.h"
@@ -610,5 +610,3 @@ void assert_failed(uint8_t *file, uint32_t line)
/* USER CODE END assert_failed */
}
#endif /* USE_FULL_ASSERT */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32_lpm_if.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32_lpm_if.c
index fba978d88..fd5ffa733 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32_lpm_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32_lpm_if.c
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ***************************************************************************************
+ ***************************************************************************************
* File Name : stm32_lpm_if.c
* Description : Low layer function to enter/exit low power modes (stop, sleep).
- ***************************************************************************************
+ ***************************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -277,19 +276,11 @@ static void EnterLowPower( void )
/* Release ENTRY_STOP_MODE semaphore */
LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
}
else
{
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
@@ -355,5 +346,4 @@ static void Switch_On_HSI( void )
/* USER CODE END Private_Functions */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32wbxx_hal_msp.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32wbxx_hal_msp.c
index 1d10527da..cd61a695a 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32wbxx_hal_msp.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32wbxx_hal_msp.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -222,5 +221,3 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* htim_base)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32wbxx_it.c
index 4ad8bf6d1..2756b76a8 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32wbxx_it.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm32wbxx_it.c
@@ -3,16 +3,15 @@
******************************************************************************
* @file stm32wbxx_it.c
* @brief Interrupt Service Routines.
- *******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -303,4 +302,3 @@ void TIM1_TRG_COM_TIM17_IRQHandler(void)
BSP_PWM_LED_IRQHandler();
}
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm_logging.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm_logging.c
index 40997ccd7..36ad5be14 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm_logging.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/stm_logging.c
@@ -1,6 +1,6 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : stm_logging.c
* Description : This file contains all the defines and functions used
* for logging on Application examples.
@@ -8,13 +8,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/system_stm32wbxx.c
index 791008e1d..1f4da1444 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/system_stm32wbxx.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/Core/Src/system_stm32wbxx.c
@@ -60,13 +60,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -161,10 +160,12 @@
const uint32_t MSIRangeTable[16UL] = {100000UL, 200000UL, 400000UL, 800000UL, 1000000UL, 2000000UL, \
4000000UL, 8000000UL, 16000000UL, 24000000UL, 32000000UL, 48000000UL, 0UL, 0UL, 0UL, 0UL}; /* 0UL values are incorrect cases */
+#if defined(STM32WB55xx) || defined(STM32WB5Mxx) || defined(STM32WB35xx) || defined (STM32WB15xx)
const uint32_t SmpsPrescalerTable[4UL][6UL]={{1UL,3UL,2UL,2UL,1UL,2UL}, \
{2UL,6UL,4UL,3UL,2UL,4UL}, \
{4UL,12UL,8UL,6UL,4UL,8UL}, \
{4UL,12UL,8UL,6UL,4UL,8UL}};
+#endif
/**
* @}
@@ -351,5 +352,3 @@ void SystemCoreClockUpdate(void)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/EWARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/EWARM/startup_stm32wb5mxx_cm4.s
index 0619c6516..690ee250e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/EWARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/EWARM/startup_stm32wb5mxx_cm4.s
@@ -16,13 +16,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;
@@ -83,7 +82,7 @@ __vector_table
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -514,4 +513,3 @@ DMAMUX1_OVR_IRQHandler
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/MDK-ARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/MDK-ARM/startup_stm32wb5mxx_cm4.s
index 401aaae3b..93a42e53e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/MDK-ARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/MDK-ARM/startup_stm32wb5mxx_cm4.s
@@ -14,12 +14,12 @@
;******************************************************************************
;* @attention
;*
-;* Copyright (c) 2019 STMicroelectronics. All rights reserved.
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
@@ -84,7 +84,7 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -365,4 +365,3 @@ __user_initial_stackheap
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/MDK-ARM/stm32wb5mxx_flash_cm4.sct b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/MDK-ARM/stm32wb5mxx_flash_cm4.sct
index 9d4d446ba..938d9f592 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/MDK-ARM/stm32wb5mxx_flash_cm4.sct
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/MDK-ARM/stm32wb5mxx_flash_cm4.sct
@@ -11,11 +11,16 @@ LR_IROM1 0x08000000 0x00080000 { ; load region size_region
RW_IRAM1 0x20000008 0x2FFF8 { ; RW data
.ANY (+RW +ZI)
}
- RW_RAM_SHARED 0x20030000 0x2800 { ; RW data
- *(MAPPING_TABLE)
- *(MB_MEM1)
- *(MB_MEM2)
- }
+
+ RW_RAM_SHARED1 0x20030000 0x28 { ; RW data
+ *(MAPPING_TABLE)
+ }
+ RW_RAM_SHARED2 0x20030028 0x27D8 { ; RW data
+ *(MB_MEM1)
+ *(MB_MEM2)
+ .ANY (+RW +ZI)
+ }
+
}
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
index 891ce5b9a..18f06244f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -14,13 +14,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
-* This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,7 +92,7 @@ LoopFillZerobss:
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
-/* Call the clock system intitialization function.*/
+/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
@@ -442,4 +441,3 @@ g_pfnVectors:
.weak DMAMUX1_OVR_IRQHandler
.thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/User/Core/syscalls.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/User/Core/syscalls.c
index bc0dd6c06..c921fd873 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/User/Core/syscalls.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/User/Core/syscalls.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
@@ -7,19 +7,18 @@
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <sys/stat.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/User/Core/sysmem.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/User/Core/sysmem.c
index d7cc52cd4..dda5abe79 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/User/Core/sysmem.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/Application/User/Core/sysmem.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
@@ -7,19 +7,18 @@
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <errno.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
index 37aa8c6f6..878cfa94c 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -15,30 +15,14 @@
** of any kind.
**
*****************************************************************************
+** @attention
**
-** <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
+** Copyright (c) 2019 STMicroelectronics.
+** All rights reserved.
**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-** 1. Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** 3. Neither the name of STMicroelectronics nor the names of its contributors
-** may be used to endorse or promote products derived from this software
-** without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
**
*****************************************************************************
*/
@@ -145,7 +129,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/app_ble_lld.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/app_ble_lld.c
index 887af9a95..0c999425f 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/app_ble_lld.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/app_ble_lld.c
@@ -5,13 +5,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -163,7 +162,7 @@ void APP_BLE_LLD_Error(uint32_t ErrId, uint32_t ErrCode)
/**
* @brief Check if the Coprocessor Wireless Firmware loaded supports Thread
- * and display associated informations
+ * and display associated information
* @param None
* @retval None
*/
@@ -371,4 +370,3 @@ void TL_BLE_LLD_ReceiveRsp( TL_CmdPacket_t * Notbuffer )
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/app_ble_lld.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/app_ble_lld.h
index 3bd87e32c..21899be1e 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/app_ble_lld.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/app_ble_lld.h
@@ -5,16 +5,15 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
- */
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef APP_BLE_LLD_H
#define APP_BLE_LLD_H
@@ -68,4 +67,3 @@ void us_delay_32m(uint32_t microsec);
#endif /* APP_BLE_LLD_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/chat_app.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/chat_app.c
index bba80c636..b3964dba6 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/chat_app.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/chat_app.c
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : chat_app.c
* Description : CHAT LLD BLE Application.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -330,4 +329,3 @@ void HAL_GPIO_EXTI_Callback( uint16_t GPIO_Pin )
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/chat_app.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/chat_app.h
index 4a79927a7..fd6ea0f9b 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/chat_app.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/chat_app.h
@@ -1,21 +1,20 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : chat_app.h
* Description : Header for BLE LLD application.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
- */
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef CHAT_APP_H
@@ -47,4 +46,3 @@ void Appli_TIM_PeriodElapsedCallback(void);
#endif
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/tl_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/tl_dbg_conf.h
index b468b2863..d54b76ff0 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/tl_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/App/tl_dbg_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -42,7 +41,7 @@
#define TL_HCI_EVT_DBG_EN 0 /* Reports BLE Asynchronous Events received from CPU2 */
#define TL_HCI_EVT_DBG_RAW_EN 0 /* Reports raw data BLE Asynchronous Events received from CPU2 */
-#define TL_MM_DBG_EN 0 /* Reports the informations of the buffer released to CPU2 */
+#define TL_MM_DBG_EN 0 /* Reports the information of the buffer released to CPU2 */
/**
* Macro definition
@@ -123,4 +122,3 @@
#endif /*__TL_DBG_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/Target/hw_ipcc.c b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/Target/hw_ipcc.c
index 7ce3de621..bed7dfbd3 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/Target/hw_ipcc.c
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/STM32_WPAN/Target/hw_ipcc.c
@@ -1,18 +1,17 @@
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : Target/hw_ipcc.c
* Description : Hardware IPCC source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -163,10 +162,7 @@ void HW_IPCC_Tx_Handler( void )
HW_IPCC_ZIGBEE_CmdEvtHandler();
}
#endif /* ZIGBEE_WB */
- else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
- {
- HW_IPCC_SYS_CmdEvtHandler();
- }
+
else if (HW_IPCC_TX_PENDING( HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ))
{
HW_IPCC_MM_FreeBufHandler();
@@ -673,4 +669,3 @@ static void HW_IPCC_TRACES_EvtHandler( void )
__weak void HW_IPCC_TRACES_EvtNot( void ){};
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/readme.txt b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/readme.txt
index c02c73d40..a37bc89e5 100644
--- a/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/BLE_LLD/BLE_LLD_Chat/readme.txt
@@ -8,12 +8,12 @@
* @brief Description of the BLE LLD BLE_LLD_Chat application
******************************************************************************
*
- * Copyright (c) 2021 STMicroelectronics. All rights reserved.
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@endverbatim
diff --git a/Projects/STM32WB5MM-DK/Applications/Demontrations/Audio_BVLINKWB/readme.txt b/Projects/STM32WB5MM-DK/Applications/Demontrations/Audio_BVLINKWB/readme.txt
index 7e21fef02..28330e99f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Demontrations/Audio_BVLINKWB/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/Demontrations/Audio_BVLINKWB/readme.txt
@@ -8,38 +8,12 @@
* @brief Description of STM32WB5MM Demo
******************************************************************************
*
- * Copyright (c) 2021 STMicroelectronics International N.V. All rights reserved.
+ * Copyright (c) 2021 STMicroelectronics.
+ * All rights reserved.
*
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted, provided that the following conditions are met:
- *
- * 1. Redistribution of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of other
- * contributors to this software may be used to endorse or promote products
- * derived from this software without specific written permission.
- * 4. This software, including modifications and/or derivative works of this
- * software, must execute solely and exclusively on microcontroller or
- * microprocessor devices manufactured by or for STMicroelectronics.
- * 5. Redistribution and use of this software other than as permitted under
- * this license is void and will automatically terminate your rights under
- * this license.
- *
- * THIS SOFTWARE IS PROVIDED BY STMICROELECTRONICS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS, IMPLIED OR STATUTORY WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
- * PARTICULAR PURPOSE AND NON-INFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY
- * RIGHTS ARE DISCLAIMED TO THE FULLEST EXTENT PERMITTED BY LAW. IN NO EVENT
- * SHALL STMICROELECTRONICS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
- * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
- * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
- * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
- * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@endverbatim
@@ -53,6 +27,10 @@ It helps you to discover STM32 Cortex-M devices that can be plugged on a STM32 N
Please Download this BLE Full-duplex audio demontration for STM32WB5MM-DK with all related documents at:
https://www.st.com/en/embedded-software/fp-aud-bvlinkwb1.html
+@par Keywords
+
+Audio, BLE, Audio codec, audio processing, full-duplex
+
@par How to use it ?
In order to make the program work, you must do the following :
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_common.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_common.h
index cf8a5baa6..7197b3388 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_common.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_common.h
@@ -4,16 +4,15 @@
* File Name : app_common.h
* Description : App Common application configuration file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -116,4 +115,3 @@ extern "C"{
#endif /*APP_COMMON_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_conf.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_conf.h
index 42543d46d..06021c295 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_conf.h
@@ -3,16 +3,16 @@
******************************************************************************
* File Name : app_conf.h
* Description : Application configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ *
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -368,4 +368,3 @@ typedef enum
#endif /*APP_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_entry.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_entry.h
index 568f2491d..3a1fe2f85 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_entry.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/app_entry.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -67,4 +66,3 @@ extern "C" {
#endif /*APP_ENTRY_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/hw_conf.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/hw_conf.h
index 3294c8281..2208cd72e 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/hw_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/hw_conf.h
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : hw_conf.h
* Description : Hardware configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -263,4 +262,3 @@
#endif /*HW_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/hw_if.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/hw_if.h
index 81e303b99..5dfe0e735 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/hw_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/hw_if.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -147,7 +146,7 @@ extern "C" {
* @param pTimerId: Timer Id returned to the user to request operation (start, stop, delete)
* @param TimerMode: Mode of the virtual timer (Single shot or repeated)
* @param pTimerCallBack: Callback when the virtual timer expires
- * @retval HW_TS_ReturnStatus_t: Return whether the creation is sucessful or not
+ * @retval HW_TS_ReturnStatus_t: Return whether the creation is successful or not
*/
HW_TS_ReturnStatus_t HW_TS_Create(uint32_t TimerProcessID, uint8_t *pTimerId, HW_TS_Mode_t TimerMode, HW_TS_pTimerCb_t pTimerCallBack);
@@ -246,5 +245,3 @@ extern "C" {
#endif
#endif /*HW_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/main.h
index 04421f057..56638ded0 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/main.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/main.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -72,5 +71,3 @@ void MX_USART1_UART_Init(void);
#endif
#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32_lpm_if.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32_lpm_if.h
index 70abecaa9..49bc3661f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32_lpm_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32_lpm_if.h
@@ -1,21 +1,20 @@
/* USER CODE BEGIN Header */
/**
-******************************************************************************
+ ******************************************************************************
* @file stm32_lpm_if.h
* @brief Header for stm32_lpm_if.c module (device specific LP management)
-******************************************************************************
-* @attention
-*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -77,5 +76,3 @@ void PWR_ExitSleepMode( void );
#endif
#endif /*__STM32_LPM_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wb5mm_dk_conf.h
index 29d137061..d081f3fb8 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wb5mm_dk_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wb5mm_dk_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -92,5 +91,3 @@ extern "C" {
#endif
#endif /* STM32WB5MM_DK_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wbxx_hal_conf.h
index 4addc3510..0de7f34ea 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wbxx_hal_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wbxx_hal_conf.h
@@ -1,3 +1,4 @@
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32wbxx_hal_conf.h
@@ -6,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32WBxx_HAL_CONF_H
@@ -349,5 +350,3 @@
#endif
#endif /* __STM32WBxx_HAL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wbxx_it.h
index ca1240de0..9c07c5762 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wbxx_it.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm32wbxx_it.h
@@ -3,16 +3,15 @@
******************************************************************************
* @file stm32wbxx_it.h
* @brief This file contains the headers of the interrupt handlers.
- *******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -81,5 +80,3 @@ void EXTI15_10_IRQHandler(void);
#endif
#endif /* __STM32WBxx_IT_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm_logging.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm_logging.h
index 948bfb5c5..6a811f7ab 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm_logging.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/stm_logging.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/utilities_conf.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/utilities_conf.h
index 92a5d07a3..8aacfd97f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/utilities_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Inc/utilities_conf.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -65,4 +64,3 @@ extern "C" {
#endif /*UTILITIES_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/app_entry.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/app_entry.c
index b0a9867c9..6090f9585 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/app_entry.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/app_entry.c
@@ -6,16 +6,15 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -443,4 +442,3 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
}
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/hw_timerserver.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/hw_timerserver.c
index c0af6a14a..3d44a3caf 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/hw_timerserver.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/hw_timerserver.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : hw_timerserver.c
* Description : Hardware timerserver source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -892,4 +891,3 @@ __weak void HW_TS_RTC_Int_AppNot(uint32_t TimerProcessID, uint8_t TimerID, HW_TS
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/hw_uart.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/hw_uart.c
index 6ae6ff9f9..166acccd5 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/hw_uart.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/hw_uart.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -317,4 +316,3 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/main.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/main.c
index 69364ca0d..8f0cdb451 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/main.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/main.c
@@ -4,6 +4,17 @@
* @file : main.c
* @brief : Main program body
*
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
@verbatim
==============================================================================
##### IMPORTANT NOTE #####
@@ -23,19 +34,8 @@
@endverbatim
******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- *
******************************************************************************
- */
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
@@ -650,5 +650,3 @@ void assert_failed(uint8_t *file, uint32_t line)
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32_lpm_if.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32_lpm_if.c
index fba978d88..fd5ffa733 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32_lpm_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32_lpm_if.c
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ***************************************************************************************
+ ***************************************************************************************
* File Name : stm32_lpm_if.c
* Description : Low layer function to enter/exit low power modes (stop, sleep).
- ***************************************************************************************
+ ***************************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -277,19 +276,11 @@ static void EnterLowPower( void )
/* Release ENTRY_STOP_MODE semaphore */
LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
}
else
{
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
@@ -355,5 +346,4 @@ static void Switch_On_HSI( void )
/* USER CODE END Private_Functions */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32wbxx_hal_msp.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32wbxx_hal_msp.c
index 5401b70ae..0ac4b9220 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32wbxx_hal_msp.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32wbxx_hal_msp.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -386,4 +385,3 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32wbxx_it.c
index e36489195..a2c1a6c47 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32wbxx_it.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm32wbxx_it.c
@@ -3,16 +3,15 @@
******************************************************************************
* @file stm32wbxx_it.c
* @brief Interrupt Service Routines.
- *******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -399,4 +398,3 @@ void EXTI15_10_IRQHandler(void)
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm_logging.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm_logging.c
index 0416f0c7a..aacc61283 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm_logging.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/stm_logging.c
@@ -1,6 +1,6 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : stm_logging.c
* Description : This file contains all the defines and functions used
* for logging on Application examples.
@@ -8,13 +8,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/system_stm32wbxx.c
index efd4c8554..bac9a055f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/system_stm32wbxx.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/Core/Src/system_stm32wbxx.c
@@ -60,13 +60,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -161,10 +160,12 @@
const uint32_t MSIRangeTable[16UL] = {100000UL, 200000UL, 400000UL, 800000UL, 1000000UL, 2000000UL, \
4000000UL, 8000000UL, 16000000UL, 24000000UL, 32000000UL, 48000000UL, 0UL, 0UL, 0UL, 0UL}; /* 0UL values are incorrect cases */
+#if defined(STM32WB55xx) || defined(STM32WB5Mxx) || defined(STM32WB35xx) || defined (STM32WB15xx)
const uint32_t SmpsPrescalerTable[4UL][6UL]={{1UL,3UL,2UL,2UL,1UL,2UL}, \
{2UL,6UL,4UL,3UL,2UL,4UL}, \
{4UL,12UL,8UL,6UL,4UL,8UL}, \
{4UL,12UL,8UL,6UL,4UL,8UL}};
+#endif
/**
* @}
@@ -349,5 +350,3 @@ void SystemCoreClockUpdate(void)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/EWARM/startup_stm32wb55xx_cm4.s b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/EWARM/startup_stm32wb55xx_cm4.s
index f3b216985..911641737 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/EWARM/startup_stm32wb55xx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/EWARM/startup_stm32wb55xx_cm4.s
@@ -16,13 +16,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;
@@ -83,7 +82,7 @@ __vector_table
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -514,4 +513,3 @@ DMAMUX1_OVR_IRQHandler
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/MDK-ARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/MDK-ARM/startup_stm32wb5mxx_cm4.s
index f04432d7b..6a51d2123 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/MDK-ARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/MDK-ARM/startup_stm32wb5mxx_cm4.s
@@ -14,12 +14,12 @@
;******************************************************************************
;* @attention
;*
-;* Copyright (c) 2019 STMicroelectronics. All rights reserved.
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
@@ -84,7 +84,7 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -365,4 +365,3 @@ __user_initial_stackheap
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
index 891ce5b9a..18f06244f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -14,13 +14,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
-* This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,7 +92,7 @@ LoopFillZerobss:
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
-/* Call the clock system intitialization function.*/
+/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
@@ -442,4 +441,3 @@ g_pfnVectors:
.weak DMAMUX1_OVR_IRQHandler
.thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/User/Core/syscalls.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/User/Core/syscalls.c
index bc0dd6c06..c921fd873 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/User/Core/syscalls.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/User/Core/syscalls.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
@@ -7,19 +7,18 @@
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <sys/stat.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/User/Core/sysmem.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/User/Core/sysmem.c
index d7cc52cd4..dda5abe79 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/User/Core/sysmem.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/Application/User/Core/sysmem.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
@@ -7,19 +7,18 @@
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <errno.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
index f0c35b387..04d57d8aa 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -15,30 +15,14 @@
** of any kind.
**
*****************************************************************************
+** @attention
**
-** <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
+** Copyright (c) 2019 STMicroelectronics.
+** All rights reserved.
**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-** 1. Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** 3. Neither the name of STMicroelectronics nor the names of its contributors
-** may be used to endorse or promote products derived from this software
-** without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
**
*****************************************************************************
*/
@@ -145,7 +129,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/app_thread.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/app_thread.c
index a8be7c42d..529c3bc46 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/app_thread.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/app_thread.c
@@ -4,18 +4,17 @@
* File Name : App/app_thread.c
* Description : Thread Application.
******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -1165,4 +1164,3 @@ void VCP_DataReceived(uint8_t* Buf , uint32_t *Len)
/* USER CODE BEGIN FD_WRAP_FUNCTIONS */
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/app_thread.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/app_thread.h
index d6be3726a..bfc5f3c7c 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/app_thread.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/app_thread.h
@@ -1,21 +1,20 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
- * File Name : App/app_thread.h
+ ******************************************************************************
+ * File Name : App/app_thread.h
* Description : Header for Thread Application.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
- */
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef APP_THREAD_H
@@ -128,4 +127,3 @@ void APP_THREAD_LCD_DisplayInit(void);
#endif /* APP_THREAD_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/tl_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/tl_dbg_conf.h
index 7bfe8fac6..b2b3b4354 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/tl_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/App/tl_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
- * File Name : App/tl_dbg_conf.h
+ * File Name : tl_dbg_conf.h
* Description : Debug configuration file for stm32wpan transport layer interface.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -48,7 +47,7 @@ extern "C" {
#define TL_HCI_EVT_DBG_EN 0 /* Reports BLE Asynchronous Events received from CPU2 */
#define TL_HCI_EVT_DBG_RAW_EN 0 /* Reports raw data BLE Asynchronous Events received from CPU2 */
-#define TL_MM_DBG_EN 0 /* Reports the informations of the buffer released to CPU2 */
+#define TL_MM_DBG_EN 0 /* Reports the information of the buffer released to CPU2 */
/**
* Macro definition
@@ -133,4 +132,3 @@ extern "C" {
#endif /*__TL_DBG_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/Target/hw_ipcc.c b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/Target/hw_ipcc.c
index afa62b179..85606fda2 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/Target/hw_ipcc.c
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/STM32_WPAN/Target/hw_ipcc.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : Target/hw_ipcc.c
* Description : Hardware IPCC source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -164,10 +163,7 @@ void HW_IPCC_Tx_Handler( void )
HW_IPCC_ZIGBEE_CmdEvtHandler();
}
#endif /* ZIGBEE_WB */
- else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
- {
- HW_IPCC_SYS_CmdEvtHandler();
- }
+
else if (HW_IPCC_TX_PENDING( HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ))
{
HW_IPCC_MM_FreeBufHandler();
@@ -672,4 +668,3 @@ static void HW_IPCC_TRACES_EvtHandler( void )
__weak void HW_IPCC_TRACES_EvtNot( void ){};
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/readme.txt b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/readme.txt
index 9b597606a..7439daf91 100644
--- a/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/Thread/Thread_Coap_Generic/readme.txt
@@ -8,12 +8,12 @@
* @brief Description of Coap Generic Application
******************************************************************************
*
- * Copyright (c) 2021 STMicroelectronics. All rights reserved.
+ * Copyright (c) 2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@endverbatim
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/EWARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/EWARM/startup_stm32wb5mxx_cm4.s
index 0619c6516..690ee250e 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/EWARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/EWARM/startup_stm32wb5mxx_cm4.s
@@ -16,13 +16,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;
@@ -83,7 +82,7 @@ __vector_table
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -514,4 +513,3 @@ DMAMUX1_OVR_IRQHandler
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/EWARM/stm32wb5mxx_flash_cm4.icf b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/EWARM/stm32wb5mxx_flash_cm4.icf
index bdfb4aa0b..b2654ef9e 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/EWARM/stm32wb5mxx_flash_cm4.icf
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/EWARM/stm32wb5mxx_flash_cm4.icf
@@ -11,7 +11,7 @@ define symbol __ICFEDIT_region_RAM_start__ = 0x20000008;
define symbol __ICFEDIT_region_RAM_end__ = 0x2002FFFF;
/*-Sizes-*/
define symbol __ICFEDIT_size_cstack__ = 0x400;
-define symbol __ICFEDIT_size_heap__ = 0x200;
+define symbol __ICFEDIT_size_heap__ = 0x200;
/**** End of ICF editor section. ###ICF###*/
define symbol __ICFEDIT_region_RAM_SHARED_start__ = 0x20030000;
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/main.h
index 5f3d82b20..8a42e2c6b 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/main.h
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/main.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -67,5 +66,3 @@ void Error_Handler(void);
#endif
#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wb5mm_dk_conf.h
index 29d137061..d081f3fb8 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wb5mm_dk_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wb5mm_dk_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -92,5 +91,3 @@ extern "C" {
#endif
#endif /* STM32WB5MM_DK_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wbxx_hal_conf.h
index 21293706b..275cbc4bd 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wbxx_hal_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wbxx_hal_conf.h
@@ -1,3 +1,4 @@
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32wbxx_hal_conf.h
@@ -6,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32WBxx_HAL_CONF_H
@@ -349,5 +350,3 @@
#endif
#endif /* __STM32WBxx_HAL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wbxx_it.h
index b6aa8343d..093a6c1ea 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wbxx_it.h
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stm32wbxx_it.h
@@ -6,15 +6,14 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
+ ******************************************************************************
*/
/* USER CODE END Header */
@@ -65,5 +64,3 @@ void TIM1_TRG_COM_TIM17_IRQHandler(void);
#endif
#endif /* __STM32WBxx_IT_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stmCriticalSection.h b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stmCriticalSection.h
index d92fd7f4b..681ce523a 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stmCriticalSection.h
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/stmCriticalSection.h
@@ -7,29 +7,13 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
+ * Copyright (c) STMicroelectronics</center></h2>
+(-2021) STMicroelectronics.
+ * All rights reserved.
*
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -48,5 +32,3 @@ to him. Otherwise the first next one asking will own the turn. */
void exitLock(void);
#endif /* STM_CRITICAL_SECTION_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/touchsensing.h b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/touchsensing.h
index 338c7e5b0..3dce8eda9 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/touchsensing.h
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/touchsensing.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -56,4 +55,3 @@ void MX_TOUCHSENSING_Init(void);
* @}
*/
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/tsl_conf.h b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/tsl_conf.h
index 75dc3a690..5e027d59b 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/tsl_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/tsl_conf.h
@@ -4,16 +4,14 @@
* File Name tsl_conf.h
* Description TSC configuration file.
******************************************************************************
- ******************************************************************************
- * @attention
+ * @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -448,4 +446,3 @@ be configured to output push-pull low (excepted for Linear sensors).
#endif /* __TSL_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/tsl_user.h b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/tsl_user.h
index 91c92af79..50a92f2fe 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/tsl_user.h
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Inc/tsl_user.h
@@ -1,21 +1,20 @@
/* USER CODE BEGIN Header */
/*
- ******************************************************************************
+ ******************************************************************************
* File Name : tsl_user.h.h
* Description : Touch-Sensing user configuration.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
-*/
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __TSL_USER_H
@@ -76,4 +75,3 @@ void tsl_user_SetThresholds(void);
#endif /* __TSL_USER_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/MDK-ARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/MDK-ARM/startup_stm32wb5mxx_cm4.s
index 401aaae3b..93a42e53e 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/MDK-ARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/MDK-ARM/startup_stm32wb5mxx_cm4.s
@@ -14,12 +14,12 @@
;******************************************************************************
;* @attention
;*
-;* Copyright (c) 2019 STMicroelectronics. All rights reserved.
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
@@ -84,7 +84,7 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -365,4 +365,3 @@ __user_initial_stackheap
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
index 891ce5b9a..18f06244f 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -14,13 +14,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
-* This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,7 +92,7 @@ LoopFillZerobss:
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
-/* Call the clock system intitialization function.*/
+/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
@@ -442,4 +441,3 @@ g_pfnVectors:
.weak DMAMUX1_OVR_IRQHandler
.thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/User/syscalls.c b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/User/syscalls.c
index bc0dd6c06..c921fd873 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/User/syscalls.c
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/User/syscalls.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
@@ -7,19 +7,18 @@
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <sys/stat.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/User/sysmem.c b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/User/sysmem.c
index d7cc52cd4..dda5abe79 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/User/sysmem.c
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/Application/User/sysmem.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
@@ -7,19 +7,18 @@
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <errno.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
index 36e61c42b..efb3a1e47 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -22,13 +22,12 @@
*****************************************************************************
** @attention
**
-** <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
-** All rights reserved.</center></h2>
+** Copyright (c) 2020 STMicroelectronics.
+** All rights reserved.
**
-** This software component is licensed by ST under BSD 3-Clause license,
-** the "License"; You may not use this file except in compliance with the
-** License. You may obtain a copy of the License at:
-** opensource.org/licenses/BSD-3-Clause
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
**
*****************************************************************************
*/
@@ -136,7 +135,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/main.c b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/main.c
index ef7786b5b..154beb223 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/main.c
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/main.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -49,6 +48,7 @@ aPwmLedGsData_TypeDef aPwmLedGsData;
/* Private function prototypes -----------------------------------------------*/
void SystemClock_Config(void);
+void PeriphCommonClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_TSC_Init(void);
/* USER CODE BEGIN PFP */
@@ -87,6 +87,9 @@ int main(void)
/* Configure the system clock */
SystemClock_Config();
+/* Configure the peripherals common clocks */
+ PeriphCommonClock_Config();
+
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
@@ -125,7 +128,6 @@ void SystemClock_Config(void)
{
RCC_OscInitTypeDef RCC_OscInitStruct = {0};
RCC_ClkInitTypeDef RCC_ClkInitStruct = {0};
- RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
/** Configure the main internal regulator output voltage
*/
@@ -168,11 +170,22 @@ void SystemClock_Config(void)
{
Error_Handler();
}
- /** Initializes the peripherals clocks
+}
+
+/**
+ * @brief Peripherals Common Clock Configuration
+ * @retval None
+ */
+void PeriphCommonClock_Config(void)
+{
+ RCC_PeriphCLKInitTypeDef PeriphClkInitStruct = {0};
+
+ /** Initializes the peripherals clock
*/
PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_SMPS;
PeriphClkInitStruct.SmpsClockSelection = RCC_SMPSCLKSOURCE_HSI;
PeriphClkInitStruct.SmpsDivSelection = RCC_SMPSCLKDIV_RANGE1;
+
if (HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct) != HAL_OK)
{
Error_Handler();
@@ -321,5 +334,3 @@ void assert_failed(uint8_t *file, uint32_t line)
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stm32wbxx_hal_msp.c b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stm32wbxx_hal_msp.c
index e6a41d28e..d227baa10 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stm32wbxx_hal_msp.c
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stm32wbxx_hal_msp.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -170,5 +169,3 @@ void HAL_TSC_MspDeInit(TSC_HandleTypeDef* htsc)
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stm32wbxx_it.c
index 414a644ae..9b43556a5 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stm32wbxx_it.c
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stm32wbxx_it.c
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -214,4 +213,3 @@ void TIM1_TRG_COM_TIM17_IRQHandler(void)
}
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stmCriticalSection.c b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stmCriticalSection.c
index 65b9a0872..fc046afd3 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stmCriticalSection.c
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/stmCriticalSection.c
@@ -11,29 +11,13 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; COPYRIGHT(c) 2016 STMicroelectronics</center></h2>
+ * Copyright (c) STMicroelectronics</center></h2>
+(-2021) STMicroelectronics.
+ * All rights reserved.
*
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -79,5 +63,3 @@ void enterLock (void) {
void exitLock (void) {
stm_studio_lock.flag[TARGET_LOCK_ID] = 0;
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/system_stm32wbxx.c
index c0af3469e..1394ae132 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/system_stm32wbxx.c
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/system_stm32wbxx.c
@@ -60,13 +60,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -353,5 +352,3 @@ void SystemCoreClockUpdate(void)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/touchsensing.c b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/touchsensing.c
index aa027126f..ca1c31ef8 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/touchsensing.c
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/touchsensing.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : touchsensing.c
* Description : This file provides code for the configuration
* of the touchsensing instances.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -58,4 +57,3 @@ void MX_TOUCHSENSING_Init(void)
* @}
*/
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/tsl_user.c b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/tsl_user.c
index 9798e107e..07439b3c8 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/tsl_user.c
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/Src/tsl_user.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : tsl_user.c
* Description : User configuration file for TOUCHSENSING
* middleWare.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -466,4 +465,3 @@ void MyTKeys_OffStateProcess(void)
/* USER CODE END MyTKeys_OffStateProcess */
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/TouchSensing_1touchkey.ioc b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/TouchSensing_1touchkey.ioc
index 91a64e7de..50d2ee142 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/TouchSensing_1touchkey.ioc
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/TouchSensing_1touchkey.ioc
@@ -22,8 +22,8 @@ Mcu.PinsNb=7
Mcu.ThirdPartyNb=0
Mcu.UserConstants=
Mcu.UserName=STM32WB5MMGHx
-MxCube.Version=6.2.0
-MxDb.Version=DB.6.0.20
+MxCube.Version=6.4.0
+MxDb.Version=DB.6.0.40
NVIC.BusFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.DebugMonitor_IRQn=true\:0\:0\:false\:false\:true\:false\:false
NVIC.ForceEnableDMAVector=true
@@ -39,6 +39,17 @@ PC6.Mode=G4_IO1-Sampling
PC6.Signal=TSC_G4_IO1
PC7.Mode=G4_IO2-Shield
PC7.Signal=TSC_G4_IO2
+PCC.Ble.ConnectionInterval=1000.0
+PCC.Ble.DataLength=6
+PCC.Ble.IsUsed=false
+PCC.Ble.Mode=NOT_SELECTED
+PCC.Ble.PowerLevel=Min
+PCC.Zigbee.IsUsed=false
+PCC.Zigbee.Mode=Sleepy End Device
+PCC.Zigbee.Payload=15
+PCC.Zigbee.PoolPeriodicity=480.0
+PCC.Zigbee.PowerLevel=Min
+PCC.Zigbee.RequestPeriodicity=1500.0
PD10.Mode=G6_IO1-Sampling
PD10.Signal=TSC_G6_IO1
PD11.Mode=G6_IO2-Channel
@@ -107,7 +118,7 @@ RCC.PLLSAI1PoutputFreq_Value=16000000
RCC.PLLSAI1QoutputFreq_Value=16000000
RCC.PLLSAI1RoutputFreq_Value=16000000
RCC.PWRFreq_Value=64000000
-RCC.RFWKPFreq_Value=976.5625
+RCC.RFWKPFreq_Value=31250
RCC.RNGFreq_Value=32000
RCC.SAI1Freq_Value=16000000
RCC.SMPS1Freq_Value=8000000
diff --git a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/readme.txt b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/readme.txt
index 78fe55817..65458b28c 100644
--- a/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/TouchSensing/TouchSensing_1touchkey/readme.txt
@@ -8,12 +8,12 @@
* @brief Description of the TouchSensing 1 touchkey sensor example.
******************************************************************************
*
- * Copyright (c) 2020 STMicroelectronics. All rights reserved.
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@endverbatim
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_common.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_common.h
index cf8a5baa6..7197b3388 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_common.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_common.h
@@ -4,16 +4,15 @@
* File Name : app_common.h
* Description : App Common application configuration file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -116,4 +115,3 @@ extern "C"{
#endif /*APP_COMMON_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_conf.h
index 5d9024d90..20894417f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_conf.h
@@ -3,16 +3,16 @@
******************************************************************************
* File Name : app_conf.h
* Description : Application configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ *
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -373,4 +373,3 @@ typedef enum
#endif /*APP_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_entry.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_entry.h
index e6245649f..3a1fe2f85 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_entry.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/app_entry.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -67,4 +66,3 @@ extern "C" {
#endif /*APP_ENTRY_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/hw_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/hw_conf.h
index b89794bf3..2208cd72e 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/hw_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/hw_conf.h
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : hw_conf.h
* Description : Hardware configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -263,4 +262,3 @@
#endif /*HW_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/hw_if.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/hw_if.h
index 55312b1c3..7f24c2913 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/hw_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/hw_if.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -147,7 +146,7 @@ extern "C" {
* @param pTimerId: Timer Id returned to the user to request operation (start, stop, delete)
* @param TimerMode: Mode of the virtual timer (Single shot or repeated)
* @param pTimerCallBack: Callback when the virtual timer expires
- * @retval HW_TS_ReturnStatus_t: Return whether the creation is sucessful or not
+ * @retval HW_TS_ReturnStatus_t: Return whether the creation is successful or not
*/
HW_TS_ReturnStatus_t HW_TS_Create(uint32_t TimerProcessID, uint8_t *pTimerId, HW_TS_Mode_t TimerMode, HW_TS_pTimerCb_t pTimerCallBack);
@@ -246,5 +245,3 @@ extern "C" {
#endif
#endif /*HW_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/main.h
index e08aa2180..1c1e5ebdc 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/main.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/main.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -72,5 +71,3 @@ void MX_USART1_UART_Init(void);
#endif
#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32_lpm_if.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32_lpm_if.h
index d8e67947f..49bc3661f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32_lpm_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32_lpm_if.h
@@ -1,21 +1,20 @@
/* USER CODE BEGIN Header */
/**
-******************************************************************************
+ ******************************************************************************
* @file stm32_lpm_if.h
* @brief Header for stm32_lpm_if.c module (device specific LP management)
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* This software component is licensed by ST under BSD 3-Clause license,
-* the "License"; You may not use this file except in compliance with the
-* License. You may obtain a copy of the License at:
-* opensource.org/licenses/BSD-3-Clause
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -77,5 +76,3 @@ void PWR_ExitSleepMode( void );
#endif
#endif /*__STM32_LPM_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wb5mm_dk_conf.h
index 29d137061..d081f3fb8 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wb5mm_dk_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wb5mm_dk_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -92,5 +91,3 @@ extern "C" {
#endif
#endif /* STM32WB5MM_DK_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wbxx_hal_conf.h
index 4addc3510..0de7f34ea 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wbxx_hal_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wbxx_hal_conf.h
@@ -1,3 +1,4 @@
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32wbxx_hal_conf.h
@@ -6,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32WBxx_HAL_CONF_H
@@ -349,5 +350,3 @@
#endif
#endif /* __STM32WBxx_HAL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wbxx_it.h
index a58ee4904..4ec29bda7 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wbxx_it.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm32wbxx_it.h
@@ -3,16 +3,15 @@
******************************************************************************
* @file stm32wbxx_it.h
* @brief This file contains the headers of the interrupt handlers.
- *******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -81,5 +80,3 @@ void EXTI15_10_IRQHandler(void);
#endif
#endif /* __STM32WBxx_IT_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm_logging.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm_logging.h
index a48a6398f..0d2b1c641 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm_logging.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/stm_logging.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/utilities_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/utilities_conf.h
index d0169780c..8aacfd97f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/utilities_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Inc/utilities_conf.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -65,4 +64,3 @@ extern "C" {
#endif /*UTILITIES_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/app_entry.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/app_entry.c
index 4586ccaff..2dcdb6a52 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/app_entry.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/app_entry.c
@@ -2,20 +2,19 @@
/**
******************************************************************************
* File Name : app_entry.c
- * Description : Entry application source file for STM32WPAN Middleware
- ******************************************************************************
+ * Description : Entry application source file for STM32WPAN Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -520,4 +519,3 @@ static void UartCmdExecute(void)
}
}
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/hw_timerserver.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/hw_timerserver.c
index c0af6a14a..3d44a3caf 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/hw_timerserver.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/hw_timerserver.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : hw_timerserver.c
* Description : Hardware timerserver source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -892,4 +891,3 @@ __weak void HW_TS_RTC_Int_AppNot(uint32_t TimerProcessID, uint8_t TimerID, HW_TS
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/hw_uart.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/hw_uart.c
index 6ae6ff9f9..166acccd5 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/hw_uart.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/hw_uart.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -317,4 +316,3 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/main.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/main.c
index a4a0a8581..675c79d0e 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/main.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/main.c
@@ -4,6 +4,17 @@
* @file : main.c
* @brief : Main program body
*
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
@verbatim
==============================================================================
##### IMPORTANT NOTE #####
@@ -23,17 +34,6 @@
@endverbatim
******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- *
******************************************************************************
*/
/* USER CODE END Header */
@@ -655,5 +655,3 @@ void assert_failed(uint8_t *file, uint32_t line)
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32_lpm_if.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32_lpm_if.c
index fba978d88..fd5ffa733 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32_lpm_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32_lpm_if.c
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ***************************************************************************************
+ ***************************************************************************************
* File Name : stm32_lpm_if.c
* Description : Low layer function to enter/exit low power modes (stop, sleep).
- ***************************************************************************************
+ ***************************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -277,19 +276,11 @@ static void EnterLowPower( void )
/* Release ENTRY_STOP_MODE semaphore */
LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
}
else
{
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
@@ -355,5 +346,4 @@ static void Switch_On_HSI( void )
/* USER CODE END Private_Functions */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32wbxx_hal_msp.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32wbxx_hal_msp.c
index b16566422..0ac4b9220 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32wbxx_hal_msp.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32wbxx_hal_msp.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -386,4 +385,3 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32wbxx_it.c
index ade6c3ff9..9bca9d4d5 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32wbxx_it.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm32wbxx_it.c
@@ -3,16 +3,15 @@
******************************************************************************
* @file stm32wbxx_it.c
* @brief Interrupt Service Routines.
- *******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -399,4 +398,3 @@ void EXTI15_10_IRQHandler(void)
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm_logging.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm_logging.c
index efde60287..4201102b5 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm_logging.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/stm_logging.c
@@ -1,6 +1,6 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : stm_logging.c
* Description : This file contains all the defines and functions used
* for logging on Application examples.
@@ -8,13 +8,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/system_stm32wbxx.c
index cb2a3e777..5b380f01a 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/system_stm32wbxx.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/Core/Src/system_stm32wbxx.c
@@ -60,13 +60,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -161,10 +160,12 @@
const uint32_t MSIRangeTable[16UL] = {100000UL, 200000UL, 400000UL, 800000UL, 1000000UL, 2000000UL, \
4000000UL, 8000000UL, 16000000UL, 24000000UL, 32000000UL, 48000000UL, 0UL, 0UL, 0UL, 0UL}; /* 0UL values are incorrect cases */
+#if defined(STM32WB55xx) || defined(STM32WB5Mxx) || defined(STM32WB35xx) || defined (STM32WB15xx)
const uint32_t SmpsPrescalerTable[4UL][6UL]={{1UL,3UL,2UL,2UL,1UL,2UL}, \
{2UL,6UL,4UL,3UL,2UL,4UL}, \
{4UL,12UL,8UL,6UL,4UL,8UL}, \
{4UL,12UL,8UL,6UL,4UL,8UL}};
+#endif
/**
* @}
@@ -349,5 +350,3 @@ void SystemCoreClockUpdate(void)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/EWARM/startup_stm32wb55xx_cm4.s b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/EWARM/startup_stm32wb55xx_cm4.s
index f3b216985..911641737 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/EWARM/startup_stm32wb55xx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/EWARM/startup_stm32wb55xx_cm4.s
@@ -16,13 +16,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;
@@ -83,7 +82,7 @@ __vector_table
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -514,4 +513,3 @@ DMAMUX1_OVR_IRQHandler
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/MDK-ARM/startup_stm32wb55xx_cm4.s b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/MDK-ARM/startup_stm32wb55xx_cm4.s
index a8863c804..b0c83982a 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/MDK-ARM/startup_stm32wb55xx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/MDK-ARM/startup_stm32wb55xx_cm4.s
@@ -14,12 +14,12 @@
;******************************************************************************
;* @attention
;*
-;* Copyright (c) 2019 STMicroelectronics. All rights reserved.
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
@@ -84,7 +84,7 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -365,4 +365,3 @@ __user_initial_stackheap
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
index 891ce5b9a..18f06244f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -14,13 +14,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
-* This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,7 +92,7 @@ LoopFillZerobss:
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
-/* Call the clock system intitialization function.*/
+/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
@@ -442,4 +441,3 @@ g_pfnVectors:
.weak DMAMUX1_OVR_IRQHandler
.thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/User/Core/syscalls.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/User/Core/syscalls.c
index bc0dd6c06..c921fd873 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/User/Core/syscalls.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/User/Core/syscalls.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
@@ -7,19 +7,18 @@
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <sys/stat.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/User/Core/sysmem.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/User/Core/sysmem.c
index d7cc52cd4..dda5abe79 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/User/Core/sysmem.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/Application/User/Core/sysmem.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
@@ -7,19 +7,18 @@
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <errno.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
index cced2f51b..a68de8b72 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -15,30 +15,14 @@
** of any kind.
**
*****************************************************************************
+** @attention
**
-** <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
+** Copyright (c) 2019 STMicroelectronics.
+** All rights reserved.
**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-** 1. Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** 3. Neither the name of STMicroelectronics nor the names of its contributors
-** may be used to endorse or promote products derived from this software
-** without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
**
*****************************************************************************
*/
@@ -145,7 +129,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/app_zigbee.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/app_zigbee.c
index 8ed66074f..0e1ad275a 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/app_zigbee.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/app_zigbee.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : App/app_zigbee.c
* Description : Zigbee Application.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -662,5 +661,4 @@ static void APP_ZIGBEE_SW1_Process()
/* USER CODE END FD_LOCAL_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/app_zigbee.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/app_zigbee.h
index 93ccfdc75..4e16401dd 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/app_zigbee.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/app_zigbee.h
@@ -6,16 +6,15 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
- */
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef APP_ZIGBEE_H
@@ -90,4 +89,3 @@ void APP_ZIGBEE_LCD_DisplayInit(void);
#endif /* APP_ZIGBEE_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/tl_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/tl_dbg_conf.h
index 7bfe8fac6..b2b3b4354 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/tl_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/App/tl_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
- * File Name : App/tl_dbg_conf.h
+ * File Name : tl_dbg_conf.h
* Description : Debug configuration file for stm32wpan transport layer interface.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -48,7 +47,7 @@ extern "C" {
#define TL_HCI_EVT_DBG_EN 0 /* Reports BLE Asynchronous Events received from CPU2 */
#define TL_HCI_EVT_DBG_RAW_EN 0 /* Reports raw data BLE Asynchronous Events received from CPU2 */
-#define TL_MM_DBG_EN 0 /* Reports the informations of the buffer released to CPU2 */
+#define TL_MM_DBG_EN 0 /* Reports the information of the buffer released to CPU2 */
/**
* Macro definition
@@ -133,4 +132,3 @@ extern "C" {
#endif /*__TL_DBG_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/Target/hw_ipcc.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/Target/hw_ipcc.c
index afa62b179..85606fda2 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/Target/hw_ipcc.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/STM32_WPAN/Target/hw_ipcc.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : Target/hw_ipcc.c
* Description : Hardware IPCC source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -164,10 +163,7 @@ void HW_IPCC_Tx_Handler( void )
HW_IPCC_ZIGBEE_CmdEvtHandler();
}
#endif /* ZIGBEE_WB */
- else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
- {
- HW_IPCC_SYS_CmdEvtHandler();
- }
+
else if (HW_IPCC_TX_PENDING( HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ))
{
HW_IPCC_MM_FreeBufHandler();
@@ -672,4 +668,3 @@ static void HW_IPCC_TRACES_EvtHandler( void )
__weak void HW_IPCC_TRACES_EvtNot( void ){};
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/readme.txt b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/readme.txt
index 74bdfd74b..c6587314a 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Client_Router/readme.txt
@@ -9,19 +9,19 @@
* using a centralized network.
******************************************************************************
*
- * Copyright (c) 2020 STMicroelectronics. All rights reserved.
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@endverbatim
@par Application Description
-How to use OnOff cluster as a client on a centralized Zigbee network.
+How to use the OnOff cluster on a device acting as a Client with Router role within a Centralized Zigbee network.
The purpose of this application is to show how to create a Zigbee centralized network, and
how to communicate from one node to another one using the OnOff cluster. Once the Zigbee mesh
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_common.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_common.h
index cf8a5baa6..7197b3388 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_common.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_common.h
@@ -4,16 +4,15 @@
* File Name : app_common.h
* Description : App Common application configuration file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -116,4 +115,3 @@ extern "C"{
#endif /*APP_COMMON_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_conf.h
index f8817c4c8..c4d29f05b 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_conf.h
@@ -3,16 +3,16 @@
******************************************************************************
* File Name : app_conf.h
* Description : Application configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ *
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -373,4 +373,3 @@ typedef enum
#endif /*APP_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_entry.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_entry.h
index e6245649f..3a1fe2f85 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_entry.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/app_entry.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -67,4 +66,3 @@ extern "C" {
#endif /*APP_ENTRY_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/hw_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/hw_conf.h
index b89794bf3..2208cd72e 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/hw_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/hw_conf.h
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : hw_conf.h
* Description : Hardware configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -263,4 +262,3 @@
#endif /*HW_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/hw_if.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/hw_if.h
index 55312b1c3..7f24c2913 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/hw_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/hw_if.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -147,7 +146,7 @@ extern "C" {
* @param pTimerId: Timer Id returned to the user to request operation (start, stop, delete)
* @param TimerMode: Mode of the virtual timer (Single shot or repeated)
* @param pTimerCallBack: Callback when the virtual timer expires
- * @retval HW_TS_ReturnStatus_t: Return whether the creation is sucessful or not
+ * @retval HW_TS_ReturnStatus_t: Return whether the creation is successful or not
*/
HW_TS_ReturnStatus_t HW_TS_Create(uint32_t TimerProcessID, uint8_t *pTimerId, HW_TS_Mode_t TimerMode, HW_TS_pTimerCb_t pTimerCallBack);
@@ -246,5 +245,3 @@ extern "C" {
#endif
#endif /*HW_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/main.h
index e08aa2180..1c1e5ebdc 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/main.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/main.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -72,5 +71,3 @@ void MX_USART1_UART_Init(void);
#endif
#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32_lpm_if.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32_lpm_if.h
index d8e67947f..49bc3661f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32_lpm_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32_lpm_if.h
@@ -1,21 +1,20 @@
/* USER CODE BEGIN Header */
/**
-******************************************************************************
+ ******************************************************************************
* @file stm32_lpm_if.h
* @brief Header for stm32_lpm_if.c module (device specific LP management)
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* This software component is licensed by ST under BSD 3-Clause license,
-* the "License"; You may not use this file except in compliance with the
-* License. You may obtain a copy of the License at:
-* opensource.org/licenses/BSD-3-Clause
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -77,5 +76,3 @@ void PWR_ExitSleepMode( void );
#endif
#endif /*__STM32_LPM_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wb5mm_dk_conf.h
index 29d137061..d081f3fb8 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wb5mm_dk_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wb5mm_dk_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -92,5 +91,3 @@ extern "C" {
#endif
#endif /* STM32WB5MM_DK_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wbxx_hal_conf.h
index 4addc3510..0de7f34ea 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wbxx_hal_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wbxx_hal_conf.h
@@ -1,3 +1,4 @@
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32wbxx_hal_conf.h
@@ -6,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32WBxx_HAL_CONF_H
@@ -349,5 +350,3 @@
#endif
#endif /* __STM32WBxx_HAL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wbxx_it.h
index a58ee4904..4ec29bda7 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wbxx_it.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm32wbxx_it.h
@@ -3,16 +3,15 @@
******************************************************************************
* @file stm32wbxx_it.h
* @brief This file contains the headers of the interrupt handlers.
- *******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -81,5 +80,3 @@ void EXTI15_10_IRQHandler(void);
#endif
#endif /* __STM32WBxx_IT_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm_logging.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm_logging.h
index a48a6398f..0d2b1c641 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm_logging.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/stm_logging.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/utilities_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/utilities_conf.h
index d0169780c..8aacfd97f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/utilities_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Inc/utilities_conf.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -65,4 +64,3 @@ extern "C" {
#endif /*UTILITIES_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/app_entry.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/app_entry.c
index 78ea53088..73c39ee44 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/app_entry.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/app_entry.c
@@ -2,20 +2,19 @@
/**
******************************************************************************
* File Name : app_entry.c
- * Description : Entry application source file for STM32WPAN Middleware
- ******************************************************************************
+ * Description : Entry application source file for STM32WPAN Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -524,4 +523,3 @@ static void UartCmdExecute(void)
}
}
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/hw_timerserver.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/hw_timerserver.c
index c0af6a14a..3d44a3caf 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/hw_timerserver.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/hw_timerserver.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : hw_timerserver.c
* Description : Hardware timerserver source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -892,4 +891,3 @@ __weak void HW_TS_RTC_Int_AppNot(uint32_t TimerProcessID, uint8_t TimerID, HW_TS
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/hw_uart.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/hw_uart.c
index 6ae6ff9f9..166acccd5 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/hw_uart.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/hw_uart.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -317,4 +316,3 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/main.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/main.c
index a4a0a8581..675c79d0e 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/main.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/main.c
@@ -4,6 +4,17 @@
* @file : main.c
* @brief : Main program body
*
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
@verbatim
==============================================================================
##### IMPORTANT NOTE #####
@@ -23,17 +34,6 @@
@endverbatim
******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- *
******************************************************************************
*/
/* USER CODE END Header */
@@ -655,5 +655,3 @@ void assert_failed(uint8_t *file, uint32_t line)
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32_lpm_if.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32_lpm_if.c
index fba978d88..fd5ffa733 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32_lpm_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32_lpm_if.c
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ***************************************************************************************
+ ***************************************************************************************
* File Name : stm32_lpm_if.c
* Description : Low layer function to enter/exit low power modes (stop, sleep).
- ***************************************************************************************
+ ***************************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -277,19 +276,11 @@ static void EnterLowPower( void )
/* Release ENTRY_STOP_MODE semaphore */
LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
}
else
{
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
@@ -355,5 +346,4 @@ static void Switch_On_HSI( void )
/* USER CODE END Private_Functions */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32wbxx_hal_msp.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32wbxx_hal_msp.c
index b16566422..0ac4b9220 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32wbxx_hal_msp.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32wbxx_hal_msp.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -386,4 +385,3 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32wbxx_it.c
index 3d0d10803..30d148c59 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32wbxx_it.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm32wbxx_it.c
@@ -3,16 +3,15 @@
******************************************************************************
* @file stm32wbxx_it.c
* @brief Interrupt Service Routines.
- *******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -396,5 +395,3 @@ void EXTI15_10_IRQHandler(void)
{
HAL_GPIO_EXTI_IRQHandler(BUTTON_USER1_PIN);
}
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm_logging.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm_logging.c
index efde60287..4201102b5 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm_logging.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/stm_logging.c
@@ -1,6 +1,6 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : stm_logging.c
* Description : This file contains all the defines and functions used
* for logging on Application examples.
@@ -8,13 +8,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/system_stm32wbxx.c
index cb2a3e777..5b380f01a 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/system_stm32wbxx.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/Core/Src/system_stm32wbxx.c
@@ -60,13 +60,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -161,10 +160,12 @@
const uint32_t MSIRangeTable[16UL] = {100000UL, 200000UL, 400000UL, 800000UL, 1000000UL, 2000000UL, \
4000000UL, 8000000UL, 16000000UL, 24000000UL, 32000000UL, 48000000UL, 0UL, 0UL, 0UL, 0UL}; /* 0UL values are incorrect cases */
+#if defined(STM32WB55xx) || defined(STM32WB5Mxx) || defined(STM32WB35xx) || defined (STM32WB15xx)
const uint32_t SmpsPrescalerTable[4UL][6UL]={{1UL,3UL,2UL,2UL,1UL,2UL}, \
{2UL,6UL,4UL,3UL,2UL,4UL}, \
{4UL,12UL,8UL,6UL,4UL,8UL}, \
{4UL,12UL,8UL,6UL,4UL,8UL}};
+#endif
/**
* @}
@@ -349,5 +350,3 @@ void SystemCoreClockUpdate(void)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/EWARM/startup_stm32wb55xx_cm4.s b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/EWARM/startup_stm32wb55xx_cm4.s
index f3b216985..911641737 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/EWARM/startup_stm32wb55xx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/EWARM/startup_stm32wb55xx_cm4.s
@@ -16,13 +16,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;
@@ -83,7 +82,7 @@ __vector_table
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -514,4 +513,3 @@ DMAMUX1_OVR_IRQHandler
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/MDK-ARM/startup_stm32wb55xx_cm4.s b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/MDK-ARM/startup_stm32wb55xx_cm4.s
index a8863c804..b0c83982a 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/MDK-ARM/startup_stm32wb55xx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/MDK-ARM/startup_stm32wb55xx_cm4.s
@@ -14,12 +14,12 @@
;******************************************************************************
;* @attention
;*
-;* Copyright (c) 2019 STMicroelectronics. All rights reserved.
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
@@ -84,7 +84,7 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -365,4 +365,3 @@ __user_initial_stackheap
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
index 891ce5b9a..18f06244f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -14,13 +14,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
-* This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,7 +92,7 @@ LoopFillZerobss:
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
-/* Call the clock system intitialization function.*/
+/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
@@ -442,4 +441,3 @@ g_pfnVectors:
.weak DMAMUX1_OVR_IRQHandler
.thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/User/Core/syscalls.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/User/Core/syscalls.c
index bc0dd6c06..c921fd873 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/User/Core/syscalls.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/User/Core/syscalls.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
@@ -7,19 +7,18 @@
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <sys/stat.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/User/Core/sysmem.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/User/Core/sysmem.c
index d7cc52cd4..dda5abe79 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/User/Core/sysmem.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/Application/User/Core/sysmem.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
@@ -7,19 +7,18 @@
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <errno.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
index cced2f51b..a68de8b72 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -15,30 +15,14 @@
** of any kind.
**
*****************************************************************************
+** @attention
**
-** <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
+** Copyright (c) 2019 STMicroelectronics.
+** All rights reserved.
**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-** 1. Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** 3. Neither the name of STMicroelectronics nor the names of its contributors
-** may be used to endorse or promote products derived from this software
-** without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
**
*****************************************************************************
*/
@@ -145,7 +129,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/app_zigbee.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/app_zigbee.c
index d9a3635aa..be76bdb23 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/app_zigbee.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/app_zigbee.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : App/app_zigbee.c
* Description : Zigbee Application.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -704,5 +703,4 @@ static void APP_ZIGBEE_ConfigGroupAddr(void)
/* USER CODE END FD_LOCAL_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/app_zigbee.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/app_zigbee.h
index 93ccfdc75..4e16401dd 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/app_zigbee.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/app_zigbee.h
@@ -6,16 +6,15 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
- */
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef APP_ZIGBEE_H
@@ -90,4 +89,3 @@ void APP_ZIGBEE_LCD_DisplayInit(void);
#endif /* APP_ZIGBEE_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/tl_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/tl_dbg_conf.h
index 7bfe8fac6..b2b3b4354 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/tl_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/App/tl_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
- * File Name : App/tl_dbg_conf.h
+ * File Name : tl_dbg_conf.h
* Description : Debug configuration file for stm32wpan transport layer interface.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -48,7 +47,7 @@ extern "C" {
#define TL_HCI_EVT_DBG_EN 0 /* Reports BLE Asynchronous Events received from CPU2 */
#define TL_HCI_EVT_DBG_RAW_EN 0 /* Reports raw data BLE Asynchronous Events received from CPU2 */
-#define TL_MM_DBG_EN 0 /* Reports the informations of the buffer released to CPU2 */
+#define TL_MM_DBG_EN 0 /* Reports the information of the buffer released to CPU2 */
/**
* Macro definition
@@ -133,4 +132,3 @@ extern "C" {
#endif /*__TL_DBG_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/Target/hw_ipcc.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/Target/hw_ipcc.c
index afa62b179..85606fda2 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/Target/hw_ipcc.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/STM32_WPAN/Target/hw_ipcc.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : Target/hw_ipcc.c
* Description : Hardware IPCC source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -164,10 +163,7 @@ void HW_IPCC_Tx_Handler( void )
HW_IPCC_ZIGBEE_CmdEvtHandler();
}
#endif /* ZIGBEE_WB */
- else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
- {
- HW_IPCC_SYS_CmdEvtHandler();
- }
+
else if (HW_IPCC_TX_PENDING( HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ))
{
HW_IPCC_MM_FreeBufHandler();
@@ -672,4 +668,3 @@ static void HW_IPCC_TRACES_EvtHandler( void )
__weak void HW_IPCC_TRACES_EvtNot( void ){};
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/readme.txt b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/readme.txt
index e67ae717b..db0d3f5f3 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_OnOff_Server_Coord/readme.txt
@@ -9,19 +9,19 @@
* using a centralized network.
******************************************************************************
*
- * Copyright (c) 2020 STMicroelectronics. All rights reserved.
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@endverbatim
@par Application Description
-How to use OnOff cluster as a server on a centralized Zigbee network.
+How to use the OnOff cluster on a device acting as a Server with Coordinator role within a Centralized Zigbee network.
The purpose of this application is to show how to create a Zigbee centralized network, and
how to communicate from one node to another one using the OnOff cluster. Once the Zigbee mesh
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_common.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_common.h
index cf8a5baa6..7197b3388 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_common.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_common.h
@@ -4,16 +4,15 @@
* File Name : app_common.h
* Description : App Common application configuration file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -116,4 +115,3 @@ extern "C"{
#endif /*APP_COMMON_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_conf.h
index 3194c8a83..d6d2d2447 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_conf.h
@@ -3,16 +3,16 @@
******************************************************************************
* File Name : app_conf.h
* Description : Application configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ *
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -378,4 +378,3 @@ typedef enum
#endif /*APP_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_entry.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_entry.h
index e6245649f..3a1fe2f85 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_entry.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/app_entry.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -67,4 +66,3 @@ extern "C" {
#endif /*APP_ENTRY_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/hw_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/hw_conf.h
index b89794bf3..2208cd72e 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/hw_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/hw_conf.h
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : hw_conf.h
* Description : Hardware configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -263,4 +262,3 @@
#endif /*HW_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/hw_if.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/hw_if.h
index 55312b1c3..7f24c2913 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/hw_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/hw_if.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -147,7 +146,7 @@ extern "C" {
* @param pTimerId: Timer Id returned to the user to request operation (start, stop, delete)
* @param TimerMode: Mode of the virtual timer (Single shot or repeated)
* @param pTimerCallBack: Callback when the virtual timer expires
- * @retval HW_TS_ReturnStatus_t: Return whether the creation is sucessful or not
+ * @retval HW_TS_ReturnStatus_t: Return whether the creation is successful or not
*/
HW_TS_ReturnStatus_t HW_TS_Create(uint32_t TimerProcessID, uint8_t *pTimerId, HW_TS_Mode_t TimerMode, HW_TS_pTimerCb_t pTimerCallBack);
@@ -246,5 +245,3 @@ extern "C" {
#endif
#endif /*HW_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/main.h
index e08aa2180..1c1e5ebdc 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/main.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/main.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -72,5 +71,3 @@ void MX_USART1_UART_Init(void);
#endif
#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32_lpm_if.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32_lpm_if.h
index d8e67947f..49bc3661f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32_lpm_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32_lpm_if.h
@@ -1,21 +1,20 @@
/* USER CODE BEGIN Header */
/**
-******************************************************************************
+ ******************************************************************************
* @file stm32_lpm_if.h
* @brief Header for stm32_lpm_if.c module (device specific LP management)
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* This software component is licensed by ST under BSD 3-Clause license,
-* the "License"; You may not use this file except in compliance with the
-* License. You may obtain a copy of the License at:
-* opensource.org/licenses/BSD-3-Clause
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -77,5 +76,3 @@ void PWR_ExitSleepMode( void );
#endif
#endif /*__STM32_LPM_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wb5mm_dk_conf.h
index 29d137061..d081f3fb8 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wb5mm_dk_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wb5mm_dk_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -92,5 +91,3 @@ extern "C" {
#endif
#endif /* STM32WB5MM_DK_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wbxx_hal_conf.h
index db1039f49..12510ea2f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wbxx_hal_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wbxx_hal_conf.h
@@ -1,3 +1,4 @@
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32wbxx_hal_conf.h
@@ -6,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32WBxx_HAL_CONF_H
@@ -350,5 +351,3 @@
#endif
#endif /* __STM32WBxx_HAL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wbxx_it.h
index 01044ed2d..bc0fde5df 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wbxx_it.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm32wbxx_it.h
@@ -3,16 +3,15 @@
******************************************************************************
* @file stm32wbxx_it.h
* @brief This file contains the headers of the interrupt handlers.
- *******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -82,5 +81,3 @@ void TIM1_TRG_COM_TIM17_IRQHandler(void);
#endif
#endif /* __STM32WBxx_IT_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm_logging.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm_logging.h
index a48a6398f..0d2b1c641 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm_logging.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/stm_logging.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/utilities_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/utilities_conf.h
index d0169780c..8aacfd97f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/utilities_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Inc/utilities_conf.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -65,4 +64,3 @@ extern "C" {
#endif /*UTILITIES_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/app_entry.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/app_entry.c
index ee3bf5d82..aee68c4d1 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/app_entry.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/app_entry.c
@@ -2,20 +2,19 @@
/**
******************************************************************************
* File Name : app_entry.c
- * Description : Entry application source file for STM32WPAN Middleware
- ******************************************************************************
+ * Description : Entry application source file for STM32WPAN Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -505,4 +504,3 @@ static void UartCmdExecute(void)
}
}
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/hw_timerserver.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/hw_timerserver.c
index c0af6a14a..3d44a3caf 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/hw_timerserver.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/hw_timerserver.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : hw_timerserver.c
* Description : Hardware timerserver source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -892,4 +891,3 @@ __weak void HW_TS_RTC_Int_AppNot(uint32_t TimerProcessID, uint8_t TimerID, HW_TS
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/hw_uart.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/hw_uart.c
index 6ae6ff9f9..166acccd5 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/hw_uart.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/hw_uart.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -317,4 +316,3 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/main.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/main.c
index a4a0a8581..675c79d0e 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/main.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/main.c
@@ -4,6 +4,17 @@
* @file : main.c
* @brief : Main program body
*
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
@verbatim
==============================================================================
##### IMPORTANT NOTE #####
@@ -23,17 +34,6 @@
@endverbatim
******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- *
******************************************************************************
*/
/* USER CODE END Header */
@@ -655,5 +655,3 @@ void assert_failed(uint8_t *file, uint32_t line)
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32_lpm_if.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32_lpm_if.c
index fba978d88..fd5ffa733 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32_lpm_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32_lpm_if.c
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ***************************************************************************************
+ ***************************************************************************************
* File Name : stm32_lpm_if.c
* Description : Low layer function to enter/exit low power modes (stop, sleep).
- ***************************************************************************************
+ ***************************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -277,19 +276,11 @@ static void EnterLowPower( void )
/* Release ENTRY_STOP_MODE semaphore */
LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
}
else
{
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
@@ -355,5 +346,4 @@ static void Switch_On_HSI( void )
/* USER CODE END Private_Functions */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32wbxx_hal_msp.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32wbxx_hal_msp.c
index b16566422..0ac4b9220 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32wbxx_hal_msp.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32wbxx_hal_msp.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -386,4 +385,3 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32wbxx_it.c
index 1a09c6508..530e37605 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32wbxx_it.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm32wbxx_it.c
@@ -3,16 +3,15 @@
******************************************************************************
* @file stm32wbxx_it.c
* @brief Interrupt Service Routines.
- *******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -406,4 +405,3 @@ void TIM1_TRG_COM_TIM17_IRQHandler(void)
BSP_PWM_LED_IRQHandler();
}
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm_logging.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm_logging.c
index efde60287..4201102b5 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm_logging.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/stm_logging.c
@@ -1,6 +1,6 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : stm_logging.c
* Description : This file contains all the defines and functions used
* for logging on Application examples.
@@ -8,13 +8,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/system_stm32wbxx.c
index cb2a3e777..5b380f01a 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/system_stm32wbxx.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/Core/Src/system_stm32wbxx.c
@@ -60,13 +60,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -161,10 +160,12 @@
const uint32_t MSIRangeTable[16UL] = {100000UL, 200000UL, 400000UL, 800000UL, 1000000UL, 2000000UL, \
4000000UL, 8000000UL, 16000000UL, 24000000UL, 32000000UL, 48000000UL, 0UL, 0UL, 0UL, 0UL}; /* 0UL values are incorrect cases */
+#if defined(STM32WB55xx) || defined(STM32WB5Mxx) || defined(STM32WB35xx) || defined (STM32WB15xx)
const uint32_t SmpsPrescalerTable[4UL][6UL]={{1UL,3UL,2UL,2UL,1UL,2UL}, \
{2UL,6UL,4UL,3UL,2UL,4UL}, \
{4UL,12UL,8UL,6UL,4UL,8UL}, \
{4UL,12UL,8UL,6UL,4UL,8UL}};
+#endif
/**
* @}
@@ -349,5 +350,3 @@ void SystemCoreClockUpdate(void)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/EWARM/startup_stm32wb55xx_cm4.s b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/EWARM/startup_stm32wb55xx_cm4.s
index f3b216985..911641737 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/EWARM/startup_stm32wb55xx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/EWARM/startup_stm32wb55xx_cm4.s
@@ -16,13 +16,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;
@@ -83,7 +82,7 @@ __vector_table
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -514,4 +513,3 @@ DMAMUX1_OVR_IRQHandler
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/MDK-ARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/MDK-ARM/startup_stm32wb5mxx_cm4.s
index 56fa32268..00178d394 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/MDK-ARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/MDK-ARM/startup_stm32wb5mxx_cm4.s
@@ -14,12 +14,12 @@
;******************************************************************************
;* @attention
;*
-;* Copyright (c) 2019 STMicroelectronics. All rights reserved.
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
@@ -84,7 +84,7 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -365,4 +365,3 @@ __user_initial_stackheap
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
index 891ce5b9a..18f06244f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -14,13 +14,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
-* This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,7 +92,7 @@ LoopFillZerobss:
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
-/* Call the clock system intitialization function.*/
+/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
@@ -442,4 +441,3 @@ g_pfnVectors:
.weak DMAMUX1_OVR_IRQHandler
.thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/User/Core/syscalls.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/User/Core/syscalls.c
index bc0dd6c06..c921fd873 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/User/Core/syscalls.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/User/Core/syscalls.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
@@ -7,19 +7,18 @@
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <sys/stat.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/User/Core/sysmem.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/User/Core/sysmem.c
index d7cc52cd4..dda5abe79 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/User/Core/sysmem.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/Application/User/Core/sysmem.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
@@ -7,19 +7,18 @@
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <errno.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
index cced2f51b..a68de8b72 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -15,30 +15,14 @@
** of any kind.
**
*****************************************************************************
+** @attention
**
-** <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
+** Copyright (c) 2019 STMicroelectronics.
+** All rights reserved.
**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-** 1. Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** 3. Neither the name of STMicroelectronics nor the names of its contributors
-** may be used to endorse or promote products derived from this software
-** without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
**
*****************************************************************************
*/
@@ -145,7 +129,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/app_zigbee.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/app_zigbee.c
index a8555c11e..e1a2210eb 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/app_zigbee.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/app_zigbee.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : App/app_zigbee.c
* Description : Zigbee Application.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -887,15 +886,14 @@ static void APP_ZIGBEE_ReportConfig(void)
uint16_t rep_change = (uint16_t) ZCL_REPORT_CHANGE;
struct ZbZclAttrReportConfigT report;
report.dst.endpoint = SW1_ENDPOINT;
- //report.dst.mode = ZB_APSDE_ADDRMODE_NOTPRESENT;//ZB_APSDE_ADDRMODE_EXT; //
report.dst.mode = ZB_APSDE_ADDRMODE_SHORT;
report.dst.nwkAddr = 0x0000;
- report.min = ZCL_MIN_REPORT;
- report.max = ZCL_MAX_REPORT;
- report.change.epsilon.integer = 0;
-
- report.attr_id = ZCL_TEMP_MEAS_ATTR_MEAS_VAL;
- report.attr_type = ZCL_DATATYPE_SIGNED_16BIT;
+ report.num_records = 1;
+ report.record_list[0].min = ZCL_MIN_REPORT;
+ report.record_list[0].max = ZCL_MAX_REPORT;
+ report.record_list[0].change = 0;
+ report.record_list[0].attr_id = ZCL_TEMP_MEAS_ATTR_MEAS_VAL;
+ report.record_list[0].attr_type = ZCL_DATATYPE_SIGNED_16BIT;
ZbZclAttrReportConfigReq(zigbee_app_info.temp_meas_client,&report,&APP_ZIGBEE_Report_cb,(void*)&rep_change);
}/*APP_ZIGBEE_ReportConfig*/
@@ -914,7 +912,7 @@ static void APP_ZIGBEE_Report_cb(struct ZbZclCommandRspT *cmd_rsp,void *arg)
}
else
{
- APP_DBG("[TEMP MEAS] Report Config set with sucess");
+ APP_DBG("[TEMP MEAS] Report Config set with success");
}
}/*APP_ZIGBEE_Report_cb*/
@@ -986,5 +984,4 @@ static void LED_Toggle(aPwmLedGsData_TypeDef aPwmLedGsData)
/* USER CODE END FD_LOCAL_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/app_zigbee.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/app_zigbee.h
index 93ccfdc75..4e16401dd 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/app_zigbee.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/app_zigbee.h
@@ -6,16 +6,15 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
- */
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef APP_ZIGBEE_H
@@ -90,4 +89,3 @@ void APP_ZIGBEE_LCD_DisplayInit(void);
#endif /* APP_ZIGBEE_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/tl_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/tl_dbg_conf.h
index 7bfe8fac6..b2b3b4354 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/tl_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/App/tl_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
- * File Name : App/tl_dbg_conf.h
+ * File Name : tl_dbg_conf.h
* Description : Debug configuration file for stm32wpan transport layer interface.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -48,7 +47,7 @@ extern "C" {
#define TL_HCI_EVT_DBG_EN 0 /* Reports BLE Asynchronous Events received from CPU2 */
#define TL_HCI_EVT_DBG_RAW_EN 0 /* Reports raw data BLE Asynchronous Events received from CPU2 */
-#define TL_MM_DBG_EN 0 /* Reports the informations of the buffer released to CPU2 */
+#define TL_MM_DBG_EN 0 /* Reports the information of the buffer released to CPU2 */
/**
* Macro definition
@@ -133,4 +132,3 @@ extern "C" {
#endif /*__TL_DBG_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/Target/hw_ipcc.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/Target/hw_ipcc.c
index afa62b179..85606fda2 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/Target/hw_ipcc.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/STM32_WPAN/Target/hw_ipcc.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : Target/hw_ipcc.c
* Description : Hardware IPCC source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -164,10 +163,7 @@ void HW_IPCC_Tx_Handler( void )
HW_IPCC_ZIGBEE_CmdEvtHandler();
}
#endif /* ZIGBEE_WB */
- else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
- {
- HW_IPCC_SYS_CmdEvtHandler();
- }
+
else if (HW_IPCC_TX_PENDING( HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ))
{
HW_IPCC_MM_FreeBufHandler();
@@ -672,4 +668,3 @@ static void HW_IPCC_TRACES_EvtHandler( void )
__weak void HW_IPCC_TRACES_EvtNot( void ){};
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/readme.txt b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/readme.txt
index 64d4a80dc..e3c74ab43 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Client_Router/readme.txt
@@ -9,19 +9,19 @@
* using a centralized network.
******************************************************************************
*
- * Copyright (c) 2020 STMicroelectronics. All rights reserved.
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@endverbatim
@par Application Description
-How to use TempMeas as a client on a centralized Zigbee network.
+How to use the Device Temperature cluster on a device acting as a Client with Router role within a Centralized Zigbee network.
The purpose of this application is to show how to create a Zigbee centralized network, and
how to communicate from one node to another one using the TempMeas cluster. Once the Zigbee mesh
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_common.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_common.h
index cf8a5baa6..7197b3388 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_common.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_common.h
@@ -4,16 +4,15 @@
* File Name : app_common.h
* Description : App Common application configuration file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -116,4 +115,3 @@ extern "C"{
#endif /*APP_COMMON_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_conf.h
index b208c3e40..4195b25c9 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_conf.h
@@ -3,16 +3,16 @@
******************************************************************************
* File Name : app_conf.h
* Description : Application configuration file for STM32WPAN Middleware.
- ******************************************************************************
+ *
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -374,4 +374,3 @@ typedef enum
#endif /*APP_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_entry.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_entry.h
index e6245649f..3a1fe2f85 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_entry.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_entry.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -67,4 +66,3 @@ extern "C" {
#endif /*APP_ENTRY_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_stts22h.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_stts22h.h
index f5959ca9c..1e44b872c 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_stts22h.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_stts22h.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -42,5 +41,3 @@ void STTS22H_Stop_Measure(void);
void STTS22H_PrintValues(void);
#endif /* __APP_STTS22H_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_vl53l0x.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_vl53l0x.h
index 6591b5042..88674407c 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_vl53l0x.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/app_vl53l0x.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2017 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2017(-2021) 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:
- * http://www.st.com/SLA0044
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -42,5 +41,3 @@ void VL53L0X_PROXIMITY_PrintValue(void);
void VL53L0X_Start_Measure(void);
void VL53L0X_Stop_Measure(void);
#endif /* __APP_VL53L0X_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/hw_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/hw_conf.h
index b89794bf3..2208cd72e 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/hw_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/hw_conf.h
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : hw_conf.h
* Description : Hardware configuration file for STM32WPAN Middleware.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -263,4 +262,3 @@
#endif /*HW_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/hw_if.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/hw_if.h
index 55312b1c3..7f24c2913 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/hw_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/hw_if.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -147,7 +146,7 @@ extern "C" {
* @param pTimerId: Timer Id returned to the user to request operation (start, stop, delete)
* @param TimerMode: Mode of the virtual timer (Single shot or repeated)
* @param pTimerCallBack: Callback when the virtual timer expires
- * @retval HW_TS_ReturnStatus_t: Return whether the creation is sucessful or not
+ * @retval HW_TS_ReturnStatus_t: Return whether the creation is successful or not
*/
HW_TS_ReturnStatus_t HW_TS_Create(uint32_t TimerProcessID, uint8_t *pTimerId, HW_TS_Mode_t TimerMode, HW_TS_pTimerCb_t pTimerCallBack);
@@ -246,5 +245,3 @@ extern "C" {
#endif
#endif /*HW_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/main.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/main.h
index e08aa2180..1c1e5ebdc 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/main.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/main.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -72,5 +71,3 @@ void MX_USART1_UART_Init(void);
#endif
#endif /* __MAIN_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32_lpm_if.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32_lpm_if.h
index d8e67947f..49bc3661f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32_lpm_if.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32_lpm_if.h
@@ -1,21 +1,20 @@
/* USER CODE BEGIN Header */
/**
-******************************************************************************
+ ******************************************************************************
* @file stm32_lpm_if.h
* @brief Header for stm32_lpm_if.c module (device specific LP management)
-******************************************************************************
-* @attention
-*
-* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-* All rights reserved.</center></h2>
-*
-* This software component is licensed by ST under BSD 3-Clause license,
-* the "License"; You may not use this file except in compliance with the
-* License. You may obtain a copy of the License at:
-* opensource.org/licenses/BSD-3-Clause
-*
-******************************************************************************
-*/
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -77,5 +76,3 @@ void PWR_ExitSleepMode( void );
#endif
#endif /*__STM32_LPM_IF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wb5mm_dk_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wb5mm_dk_conf.h
index 29d137061..d081f3fb8 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wb5mm_dk_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wb5mm_dk_conf.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -92,5 +91,3 @@ extern "C" {
#endif
#endif /* STM32WB5MM_DK_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wbxx_hal_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wbxx_hal_conf.h
index 4addc3510..0de7f34ea 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wbxx_hal_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wbxx_hal_conf.h
@@ -1,3 +1,4 @@
+/* USER CODE BEGIN Header */
/**
******************************************************************************
* @file stm32wbxx_hal_conf.h
@@ -6,16 +7,16 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
+/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef __STM32WBxx_HAL_CONF_H
@@ -349,5 +350,3 @@
#endif
#endif /* __STM32WBxx_HAL_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wbxx_it.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wbxx_it.h
index 01044ed2d..bc0fde5df 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wbxx_it.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm32wbxx_it.h
@@ -3,16 +3,15 @@
******************************************************************************
* @file stm32wbxx_it.h
* @brief This file contains the headers of the interrupt handlers.
- *******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -82,5 +81,3 @@ void TIM1_TRG_COM_TIM17_IRQHandler(void);
#endif
#endif /* __STM32WBxx_IT_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm_logging.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm_logging.h
index a48a6398f..0d2b1c641 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm_logging.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/stm_logging.h
@@ -6,13 +6,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/utilities_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/utilities_conf.h
index d0169780c..8aacfd97f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/utilities_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/utilities_conf.h
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -65,4 +64,3 @@ extern "C" {
#endif /*UTILITIES_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/vcp_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/vcp_conf.h
index 4b9e79dde..2e913957b 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/vcp_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Inc/vcp_conf.h
@@ -1,21 +1,20 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file vcp_conf.h
* @author MCD Application Team
* @brief Configuration of the vcp interface
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Define to prevent recursive inclusion -------------------------------------*/
@@ -49,5 +48,3 @@ extern "C"
#endif
#endif /*__VCP_CONF_H */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/app_entry.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/app_entry.c
index cd9208160..6b80a040c 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/app_entry.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/app_entry.c
@@ -2,20 +2,19 @@
/**
******************************************************************************
* File Name : app_entry.c
- * Description : Entry application source file for STM32WPAN Middleware
- ******************************************************************************
+ * Description : Entry application source file for STM32WPAN Middleware.
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
- ******************************************************************************
- */
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
@@ -514,4 +513,3 @@ static void UartCmdExecute(void)
}
}
/* USER CODE END FD_WRAP_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/app_stts22h.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/app_stts22h.c
index 2d90cad3c..270f91282 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/app_stts22h.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/app_stts22h.c
@@ -1,22 +1,21 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* @file app_stts22h.c
* @author MCD Application Team
* @brief Temperature Application
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* USER CODE END Header */
/* Includes ------------------------------------------------------------------*/
#include "app_stts22h.h"
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/hw_timerserver.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/hw_timerserver.c
index c0af6a14a..3d44a3caf 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/hw_timerserver.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/hw_timerserver.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : hw_timerserver.c
* Description : Hardware timerserver source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -892,4 +891,3 @@ __weak void HW_TS_RTC_Int_AppNot(uint32_t TimerProcessID, uint8_t TimerID, HW_TS
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/hw_uart.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/hw_uart.c
index 6ae6ff9f9..166acccd5 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/hw_uart.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/hw_uart.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -317,4 +316,3 @@ void HAL_UART_TxCpltCallback(UART_HandleTypeDef *huart)
return;
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/main.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/main.c
index a4a0a8581..675c79d0e 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/main.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/main.c
@@ -4,6 +4,17 @@
* @file : main.c
* @brief : Main program body
*
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
@verbatim
==============================================================================
##### IMPORTANT NOTE #####
@@ -23,17 +34,6 @@
@endverbatim
******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * 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
- *
- *
******************************************************************************
*/
/* USER CODE END Header */
@@ -655,5 +655,3 @@ void assert_failed(uint8_t *file, uint32_t line)
/* USER CODE END 6 */
}
#endif /* USE_FULL_ASSERT */
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32_lpm_if.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32_lpm_if.c
index fba978d88..fd5ffa733 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32_lpm_if.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32_lpm_if.c
@@ -1,18 +1,17 @@
/* USER CODE BEGIN Header */
/**
- ***************************************************************************************
+ ***************************************************************************************
* File Name : stm32_lpm_if.c
* Description : Low layer function to enter/exit low power modes (stop, sleep).
- ***************************************************************************************
+ ***************************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -277,19 +276,11 @@ static void EnterLowPower( void )
/* Release ENTRY_STOP_MODE semaphore */
LL_HSEM_ReleaseLock( HSEM, CFG_HW_ENTRY_STOP_MODE_SEMID, 0 );
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
}
else
{
- /**
- * The switch on HSI before entering Stop Mode is required on Cut2.0
- * It is useless from Cut2.1
- */
Switch_On_HSI( );
}
@@ -355,5 +346,4 @@ static void Switch_On_HSI( void )
/* USER CODE END Private_Functions */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32wbxx_hal_msp.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32wbxx_hal_msp.c
index b16566422..0ac4b9220 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32wbxx_hal_msp.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32wbxx_hal_msp.c
@@ -7,13 +7,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -386,4 +385,3 @@ void HAL_RTC_MspDeInit(RTC_HandleTypeDef* hrtc)
/* USER CODE END 1 */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32wbxx_it.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32wbxx_it.c
index f4c0a950b..044986872 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32wbxx_it.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm32wbxx_it.c
@@ -3,16 +3,15 @@
******************************************************************************
* @file stm32wbxx_it.c
* @brief Interrupt Service Routines.
- *******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -406,4 +405,3 @@ void TIM1_TRG_COM_TIM17_IRQHandler(void)
{
BSP_PWM_LED_IRQHandler();
}
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm_logging.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm_logging.c
index efde60287..4201102b5 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm_logging.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/stm_logging.c
@@ -1,6 +1,6 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : stm_logging.c
* Description : This file contains all the defines and functions used
* for logging on Application examples.
@@ -8,13 +8,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/system_stm32wbxx.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/system_stm32wbxx.c
index cb2a3e777..5b380f01a 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/system_stm32wbxx.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/Core/Src/system_stm32wbxx.c
@@ -60,13 +60,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
*
- * This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -161,10 +160,12 @@
const uint32_t MSIRangeTable[16UL] = {100000UL, 200000UL, 400000UL, 800000UL, 1000000UL, 2000000UL, \
4000000UL, 8000000UL, 16000000UL, 24000000UL, 32000000UL, 48000000UL, 0UL, 0UL, 0UL, 0UL}; /* 0UL values are incorrect cases */
+#if defined(STM32WB55xx) || defined(STM32WB5Mxx) || defined(STM32WB35xx) || defined (STM32WB15xx)
const uint32_t SmpsPrescalerTable[4UL][6UL]={{1UL,3UL,2UL,2UL,1UL,2UL}, \
{2UL,6UL,4UL,3UL,2UL,4UL}, \
{4UL,12UL,8UL,6UL,4UL,8UL}, \
{4UL,12UL,8UL,6UL,4UL,8UL}};
+#endif
/**
* @}
@@ -349,5 +350,3 @@ void SystemCoreClockUpdate(void)
/**
* @}
*/
-
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/EWARM/startup_stm32wb55xx_cm4.s b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/EWARM/startup_stm32wb55xx_cm4.s
index f3b216985..911641737 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/EWARM/startup_stm32wb55xx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/EWARM/startup_stm32wb55xx_cm4.s
@@ -16,13 +16,12 @@
;******************************************************************************
;* @attention
;*
-;* <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
-;* All rights reserved.</center></h2>
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
;
@@ -83,7 +82,7 @@ __vector_table
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -514,4 +513,3 @@ DMAMUX1_OVR_IRQHandler
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/MDK-ARM/startup_stm32wb5mxx_cm4.s b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/MDK-ARM/startup_stm32wb5mxx_cm4.s
index 56fa32268..00178d394 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/MDK-ARM/startup_stm32wb5mxx_cm4.s
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/MDK-ARM/startup_stm32wb5mxx_cm4.s
@@ -14,12 +14,12 @@
;******************************************************************************
;* @attention
;*
-;* Copyright (c) 2019 STMicroelectronics. All rights reserved.
+;* Copyright (c) 2019 STMicroelectronics.
+;* All rights reserved.
;*
-;* This software component is licensed by ST under 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:
-;* opensource.org/licenses/Apache-2.0
+;* This software is licensed under terms that can be found in the LICENSE file
+;* in the root directory of this software component.
+;* If no LICENSE file comes with this software, it is provided AS-IS.
;*
;******************************************************************************
@@ -84,7 +84,7 @@ __Vectors DCD __initial_sp ; Top of Stack
DCD EXTI0_IRQHandler ; EXTI Line 0 Interrupt
DCD EXTI1_IRQHandler ; EXTI Line 1 Interrupt
DCD EXTI2_IRQHandler ; EXTI Line 2 Interrupt
- DCD EXTI3_IRQHandler ; EXTI Line 3 Interrup
+ DCD EXTI3_IRQHandler ; EXTI Line 3 Interrupt
DCD EXTI4_IRQHandler ; EXTI Line 4 Interrupt
DCD DMA1_Channel1_IRQHandler ; DMA1 Channel 1 Interrupt
DCD DMA1_Channel2_IRQHandler ; DMA1 Channel 2 Interrupt
@@ -365,4 +365,3 @@ __user_initial_stackheap
END
-;************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE*****
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
index 891ce5b9a..18f06244f 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/Startup/startup_stm32wb5mmghx.s
@@ -14,13 +14,12 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2019 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019 STMicroelectronics.
+ * All rights reserved.
*
-* This software component is licensed by ST under 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:
- * opensource.org/licenses/Apache-2.0
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -93,7 +92,7 @@ LoopFillZerobss:
Reset_Handler:
ldr r0, =_estack
mov sp, r0 /* set stack pointer */
-/* Call the clock system intitialization function.*/
+/* Call the clock system initialization function.*/
bl SystemInit
/* Copy the data segment initializers from flash to SRAM */
@@ -442,4 +441,3 @@ g_pfnVectors:
.weak DMAMUX1_OVR_IRQHandler
.thumb_set DMAMUX1_OVR_IRQHandler,Default_Handler
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/User/Core/syscalls.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/User/Core/syscalls.c
index bc0dd6c06..c921fd873 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/User/Core/syscalls.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/User/Core/syscalls.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file syscalls.c
* @author Auto-generated by STM32CubeIDE
* @brief STM32CubeIDE Minimal System calls file
@@ -7,19 +7,18 @@
* For more information about which c-functions
* need which of these lowlevel functions
* please consult the Newlib libc-manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <sys/stat.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/User/Core/sysmem.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/User/Core/sysmem.c
index d7cc52cd4..dda5abe79 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/User/Core/sysmem.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/Application/User/Core/sysmem.c
@@ -1,5 +1,5 @@
/**
- ******************************************************************************
+ ******************************************************************************
* @file sysmem.c
* @author Generated by STM32CubeIDE
* @brief STM32CubeIDE System Memory calls file
@@ -7,19 +7,18 @@
* For more information about which C functions
* need which of these lowlevel functions
* please consult the newlib libc manual
- ******************************************************************************
- * @attention
- *
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
- *
- * This software component is licensed by ST under BSD 3-Clause license,
- * the "License"; You may not use this file except in compliance with the
- * License. You may obtain a copy of the License at:
- * opensource.org/licenses/BSD-3-Clause
- *
- ******************************************************************************
- */
+ ******************************************************************************
+ * @attention
+ *
+ * Copyright (c) 2020-2021 STMicroelectronics.
+ * All rights reserved.
+ *
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
+ *
+ ******************************************************************************
+ */
/* Includes */
#include <errno.h>
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
index cced2f51b..a68de8b72 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32CubeIDE/STM32WB5MMGHX_FLASH.ld
@@ -15,30 +15,14 @@
** of any kind.
**
*****************************************************************************
+** @attention
**
-** <h2><center>&copy; COPYRIGHT(c) 2019 STMicroelectronics</center></h2>
+** Copyright (c) 2019 STMicroelectronics.
+** All rights reserved.
**
-** Redistribution and use in source and binary forms, with or without modification,
-** are permitted provided that the following conditions are met:
-** 1. Redistributions of source code must retain the above copyright notice,
-** this list of conditions and the following disclaimer.
-** 2. Redistributions in binary form must reproduce the above copyright notice,
-** this list of conditions and the following disclaimer in the documentation
-** and/or other materials provided with the distribution.
-** 3. Neither the name of STMicroelectronics nor the names of its contributors
-** may be used to endorse or promote products derived from this software
-** without specific prior written permission.
-**
-** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-** AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-** IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-** DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
-** FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
-** DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-** SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
-** CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
-** OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+** This software is licensed under terms that can be found in the LICENSE file
+** in the root directory of this software component.
+** If no LICENSE file comes with this software, it is provided AS-IS.
**
*****************************************************************************
*/
@@ -145,7 +129,7 @@ SECTIONS
. = ALIGN(4);
.bss :
{
- /* This is used by the startup in order to initialize the .bss secion */
+ /* This is used by the startup in order to initialize the .bss section */
_sbss = .; /* define a global symbol at bss start */
__bss_start__ = _sbss;
*(.bss)
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/app_zigbee.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/app_zigbee.c
index 158dcf28a..d5eb65343 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/app_zigbee.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/app_zigbee.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : App/app_zigbee.c
* Description : Zigbee Application.
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -731,5 +730,4 @@ static void LED_Toggle(aPwmLedGsData_TypeDef aPwmLedGsData)
}/*LED_Toggle*/
/* USER CODE END FD_LOCAL_FUNCTIONS */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/app_zigbee.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/app_zigbee.h
index 9971fce64..9cee0a416 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/app_zigbee.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/app_zigbee.h
@@ -6,16 +6,15 @@
******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
- */
+ */
/* USER CODE END Header */
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef APP_ZIGBEE_H
@@ -91,4 +90,3 @@ void APP_ZIGBEE_WriteTempAttribute(float temp_val);
#endif /* APP_ZIGBEE_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/tl_dbg_conf.h b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/tl_dbg_conf.h
index 7bfe8fac6..b2b3b4354 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/tl_dbg_conf.h
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/App/tl_dbg_conf.h
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
******************************************************************************
- * File Name : App/tl_dbg_conf.h
+ * File Name : tl_dbg_conf.h
* Description : Debug configuration file for stm32wpan transport layer interface.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2020 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -48,7 +47,7 @@ extern "C" {
#define TL_HCI_EVT_DBG_EN 0 /* Reports BLE Asynchronous Events received from CPU2 */
#define TL_HCI_EVT_DBG_RAW_EN 0 /* Reports raw data BLE Asynchronous Events received from CPU2 */
-#define TL_MM_DBG_EN 0 /* Reports the informations of the buffer released to CPU2 */
+#define TL_MM_DBG_EN 0 /* Reports the information of the buffer released to CPU2 */
/**
* Macro definition
@@ -133,4 +132,3 @@ extern "C" {
#endif /*__TL_DBG_CONF_H */
-/************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/Target/hw_ipcc.c b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/Target/hw_ipcc.c
index afa62b179..85606fda2 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/Target/hw_ipcc.c
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/STM32_WPAN/Target/hw_ipcc.c
@@ -1,19 +1,18 @@
/* USER CODE BEGIN Header */
/**
- ******************************************************************************
+ ******************************************************************************
* File Name : Target/hw_ipcc.c
* Description : Hardware IPCC source file for STM32WPAN Middleware.
*
- ******************************************************************************
+ ******************************************************************************
* @attention
*
- * <h2><center>&copy; Copyright (c) 2021 STMicroelectronics.
- * All rights reserved.</center></h2>
+ * Copyright (c) 2019-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
*/
@@ -164,10 +163,7 @@ void HW_IPCC_Tx_Handler( void )
HW_IPCC_ZIGBEE_CmdEvtHandler();
}
#endif /* ZIGBEE_WB */
- else if (HW_IPCC_TX_PENDING( HW_IPCC_SYSTEM_CMD_RSP_CHANNEL ))
- {
- HW_IPCC_SYS_CmdEvtHandler();
- }
+
else if (HW_IPCC_TX_PENDING( HW_IPCC_MM_RELEASE_BUFFER_CHANNEL ))
{
HW_IPCC_MM_FreeBufHandler();
@@ -672,4 +668,3 @@ static void HW_IPCC_TRACES_EvtHandler( void )
__weak void HW_IPCC_TRACES_EvtNot( void ){};
-/******************* (C) COPYRIGHT 2019 STMicroelectronics *****END OF FILE****/
diff --git a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/readme.txt b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/readme.txt
index 9c699411c..1a7c463a8 100644
--- a/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/readme.txt
+++ b/Projects/STM32WB5MM-DK/Applications/Zigbee/Zigbee_TempMeas_Server_Coord/readme.txt
@@ -9,19 +9,19 @@
* using a centralized network.
******************************************************************************
*
- * Copyright (c) 2020 STMicroelectronics. All rights reserved.
+ * Copyright (c) 2020-2021 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
+ * This software is licensed under terms that can be found in the LICENSE file
+ * in the root directory of this software component.
+ * If no LICENSE file comes with this software, it is provided AS-IS.
*
******************************************************************************
@endverbatim
@par Application Description
-How to use Temperature Measurement cluster as a server on a centralized Zigbee network.
+How to use the Device Temperature cluster on a device acting as a Server with Coordinator role on a Centralized Zigbee network.
The purpose of this application is to show how to create a Zigbee centralized network, and
how to communicate from one node to another one using the TempMeas cluster. Once the Zigbee mesh