 5c81bb8abc
			
		
	
	
		5c81bb8abc
		
			
		
	
	
	
	
		
			
			* add u8g2 and ui libs * add display driver and usage example * not init display in test mode * change todo text * fix removed code * Target f2 (#107) * add ioc for flipperzero f2 * add generated f1 files to f2 * regenerate cubemx * invert initial state of led * blink backligh * shutdown backlight on idle
		
			
				
	
	
		
			118 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
		
			4.5 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* USER CODE BEGIN Header */
 | |
| /**
 | |
|   ******************************************************************************
 | |
|   * File Name          : freertos.c
 | |
|   * Description        : Code for freertos applications
 | |
|   ******************************************************************************
 | |
|   * @attention
 | |
|   *
 | |
|   * <h2><center>© 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 */
 | |
| 
 | |
| /* Includes ------------------------------------------------------------------*/
 | |
| #include "FreeRTOS.h"
 | |
| #include "task.h"
 | |
| #include "main.h"
 | |
| 
 | |
| /* Private includes ----------------------------------------------------------*/
 | |
| /* USER CODE BEGIN Includes */     
 | |
| #include <stdbool.h>
 | |
| 
 | |
| /* USER CODE END Includes */
 | |
| 
 | |
| /* Private typedef -----------------------------------------------------------*/
 | |
| /* USER CODE BEGIN PTD */
 | |
| 
 | |
| /* USER CODE END PTD */
 | |
| 
 | |
| /* Private define ------------------------------------------------------------*/
 | |
| /* USER CODE BEGIN PD */
 | |
| 
 | |
| /* USER CODE END PD */
 | |
| 
 | |
| /* Private macro -------------------------------------------------------------*/
 | |
| /* USER CODE BEGIN PM */
 | |
| 
 | |
| /* USER CODE END PM */
 | |
| 
 | |
| /* Private variables ---------------------------------------------------------*/
 | |
| /* USER CODE BEGIN Variables */
 | |
| 
 | |
| /* USER CODE END Variables */
 | |
| 
 | |
| /* Private function prototypes -----------------------------------------------*/
 | |
| /* USER CODE BEGIN FunctionPrototypes */
 | |
|    
 | |
| /* USER CODE END FunctionPrototypes */
 | |
| 
 | |
| /* GetIdleTaskMemory prototype (linked to static allocation support) */
 | |
| void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize );
 | |
| 
 | |
| /* GetTimerTaskMemory prototype (linked to static allocation support) */
 | |
| void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer, StackType_t **ppxTimerTaskStackBuffer, uint32_t *pulTimerTaskStackSize );
 | |
| 
 | |
| /* Hook prototypes */
 | |
| void vApplicationIdleHook(void);
 | |
| 
 | |
| /* USER CODE BEGIN 2 */
 | |
| __weak void vApplicationIdleHook( void )
 | |
| {
 | |
|    /* vApplicationIdleHook() will only be called if configUSE_IDLE_HOOK is set
 | |
|    to 1 in FreeRTOSConfig.h. It will be called on each iteration of the idle
 | |
|    task. It is essential that code added to this hook function never attempts
 | |
|    to block in any way (for example, call xQueueReceive() with a block time
 | |
|    specified, or call vTaskDelay()). If the application makes use of the
 | |
|    vTaskDelete() API function (as this demo application does) then it is also
 | |
|    important that vApplicationIdleHook() is permitted to return to its calling
 | |
|    function, because it is the responsibility of the idle task to clean up
 | |
|    memory allocated by the kernel to any task that has since been deleted. */
 | |
| }
 | |
| /* USER CODE END 2 */
 | |
| 
 | |
| /* USER CODE BEGIN GET_IDLE_TASK_MEMORY */
 | |
| static StaticTask_t xIdleTaskTCBBuffer;
 | |
| static StackType_t xIdleStack[configMINIMAL_STACK_SIZE];
 | |
|   
 | |
| void vApplicationGetIdleTaskMemory( StaticTask_t **ppxIdleTaskTCBBuffer, StackType_t **ppxIdleTaskStackBuffer, uint32_t *pulIdleTaskStackSize )
 | |
| {
 | |
|   *ppxIdleTaskTCBBuffer = &xIdleTaskTCBBuffer;
 | |
|   *ppxIdleTaskStackBuffer = &xIdleStack[0];
 | |
|   *pulIdleTaskStackSize = configMINIMAL_STACK_SIZE;
 | |
|   /* place for user code */
 | |
| }                   
 | |
| /* USER CODE END GET_IDLE_TASK_MEMORY */
 | |
| 
 | |
| /* USER CODE BEGIN GET_TIMER_TASK_MEMORY */
 | |
| static StaticTask_t xTimerTaskTCBBuffer;
 | |
| static StackType_t xTimerStack[configTIMER_TASK_STACK_DEPTH];
 | |
|   
 | |
| void vApplicationGetTimerTaskMemory( StaticTask_t **ppxTimerTaskTCBBuffer, StackType_t **ppxTimerTaskStackBuffer, uint32_t *pulTimerTaskStackSize )  
 | |
| {
 | |
|   *ppxTimerTaskTCBBuffer = &xTimerTaskTCBBuffer;
 | |
|   *ppxTimerTaskStackBuffer = &xTimerStack[0];
 | |
|   *pulTimerTaskStackSize = configTIMER_TASK_STACK_DEPTH;
 | |
|   /* place for user code */
 | |
| }                   
 | |
| /* USER CODE END GET_TIMER_TASK_MEMORY */
 | |
| 
 | |
| /* Private application code --------------------------------------------------*/
 | |
| /* USER CODE BEGIN Application */
 | |
| bool task_equal(TaskHandle_t a, TaskHandle_t b) {
 | |
|     if(a == NULL || b == NULL) return false;
 | |
| 
 | |
|     return a == b;
 | |
| }
 | |
|      
 | |
| /* USER CODE END Application */
 | |
| 
 | |
| /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
 |