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:
Diffstat (limited to 'Projects/NUCLEO-WB35CE/Applications/FreeRTOS/FreeRTOS_Semaphore/readme.txt')
-rw-r--r--Projects/NUCLEO-WB35CE/Applications/FreeRTOS/FreeRTOS_Semaphore/readme.txt87
1 files changed, 87 insertions, 0 deletions
diff --git a/Projects/NUCLEO-WB35CE/Applications/FreeRTOS/FreeRTOS_Semaphore/readme.txt b/Projects/NUCLEO-WB35CE/Applications/FreeRTOS/FreeRTOS_Semaphore/readme.txt
new file mode 100644
index 000000000..b92277904
--- /dev/null
+++ b/Projects/NUCLEO-WB35CE/Applications/FreeRTOS/FreeRTOS_Semaphore/readme.txt
@@ -0,0 +1,87 @@
+/**
+ @page FreeRTOS_Semaphore FreeRTOS Semaphore example
+
+ @verbatim
+ ******************************************************************************
+ * @file FreeRTOS/FreeRTOS_Semaphore/readme.txt
+ * @author MCD Application Team
+ * @brief Description of the FreeRTOS Semaphore example.
+ ******************************************************************************
+ * @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
+ *
+ ******************************************************************************
+ @endverbatim
+
+@par Application Description
+
+How to use semaphores with CMSIS RTOS API.
+
+This application creates two threads that toggle LEDs through a shared semaphore,
+as following:
+
+The first thread which have the higher priority obtains the semaphore and
+toggle the LED3 each 200 ms. After 5 seconds it releases the semaphore and
+suspends itself.
+
+The low priority thread can execute now, it obtains the semaphore and
+resume execution of the first thread, as it has the higher priority
+the first thread will try to obtain the semaphore but it fails because
+the semaphore is already taken by the low priority thread, which will
+toggle the LED2 each 200 ms for 5 seconds before releasing the semaphore
+to begin a new cycle
+
+@note Care must be taken when using HAL_Delay(), this function provides accurate
+ delay (in milliseconds) based on variable incremented in HAL time base ISR.
+ This implies that if HAL_Delay() is called from a peripheral ISR process, then
+ the HAL time base interrupt must have higher priority (numerically lower) than
+ the peripheral interrupt. Otherwise the caller ISR process will be blocked.
+ To change the HAL time base interrupt priority you have to use HAL_NVIC_SetPriority()
+ function.
+
+@note The application needs to ensure that the HAL time base is always set to 1 millisecond
+ to have correct HAL operation.
+
+@note The FreeRTOS heap size configTOTAL_HEAP_SIZE defined in FreeRTOSConfig.h is set accordingly to the
+ OS resources memory requirements of the application with +10% margin and rounded to the upper Kbyte boundary.
+
+For more details about FreeRTOS implementation on STM32Cube, please refer to UM1722 "Developing Applications
+on STM32Cube with RTOS".
+
+
+@par Directory contents
+ - FreeRTOS/FreeRTOS_Semaphore/Src/main.c Main program
+ - FreeRTOS/FreeRTOS_Semaphore/Src/app_FreeRTOS.c Code for freertos applications
+ - FreeRTOS/FreeRTOS_Semaphore/Src/stm32wbxx_hal_timebase_tim.c HAL timebase file
+ - FreeRTOS/FreeRTOS_Semaphore/Src/stm32wbxx_it.c Interrupt handlers
+ - FreeRTOS/FreeRTOS_Semaphore/Src/stm32wbxx_hal_msp.c MSP Initialization file
+ - FreeRTOS/FreeRTOS_Semaphore/Src/system_stm32wbxx.c STM32WBxx system clock configuration file
+ - FreeRTOS/FreeRTOS_Semaphore/Inc/main.h Main program header file
+ - FreeRTOS/FreeRTOS_Semaphore/Inc/stm32wbxx_hal_conf.h HAL Library Configuration file
+ - FreeRTOS/FreeRTOS_Semaphore/Inc/stm32wbxx_it.h Interrupt handlers header file
+ - FreeRTOS/FreeRTOS_Semaphore/Inc/FreeRTOSConfig.h FreeRTOS Configuration file
+
+@par Hardware and Software environment
+
+ - This application runs on STM32WB35CEUx devices.
+
+ - This application has been tested with NUCLEO-WB35CE board and can be
+ easily tailored to any other supported device and development board.
+
+
+@par How to use it ?
+
+In order to make the program work, you must do the following:
+ - Open your preferred toolchain
+ - Rebuild all files and load your image into target memory
+ - Run the example
+
+ * <h3><center>&copy; COPYRIGHT STMicroelectronics</center></h3>
+ */